你需要掌握的那些Linux命令

現在已經不是windows獨霸天下的時候了,除了windows系統,我們還得面對linux, macos, centos,ubuntu等各種操作系統。作為IT工作者,掌握一些基本的命令,對我們工作,或者面試會有很多幫助。

我有個朋友,在windows火熱的時候,選擇用當時還是小眾的蘋果系統。我們都不需要用腦子的點擊圖形界面,他卻去買昂貴的蘋果機,敲著命令。

我們都嘲笑他,覺得公司提供了windos系統的電腦,自己買蘋果機敲命令是給自己添堵。他卻說,他主要是怕那些linux命令忘記了。

現在操作系統分為圖形化和命令式的。圖像化的就是簡單,所見及所得。命令式的就是運行速度快,佔資源少。所以大部分伺服器,都是命令式的。作為IT從業著,我們或多或少都要用到一些linux命令,熟練掌握一些命令,可以使得工作效率大大提高。

Linux 命令,許多許多,《鳥哥的Linux私房菜》那本書都很厚。現在總結了我經常用的一些簡單命令,對付一般的工作綽綽有餘。如果有更多需要,可以搜索解決。

Linux命令不像其它語言,經常變化。記住這些命令,終身受益。

1. man 格式化以及列出命令的(在線)操作手冊。 使用方法 man [ -options ] name man man man ls man cd2. ls 列出目錄下的內容 ls [option]… [file]… ls #列出當前文件夾下的所有文檔 ls -l 等同於ll #列出當前文件夾下的所有文檔的詳細資料 ls /home/qq #列出某個目錄下的所有文檔3.pwd 顯示當前或者工作路徑。4. cd 改變當前所在路徑 cd [dir] cd 當前用戶主目錄 cd /home/qq 絕對路徑 cd . 本路徑 cd .. 上一級目錄 cd ~ 進入到自己的家目錄 cd / 根目錄 cd - 返回進入此目錄之前所在的目錄5. mkdir 創建目錄 mkdir testpwd mkdir /home/qq/test2 mkdir -p /home/qq/test2/test21/test211 #若目錄不存在,則創建6. cp 拷貝 文件到文件 cp file1 file2 拷貝並重命名 cp /path1/file1 /path2/file2 拷貝並重命名 ?文件到目錄 cp file1 ../test1/ 拷貝 cp /home/qq/test1/file1 ./ 拷貝 ?目錄到目錄 cp -r test1 test2 #遞歸拷貝7.which 顯示某個命令的完整路徑 which指令會在環境變數$PATH設置的目錄里查找符合條件的文件。 which ls which cp 另外一個作用:查看某個命令是否安裝,或者是否在自己定義的環境變數中。8.whereis 列出某個命令的位置、幫助手冊 whereis指令會在特定目錄中查找符合條件的文件。 whereis ls whereis cd 另外一個作用,在which沒有查詢到的時候,該命令未必不存在,需要再次使用whereis確定。比如bash內建命令9.touch 更改文件的時間屬性 另外一個作用,創建一個空文件 touch a.txt10.rm 刪除文件或者目錄 rm file1 rm -f file1 #不提示刪除 rm -rf dir #不提示刪除某個文件夾,一定先執行pwd確定自己的位置,慎用11.vi 編輯器,查看或者編輯一個文本 vi a.txt i insert,進入編輯狀態 esc 退出編輯狀態 :wq! 保存退出 :q! 退出不保存i 非編輯狀態下q dd 刪除 yy 拷貝 p 粘貼 /uu 查找包含uu的行 n 查找下一行 shift+n 查找上一行 ctrl+f (forward)下一頁 ctrl+b (back)上一頁12.cat 顯示文件內容 cat file cat -n file #顯示行號 避免對大文件使用cat 13.head 顯示文件頭部 head file 默認顯示10行 head -5 file 顯示前5行14.tail 顯示文件尾部 tail file 默認顯示最後10行 tail -5 file 顯示後5行 tail -f file 實時顯示文件尾部(很重要的命令)15.echo echo 123 #回顯 echo aaa>>a.txt #追加 echo aaa>a.txt #覆蓋16.wc 查看文件行數、單詞個數、位元組數: 統計行數:17.sort 文本排序命令 sort -n file 以數字方式排序 sort -r file 倒序 sort -u file 剔重 sort -rn file #ASCII碼方式倒序 sort命令多和管道配合使用 如 :du -k *|sort -rn #文件大小倒序排(很重要),看哪個文件占的多18.grep 列印匹配的行,grep經常和管道配合使用 grep 「正則表達式」 file (注意,用好grep的前提是熟悉linux下的正則) grep 3 a.txt #a.txt文件中包含3的行都列印出來 grep 3 a.txt |wc -l #a.txt文件中包含3的行都有多少行 grep -n 3 a.txt #包含3的行號和行給打出來 grep -v 3 a.txt #不包含3的行顯示出來 grep 89$ a.txt #結尾為89的行顯示出來 grep ^98 a.txt #開頭為98的行顯示出來 grep -n aa * #當前目錄下所有包含aa的行顯示出來,列印出行號19.find 在文件系統中查找文件 find命令很複雜,甚至可以稱得上一門腳本語言,這裡只介紹幾種常用的命令。 find /path/to -name 「test*」 按照命名規則查找 find /path/to -type f 按照文件類型查找 find /path/to -ctime -1 查找一天以內的文件和目錄 find /path/to -cmin +1440 查找1440分鐘以前的文件和目錄 以上四種查找較為常見,可以組合使用。 另外,可以在查找後使用 -exec 執行後續操作 find /path/to -ctime +30 -exec rm -rf {} ; 刪除30天前的文件。20.tar 打包,tar很強大,這裡只介紹打包和解包 tar -zcvf file.tar.gz a.txt b.txt 壓縮文件(把a.txt和b.txt壓縮到file.tar.gz中) tar -zxvf file.tar.gz 解壓縮 tar -zxvf file.tar.gz -C test/ 解壓縮到指定目錄 -z參數表示是否將文件gzip壓縮21.kill kill 10170 #本身和子進程都殺了 kill -9 10170 #只殺進程本身22.ps 顯示當前運行進程 ps -ef 23.ifconfig ifconfig #查看機器IP,網卡等 這裡只做顯示網卡信息使用,建議不要使用ifconfig修改網卡參數

