1. 程式人生 > >LINUX命令技巧集

LINUX命令技巧集

改變檔案或目錄之讀、寫、執行之允許權
執行格式:chmod [-R] mode name ( name 可為檔名或目錄名;mode可為 3 個 8 位元之數字,或利用ls -l 命令,列出檔案或目錄之讀、寫、執行允許權之文字縮寫。)
mode : rwx rwx rwx r:read w:write x:execute(user group other 縮寫為: u g o)
Example :
% chmod 755 dir1 將目錄dir1,設定成任何使用者,皆有讀取及執行之權利,但只有擁有者可做修改。
% chmod 700 file1 將檔案file1,設定只有擁有者可以讀、寫和執行。

% chmod o+x file2 將檔案file2,增加擁有者可以執行之權利。
% chmod g+x file3 將檔案file3,增加群組使用者可執行之權利。
% chmod o-r file4 將檔案file4,除去其它使用者可讀取之權利。

改變檔案或目錄之擁有權
======================
執行格式:chown [-R] username name ( name 可為檔名或目錄名。)
Example :
% chown user file1 將檔案 file1 之擁有權,改為使用者 user 所有。
% chown -R user dir1 將目錄 dir1,及其下所有檔案和子目錄之擁有權,改為使用者 user 所有。


檢查自己所屬之群組名稱
======================
執行格式:groups
Example :
% groups

改變檔案或目錄之群組擁有權
==========================
執行格式:chgrp [-R] groupname name ( name 可為檔名或目錄名 )
Example :
% chgrp vlsi file1 將檔案 file1 之群組擁有權,改為 vlsi 群組。
% chgrp -R image dir1 將目錄dir1,及其下所有檔案和子目錄,改為 image 群組。

改變檔案或目錄之最後修改時間(變為當前時間)

=========================================
執行格式:touch name ( name 可為檔案或目錄名稱。)
Example :
% touch file1
% touch dir1

檔案之連結
==========
同一檔案,可擁有一個以上之名稱,可將檔案做數個連結。
執行格式:ln oldname newname ( Hard link )
Example :
% ln file1 file2   將名稱 file2,連結至檔案 file1。
執行格式:ln -s oldname newname ( Symblick link )
Example :
% ln -s file3 file4 將名稱 file4,連結至檔案file3。

檔案之字串找尋
==============
執行格式:grep string file
Example :
% grep abc file1 尋找檔案file1中,列出字串 abc 所在之整行文字內容。

找尋檔案或命令之路徑
====================
執行格式:whereis command ( 顯示命令之路徑。)
執行格式:which command ( 顯示命令之路徑,及使用者所定義之別 )
執行格式:whatis command ( 顯示命令功能之摘要。)
執行格式:find search-path -name filename -print ( 搜尋指定路徑下,某檔案之路徑 )
Example :
% find / -name file1 -print ( 自根目錄下,尋找檔名為 file1 之路徑)

比較檔案或目錄之內容
====================
執行格式:diff [-r] name1 name2 ( name1 name2 可同時為檔名,或目錄名稱 )
Example :
% diff file1 file2 比較檔案 file1 與 file2 內,各行之不同處。
% diff -r dir1 dir2 比較目錄 dir1 與 dir2 內,各檔案之不同處。

如何實現為一個網絡卡繫結多個IP地址?
====================================
  Linux的網路裝置配置檔案存放在/etc/sysconfig/network-scripts裡面,對於乙太網的第一個網路裝置,配置檔名一般為 ifcfg-eth0 如果需要為第一個網路裝置繫結多一個IP地址,只需要在/etc/sysconfig/network-scripts目錄裡面建立一個名為ifcfg- eth0:0的檔案,內容樣例為:
DEVICE="eth0:0"
IPADDR="211.100.10.119"
NETMASK="255.255.255.0"
ONBOOT="yes"
  其中的DEVICE為裝置的名稱,IPADDR為此裝置的IP地址,NETMASK為子網掩碼,ONBOOT表示在系統啟動時自動啟動。
  如果需要再繫結多一個IP地址,只需要把檔名和檔案內的DEVICE中的eth0:x加一即可。LINUX最多可以支援255個IP別名。 

如何設定login後歡迎資訊
==================================== 
  修改/etc/motd,往裡面寫入文字,就能使使用者通過telnet正確登入後執行shell之前得到相應的提示資訊。
  motd就是“messages of the day”,也就是當日資訊的意思。管理員可以往裡面寫一些需要注意的事項或者通知等來提醒正式使用者。 

如何設定login前歡迎介面
====================================
  修改/etc/issue或者issue.net,往裡面寫入文字,就能使得使用者在login前得到相應的提示,這將有助於使用者分辨自己正在連線哪裡的主機。
  issue的內容是出現在本機登入的使用者介面上,而issue.net則是在使用者通過網路telnet的時候出現。 

如何在bash下快速執行某個特定歷史命令
====================================
在bash下面按ctrl+r可以查詢歷史命令中匹配的命令並執行

