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代表數字 |
命令模式命令: