Linux課程知識點總結(二)
阿新 • • 發佈:2020-12-30
# 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