系統管理員必學的30個命令(加批註)

我們在本文中將介紹一些實用又常用的Linux或Unix命令,這些是Linux系統管理員們平常使用的命令。本文不是什麼完整列表,而是簡要地列出了需要時派得上用場的命令。不妨開始逐一介紹如何使用這些命令,附有示例。

1.uptime命令

在Linux中,uptime命令顯示了你的系統運行了多久以及目前登錄的用戶有多少,另外還顯示了間隔1分鐘、5分鐘和15分鐘的負載平均值。 

  1. # uptime 
  2. 08:16:26 up 22 min,  1 user,  load average: 0.00, 0.03, 0.22 

注: uptime   即上線時間

檢查uptime版本

除了uptime(正常運行時間)和version(版本)外,uptime命令沒有其他選項。如果時間不到1天,它只給出hours:mins這種形式的信息。 

  1. [tecmint@tecmint ~]$ uptime -V 
  2. procps version 3.2.8 

2.w命令

該命令會顯示目前登錄的用戶及其進程,另外還會顯示負載平均值。此外,它還顯示了登錄名稱、tty名稱、遠程主機、登錄時間、閒置時間、JCPU、PCPU、命令和進程。

注:tty 源自Teletypes,或者teletypewriters,原來指的是電傳打字機,是通過串行線用打印機鍵盤通過閱讀和發送信息的東西,後來這東西被鍵盤與顯示器取代,所以現在叫終端比較合適。終端是一種字符型設備,它有多種類型,通常使用tty來簡稱各種類型的終端設備。

  1. # w 
  2.  
  3. 08:27:44 up 34 min,  1 user,  load average: 0.00, 0.00, 0.08 
  4. USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT 
  5. tecmint  pts/0    192.168.50.1     07:59    0.00s  0.29s  0.09s w 

可用的選項

◆-h:不顯示標題。

◆-s:不顯示JCPU和PCPU。

◆-f:不顯示字段信息。

◆-V:(大寫V)-顯示版本。

3.users命令

users命令顯示了目前已登錄的用戶。除了help(幫助)和version(版本)外,該命令沒有其他參數。 

  1. # users 
  2. Tecmint 

4.who命令

who命令僅僅返回用戶名稱、日期、時間和主機信息。who命令類似w命令。不像w命令,who並不輸出用戶執行的操作這一信息。不妨具體看看who和w這兩個命令之間的區別。 

  1. # who 
  2. tecmint  pts/0        2012-09-18 07:59 (192.168.50.1)  
  1. # w 
  2.  
  3. 08:43:58 up 50 min,  1 user,  load average: 0.64, 0.18, 0.06 
  4. USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT 
  5. tecmint  pts/0    192.168.50.1     07:59    0.00s  0.43s  0.10s w 

who命令的選項

◆-b:顯示上一次系統重啓日期和時間。

◆-r:顯示當前的運行級別。

◆-a,–all:顯示累積的所有信息。

5.whoami命令

whoami命令輸出當前用戶的姓名。你還可以使用“who am i”命令顯示當前用戶。如果你以根用戶身份使用sudo命令登錄,“whoami”命令返回根用戶是當前用戶。如果你想知道登錄的用戶具體是哪個,使用“who am i”命令。 

  1. # whoami 
  2. tecmint 

6.ls命令

ls命令顯示了人類可讀格式的文件列表。 

  1. # ls -l 
  2.  
  3. total 114 
  4. dr-xr-xr-x.   2 root root  4096 Sep 18 08:46 bin 
  5. dr-xr-xr-x.   5 root root  1024 Sep  8 15:49 boot 

按照上一次修改時間排序文件。

  1. # ls -ltr 
  2.  
  3. total 40 
  4. -rw-r--r--. 1 root root  6546 Sep 17 18:42 install.log.syslog 
  5. -rw-r--r--. 1 root root 22435 Sep 17 18:45 install.log 
  6. -rw-------. 1 root root  1003 Sep 17 18:45 anaconda-ks.cfg 

