2018--Linux命令总结整理复习版
一、ls命令:
用來顯示目標列表,在Linux中是使用率較高的命令。ls命令的輸出信息可以進行彩色加亮顯示,以分區不同類型的文件。
-a:顯示所有檔案及目錄(ls內定將檔案名或目錄名稱為“.”的視為影藏,不會列出);
-A:顯示除影藏文件“.”和“..”以外的所有文件列表;
-C:多列顯示輸出結果。這是默認選項;
-l:與“-C”選項功能相反,所有輸出信息用單列格式輸出,不輸出為多列;
-F:在每個輸出項后追加文件的類型標識符,具體含義:“*”表示具有可執行權限的普通文件,“/”表示目錄,“@”表示符號鏈接,“|”表示命令管道FIFO,“=”表示sockets套接字。當文件為普通文件時,不輸出任何標識符;
-b:將文件中的不可輸出的字符以反斜線“”加字符編碼的方式輸出;
-c:與“-lt”選項連用時,按照文件狀態時間排序輸出目錄內容,排序的依據是文件的索引節點中的ctime字段。與“-l”選項連用時,則排序的一句是文件的狀態改變時間;
-d:僅顯示目錄名,而不顯示目錄下的內容列表。顯示符號鏈接文件本身,而不顯示其所指向的目錄列表;
-f:此參數的效果和同時指定“aU”參數相同,并關閉“lst”參數的效果;
-i:顯示文件索引節點號(inode)。一個索引節點代表一個文件;
--file-type:與“-F”選項的功能相同,但是不顯示“*”;
-k:以KB(千字節)為單位顯示文件大小;
-l:以長格式顯示目錄下的內容列表。輸出的信息從左到右依次包括文件名,文件類型、權限模式、硬連接數、所有者、組、文件大小和文件的最后修改時間等;
-m:用“,”號區隔每個文件和目錄的名稱;
-n:以用戶識別碼和群組識別碼替代其名稱;
-r:以文件名反序排列并輸出目錄內容列表;
-s:顯示文件和目錄的大小,以區塊為單位;
-t:用文件和目錄的更改時間排序;
-L:如果遇到性質為符號鏈接的文件或目錄,直接列出該鏈接所指向的原始文件或目錄;
-R:遞歸處理,將指定目錄下的所有文件及子目錄一并處理;
--full-time:列出完整的日期與時間;
--color[=WHEN]:使用不同的顏色高亮顯示不同類型的。
生產案例:查找最近更新的文件
方法一:ls -lrt
方法二:ll -rt
?
二、cp命令:
用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。它可以將單個源文件復制成一個指定文件名的具體的文件或一個已經存在的目錄下。cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數必須是一個已經存在的目錄,否則將出現錯誤。 
-a:此參數的效果和同時指定"-dpR"參數相同;(用來復制目錄)。
-d:當復制符號連接時,把目標文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄;
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對源文件建立硬連接,而非復制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-s:對源文件建立符號連接,而非復制文件;
-u:使用這項參數后只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件并不存在時,才復制文件;
-S:在備份文件時,用指定的后綴“SUFFIX”代替文件的默認后綴;
-b:覆蓋已存在的文件目標前將目標文件備份;
-v:詳細顯示命令執行的操作。
案例:備份
方法一:[root@localhost /]# cp /etc/ssh/sshd_config{,.ori}
方法二:[root@localhost /]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori 
(這個方法太復雜用上面那個)。
原理:{}bash:A{B,C}==>bash==>AB AC
但是需要倆個路徑在同一個目錄下
[root@localhost /]# cp /etc/{ssh/sshd_config,dhcp/}
(這個是把/etc下的文件cp到同是/etc目錄下的目錄里)
?
?
三、mv命令:MoVe(rename)files
1 用來對文件或目錄重新命名
2 或者將文件從一個目錄移到另一個目錄中。
source表示源文件或目錄,target表示目標文件或目錄。如果將一個文件移到一個已經存在的目標文件中,則目標文件的內容將被覆蓋。 
mv命令可以用來將源文件移至一個目標文件中,或將一組文件移至一個目標目錄中。源文件被移至目標文件有兩種不同的結果: 
如果目標文件是到某一目錄文件的路徑,源文件會被移到此目錄下,且文件名不變。 
如果目標文件不是目錄文件,則源文件名(只能有一個)會變為此目標文件名,并覆蓋己存在的同名文件。如果源文件和目標文件在同一個目錄下,mv的作用就是改文件名。當目標文件是目錄文件時,源文件或目錄參數可以有多個,則所有的源文件都會被移至目標文件中。所有移到該目錄下的文件都將保留以前的文件名。 
注意事項:mv與cp的結果不同,mv好像文件“搬家”,文件個數并未增加。而cp對文件進行復制,文件個數增加了。
--backup=<備份模式>:若需覆蓋文件,則覆蓋前先行備份;
-b:當文件存在時,覆蓋前,為其創建一個備份;
-f:若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文件或目錄;
-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標文件或目標目錄中的文件同名,則詢問用戶是否覆蓋目標文件。用戶輸入”y”,表示將覆蓋目標文件;輸入”n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。
--strip-trailing-slashes:刪除源文件中的斜杠“/”;
-S<后綴>:為備份文件指定后綴,而不使用默認的后綴;
--target-directory=<目錄>:指定源文件要移動到目標目錄;
-u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。
***PS:養成一個好習慣:
不要直接刪除文件,而是mv到/tmp目錄里,/tmp目錄系統每周會清理。
案例:
改名功能:把file4文件改名為file6。
[root@localhost /]# mv file{4,6}.txt
移動多個文件:file1.txt file2.txt file3到、tmp目錄:
[root@localhost /]# mv file1.txt file2.txt file3.txt tmp/
[root@localhost /]# mv file{1..3}.txt tmp/? (這個更簡潔)
?
?
四、rm命令:
可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。對于鏈接文件,只是刪除整個鏈接文件,而原有文件保持不變。 
注意:
1、使用rm命令要格外小心。因為一旦刪除了一個文件,就無法再恢復它。所以,在刪除文件之前,最好再看一下文件的內容,確定是否真要刪除。rm命令可以用-i選項,這個選項在使用文件擴展名字符刪除多個文件時特別有用。使用這個選項,系統會要求你逐一確定是否要刪除。這時,必須輸入y并按Enter鍵,才能刪除文件。如果僅按Enter鍵或其他字符,文件不會被刪除。 
2、指定被刪除的文件列表,如果參數中含有目錄,則必須加上-r或者-R選項。 
-d:直接把欲刪除的目錄的硬連接數據刪除成0,刪除該目錄;
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
--preserve-root:不對根目錄進行遞歸操作;
-v:顯示指令的詳細執行過程。
刪除普通文件,不能加-r(遞歸刪除)
刪除目錄則需要加-r
正確刪除文件的姿勢:
① 使用mv命令移動到/tmp(回收站)替代刪除動作。
② cd目的目錄;find .-type f(文件)或d(目錄) -name""|xargss rm 
? (這里rm就不用-i了,因為別名是在直接使用命令時生效,當命令在管道后別名就不生效)
?
?
五、find命令:
用來在指定目錄下查找文件。任何位于參數之前的字符串都將被視為欲查找的目錄名。
如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進行顯示。 
-amin<分鐘>:查找在指定時間曾被存取過的文件或目錄,單位以分鐘計算;
-anewer<參考文件或目錄>:查找其存取時間較指定文件或目錄的存取時間更接近現在的文件或目錄;
-atime<24小時數>:查找在指定時間曾被存取過的文件或目錄,單位以24小時計算;
-cmin<分鐘>:查找在指定時間之時被更改過的文件或目錄;
-cnewer<參考文件或目錄>查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄;
-ctime<24小時數>:查找在指定時間之時被更改的文件或目錄,單位以24小時計算;
-daystart:從本日開始計算時間;
-depth:從指定目錄下最深層的子目錄開始查找;
-expty:尋找文件大小為0 Byte的文件,或目錄下沒有任何子目錄或文件的空目錄;
-exec<執行指令>:假設find指令的回傳值為True,就執行該指令;
-false:將find指令的回傳值皆設為False;
-fls<列表文件>:此參數的效果和指定“-ls”參數類似,但會把結果保存為指定的列表文件;
-follow:排除符號連接;
-fprint<列表文件>:此參數的效果和指定“-print”參數類似,但會把結果保存成指定的列表文件;
-fprint0<列表文件>:此參數的效果和指定“-print0”參數類似,但會把結果保存成指定的列表文件;
-fprintf<列表文件><輸出格式>:此參數的效果和指定“-printf”參數類似,但會把結果保存成指定的列表文件;
-fstype<文件系統類型>:只尋找該文件系統類型下的文件或目錄;
-gid<群組識別碼>:查找符合指定之群組識別碼的文件或目錄;
-group<群組名稱>:查找符合指定之群組名稱的文件或目錄;
-help或——help:在線幫助;
-ilname<范本樣式>:此參數的效果和指定“-lname”參數類似,但忽略字符大小寫的差別;
-iname<范本樣式>:此參數的效果和指定“-name”參數類似,但忽略字符大小寫的差別;
-inum<inode編號>:查找符合指定的inode編號的文件或目錄;
-ipath<范本樣式>:此參數的效果和指定“-path”參數類似,但忽略字符大小寫的差別;
-iregex<范本樣式>:此參數的效果和指定“-regexe”參數類似,但忽略字符大小寫的差別;
-links<連接數目>:查找符合指定的硬連接數目的文件或目錄;
-iname<范本樣式>:指定字符串作為尋找符號連接的范本樣式;
-ls:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出;
-maxdepth<目錄層級>:設置最大目錄層級;
-mindepth<目錄層級>:設置最小目錄層級;
-mmin<分鐘>:查找在指定時間曾被更改過的文件或目錄,單位以分鐘計算;
-mount:此參數的效果和指定“-xdev”相同;
-mtime<24小時數>:查找在指定時間曾被更改過的文件或目錄,單位以24小時計算;
-name<范本樣式>:指定字符串作為尋找文件或目錄的范本樣式;
-newer<參考文件或目錄>:查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄;
-nogroup:找出不屬于本地主機群組識別碼的文件或目錄;
-noleaf:不去考慮目錄至少需擁有兩個硬連接存在;
-nouser:找出不屬于本地主機用戶識別碼的文件或目錄;
-ok<執行指令>:此參數的效果和指定“-exec”類似,但在執行指令之前會先詢問用戶,若回答“y”或“Y”,則放棄執行命令;
-path<范本樣式>:指定字符串作為尋找目錄的范本樣式;
-perm<權限數值>:查找符合指定的權限數值的文件或目錄;
-print:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出。格式為每列一個名稱,每個名稱前皆有“./”字符串;
-print0:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出。格式為全部的名稱皆在同一行;
-printf<輸出格式>:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出。格式可以自行指定;
-prune:不尋找字符串作為尋找文件或目錄的范本樣式;
-regex<范本樣式>:指定字符串作為尋找文件或目錄的范本樣式;
-size<文件大小>:查找符合指定的文件大小的文件;
-true:將find指令的回傳值皆設為True;
-typ<文件類型>:只尋找符合指定的文件類型的文件;
-uid<用戶識別碼>:查找符合指定的用戶識別碼的文件或目錄;
-used<日數>:查找文件或目錄被更改之后在指定時間曾被存取過的文件或目錄,單位以日計算;
-user<擁有者名稱>:查找符和指定的擁有者名稱的文件或目錄;
-version或——version:顯示版本信息;
-xdev:將范圍局限在先行的文件系統中;
-xtype<文件類型>:此參數的效果和指定“-type”參數類似,差別在于它針對符號連接檢查。
-name?? 按照文件名查找文件。
-perm?? 按照文件權限來查找文件。
-prune? 使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用-depth選項,那么-prune將被find命令忽略。
-user?? 按照文件屬主來查找文件。
-group? 按照文件所屬的組來查找文件。
-mtime -n +n? 按照文件的更改時間來查找文件, - n表示文件更改時間距現在n天以內,+ n表示文件更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。
-nogroup? 查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser?? 查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2? 查找更改時間比文件file1新但比文件file2舊的文件。
-type? 查找某一類型的文件,諸如:
b - 塊設備文件。
d - 目錄。
c - 字符設備文件。
p - 管道文件。
l - 符號鏈接文件。
f - 普通文件。
-size n:[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以字節計。-depth:在查找文件時,首先查找當前目錄中的文件,然后再在其子目錄中查找。
-fstype:查找位于某一類型文件系統中的文件,這些文件系統類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統中有關文件系統的信息。
-mount:在查找文件時不跨越文件系統mount點。
-follow:如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。
-cpio:對匹配的文件使用cpio命令,將這些文件備份到磁帶設備中。
另外,下面三個的區別:
-amin n?? 查找系統中最后N分鐘訪問的文件
-atime n? 查找系統中最后n*24小時訪問的文件
-cmin n?? 查找系統中最后N分鐘被改變文件狀態的文件
-ctime n? 查找系統中最后n*24小時被改變文件狀態的文件
-mmin n?? 查找系統中最后N分鐘被改變文件數據的文件
-mtime n? 查找系統中最后n*24小時被改變文件數據的文件
?
?
?
六、xargs命令:
(從標準輸入,(管道或stdin,輸入重定向)獲取數據。并將數據轉換成命令行的參數)。
給其他命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。
擅長將標準輸入數據轉換成命令行參數,xargs能處理管道或者stdin并將其轉換成特定命令的命令參數。
xargs也可以將單行或多行文本輸入轉換為其他格式,例如多行變單行,單行變多行。
xargs的默認命令是echo,空格是默認定界符。這意味著通過管道傳遞給xargs的輸入將會包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代。xargs是構建單行命令的重要組件之一。 
-n? 指定一行最多顯示的參數
-i? #和{}對應的格式。eg: find . -type f -name "*.txt"|xargs -i mv {} /tmp
-I? #讓后面能接指定括號(),[]
?
?
七、ln命令: make LINks between files.
無參數?? #創建硬鏈接。
-s?????? #創建軟鏈接。
?
八、readlink命令:
查看軟鏈接指向的源文件的內容。不適用于硬鏈接。
?
?
九、rename:專業重命名工具。
rename? from?? to?? file
from #代表需要替換或要處理的字符,文件的一部分,文件的擴展名。
to?? #把前面from代表的內容替換為to代表的內容,即重命名處理后的內容。
file #文件
?
?
?
十、basename命令:
?
?
?
十一、dirname命令:
?
?
?
?
?
十三、md5sum命令:計算和校驗文件的md5值,每個文件有它唯一的md5值。
?
轉載于:https://www.cnblogs.com/sinsenliu/p/9009518.html
總結
以上是生活随笔為你收集整理的2018--Linux命令总结整理复习版的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 0507css3基础:弹性盒子、媒体查询
- 下一篇: vuex在vuecli中的简单使用
