【轉】Linux命令行技巧

原地址:http://www.csdn.net/article/2012-03-21/313378


下面我將和大家分享一些學習Linux命令行的技巧,希望能對大家有所助益。如果在本文中遇到不太熟悉的命令,可以在終端中鍵入以下命令尋求幫助。 Mancommand Linux入門必備 瞭解bash:沒有必要鑽研長篇累牘的bash使用手冊,通過man bash學習即可。 瞭解vi:你在工作中也許會使用Emacs或Eclipse,但vi不可替代。...

下面我將和大家分享一些學習Linux命令行的技巧,希望能對大家有所助益。如果在本文中遇到不太熟悉的命令,可以在終端中鍵入以下命令尋求幫助。

  1. Man <command> 

Where there's a shell, there's a way.

 Linux入門必備

  • 瞭解bash:沒有必要鑽研長篇累牘的bash使用手冊,通過man bash學習即可。
  • 瞭解vi:你在工作中也許會使用Emacs或Eclipse,但vi不可替代。
  • 瞭解ssh:學習無密碼驗證的基礎知識。
  • bash作業管理基礎知識:如使用&、Ctrl-C、fg、bg、Ctrl-Z、jobs和kill等。
  • 文件管理命令:如硬鏈接和軟鏈接,權限等。
  • 網絡管理命令:如ifconfig等。
  • 如何使用正則表達式,如何使用grep、sed等。
  • 學習使用apt-get和yum管理軟件包。

提升日常工作效率

  • 在bash中,可以使用Ctrl+R命令搜索命令行歷史記錄。
  • 在bash中,可以使用Ctrl+W刪除最後一個單詞,使用Ctrl+U刪除整行。
  • 使用cd -命令返回之前的工作目錄,使用cd ..命令返回上層目錄。
  • 學習如何使用xargs:
  1. $ find . -name *.py | xargs grep some_function  
  2. $ cat hosts | xargs -I{} ssh root@{} hostnameX 
  • 使用pstree -p命令查看進程樹。
  • 瞭解不同的信號。例如,使用kill -STOP [PID]終止進程。詳細的信號列表可以在man 7 signal中查看。
  • 如果你想讓進程永遠在後臺運行,可以使用nohup和disown命令。
  • 使用netstat -lntp命令查看偵聽進程,並參考lsof命令。
  • 在bash腳本中使用subshells對命令進行分組:
  1. #do something in current dir  
  2. (cd /some/other/dir; other-command)  
  3. #continue in original dir 
  • 字符串修剪(Trimming Strings):${var%suffix}和${var#prefix}。例如if var=foo.pdf then echo ${var%.pdf}.txt prints "foo.txt"。
  • 命令的輸出可以當做文件使用。例如,比較本地和遠程的/etc/hosts文件:
  1. diff /etc/hosts <(ssh somehost cat /etc/hosts) 
  • 瞭解bash中的“here documents”。
  • 瞭解標準輸出和標準錯誤重定向。
  • 瞭解ASCII代碼表。可以在終端中運行man ascii命令作爲參考。
  • 當通過ssh遠程工作時,可以使用screen 或 dtach保存回話。
  • 對Web開發者而言,curl、wget等命令非常實用。
  • 將HTML頁面轉化文本文件:
  1. lynx -dump -stdin 
  • 如果要掌握XML,xmlstarlet命令是非常好的工具。
  • 瞭解ssh端口映射。
  • 使用Alt+shift+3快捷鍵可以在行前添加註釋“#”。

數據處理

  • 瞭解sort和uniq命令。
  • 瞭解cut、paste和join命令。
  • 瞭解如何對文本文件做交集、並集和差集:
  1. cat a b | sort | uniq > c # c is a union b  
  2. cat a b | sort | uniq -d > c # c is a intersect b  
  3. cat a b b | sort | uniq -u > c # c is set difference a – b 
  • 對文本文件的第二列做摘要,下面的代碼要比同樣的Python代碼更精煉、快速(3倍):
  1. awk '{ x += $2 } END { print x }' 
  • 瞭解字符串和grep命令。
  • 文件分割:瞭解split(按大小分割)和csplit(按匹配分割)命令。

系統診斷

  • 使用iostat、netstat、top和dstat命令查看磁盤、處理器和網絡的狀態。
  • 使用free、vmstat等命令瞭解系統內存狀態。
  • 使用mtr網絡診斷工具。
  • 使用iftop、nethogs等工具查看佔用帶寬的進程和帶寬。
  • 使用ab工具快速洞悉Web服務器的性能。
  • 以wireshark和tshark命令應對複雜網絡診斷。
  • 學習如何使用strace,並用於診斷運行的進程。這對分析程序運行錯誤的原因,非常有幫助。
  • 使用ldd命令查看共享庫文件。
  • 瞭解如何使用gdb連接到運行中的進程,並進行堆棧跟蹤。
  • 有關/proc的知識非常重要。
  • 如何診斷已發生的錯誤?Sar命令是一種很好的選擇,它可以收集、保存並報告系統信息。

歡迎分享

我想,應該會有許多技巧,本文尚未提及。希望大家在評論中與我共同分享。(張志平/編譯)

原文鏈接:

Linux Command Line tips that every Linux user should know


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章