原創 ubuntu常用命令大集合

ubuntu常用命令大集合


本文轉載來源,感謝大佬!
https://blog.csdn.net/fengbingchun/article/details/40923763

1. 獲取Ubuntu版本號:  /etc/issue 或 lsb_release -a

2. 查看Ubuntu系統位數:uname  -ar 或 getconf LONG_BIT

3. 查看Ubuntu機器的處理器架構,結果爲i686或x86_64:arch 或uname  -m

4. 顯示當前目錄內容(目錄清單),(如果按文件改動時間順序來排序,則可用ls  -lt): ls

5. 顯示當前目錄下文件的詳細信息,包括讀寫權限,文件大小,文件生成日期等(若想按照更改的時間先後排序,則需加-t參數,ll  -t或ll  -t  |tac,後者爲最新修改的時間排在最後):ll

6. 改變當前工作目錄位置,(若進入系統根目錄,可直接使用cd  /) :cd  directory_name ,若文件夾有空格,則需用引號括起來,如進入目錄名爲a b的目錄,則爲:cd  “a b”

7. 刪除當前目錄中指定文件,如刪除.xxx的所有文件,(對於鏈接文件,只是刪除了鏈接,原有文件均保持不變;如果沒有使用-r選項,則rm不會刪除目錄;如果想刪除前再次獲取確認,可使用-i選項,如rm  -i  xxx):rm  *.xxx

8. 刪除空目錄,一個目錄被刪除之前必須是空的,刪除某目錄時也必須具有對父目錄的寫權限:rmdir  xxx

9. 移動文件(若將文件xx.yy移動到目錄tt中,則爲mv  xx.yy tt)或將文件改名(若將文件名xx.yy改爲aa.bb,則爲mv  xx.yy aa.bb):mv  源文件或目錄  目標文件或目錄

10. 複製文件(可同時有多個文件)或目錄到指定的目錄(若將目錄aa複製到bb目錄中,則爲:cp  -a aa  bb):cp  源文件或源目錄  目的目錄

11. 建立新目錄,要求創建目錄的用戶在當前目錄中具有寫權限,並且指定的目錄名不能是當前目錄中已有的目錄,(如果創建權限爲777的目錄,可用mkdir  -m 777  filename):mkdir  filename

12. 查看某個指令的詳細說明,如查看rm指令:man  rm

13. 創建靜態庫,如使用當前目錄中的所有.o文件創建libxx.a靜態庫:ar  -r  libxx.a *.o

14. 創建動態庫,如使用當前目錄中的所有.o文件創建libxx.so動態庫(若有兩個在不同目錄的.cpp文件直接生成動態庫,則爲:gcc  -shared/home/spring/gdbtest/src/add/add.cpp/home/spring/gdbtest/src/subtract/subtract.cpp -o  libtest.so)(若從靜態庫b1.a,b2,a直接生成動態庫b.so,則相應命令爲:gcc-shared -fPIC -Wl,--whole-archive b1.a  b2.a  -Wl,--no-whole-archive -o  b.so):gcc  -shared –o  libxx.so  *.o

15. 查看當前所處路徑(完整路徑):pwd

16. 需要提示權限執行的命令,如果你不是root用戶,那麼在執行一些命令做一些操作的時候有時是不允許的,此時可以在命令前面加上sudo:sudo

17. 查看靜態庫是否含有某個函數,如查看xx.a靜態庫中是否有fun1函數(也可以查看某個庫所有包含的函數,如nm  xx.a >fun.txt):nm  xx.a | grep fun1

    查看動態庫是否含有某個函數,如查看yy.so動態庫中是否有fun2函數(也可以查看某個庫所有包含的函數,如 nm yy.so > info.txt):nm yy.so | grep fun2

            如果僅導出已定義的符號,則加上"-D"選項,如nm -D yy.so | grep fun2

18. 查看cpuinfo相關信息:cat  /proc/cpuinfo

19. 顯示系統日期:date

20. cal命令用於查看公曆(陽曆)日曆,可以查看指定年份的,如cal  -y 2013, 也可以查看當前月的,直接用cal,無需帶任何參數。

21. 關閉系統(若非root,則shutdown前需加sudo):shutdown  -h  now

22. 重啓系統(若非root,則shutdown前需加sudo):shutdown  -r  now

23. 與windows共享目錄命令,如共享目錄爲test(http://download.csdn.net/detail/jiaoxiaogu/7309181 ):cd  /mnt/hgfs/test

24. 創建一個指向文件或目錄的軟連接(當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然後在其它的目錄下用ln命令鏈接(link)它就可以,不必重複的佔用磁盤空間)。格式,ln  -s  源文件 目標文件。文件保持同步變化。目錄只能創建軟鏈接,目錄創建鏈接必須用絕對路徑,在鏈接目標目錄中修改文件都會在源文件目錄中同步變化。如給源目錄/home/spring/aa創建一個新的目錄/usr/local/aa:ln  -s /home/spring/aa  /usr/local/aa

25. 更改文件或目錄的日期時間,包括存取時間和更改時間(若有兩個文件a.b,c.e,將c.e的文件的日期修改成a.b的日期,則爲touch  a.b c.e),或者新建一個不存在的文件(若將已存在的aa.x文件新建成一個bb.y文件(bb.y文件原始是不存在的),並且保持與aa.x文件的內容、創建修改時間一致,則touch  aa.x bb.y):touch  源文件名  目的文件名

    每個文件都有時間戳,這個時間戳包括訪問時間和修改時間,而touch命令主要就是用來修改文件的訪問時間和修改時間。如將文件a.txt的時間戳改爲當前時間,則執行:$ touch a.txt 

26. 顯示文件內容(若顯示aa.txt的文件內容,則爲cat  aa.txt),或者將幾個文件連接起來顯示:cat  filename

27. 將輸出的文件內容自動的加上行號:nl  filename

28. 以一頁一頁的方式顯示文件的內容,按空格鍵(space)爲顯示下一頁;按b鍵會往回(back)一頁顯示;按q鍵退出more:more  filename

29. 分頁顯示文件的內容,類似於more,但比more功能更強大;按q鍵退出less;若搜索文件中某個字符串xxx,可使用/xxx來做到;通過加入-N參數來顯示每行的行號:less  參數  filename

30. 用來顯示文件的開頭內容:head  filename

31. 用來顯示文件的末尾內容:tail  filename

32. 查看某個系統命令是否存在或者查看某個可執行文件的位置,若查找ls命令的位置,則which  ls, 會返回/bin/ls,若找不到該命令(或該執行文件),則不會有任何返回結果:which  commandname

33. 在當前目錄查找文件名後綴爲txt的所有文件(若從系統根目錄查找,則爲find  / -name  “*.txt”;若從你的$HOME目錄查找,則爲find  ~ -name  “*.txt”;在/etc目錄查找,則爲find  /etc -name  “*.txt”;若要在當前目錄查找文件名以一個小寫字母開頭,最後是4到9加上.log結束的文件,則爲find  .  –name  “[a-z]*[4-9].log”):find  .  -name  “*.txt” ;若想按排序輸出查找的結果,則在最後添加 "| sort", 如: find  / -name ".txt" | sort

   在當前目錄查找此目錄下所有文件內包含的指定關鍵字"ab",則執行:$ find . -type f -print -exec grep ab {} \;

34. chmod命令用於改變linux系統文件或目錄的訪問權限。Linux系統中的每個文件和目錄都有訪問許可權限,用它來確定誰可以通過何種方式對文件和目錄進行訪問和操作。文件或目錄的訪問權限分爲只讀、只寫和可執行三種。有三種不同類型的用戶可對文件或目錄進行訪問,文件所有者(一般是文件的創建者),同組用戶,其他用戶。每一文件或目錄的訪問權限都有三組,每組用三位來表示,分別爲文件屬主的讀、寫和執行權限;與屬主同組的用戶的讀、寫和執行權限;系統中其他用戶的讀、寫和執行權限。當用ls  -l命令顯示文件或目錄的詳細信息時,最左邊的一列爲文件的訪問權限。第一列共有10個位置,第一個字符指定了文件類型。在通常意義上,一個目錄也是一個文件。如果第一個字符是橫線,表示是一個非目錄的文件。如果是d,表示是一個目錄。從第二個字符開始到第十個共9個字符,3個字符一組,分別表示了3組用戶對文件或者目錄的權限。權限字符用橫線代表空許可,r代表只讀,w代表寫,x代表可執行。確定了一個文件的訪問權限後,用戶可以利用chmod命令來重新設定不同的訪問權限。權限代號:r:讀權限,用數字4表示;w:寫權限,用數字2表示;x:執行權限,用數字1表示;-:刪除權限,用數字0表示;s:特殊權限。如對目錄test及其子目錄所有文件添加可讀可寫可執行權限,則爲:chmod  -R 777  test

35. 可以用tar命令進行壓縮、解壓縮、打包、解包等。打包是指將一大堆文件或目錄變成一個總的文件;壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。使用tar程序打出來的包常稱爲tar包,tar包文件的命令通常都是以.tar結尾的。生成tar包後,就可以用其它的程序來進行壓縮。常用參數:-c:建立新的壓縮文件;-x:從壓縮的文件中提取文件;-z:支持gzip解壓文件;-j:支持bzip2解壓文件;-Z:支持compress解壓文件;-v:顯示操作過程;-f:指定壓縮文件。如,有個目錄test1,將其打包則爲:tar  cvf test1.tar  test1;若將其打包並以gzip壓縮,則爲:tar  zcvf  est1.tar.gz  test1; 若解包或解壓縮,則相應的把cvf和zcvf換成xvf和zxvf即可,如把test2.tar.gz解壓縮,則爲:tar  xvf est2.tar.gz ,則會在當前目錄下生成一個test2文件。

36. 查看文件或目錄空間大小,可以用du命令,如顯示/test目錄大小,則輸入:$ du  -hs /test ;若想查看/test目錄及/test目錄下的每個子目錄的大小,則:$ du -h /test

37. diff能比較單個文件或者目錄內容.如果指定比較的是文件,則只有當輸入爲文本文件時纔有效.以逐行的方式,比較文本文件的異同處。如果指定比較的是目錄的時候,diff命令會比較兩個目錄下名字相同的文本文件。列出不同的二進制文件、公共子目錄和只在一個目錄出現的文件。如比較1.txt和2.txt兩個文本文件,可爲:diff  -c 1.txt  2.txt ,會將內容不同的地方在行之前用”!”標出。

38. grep命令是一種強大的文本搜索工具。如從test.txt文件中查找android關鍵詞,則爲:grep  -n  ‘android’  test.txt . 也可以同時從多個文件中查找關鍵詞,如:grep  -n  ‘android’  test1.txt test2.txt

如果要在當前目錄下所有文件查找"AB"字符串:$ grep -rn "AB" *

39. wc命令用於統計指定文件中的行數、字數、字節數,並將統計結果顯示輸出。如:wc  test.txt ,輸出爲8  9 10  test.txt , 其中8表示行數,9表示字數,10表示字節數,test.txt表示文件名。如果統計當前目錄下帶有後綴名爲frm、asp、bas的代碼行數,則命令爲find  . -name  “*.frm”  -or -name “*.bas”  -or -name “*.asp”  | xargs wc  -l > result.txt ,執行完此命令後會在當前目錄下生成一個result.txt文件,裏面包含了每個文件(frm/bas/asp)的代碼行數以及總的代碼行數。

40. free命令可以顯示Linux系統中空閒的、已用的物理內存及swap內存,及被內核使用的buffer.如:free  -m ,則會以MB爲單位顯示內存使用情況。

41. 可以使用apt-get命令來安裝/更新一個deb包,如安裝g++,則:apt-get  install g++

42. c++filt命令:C++函數在Linux系統下編譯之後會變成類似這樣:_ZN9CBC_EAN1312RenderBitmapERP12CFX_DIBitmapRi,乍一看並不知道函數的原始名稱,此時可以用c++filt命令:c++filt  _ZN9CBC_EAN1312RenderBitmapERP12CFX_DIBitmapRi,即可顯示原始函數名稱CBC_EAN13::RenderBitmap(CFX_DIBitmap*&,int&)

43. echo命令是內建的shell命令,用於顯示變量的值或者打印一行文本,如可以通過輸入echo  $PATH ,查看由哪些文件目錄加入到了系統環境變量中(PATH前面的$表示後面接的是變量),可以通過輸入echo  2 >/home/spring/1.txt ,將2寫入到1.txt文件中

44. windows上的*.rar壓縮文件,在Ubuntu上可以通過tar命令或unrar命令來進行解壓縮,如解壓縮test.rar文件,若用rar命令,則需先安裝執行:$ sudo apt-get install rar,  然後再執行:$ rar  x test.rar ;  若用unrar命令,則需先安裝執行:$ sudo apt-get install unrar,然後再執行: $ unrar x -r test.rar

45. ps -ef命令用來查看Linux系統所有進程,如果想查看包含指定名字(如 test)的進程,則可以執行:$ ps -ef | grep test

46. 殺死指定的進程可以用kill命令,如殺死進程PID爲30732的進程,則可以執行:$ kill -9 30732 ,若需要批量殺死進程,則可執行:$ ps aux | grep test | awk ‘{print $2}’ | xargs kill -9

47. 查看Linux系統CPU和內存使用率,可以通過top命令:即先在終端輸入top命令回車,然後再按1即可

48. 通過命令打開顯示圖像:$ eog  /images/a.jpg

49. 遠程拷貝文件: 可以通過"scp"命令,如從遠程服務器傳某個指定目錄或文件到本地指定目錄,則執行:$ scp -r  xxx  [email protected]:/home/spring/yyy/   ;若存放到本地根目錄,可以執行:$ scp -r  a.jpg  [email protected]:~/     ;執行以上命令時會要求輸入本地機子的密碼,若不想每次都輸入,可以執行:$ ssh-copy-id  [email protected]  ,這樣下次在傳文件時就不用重複輸入密碼了;若從本地傳文件到遠程服務器,則執行:$ scp -r  b.jpg  [email protected]:/home/autobuild/fbc/

50. 查看機子ip和MAC地址:$ ifconfig

51. 安裝SSH-SERVER:$ sudo  apt-get install -y openssh-server

可以通過ssh命令訪問指定的ubuntu主機,假設要訪問的ubuntu主機名爲spring, ip爲10.0.1.1,又知道此主機的密碼,則執行:ssh [email protected] ,回車,再收入這臺主機的密碼即可

52. 安裝Google Chrome,依次執行以下命令:

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt-get update
sudo apt-get install google-chrome-stable

53. 解決彈出對話框"System program problem detected Do you want to report the problem now?"的問題,在終端輸入:$ sudo rm /var/crash/* 

54. 在Ubuntu上查看指定文件是採用何種編碼方式可以使用file命令,如查找test目錄下所有的.cpp文件的編碼格式,則執行:$ file test/*.cpp

55. 在Ubuntu上安裝.deb文件命令,如code_1.13.0-1496940180_amd64.deb: $ sudo  dpkg  -i  code_1.13.0-1496940180_amd64.deb

56. 在Ubuntu上查看GCC編譯器支持哪些宏,則執行命令:$ touch macro.txt; cpp -dM ./macro.txt ;其中macro.txt的名字可任意

57. 在Ubuntu下去除文件中的"^M"字符(此字符在windows上產生),如a.cpp,則執行命令:$ dos2unix a.cpp

58. 爲了實時監控日誌文件,可以通過tail命令,如實時查看info.log,則可執行命令:$ tail -f  info.log

59. 查看可執行文件和動態庫依賴哪些動態庫,可以通過ldd命令,如查看libopencv_core.so,則執行:$ ldd libopencv_core.so

隨喜打賞

本文到此結束,感謝閱讀!

如有疑問,請郵件聯繫: [email protected]

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