1. 程式人生 > >Linux命令整理(2018/9/9-2018/9/15)

Linux命令整理(2018/9/9-2018/9/15)

百度 大小寫 好用 quit tail 正則 數字 addition 查找文件

根據本周的Linux學習進度,整理了部分Linux知識及常用命令,待完善……

1、顯示默認啟動方式(默認啟動目標):

systemctl get-default

2、設置默認啟動方式(默認啟動目標):
設置默認啟動目標為命令行界面:
systemctl set-default multi-user.target
設置默認啟動目標為圖形化界面:
systemctl set-default graphical.target
註意:設置系統默認啟動界面後,需要重啟系統,才可生效。
在命令行界面下成功登錄時,可以執行命令startx啟動圖形化界面,不過在註銷之後仍返回到命令行界面。

3、註銷:
命令行界面,命令logout,重新登錄

4、關機:
shutdown、init、halt
命令:shutdown [選項] time
選項:
-H:停機(halt)
-r:關機後重啟(reboot)
-P:關閉電源(power off)
參數time指定關機時間:
有兩種格式,hh:mm或者+m,前者表示幾點幾分的時候關機,使用24小時制,比如shutdown 12:12,意思就是在12點12分的時候關機;後者表示在m分鐘後關
機,其中有個特殊的參數,now,表示立即關機,等價於+0。

init是為了保持與System V系列系統兼容才保留的指令,它是改變運行級命令,格式是:
init <n>
執行該命令後,系統進入運行級n,當n=0時,進入運行級0,運行級0表示關機,也就是表示關機。

halt命令也是為了和System V系列系統兼容才保留的指令,只能由root用戶執行,使用格式是:
halt [選項]
常用的選項-p表示在關機時同時關閉電源。如果計算機不能自動切斷電源,當看到系統已停機提示時,可以手工切斷計算機的電源。

還可以通過reboot、poweroff命令來重新啟動系統或關閉系統。

在切斷計算機電源之前,首先需要關閉Linux系統,絕不能不執行關閉操作就直接切斷電源,這樣可能會導致未存盤數據的丟失或者系統損害。
要按部就班的先把Linux系統關閉,再關閉虛擬機,再關閉電腦。

註意:有次沒有關閉Linux系統就直接把虛擬機關閉了,下次再打開Linux系統的時候,就出現問題了,說找不到什麽文件了,總之就是打開失敗。
然後著急的我就重裝了系統,費了九牛二虎之力好容易裝好了,對於之前那個打不開的Linux系統,想著拯救一下,於是就百度了這個問題,居然找到了解
決辦法,沒有想不到,只有搜不到,鏈接在此,https://blog.csdn.net/buhuiguowang/article/details/78241188,根據方法,試著刪了一下這個以.lck
為後綴的文件夾裏邊的文件,重新打開這個Linux系統,沒想到居然打開了,真是幸運,而我裝的第二個系統,也是有些多余了,真是出現了問題就要先解
決,這樣以後出現的問題才會少。

5、顯示shell版本(種類):
命令:chsh -l

也可以查看Linux的/etc(一些配置信息)目錄下的shells文件中列出來的系統可以接受的shell以及它們的路徑。
通過結果顯示,Fedora28僅使用了bash這一種shell,可以通過命令bash -version來給出系統當前的bash版本信息。
命令:bash -version(或者bash --version)

系統變量$SHELL記錄著系統當前正在使用的shell:
通過 命令 echo $SHELL 顯示

註意:linux區分大小寫,系統變量要用大寫,而且前面使用$符號。

6、補充一下shell命令的基本格式:
命令名 [選項] <參數1><參數2>……
註意:[]內容可選;參數個數大於等於0;命令名是小寫的。

7、對於單引號、雙引號、不加引號的使用:
多數情況下,加上雙引號為好。
對於空格而言,不加引號的空格無論多少個都被shell解釋為一個空格,而加上引號的空格,就實事求是的講,多少就多少。
還有空格也不要亂加,在合適的地方加合適的空格。

