1. 程式人生 > >Linux課程知識點總結(二)

Linux課程知識點總結(二)

# Linux課程知識點總結(二) ## 七、Shell實用功能 ### 7.1 命令列自動補全 在Linux系統中,有太多的命令和檔名稱需要記憶,使用命令列補全功能[Tab]可以快速的寫出檔名和命令名 ### 7.2 命令歷史記錄 在操作Linux系統的時候,每一個操作的命令都會記錄到命令歷史中,在以後可以通過命令歷史檢視和使用以前操作的命令。 bash啟動的時候會讀取~/.bash_history檔案,並將其載入到記憶體中,$HISTFILE變數就用於設定~/.bash_history檔案,bash退出時也會把記憶體中的歷史記錄回寫到~/.bash_history檔案中。 使用history命令可以檢視命令歷史記錄,每一條命令前面都會有一個序列號標示。 ​ **命令語法:** ​ **history [選項**] ### 7.3 命令排列 如果希望一次執行多個命令,Shell允許在不同的命令之間,放上特殊的排列字元。 **(1)使用“;”** 使用“;”命令時先執行命令1,不管命令1是否出錯,接下來就執行命令2。 命令語法: 命令1; 命令2;命令3;命令4 **(2)使用“&&”** 使用“&&”命令時只有當命令1正確執行完畢後,才能執行命令2 。 命令語法: 命令1 && 命令2 && 命令3 && 命令4 **(3)使用“||”** 命令1 || 命令2 ||命令3 || 命令4 ### 7.4 命令替換 在Linux系統中,Shell命令的引數可以由另外一個命令的結果來替代,這種稱之為命令替換。 **1*.使用“*$( )”** 命令語法: **命令1 $(命令2)** **2.使用 “``** 命令語法: **命令1`命令2** ### 7.5 命令別名 在需要執行某一個非常長的命令時,所有的命令以及命令的選項、引數都要一一輸入,很枯燥也容易出現錯誤。可以為常用命令定義快捷方式,這些快捷方式可以用比較簡單的命令別名來定義。 **1、建立別名** 使用alias命令可以為命令定義別名。如果命令中有空格的話,就需要使用雙引號(比如在命令與選項之間就有空格)。 命令語法: **alias [別名]=[需要定義別名的命令]** **2.取消別名** 當用戶需要取消別名的定義時,可以使用unalias命令。 命令語法: **unalias [別名]** ### 7.6 檔名匹配 檔名匹配使得使用者不必一一寫出檔名稱就可以指定多個檔案。這將用到一些特殊的字元,稱之為萬用字元。 **1**.**萬用字元“\*”** “*”可匹配一個或多個字元。 **2**.**萬用字元“?”** 在匹配時,一個問號只能代表一個字元。 ### 7.7 管道 Linux系統的理念是彙集許多小程式,每個程式都有特殊的專長。複雜的任務不是由大型軟體完成,而是運用Shell 的機制,組合許多小程式共同完成。管道就在其中發揮著重要的作用,它可以將某個命令的輸出資訊當作某個命令的輸入,由管道符號“|”來標識。 **命令語法**:[命令1] | [ 命令2] | [ 命令3] ### 7.8 重定向 希望將命令的輸出結果儲存到檔案中,或者以檔案內容作為命令的引數,這時就需要用到重定向。重定向不使用系統的標準輸入埠、標準輸出埠或是標準錯誤埠,而是進行重新的指定。 重定向有四種方式:輸出重定向、輸入重定向、錯誤重定向以及同時實現輸出和錯誤的重定向。 錯誤重定向,即將某一命令執行的出錯資訊輸出到指定檔案中。 **命令語法:** [命令] 2> [檔案] 另外一種特殊的錯誤重定向是錯誤追加重定向,即將某一命令執行的出錯資訊新增到已經存在的檔案中。 **命令語法**: [命令] 2>> [檔案] 同時實現輸出和錯誤的重定向,即可以同時實現輸出重定向和錯誤重定向的功能。 **命令語法:** [命令] &> [檔案] ## 八、Vi編輯器 ### **進入插入模式:** | **命令** | **功能** | | -------- | ---------------------------------------- | | i | 從游標當前所在位置之前開始插入 | | a | 從游標當前所在位置之後開始插入 | | I | 在游標所在行的行首插入 | | A | 在游標所在行的行末尾插入 | | o | 在游標所在的行的下面新開一行插入 | | O | 在游標所在的行的上面新開一行插入 | | s | 刪除游標位置的一個字元,然後進入插入模式 | | S | 刪除游標所在的行,然後進入插入模式 | **游標移動:** | **命令** | **功能** | | ------------------ | ---------------------------- | | ↑鍵(向上箭頭 ) | 使游標向上移動一行 | | ↓鍵(向下箭頭 ) | 使游標向下移動一行 | | ←鍵(向左箭頭) | 使游標向左移動一個字元 | | →鍵(向右箭頭 ) | 使游標向右移動一個字元 | | k | 使游標向上移動一行 | | j | 使游標向下移動一行 | | h | 使游標向左移動一個字元 | | l | 使游標向右移動一個字元 | | nk | 使游標向上移動n行,n代表數字 | | nj | 使游標向下移動n行,n代表數字 | | ---------- | -------------------------------- | | nh | 使游標向左移動n個字元,n代表數字 | | nl | 使游標向右移動n個字元,n代表數字 | | H | 使游標移動到螢幕的頂部 | | M | 使游標移動到螢幕的中間 | | L | 使游標移動到螢幕的底部 | | Ctrl+b | 使游標往上移動一頁螢幕 | | Ctrl+f | 使游標往下移動一頁螢幕 | | Ctrl+u | 使游標往上移動半頁螢幕 | | Ctrl+d | 使游標往下移動半頁螢幕 | | 0(數字0) | 使游標移到所在行的行首 | | $ | 使游標移動到游標所在行的行尾 | | ---- | -------------------------------------------------- | | ^ | 使游標移動到游標所在行的行首 | | w | 使游標跳到下一個字的開頭 | | W | 使游標跳到下一個字的開頭,但會忽略一些標點符號 | | e | 使游標跳到下一個字的字尾 | | E | 使游標跳到下一個字的字尾,但會忽略一些標點符號 | | b | 使游標回到上一個字的開頭 | | B | 使游標回到上一個字的開頭,但會忽略一些標點符號 | | ( | 使游標移動到上一個句首 | | ) | 使游標移動到下一個句首 | | { | 使游標移動到上一個段落首 | | } | 使游標移動到下一個段落首 | | G | 使游標移動到檔案尾(最後一行的第一個非空白字元處) | | gg | 使游標移動到檔案首(第一行第一個非空白字元處) | | space鍵(空格鍵) | 使游標向右移動一個字元 | | ----------------- | -------------------------------------------- | | Backspace鍵 | 使游標向左移動一個字元 | | Enter鍵 | 使游標向下移動一行 | | Ctrl+p | 使游標向上移動一行 | | Ctrl+n | 使游標向下移動一行 | | n\| | 使游標移動到第n個字元處,n代表數字 | | nG | 使游標移動到第n行首,n代表數字 | | n+ | 使游標向下移動n行,n代表數字 | | n- | 使游標向上移動n行,n代表數字 | | n$ | 使游標移動到以當前行算起的第n行尾,n代表數字 | ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201420283-1937079444.png) **命令模式命令:** ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201428716-1323151683.png) ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201449935-133505490.png) ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201504011-640617273.png) ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201526004-343989198.png) ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201608784-1940460396.png) ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201631044-1349919295.png) ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201727301-120516893.png) ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201738299-749848169.png) ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201840069-620459168.png) ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201849375-729447583.png) ![](https://img2020.cnblogs.com/blog/2031154/202012/2031154-20201230201901018-13422772