大致就是這些命令,當你不是很清楚參數,可以用第一個命令來查看。

當然linux命令遠不止這些,譬如linux 三劍客:sed,awk,grep都可以寫成一本書。如果掌握更多,都可以用shell來編程了。

實際中可能會遇到更多情況。比如:有的時候,發現埠莫名被佔用了,怎麼找出罪魁禍首?

$ adb devicescannot bind tcp:5037: Address already in use

adb 埠被佔用。

$ lsof -i tcp:5037COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEadb 20434 world 3u IPv4 0xe0e6276adfb927f9 0t0 TCP localhost:59560->localhost:5037 (ESTABLISHED)adb 33511 world 6u IPv4 0xe0e6276adfb89179 0t0 TCP localhost:5037->localhost:59560 (ESTABLISHED)adb 33511 world 7u IPv4 0xe0e6276ae06e0a49 0t0 TCP localhost:5037 (LISTEN)

找到進程號,殺進程,幹掉它!

sudo kill -9 20434

花少量時間,死最少腦細胞,達到最好效果,一般人我都不告訴他。

更多精彩,請關注微信公眾號:python愛好部落

推薦閱讀:

在Selenium Webdriver中使用XPath Contains、Sibling函數定位
python selenium2自動化測試系列電子書
性能測試解惑之並發壓力
簡單重構,顯著效果----提升scala自動化測試效率

TAG:Linux | 軟體測試 | 自動化測試 |