8、輸入輸出重定向
輸入重定向符號:< ;輸出重定向符號:> 和 >>
如果shell命令X需要從控制臺輸入數據,,那麽執行命令X<file,就直接從file中讀取所需的數據;若執行命令X有輸出結果,那麽執行X>file,則將輸出結
果寫入file文件中,而>和>>的區別就在於,如果file文件中有內容,輸出結果是否覆蓋file文件中的內容:使用>,則將file中原有數據清除,然後寫入輸
出結果,即覆蓋;使用>>,不清除file文件中的原有數據,而是將輸出結果追加到原有數據之後。

舉個例子:
命令:ls -l,表示顯示當前目錄下的所有文件,並顯示在屏幕上;
多句嘴:選項-l是顯示文件的詳細信息:文件類型,文件權限,硬鏈接的個數,所有者名,群組名,文件大小(單位字節),修改時間,文件名。
其中的文件類型有7種:d:目錄;c:字符型設備;b:塊設備;p:命名管道;f:一般文件;l:符號鏈接;s:套接字;
文件權限rwx表示可讀可寫可執行,用---表示不可讀不可寫不可執行;分為三部分:第一部分是文件擁有者的權限,第二部分是同群組的權限,第三部分是
其他非本群組的權限;權限可以使用三位二進制數轉化的十進制數來表示,比如777就可以表示三個部分的權限都是可讀可寫可執行。扯遠了~
命令:ls -l>lsresult,表示將當前目錄下的所有文件信息都保存在lsresult文件中,並不顯示在屏幕上,可以執行 cat leresult來查看文件內容,可以
看到和執行命令ls -l相同的效果。

9、管道

在Linux中,管道是一種先進先出(FIFO)的單向數據通道,管道符號 | 可以將多個命令組合到一起,即把前一個命令的輸出傳遞到下一個命令的輸入,最
終得到經過多個命令依次處理的結果。

舉個例子:
命令lspci可以顯示系統安裝的所有PCI設備信息,命令grep可以檢索數據中符合匹配條件的文本,通過管道符號 | 將lspci命令的輸出結果傳遞給grep命令
作為輸入,可以查找系統中是否安裝了符合匹配條件的PCI設備。
lspci | grep VGA 表示查找系統中安裝了含有VGA的PCI設備。

10、在命令後邊使用選項 -h 或者 --help可以顯示本命令的幫助信息。
註意:有些命令 -h 不可用,還有些命令只能在root下使用。

11、顯示文件命令:
cat、head、tail、more、less
命令cat,格式:cat [選項] <file>……
選項:
-n(--number):由1開始對所有輸出的行數進行編號,包括空行。
-b(--number-nonblank):和-n相似,不同的是,不給空行編號。
-s(--squeeze-blank):當遇到有連續的兩行及以上的空行時,替換為一行空行。
-v(--show-nonprinting):顯示不可打印字符(ASCII 表上的數字 0–31 分配給了控制字符,用於控制像打印機等一些外圍設備,例如,12 代表換頁/
新頁功能,此命令指示打印機跳到下一頁的開頭;‘\0‘ 字符串結束符;-1 EOF文件結束符)
此鏈接給出了ASCII 字符代碼介紹:
https://www.jb51.net/shouce/autoit3/source/html/appendix/ascii.htm

命令head,格式:head [選項] <file>……
選項:
-n:顯示文件前n行內容,默認不加就是前10行。
-c:顯示c個字符,一個數字一個字符(註意12就是兩個字符),一個回車符一個字符。

命令tail,格式:tail [選項] <file>……
選項:
-n:顯示文件後n行內容,默認不加就是後10行。
-c:顯示c個字符,一個數字一個字符(註意123就是三個字符),一個回車符一個字符。

