1. 程式人生 > >Linux命令列命令速查手冊(整理)

Linux命令列命令速查手冊(整理)

Linux命令列命令速查手冊

【作者原創】Jan
【ls】
2017-02-09 ls命令會列出當前所在目錄的內容 2017-02-09 ls music
想要看看music目錄中有什麼內容,那麼只需要輸入ls命令,後面再跟上你想要檢視其內容的資料夾名稱
2017-02-09 “~”字元就像一個別名,代表你的home目錄 2017-02-09 ls ~/videos/*.wmv
使用萬用字元只顯示以.wmv結尾的檔案
2017-02-09 ls ~/videos/*tiger*
使用了萬用字元:只查詢檔名包含tiger這個單詞的檔案
2017-02-09 ls -R 2017-02-09 ls -R ~/iso
-R選項會遞迴地遍歷iso目錄,顯示iso目錄和它的每個子目錄的內容。每個資料夾都以原命令中指定的目錄作為開始,顯示為它們各自相對於該目錄的路徑,路徑名稱後面跟著一個冒號,接著再列出相應子資料夾中的所有內容
2017-02-09 ls -1
用單獨一列的方式來檢視ls命令的結果
2017-02-09 ls -1R ~/ 2017-02-09
ls -m
-m中的m看作是“,(逗號)”的助記符。
如果你正在編寫指令碼,需要以逗號分隔的列表來表示目錄的內容時,這個選項也很有用。不過,這是這個有價值的選項更為高階的一種用法
2017-02-09 ls -a
檢視這些隱藏檔案,只要使用-a選項
ls -a[a代表all(所有)]命令既能顯示隱藏內容,也能顯示非隱藏內容
2017-02-09 ls -F
檔案後面的“*”(星號)表示該檔案是可執行檔案,“/”(斜槓)表示它是一個目錄。如果檔名後面沒有任何附加符號,那這個檔案就是一個普通的檔案
2017-02-09 ls --color
可以讓shell用不同的顏色顯示內容,這樣就能夠用另一種方法把不同的內容進行分類,將它們區分開來
普通檔案
綠色
可執行檔案
藍色
目錄
紫紅色
符號連結檔案
黃色
管道(FIFO)
紫紅色
套接字(socket)
紅色
壓縮檔案(.tar、.zip、.deb、.rpm)
紫紅色
圖片檔案(.jpg、.gif、.png、.tiff)
紫紅色
音訊檔案(.mp3、.ogg、.wav)
2017-02-09 dircolors--print-database
統為各種檔案映射了什麼顏色。
2017-02-09 dircolors
命令修改這些顏色配置
2017-02-09 ls -l
-l選項代表long,可以看到,它提供了目錄中檔案的大量資料
2017-02-09 ls -r
以相反的順序來排列顯示內容。
-r表示反向,而-R則表示遞迴
2017-02-09 ls -X
對檔案的副檔名進行字母順序的排序。
如果你想按相反的順序排序,只需加上-r選項。
2017-02-09 ls -t
按日期和時間對目錄的內容進行排序,在-l選項的基礎上使用-t選項。
2017-02-09 ls -S
使用-S(或--sort=size)選項按照檔案大小來排序。
體積最大的檔案會排在第一位。要按相反順序排序,讓體積最小的檔案排在第一位,只需使用-r選項。
2017-02-09 ls -h
使用-h(或--human-readable)選項將位元組轉換為相應的千位元組、兆位元組或者吉位元組顯示。
【pwd】
2017-02-09 pwd
顯示當前目錄(或工作目錄)的完整的絕對路徑。
【cd】
2017-02-09 cd
切換到一個新目錄。
只需輸入cd,後面跟著你想要切換到的目錄。你可以基於當前路徑使用相對路徑(例如,cd src或cd../../);或者使用絕對路徑(例如,cd/tmp或cd/home/scott/bin)
2017-02-09 cd ~
立即返回到home目錄。
2017-02-09 cd -
返回到以前的目錄,然後再執行pwd命令,顯示出新位置。
$ pwd
/home/scott
$ cd music/new
$ pwd
/home/scott/music/new
$ cd -
/home/scott
【touch】
2017-02-09 touch
建立一個新的空檔案,更新訪問或修改時間。
touch存在的主要目的是更新檔案訪問和修改時間。
如果你只想更新訪問時間,就可以使用-a選項(或--time=access)。如果只想更新修改時間,則使用-m(或--time=modify)。
2017-02-09 touch -t
只要使用這個選項和一定的模式,就可以修改任何日期和時間:-t [[CC]YY]MMDDhhmm[.ss]
CC
4位年份數字中的前2位字元
YY
2位數字的年份:
·如果是00~68,則假設年份的前2位數字是20
·如果是69~99,則假設年份的前2位數字是19
·如果什麼也沒有,則假設是當前年份
MM
月份(01~12)
DD
日期(01~31)
hh
小時(01~23)
mm
分鐘(00~59)
ss
秒(00~59)

完整的4位數字的年份(1970)、月(02)、日期(16)、小時(07)、以及分鐘(01)

$ ls -l
-rw-r--r-- 239 2005-10-19 14:00 wireless.log
$ touch -t 197002160701 wireless.log
$ ls -l
-rw-r--r-- 239 1970-02-16 07:01 wireless.log
$ touch -t 9212310000 wireless.log
$ls -l
-rw-r--r-- 239 1992-12-31 00:00 wireless.log
$ touch -t 3405170234 wireless.log
$ ls -l
-rw-r--r-- 239 2034-05-17 02:34 wireless.log
$ touch -t 10191703 wireless.log
$ls -l
-rw-r--r-- 239 2005-10-19 17:03 wireless.log
【mkdir】
2017-02-09 mkdir
建立新的空資料夾,如果要建立的目錄已經存在,命令執行將會失敗,並返回一個警告資訊。
2017-02-09 mkdir -p
在新的子目錄的新子目錄中再建立一個新的子目錄。
2017-02-09 mkdir -v
能告訴你mkdir命令所執行的每一步操作,這樣你就不需要再進行實際檢查來確定mkdir命令是否正確完成了任務。
【cp】
2017-02-09 cp
將檔案複製到另一個目錄中,甚至可以從非當前工作目錄複製到檔案系統的其他任何目錄。
2017-02-09 cp *
用萬用字元一次將多個檔案複製到目錄中。精心命名檔案,將非常節約時間,因為這樣你可以準確地指定一組檔案。
可以使用的萬用字元並不只限於“*”。實際上,還可以使用方括號([]),通過匹配“[”和“]”之間的任意字元來更準確地指定你想要複製哪些檔案。
$ cp ~/pix/by_pool*.jpg .
$ cp ~/pix/on_floor_0[1-3].jpg .
2017-02-09 cp -v
增加-v選項(或--verbose),則可以在cp命令完成複製任務的同時顯示其進度。
2017-02-09 cp -i
如果你需要在使用cp命令覆蓋檔案前得到預警,則可以使用-i選項(或--interactive)。
如果你想繼續並複製這個檔案,輸入y,否則就輸入n。如果你選擇輸入n,並不意味著cp命令會完全停下來,相反,它會詢問你下一個檔案如何處置,再下一個檔案,直至最後。
2017-02-09 cp -R
複製目錄,會自動把目錄下的檔案一併複製。
2017-02-09 cp -a
cp命令也可以作為備份各種檔案和目錄的有效方法。在這種情況下最有用的選項就是-a選項(或--archive)。
-a選項可以確保cp命令不會複製符。
號連結的內容(否則可能會極大地增加複製量),只儲存關鍵的檔案屬性(例如擁有者、時間戳),並遞迴處理子目錄。
2017-02-09 mv
mv命令實際上執行了一個cp-a操作,在成功複製檔案後再移除原有的檔案。
用最簡單的話來說,mv命令的作用就是將檔案系統的檔案從一個地方移動到另一個地方。
-v可以在複製和移動檔案時顯示執行過程。
-i在複製和移動檔案時互動式地提示是否覆蓋已經有的檔案。
它也可以用來重新命名檔案。
【rm】
2017-02-09 rm
這條命令會徹底地刪除檔案,檔案將不復存在。
2017-02-09 rm -v
知道rm命令執行時到底在做什麼,可以使用-v(或--verbose)選項。
$ pwd
/home/scott/libby/by_pool/lieberman_pool
$ ls
pool_01.jpg pool_03.jpg
pool_01.jpg_bak pool_03.jpg_bak
$ rm -v *_bak
removed 'pool_01.jpg_bak'
removed 'pool_03.jpg_bak'
$ ls
pool_01.jpg pool_03.jpg
2017-02-09 rm -i
-i選項(或--interactive)可以提供一定的安全機制。在刪除每個檔案之前,它會先詢問你是否要刪除。當你作為root使用者執行系統的時候,這可是個好東西!
當rm命令詢問你要如何做的時候,y表示同意刪除檔案,n表示忽略這個檔案,並繼續處理下一個檔案。
2017-02-09 rm -Rf
刪除非空目錄,還有一種更為簡單的方法:
把-R(或--recursive)和-f(或--force)選項結合起來使用。
-r選項告訴rm命令進入到它發現的每個子目錄中去刪除檔案。
-f選項只是告訴rm命令完成任務但不要因為些細節問題(比如資料夾非空)而煩擾使用者。
當作為root登入時,不要輸入rm -Rf /*命令。這樣你將刪除你的系統。你會覺得很糟糕,覺得這樣做很傻。
刪除Cousin Harold.jpg的帶空格的檔名並不太難。只需要將檔案的名稱用雙引號括起來就可以了。
$ rm "cousin harold.jpg"
在有問題的檔名稱的前面放“--”,它會告訴命令:跟在後面的任何東西都不能作為選項,而是檔案或資料夾的名稱。
$ rm -- -cousin_roy.jpg
$ rm ./-cousin_roy.jpg
【su】
2017-02-09 su username
su命令代表“switch user”(切換使用者),並不是大多數人想象的“super user”(超級使用者),能夠讓某個使用者暫時以另一個使用者的身份進行操作。
快速切換使用者。
$ ls
/home/scott/libby
$ whoami
scott
$ su gromit
Password:
$ whoami
gromit
$ ls
/home/scott/libby
2017-02-09 whoami
它只是告訴你你是誰(就shell關心的使用者來說)。這裡用它來檢驗su命令是否按你所期待的那樣工作。
2017-02-09 su -l
變更到其他使用者,包括其環境變數。
-l選項告訴su命令使用一個登入shell,好像gromit真正登入到機器中一樣。現在你用的是gromit的名字,使用的也是gromit的環境變數,還位於gromit的home目錄(就是gromit初次登入到這臺機器後所在的位置)。
2017-02-09 su
變更成root使用者。
你可以使用su root,或者更好一些,使用su -l root,但是還有一種更快捷的方法:
$ whoami
scott
$ su
Password:
$ whoami
root
2017-02-09 su -
當使用su -時,不但使用者變更成了root,而且還使用了root的環境變數。
在su後面附加“-”與su -l root的效果相同,但是輸入的字元少一些。
【man】
2017-02-09 man ls
假設你想查ls命令的更多資訊,輸入man ls,就會開啟man page(man是manual的縮寫,因此man page就是“手冊頁面”),顯示關於ls命令各個方面的資訊。
一次向下移動一行,使用向下的箭頭鍵;一次向上行一行,使用向上的箭頭鍵。向下翻動一頁,按空格鍵或者f[代表“forward(向前)”];向上翻動一頁,按b鍵[代表“backward(向後)”]。
輸入“/”,後面跟上搜索的詞語,然後按Enter(回車)鍵。如果搜尋的詞語存在,頁面就會跳轉到相應的位置;如果要跳轉到下一個搜尋結果,再按一次Enter鍵(或者n鍵),然後一直按Enter鍵(或者n鍵)以便在螢幕上檢視找到的每個搜尋資訊;按Shift+n,返回。
2017-02-09 man -k
假設你對命令能完成的功能有點了解,但不知道命令的實際名稱,該怎麼辦呢?這時可以試試-k選項(或--apropos),搜尋一個描述你想找的那種命令的詞或短語。
$ man -k list
last (1) - show listing of last logged in users
ls (1) - list directory contents
lshal (1) - List devices and their properties
lshw (1) - list hardware
lsof (8) - list open files
[Listing condensed due to length]
2017-02-09 man -f
使用-f選項(或--whatis),就可以看到這個命令的簡單說明。
$ man -f ls
ls (1) - list directory contents
2017-02-09 man -u
man命令偶爾可能會報告並沒有該命令的頁面。在放棄查詢之前,還可以再試試-u選項(或--update),這個選項強制man命令重建它使用的命令資料庫和man page。
2017-02-09 man [1-8]
要檢視passwd檔案特定的man page,需要為man命令提供你想檢視的資料所屬於的區段序號。
$ man 5 passwd
(1)普通命令,如cd、chmod、lp、mkdir和passwd。
(2)由核心提供的底層系統呼叫,如intro和chmod。
(3)C庫函式,如beep、HTML::Parser和Mail::Internet。
(4)特殊檔案,如/dev中找到的裝置,包括控制檯(console)、印表機(lp)和滑鼠(mouse)。
(5)檔案格式和約定,如apt.conf、dpkg.cfg、hosts和passwd。
(6)遊戲,如atlantik、bouncingcow、kmahjongg和rubik。
(7)雜項,包括巨集包(macro package)。如ascii、samba和utf-8。
(8)root使用者使用的系統管理命令,如mount和shutdown。
2017-02-09 列印man page
$ man -t ls | lpr -P hp_laserjet
假設有一臺印表機已經連線到系統中,並將它標記為hp_laserjet。要將ls命令的man page直接用這個印表機列印,就需要使用-t選項(或--troff),再通過管道(pipe)輸出至lpr命令,並在lpr命令中用-P選項來標識相應的印表機。
$ man -t ls > ls.ps && ps2pdf ls.ps && rm ls.ps
如果處理過程成功完成,就可以使用ps2pdf命令將PostScript檔案轉換為PDF檔案。轉換正常完成後,可以刪除掉原來的PostScript檔案,因為不再需要它了。
【info】
2017-02-09 info
Info頁面,它使用Info命令檢視。
$ info info
這就打開了info命令的Info頁面。
如果想一次向下移動一個頁面,可以使用鍵盤的PageDown鍵;一次向上移動一個頁面,則使用PageUp鍵。但是你不能離開所在的特定區段。
如果到達區段的底部時想跳回到頂端,只需要按b(代表beginning)就能夠回到開始的位置。同樣,按e(代表end)則是跳回到底部。
可以使用空格鍵向下翻頁。
如果在Info中迷失方向,需要幫助,只需要隨時按“?”鍵,視窗的下半部分就會顯示Info的各種選項。可以使用前面學過的鍵盤操作來上下移動。要退出幫助,按l。
最後,或許也是最重要的一點,要完全退出Info,只需要按q(表示quit),就能夠返回到shell中。
2017-02-09 whereis
檢視命令的可執行程式、它的原始檔(如果存在的話)及其man page的路徑。
$ whereis kword
kword: /usr/src/koffice-1.4.1/kword
/usr/bin/kword/usr/bin/X11/kword
usr/share/man/man1/kword.1.gz
whereis命令首先報告原始檔的位置/usr/src/koffice-1.4.1/kword。接著報告任何可二進位制可執行檔案的位置/usr/bin/kword和/usr/bin/X11/kword。在這臺計算機的兩個位置都能找到KWord,雖然有些不尋常但還不算奇怪。最後找到的是man page的位置/usr/share/man/man1/kword.1.gz。
如果只想搜尋二進位制檔案,可以使用-b選項,如下所示:
$ whereis -b kword
kword: /usr/bin/kword /usr/bin/X11/kword
如果只想搜尋man page,使用-m選項,如下所示:
$ whereis -m kword
kword: /usr/share/man/man1/kword.1.gz
最後,如果只想搜尋原始檔,可以嘗試-s選項,如下所示:
$ whereis -s kword
kword: /usr/src/koffice-1.4.1/kword
whereis命令是一種非常好用的快捷方法,可以找到你正在使用的計算機中程式的重要資訊。你會發現它的用處超乎你的想象。
2017-02-09 whatis
顯示命令的man page的描述。
$ man -f ls
ls (1) - list directory contents
$ whatis ls
ls (1) - list directory contents
$ whatis -w ls*
ls (1) - list directory contentslsb (8) - Linux Standard Base support for Debian
lshal (1) - List devices and their properties
lshw (1) - list hardware
lskat (6) - Lieutnant Skat card game for KDE
[Listing condensed due to length]
whatis命令便於記憶(至少要比man -f更容易),而且它還能快速返回一些重要資訊,因此一定要記住它。
2017-02-09 apropos
與man -k類似。這兩個命令都能夠在man page中搜索命令的名稱和描述,當你只記得命令的功能而不記得具體名稱時,就可以為你提供幫助。
$ man list
No manual entry for list
$ man -k list
last (1) - show listing of last logged in users
ls (1) - list directory contents
lshw (1) - list hardware
lsof (8) - list open files
[Listing condensed due to length]
$ apropos list
last (1) - show listing of last logged in users
ls (1) - list directory contents
lshw (1) - list hardware
lsof (8) - list open files
[Listing condensed due to length]
如果只想密切關注某個詞或者短語,沒有任何其他內容,則可以使用-e選項(或--exact)。
$ apropos -e list
ls (1) - list directory contents
lshw (1) - list hardware
lsof (8) - list open files
[Listing condensed due to length]
2017-02-09 which
$ which kword
/usr/bin/kword
只要輸入命令的名稱,which命令就能告訴你這個命令的哪個版本將會執行。換句話說,如果你輸入kword,然後按Enter鍵,shell將會執行/usr/bin目錄下找到的kword程式。
which命令也是一種快速判斷系統中是否存在特定命令的方法。
如果要查詢命令的所有位置(就像使用whereis -b一樣),則可以使用-a(表示all)選項。
$ which -a kword
/usr/bin/kword
/usr/bin/X11/kword
【特殊符號】
2017-02-09 ;
命令棧(command stacking)可以解決這一問題。
命令棧是將所有需要執行的命令放到shell的一行上,再用分號(;)隔開每個具體的命令。接著依次順序執行每個命令,只有一個命令結束執行(無論成功或失敗),才會執行下一個命令。
$ ls -l /home/scott/music
-rw-r--r-- 1437931 2005-11-07 17:19
JohnColtrane.zip
$ unzip /home/scott/music/JohnColtrane.zip ;
→mkdir -p /home/scott/music/coltrane ;
→mv /home/scott/music/JohnColtrane*.mp3
→/home/scott/music/coltrane/ ;
→rm /home/scott/music/JohnColtrane.zip
2017-02-09 &&
【只有前面的命令執行成功,才執行下一個命令】
分隔命令的一個更好的辦法就是用&&,它同樣也是依次順序執行每個命令,但只有當前面一條命