如何檢視程序繼承關係
====================================
直接在命令列中輸入
pstree
即可,程式會以樹狀結構方式列出系統中正在執行的各程序之間的繼承關係。 

如何找出記憶體佔用最大的程序
====================================
除了可以使用top命令檢視記憶體使用情況之外,還可以使用更快的命令列命令,相關的命令如下:
ps aux | sort +4n
或者
ps aux | sort +5n 

如何在Linux下面編輯二進位制檔案
====================================
http://freshmeat.net/redir/hexedit/4088/url_tgz/hexedit-1.2.3.src.tgz下載hexedit安裝到系統上,就能用hexedit filename來編輯二進位制檔案。 

如何設定使用者密碼過期時間
====================================
設定某個使用者的密碼過期時間可以用usermod -e來設定,如果要統一設定使用者的密碼過期時間,那麼就要修改/etc/login.defs裡面的PASS_MAX_DAYS,比如修改所有使用者的密碼過期時間是30天:
PASS_MAX_DAYS 30
如果這個值是99999,那麼表示密碼永不過期。 

如何修改網絡卡MAC地址
====================================
首先必須關閉網絡卡裝置,否則會報告系統忙,無法更改。
命令是: /sbin/ifconfig eth0 down
修改 MAC 地址,這一步較 Windows 中的修改要簡單。
命令是:/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
重新啟用網絡卡 /sbin/ifconfig eht0 up
網絡卡的 MAC 地址更改就完成了

如何用Bash糾正錯誤命令
====================================
當你輸入一個命令不知道是否正確的時候,可以使用ctrl+t來糾正到正確的命令。
比如輸入mkdri,然後按ctrl+t,bash會幫你糾正到最接近的命令mkdir。 

如何使非root使用者都不能遠端登入
====================================
建立/etc/nologin檔案,這樣所有的非root使用者都不能遠端登入。 

如何不顯示其他使用者的訊息
====================================
使用者可以使用mesg n來禁止別人給他傳送資訊,其實就是禁止別人往自己的終端上面的寫許可權。當別人試圖再使用write給他傳送資訊時,傳送者將會看見提示:
write: user has messages disabled on pts/n

如何知道某個命令使用了什麼庫檔案
====================================
例如要知道ls使用了什麼庫檔案,可以使用:
$ ldd /bin/ls

如何臨時增加交換空間
====================================
產生一個64M的空檔案
#dd if=/dev/zero of=/swapfile bs=1024 count=65536

初始化該檔案為交換檔案:
mkswap /swapfile 65536
sync

啟用這個交換檔案:
swapon /swapfile

如何使一個使用者程序在使用者退出系統後仍然執行
====================================
  使用nohup command &,比如:
  nohup wget -c ftp://test.com/test.iso
  這樣即使使用者退出系統,wget程序仍然繼續執行直到test.iso下載完成為止

如何限制使用者的最小密碼長度
====================================
修改/etc/login.defs裡面的PASS_MIN_LEN的值。比如限制使用者最小密碼長度是8:
PASS_MIN_LEN 8
這樣使用者設定密碼的時候如果輸入的密碼長度小於8將不能設定

如何限制只有0組(gid=0)的使用者可以su成root
====================================
修改/etc/login.defs裡面的SU_WHEEL_ONLY的值為:
SU_WHEEL_ONLY yes
那麼就只有gid為0的使用者可以su成root。 

如何禁用Ctrl+Alt+Del鍵重啟系統
====================================
有時候為了防止誤操作導致系統重新啟動(如機房裡面新來了個習慣用Window$系統的管理員:-D),或者出於安全的原因,需要禁用Ctrl+Alt+Del組合鍵。
只需要註釋掉/etc/inittab檔案內的
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
這一行即可。如何註釋?在這一行的行首放一個“#”號即可。 

怎麼樣格式化磁碟
====================================
Linux下有一條mkfs命令,相當於format,可以對磁碟進行檔案系統製作操作(或者說格式化)。命令的語法為:
mkfs -t 檔案系統型別 /dev/裝置名
如要把/dev/sda1格式為reiserfs格式,使用以下命令:
mkfs -t reiserfs /dev/sda1
當然,也可以使用mkfs.fstype命令來格式化磁碟,其中的fstype為檔案系統名,如reiserfs檔案系統的格式化命令為mkfs.reiserfs。上面那條命令的相應版本為:
mkfs.reiserfs /dev/sda1

如何取消root命令歷史記錄以增加安全性
====================================
  為了設定系統不記錄每個人執行過的命令,就在/etc/profile裡設定: 
  HISTFILESIZE=0 
  HISTSIZE=0 
  或者:
  ln -s /dev/null ~/.bash_history 
  這樣就可以了。 

如何使用netrc檔案進行自動ftp 
====================================
在自己的home目錄下建立一個許可權600,名為.netrc的檔案,內容是:
machine 192.168.0.1 login test password test
這樣以後你每次ftp 192.168.0.1的時候,系統都會幫你以