7.crontab命令

可使用crontab命令和-l選項,列出當前用戶的計劃任務。 

  1. # crontab -l 
  2. 00 10 * * * /bin/ls >/ls.txt 

可以使用-e選項編輯crontab。在下面例子中,將用VI編輯工具打開計劃任務。進行必要的更改,按:wq鍵退出,這會自動保存設置。

  1. # crontab -e

8.less命令

less命令允許快速查看文件。你可以向上和向下翻頁。按“q”即可退出less窗口。 

  1. # less install.log 
  2.  
  3. Installing setup-2.8.14-10.el6.noarch  
  4. warning: setup-2.8.14-10.el6.noarch: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY  
  5. Installing filesystem-2.4.30-2.1.el6.i686  
  6. Installing ca-certificates-2010.63-3.el6.noarch  
  7. Installing xml-common-0.6.3-32.el6.noarch  
  8. Installing tzdata-2010l-1.el6.noarch  
  9. Installing iso-codes-3.16-2.el6.noarch 

9.more命令

more命令允許快速查看文件,並以百分比的形式顯示詳細信息。你可以向上和向下翻頁。按“q”即可退出more窗口。 

  1. # more install.log 
  2.  
  3. Installing setup-2.8.14-10.el6.noarch  
  4. warning: setup-2.8.14-10.el6.noarch: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY  
  5. Installing filesystem-2.4.30-2.1.el6.i686  
  6. Installing ca-certificates-2010.63-3.el6.noarch  
  7. Installing xml-common-0.6.3-32.el6.noarch  
  8. Installing tzdata-2010l-1.el6.noarch  
  9. Installing iso-codes-3.16-2.el6.noarch  
  10. --More--(10%) 

10.cp命令

將文件從來源拷貝到目的地,保留同一種模式。

  1. # cp -p fileA fileB 

覆蓋文件之前系統會提示你。

  1. # cp -i fileA fileB 

11.mv命令

將fileA更名爲fileB。 -i選項會在覆蓋前提示。如果文件已經存在,會要求予以確認。

  1. # mv -i fileA fileB 

12.cat命令

cat命令用來同時查看多個文件。

  1. # cat fileA fileB 

要是某個文件在一個屏幕/頁面顯示不了,你可以使用cat命令來合併more和less命令,查看文件內容。 

  1. # cat install.log | less 
  2.  
  3. # cat install.log | more 

13.cd命令(更改目錄)

藉助cd命令(更改目錄),它會進入到fileA目錄。

  1. # cd /fileA 

14.pwd命令(輸出工作目錄)

pwd命令會返回當前的工作目錄。 

  1. # pwd 
  2.  
  3. /root 

15.sort命令

以升序排序一行行文本文件。如果使用-r選項,就會以降序排序。 

  1. #sort fileA.txt 
  2.  
  3. #sort -r fileA.txt 

16.vi命令

對大多數類似UNIX的操作系統而言,vi是最流行的文本編輯器。下面例子使用-R選項,打開只讀方式的文件。按“:q”即可退出vi窗口。

  1. # vi -R /etc/shadows 

17.ssh命令(安全外殼)

ssh命令用來登錄入到遠程主機。比如說,下面這個ssh例子會使用用戶作爲narad,連接到主機(192.168.50.2)。

  1. # ssh [email protected] 

想檢查ssh的版本,使用選項-V(大寫),即可顯示ssh的版本。 

  1. # ssh -V 
  2.  
  3. OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010 

18.ftp或sftp命令

ftp或sftp命令用來連接到遠程ftp主機。ftp是指文件傳輸協議,而sftp是安全文件傳輸協議。比如說,下列命令將連接到ftp主機(192.168.50.2)。 

  1. # ftp 192.168.50.2 
  2.  
  3. # sftp 192.168.50.2 

