歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux命令 >> Linux管理員不可不知的五大命令+工具

Linux管理員不可不知的五大命令+工具

日期:2017/2/28 10:02:12   编辑:Linux命令
Linux工具Linux命令 對於Linux管理員來說,有很多非常有用的工具可供選擇。在這裡,我只是列舉出其中5個,Linux管理員日常操作都要用到的工具。我認為,功能最強的工具可能並不適合你的使用情況,而且絕對有些工具我還忘了把它們統計進來,如果是這樣的話,我懇請大家把我沒收錄的工具在評論中寫出來。另外,本文中提到的工具僅供選擇,並不是每個人都一定需要它們,而那些沒提到的工具,並不是說Linux管理員就不需要使用,像SSH, SCP這樣的工具,每個Linux管理員都必須使用並且沒有其他選擇。

#5. head/tail命令

大多數情況下,登錄服務器的唯一目的是診斷某些問題,常規方法是查看日志。有各種不同應用類型的日志,比如Apache日志、MySQL日志、郵件日志等。那麼你用什麼命令來查看日志呢,難道不是tail嗎?這其實與此類似,我們有時候可以使用“head”命令來查看一個文件的開始幾行。

幾個例子:

  1. *持續檢查Apache錯誤日志文件,可以使用以下命令:
  2. ___FCKpd___0nbsp;tail -f /var/log/httpd/error_log
  3. *查看MySQL日志中的前15行內容,可以使用以下命令:
  4. ___FCKpd___0nbsp;head -15 /var/log/mysqld.log

#4. vi/nano/emacs工具

一般而言,文本編輯器需要頻繁地用來創建/更新配置文件。我更喜歡使用vim,使用起來非常舒服,很容易記住它的一些快速編輯命令。

下面是使用vi的幾個例子。用vi打開一個文件,而且不進入插入模式(insert mode),那麼你可以輸入如下所示的有用字符:

  1. =>跳至行末
  2. $
  3. => 跳至行首
  4. 0
  5. => 刪除余下的行
  6. D
  7. => 重復上一個命令
  8. . (點)
  9. => 給每行的末尾加上“maal”。1表示第一行,$表示最後一行
  10. :1,___FCKpd___1nbsp;s/$/maal/
  11. =>在5至10行的行首加上“bingo”
  12. :5,10 s/^/bingo/
  13. => 文件在光標之後的內容中如果出現foo,則把它替換成bar
  14. :s/foo/bar/g
  15. => 刪除本行並進入插入模式
  16. C
  17. => 去掉windows系統文件中的^M
  18. :se ff=unix
  19. => 開啟/關閉行數顯示
  20. :set nu
  21. :set nonu
  22. => 顯示文件裡的實際行數
  23. :%!cat -n
  24. => 定位光標下面的單詞
  25. * (星號)

#3. screen命令

在nix世界中,screen命令是尚未得到充分利用的命令之一。打個比方,當你最後一次在遠程服務器上執行一個命令時,如果你發現那個命令需要幾個小時才能完成,或者當你需要登錄10個服務器並檢查東西、在它們之間復制文件的時候,突然之間,你的互聯網連接重啟了,ssh會話也終結了,這時,你就會用到screen命令,而一旦你開始使用這個命令,你就會被它吸引。Screen是一個終端復用器(terminal multiplexer),允許你通過使用一個物理終端來管理多個進程(比如ssh會話)。每個進程都有自己的虛擬窗口,而你可以在跟每個進程交互的虛擬窗口之間來回切換。

我們再深入的解釋一下。假設你有許多服務器,理想情況下你應該把ssh(端口22)訪問限制放在特定的IP地址上面。這樣,你可以登陸一個允許遠程IP訪問的服務器。此時,你就可以鍵入“screen”(所有主要的linux版本都安裝了screen命令)並開始執行。你會看到一個狀態欄,你可以按Ctrl+ac組合鍵創建新的screen窗口。用Ctrl+an (下一個)和Ctrl+ap(上一個)組合鍵在窗口之間進行切換。通常,它提供的功能非常有用,比如遠程終端會話管理(分離或共享終端會話),無限窗口數量(這與固定的Linux虛擬控制台數量不一樣),在窗口之間復制/粘貼,在窗口中顯示活動或靜止,把終端分割成多個區(橫向以及縱向),共享終端等等。