命令more,格式:more [選項] <file>……
每次只顯示一頁,可以按 空格鍵 顯示下一頁,按 q 鍵 退出顯示,按 h 鍵 顯示幫助信息。
Ctrl+s:停止滾屏,Ctrl+q:恢復滾屏,Ctrl+c:退出命令(中斷命令、適用於所有命令)
選項:
-n:指定屏幕顯示的行數為n行。
-s:當遇到有連續兩行及以上的空行時,輸出一行空行代替。
+n:從第n行開始顯示。

命令less,格式:less [選項] <file>……
選項:
-i:查找文件時忽略大小寫。
-S:當某行的內容超過顯示頁面的寬度時,直接將超出的部分截斷舍去,默認不加時,會把超出的部分折回來顯示。

more和less的區別:
more命令結束之後,會將文件中的內容輸出到屏幕上,而less其實是打開所看的文件,按 q 鍵 退出,在執行結束之後,不會輸出內容;
還有less可以查看已經瀏覽的內容,可以往上翻,而more不可以,只能往下翻。

12、復制文件或者目錄命令:
命令cp,格式:cp [選項] <source> <dest>(復制一個) 或者 cp [選項] <source>…… <directory>(復制多個)
選項:
-i:詢問
-r:遞歸復制
-f:若目的地有同名文件存在,則在復制前先刪除再進行復制(默認情況下,會詢問,因為 cp 的別名為 cp -i 會詢問,也可以取消這個別名,執行命令
unalias cp或者使用轉義字符\cp,使用了轉義字符,效果就是僅僅是表面含義,也就是說只有cp的作用,設置別名的命令alias cp="cp -i" 註意空格應該
包裹在引號裏邊,否則控制臺會認為這是命令,但是這不是命令,還有=兩邊也不要留有空格,也會視之為命令,導致錯誤)
-a:盡可能的講文件模式、所有者、時間標簽、鏈接等信息照原樣復制,並且遞歸的復制目錄中的文件,所謂克隆便是如此。

13、刪除文件命令(只能刪文件,刪目錄另有其“人”):
命令rm,格式:rm [選項] <name>……
選項:
-i:詢問
-f:強制刪除
-r:遞歸刪除目錄下的內容

14、移動文件(所謂移動就是刪除原來的建立新有的)或者重命名文件命令:
命令mv,格式:mv [選項] <source> <dest>(移動一個) 或者 mv [選項] <source>…… <directory>(移動多個)
選項:
-i:詢問
-f:強制移動

15、創建目錄命令:
命令mkdir,格式:mkdir [選項] <dirName>……
選項:
-p:若要建立的目錄的上層目錄還未建立,則一並建立上層目錄。

16、刪除目錄命令:
命令rmdir,格式:rmdir [選項] <dirName>……
選項:
-p:若刪除了指定目錄,上層目錄變成了空目錄,則將上層空目錄一並刪除。

17、查看目錄命令:
命令ls,格式:ls [選項] [<name>……](name最好用引號括起來)
選項:
-a:顯示所有文件及目錄,默認不加隱藏文件(以 . 開頭的文件或目錄)不會列出。
-l:ll和ls -l是一致的,顯示文件的詳細信息(之前啰嗦過了),對於文件名會有不同的顏色顯示來區分文件的類型:淺藍色代表符號鏈接(類似於
Windows下的快捷方式),會有個箭頭指向源文件;紅色表示壓縮文件;綠色表示可執行文件(在Linux中可執行文件的圖標是個菱形);灰色表示可執行文
件;藍色表示目錄;黑色表示出錯誤(比如說符號鏈接文件的源文件被刪掉了,那麽這個鏈接文件名將出現黑色底紋)
-R:遞歸顯示目錄下的文件。