正如可以使用mput將多個文件上傳到到遠程主機,我們同樣可以使用mget從遠程主機下載多個文件。 

  1. # ftp > mput *.txt 
  2.  
  3. # ftp > mget *.txt 

19.service命令

service命令調用位於/etc/init.d/目錄處的腳本,並執行腳本。有兩種方法可以啓動任何服務。比如說,我們使用service命令,啓動名爲httpd的服務。 

  1. # service httpd start 
  2.  
  3. OR 
  4.  
  5. # /etc/init.d/httpd start

20.free命令

free命令顯示了閒置內存、總內存和交換內等方面的信息,單位是字節。 

  1. # free 
  2.  
  3.              total       used       free     shared    buffers     cached 
  4. Mem:       1030800     735944     294856          0      51648     547696 
  5. -/+ buffers/cache:     136600     894200 
  6. Swap:      2064376          0    2064376 

使用-t選項的free命令顯示了已使用的總內存和可以使用的內存,單位是字節。 

  1. # free -t  
  2.              total       used       free     shared    buffers     cached  
  3. Mem:       1030800     736096     294704          0      51720     547704  
  4. -/+ buffers/cache:     136672     894128  
  5. Swap:      2064376          0    2064376  
  6. Total:     3095176     736096    2359080 

21.top命令

top命令顯示了系統的處理器活動,還顯示了由內核實時管理的任務。它會顯示所使用的處理器和內存。如果使用帶“u”選項的top命令,這會顯示特定的用戶進程詳細信息,如下所示。按“O”(大寫)即可按你希望的方式來排序。按“q”即可退出top屏幕。 

  1. # top -u tecmint  
  2.  
  3. top - 11:13:11 up  3:19,  2 users,  load average: 0.00, 0.00, 0.00  
  4. Tasks: 116 total,   1 running, 115 sleeping,   0 stopped,   0 zombie  
  5. Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st  
  6. Mem:   1030800k total,   736188k used,   294612k free,    51760k buffers  
  7. Swap:  2064376k total,        0k used,  2064376k free,   547704k cached  
  8.  
  9. PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND  
  10. 1889 tecmint   20   0 11468 1648  920 S  0.0  0.2   0:00.59 sshd  
  11. 1890 tecmint   20   0  5124 1668 1416 S  0.0  0.2   0:00.44 bash  
  12. 6698 tecmint   20   0 11600 1668  924 S  0.0  0.2   0:01.19 sshd  
  13. 6699 tecmint   20   0  5124 1596 1352 S  0.0  0.2   0:00.11 bash 

22.tar命令

tar命令用於壓縮Linux下的文件和文件夾。比如說,下面這個命令將爲/home目錄創建一個壓縮存檔,文件名爲archive-name.tar。

  1. # tar -cvf archive-name.tar /home 

想解壓縮tar壓縮存檔文件,請使用如下所示的選項。

  1. # tar -xvf archive-name.tar 

23.grep命令

grep可搜索文件中的特定字符串。只顯示/etc/passwd文件中的tecmint用戶。我們可以使用-i選項,忽略大小寫。 

  1. # grep tecmint /etc/passwd 
  2.  
  3. tecmint:x:500:500::/home/tecmint:/bin/bash 

24.find命令

find命令用來搜索文件、字符串和目錄。在下面這個例子中,find命令搜索“/”分區中的tecmint單詞,並返回輸出。 

  1. # find / -name tecmint 
  2.  
  3. /var/spool/mail/tecmint 
  4. /home/tecmint 
  5. /root/home/tecmint 

     25.lsof命令