你可以把你的參數保存在.screenrc文件中,下面是我的.screenrc文件一樣,在裡面我已經重新定義了狀態欄的外觀和感覺,並且設置了鍵f5(上一個窗口)和f6(下一個窗口)的含義:

  1. ___FCKpd___2nbsp;cat ~/.screenrc
  2. #請不要有煩人的鈴聲
  3. vbell on
  4. #在掛起時分離
  5. autodetach on
  6. #不顯示版權頁
  7. startup_message off
  8. #模仿.logout消息
  9. pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended."
  10. #告知$TERMCAP硬狀態(窗口列表和時鐘)支持
  11. termcapinfo xterm* ti@:te@
  12. #把每個窗口中的shell設成登錄shell
  13. shell -$SHELL
  14. defscrollback 10000
  15. #按照某種序列擴展vt100描述
  16. termcap vt* AF=\E[3%dm:AB=\E[4%dm
  17. caption always
  18. caption string '%{= wk}[ %{k}%H %{k}][%= %{= wk}%?%-Lw%?%{r}(%{r}%n*%f%t%?(%u)%?%{r})%{k}%?%+Lw%?%?%= %{k}][%{b} %d/%m %{k}%c %{k}]'
  19. #重新定義按鍵綁定
  20. bind -k F5 prev
  21. bind -k F6 next

#2. netstat/nmap命令

這兩個命令都是非常有用的命令,它們用來診斷網絡問題。當然,ping/traceroute可能是最常用的命令,但是若要說哪個更有效,nmap和netstat命令比基本的ping命令用處要大。Netstat可以顯示網絡狀態,Nmap是一種安全/端口掃描器,也可以說成是網絡探索命令。

netstat的例子如下:

  1. *顯示全部互聯網(端口80)連接數量:
  2. ___FCKpd___3nbsp;netstat -an |grep :80 |wc -l
  3. *顯示機器上監聽的所有端口:
  4. ___FCKpd___3nbsp;netstat -ant | grep LISTEN
  5. *在你的LAN上面用nmap命令掃描一個機器,並且獲悉它的哪些端口是開放的:
  6. ___FCKpd___3nbsp;nmap ip

#1. find和grep命令

日常工作會遇到的問題包括:有多少文件占用了大多數的磁盤空間?刪除所有超過兩天的臨時文件;找出因含有舊服務器名稱而引起問題的文件數;把所有後綴名為“.list”的文件改成“.txt”文件。面對這些工作時,命令find和grep會是你最好的朋友。

Find命令用來搜索文件。你可以指定很多選項,比如文件創建日期、或者文件大小要大於你指定的容量等。通常,我們也把find跟xargs或者exec結合起來使用,在find命令返回的文件上執行命令。

find命令的例子:

  1. *在/var目錄中尋找10個最大的文件:
  2. ___FCKpd___4nbsp;find /var -type f -ls | sort -k 7 -r -n | head -10
  3. *在/var/log/中尋找大小超過5GB的文件:
  4. ___FCKpd___4nbsp;find /var/log/ -type f -size +5120M -exec ls -lh {} \;
  5. *尋找今天所有的文件並把它們復制到另外一個目錄下面:
  6. ___FCKpd___4nbsp;find /home/me/files -ctime 0 -print -exec cp {} /mnt/backup/{} \;
  7. *找到所有超過一周的臨時文件夾並刪除:
  8. ___FCKpd___4nbsp;find /temp/ -mtime +7-type f | xargs /bin/rm -f
  9. *找到並重命名所有的mp3文件(把文件名字中的大寫字母變成小寫):
  10. ___FCKpd___4nbsp;find /home/me/music/ -type f -name *.mp3 -exec rename 'y/[A-Z]/[a-z]/' '{}' \;
  11. grep命令的一些例子:
  12. *打印Apache的文件根目錄名稱:
  13. ___FCKpd___4nbsp;grep -i documentroot /etc/httpd/conf/httpd.conf
  14. *查看沒有評論以及空行的文件內容:
  15. ___FCKpd___4nbsp;grep -Ev “^$|^#” /etc/my.cnf
  16. *只打印分配給本接口的IP地址:
  17. ___FCKpd___4nbsp;ifconfig eth0 | grep 'inet addr:' | cut -d':' -f2 | awk '{ print $1}'
  18. *查看某個特定日期發送了多少email消息:
  19. ___FCKpd___4nbsp;cat /var/log/maillog | grep "status=sent" | grep "May 25" | wc -l
  20. *在進程列表中找出一個正在運行的process/daemon(多謝網友staranneph的提醒):
  21. ps -ef | grep mysql
  22. *你也可以通過使用上面的命令來注釋cpu/men的使用情況,比如像下面的命令輸出,你可以看到Plesk的統計進程本身就占用了大於18%的cpu性能:
  23. [root@myserver ~]# ps aux | grep statistics
  24. root 8183 18.4 0.0 58384 2848 ? D 04:05 3:00 /usr/local/psa/admin/sbin/statistics

原文:Top 5 most useful commands or tools for Linux administrators 作者:Linux Admin Zone

Copyright © Linux教程網 All Rights Reserved