18、查找文件或目錄命令:
命令find,格式:find [path] [expression]
path於expression之間用-、(、)、,、或者!隔開。path不謝=寫默認為當前目錄,expression不寫默認為-print
expression可以是文件名、文件大小、文件修改日期等等。
舉個例子:find -name 1.txt 即查找當前目錄下的1.txt的路徑。

19、文件定位命令:
命令locate,格式:locate [選項] <search string>
選項:
-n<n>:至多顯示n個(比如-n100,查找到的符合條件的至多顯示100個)
-i:對大小寫敏感。
-c 統計數目
-r <regexp>:正則表達式,regexp是POSIX正則表達式。
比如:
-r file$ 查找結尾為file的目錄
-r ^\/file 查找以file開頭的目錄

20、文件內容檢索命令:
命令grep,格式:grep [選項] <string> <file>……
選項:
-i:忽略大小寫
-n:給出行號
-v:檢索不包含給定字符串(可以使用通配符*,?等)或者模式的所有文本行。
-x:只顯示嚴格匹配行(嚴格相等)
-c:統計行數

21、鏈接命令:
命令ln,格式:ln [選項] <source> <dest>
選項:
-s 創建軟連鏈接(符號鏈接),默認情況下創建硬鏈接。
軟鏈接和硬鏈接的比較:
硬鏈接和源文件有一個修改了,則另一個會同步修改,有一個被刪除了,不影響另一個。
軟鏈接和源文件有一個修改了,則另一個會同步修改,如果源文件被刪了,那麽軟鏈接文件則打不開,如果軟鏈接文件被刪了,不影響源文件的使用。
軟鏈接文件類型前面有個l,表示是軟鏈接文件,還有它的文件名是淺藍色的;而幾種標識對於硬鏈接都是沒有的。

22、創建文件或者改變文件時間的命令:
命令touch,格式:touch [選項] <file>……
選項:
-t<stamp>:設定文件的時間記錄,例如:touch -t 1809151106 file或者touch -t 201809151106
-d <datestring>:根據datestring設置文件的日期和時間,必須使用引號包裹起來,例如:touch -d "11:06am09/15/2018" file

23、文件比較命令:
命令diff和diff3,格式:diff file1 file2 表示file2相對於file1變了哪?
其中一些標識符:a為addition 增加了 > ;c為change 變化了;d為delete 刪掉了 <

24、文件排序命令:
命令sort,格式:sort [選項] [file]……(可以是多個文件,按照字母順序打亂多個文件的順序)
選項:
-d:按字母順序排序
-n:按照字符串的數字值而不是文字進行排序
-r:按照反序,從大到小或者反向字符順序
-k:按照關鍵字或者字段的位置排序(字段與字段之間用tab鍵隔開)

25、合並文件命令:
命令paste,格式:paste test1 test2 > test3 表示將test1和test2合並的結果保存到哦test3裏邊

26、計算器命令:
命令bc進入,quit或者exit退出。

27、顯示文字命令:
命令echo,格式 echo [-n] <字符串>
選項:
-n:表示輸出文字後不換行,默認不加換行。
字符串可以加引號(單引號、雙引號),也可以不加引號,區別在於:加了引號,字符串原樣輸出;不加引號,其中的連續空格被視為一個空格等等。

28、顯示日歷命令:
命令cal,格式:cal [選項] [[月]年]
-s:以周天為一周的第1天顯示,默認如此。
-m:以周一為一周的第1天顯示。
-j:顯示指定月中的每一天是一年中的第幾天(從1月1日算起)
-y:顯示出當年的完成日歷。

29、日期時間命令:
命令date,格式:date [選項] [+FormatString]

30、清屏命令:
命令clear(相當於屏幕下滑)

31、辨析命令whoami、who、w、whereis:
whoami:顯示當前用戶
who:顯示登錄信息(包括用戶名、哪個控制臺還有登錄時間)
w:是更為詳細的登錄信息
whereis:查看命令存檔目錄

Linux命令整理(2018/9/9-2018/9/15)