lsof意味着“列出所有打開的文件”。下面,lsof命令列出了tecmint用戶打開的所有文件。 

  1. # lsof -u tecmint 
  2.  
  3. COMMAND  PID    USER   FD   TYPE     DEVICE SIZE/OFF   NODE NAME  
  4. sshd    1889 tecmint  cwd    DIR      253,0     4096      2 /  
  5. sshd    1889 tecmint  txt    REG      253,0   532336 298069 /usr/sbin/sshd  
  6. sshd    1889 tecmint  DEL    REG      253,0          412940 /lib/libcom_err.so.2.1  
  7. sshd    1889 tecmint  DEL    REG      253,0          393156 /lib/ld-2.12.so  
  8. sshd    1889 tecmint  DEL    REG      253,0          298643 /usr/lib/libcrypto.so.1.0.0  
  9. sshd    1889 tecmint  DEL    REG      253,0          393173 /lib/libnsl-2.12.so  
  10. sshd    1889 tecmint  DEL    REG      253,0          412937 /lib/libkrb5support.so.0.1  
  11. sshd    1889 tecmint  DEL    REG      253,0          412961 /lib/libplc4.so 

26.last命令

藉助last命令,我們就能觀察用戶在系統中的活動。該命令還可以以正常用戶的身份來執行。它會顯示完整的用戶信息,比如終端、時間、日期、系統重啓或啓動以及內核版本。這是用來排查故障的實用命令。 

  1. # last 
  2.  
  3. tecmint  pts/1        192.168.50.1     Tue Sep 18 08:50   still logged in  
  4. tecmint  pts/0        192.168.50.1     Tue Sep 18 07:59   still logged in  
  5. reboot   system boot  2.6.32-279.el6.i Tue Sep 18 07:54 - 11:38  (03:43)  
  6. root     pts/1        192.168.50.1     Sun Sep 16 10:40 - down   (03:53)  
  7. root     pts/0        :0.0             Sun Sep 16 10:36 - 13:09  (02:32)  
  8. root     tty1         :0               Sun Sep 16 10:07 - down   (04:26)  
  9. reboot   system boot  2.6.32-279.el6.i Sun Sep 16 09:57 - 14:33  (04:35)  
  10. narad    pts/2        192.168.50.1     Thu Sep 13 08:07 - down   (01:15) 

你可以使用帶用戶名的last,瞭解特定用戶的活動,如下所示。 

  1. # last tecmint 
  2.  
  3. tecmint  pts/1        192.168.50.1     Tue Sep 18 08:50   still logged in  
  4. tecmint  pts/0        192.168.50.1     Tue Sep 18 07:59   still logged in  
  5. tecmint  pts/1        192.168.50.1     Thu Sep 13 08:07 - down   (01:15)  
  6. tecmint  pts/4        192.168.50.1     Wed Sep 12 10:12 - 12:29  (02:17) 

27.ps命令

ps命令顯示了系統中運行的進程方面的信息。下面這個例子只顯示init進程。 

  1. # ps -ef | grep init 
  2.  
  3. root         1     0  0 07:53 ?        00:00:04 /sbin/init  
  4. root      7508  6825  0 11:48 pts/1    00:00:00 grep init 

28.kill命令

使用kill命令來終結進程。先使用ps命令找到進程id,如下所示,然後使用kill -9命令,終止進程。 

  1. # ps -ef | grep init  
  2. root         1     0  0 07:53 ?        00:00:04 /sbin/init  
  3. root      7508  6825  0 11:48 pts/1    00:00:00 grep init 
  4.  
  5. # kill- 9 7508 

29.rm命令

rm命令用來清除或刪除文件,並不提示予以確認。

  1. # rm filename 

使用-i選項即可在刪除之前予以確認。使用“-r”和“-f”這兩個選項將強行刪除文件,並不予以確認。 

  1. # rm -i test.txt 
  2.  
  3. rm: remove regular file `test.txt'? 

30.mkdir命令

mkdir命令用來在Linux下創建目錄。

  1. # mkdir directoryname 

這是類似Linux/Unix的操作系統下一系列使用方便、又很實用的日常基本命令。要是我們遺漏了哪些命令,歡迎留言交流!

原文標題:30 Useful Linux Commands for System Administrators,作者:Ravi Saive

發佈了72 篇原創文章 · 獲贊 108 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章