在本週學習中咱們學習了vim編輯器的用法及對bash特性的簡單瞭解,下面咱們分別來解釋這些內容。linux
1、vim編輯器git
一、使用vim編輯器同時編輯多個文件時: vim FILE1 FILE2 FILE3 ........shell
其中:next 查看或編輯後一個文檔的內容vim
:prev 查看或編輯前一個文檔的內容緩存
:first 查看或編輯第一個文檔的內容bash
:last 查看或編輯最後一個文檔的內容編輯器
二、vim -o 分屏顯示多個文檔內容 橫屏ide
vim -O 分屏顯示多個文檔內容 豎屏學習
Ctrl+w,s 將一個文件水平分屏顯示spa
Ctrl+w,v 將一個文件分屏豎直顯示
這些命令操做主要是方便同時建立並編輯多個文件,使得一屏多顯更方便對文件的編輯查看。
2、bash特性
本週咱們主要學習了bash特性的主要表現及一些相關命令的操做方法。
一、命令別名:自定義命令
使用alias命令能夠用來定義和顯示命令的別名。可是使用alias命令定義的別名,其生命期僅爲當前shell的生命值。
對於每一個用戶來講,都有一個私有的bash配置文件,用於保存別名。~/.bashrc
因此在這裏咱們須要注意的地方有如下幾點:
1).alias命令的效果僅限於當前shell的生命期
2).若是修改.bashrc配置文件,其中保存的別名並不會當即生效,只有在從新加載該文件的內容後,纔會生效,且永久生效。
3).爲了可以保證咱們設置的別名有效,一般兩種該操做都要作。
撤銷別名的命令:unalias: unalias name
二、命令歷史
bash進程會保存其會話中用戶曾經執行過的命令,以方便用戶重複執行某個命令。
經過bash提供的歷史命令文件來持久的保存此前執行過的命令,每一個用戶都有其本身私有的歷史文件。
登錄shell的時候,bash會自動讀取~/.bash_history文件中所記錄的全部命令。
1)、history命令:
-c:清空歷史緩衝區的歷史命令
-d OFFSET:刪除特定歷史命令條目
2)、重複執行前一個命令的方法:
1.使用上方向鍵,回車執行
2.ctrl+p
3.!-1
4.!!
3)、重複執行歷史命令中的命令:
!Number:重複執行歷史命令中編號爲「number」的命令。
!STRING: 從歷史緩衝區中查找最近一次查找過的以「STRING」開頭的命令,並執行
!-number :執行歷史緩衝區中倒數第「number」條命令。。
Ctrl+r :在歷史緩衝區中實施搜索,回車執行便可。
4)、重複使用歷史命令中的一部分:
!$ :表示最後一次命令中的最後一個參數。
Esc,. 同上
Alt+. 同上
!^ :表示最後一次命令中第一個位置的參數。
!:number :表示最後一次命令中第「number」個位置的參數
!SEQUENCE:NUMBER : 表示歷史緩衝區中第「SEQ」個命令的第「number」個參數。
!STRING :^|$|*|NUMBER
5)、與歷史相關的bash變量
HISTSIZE
HISTFILESIZE
HISTTIMEFORMAT
HISTTIMEFORMAT=」%F %T 「
HISTCONTROL:
Ignoredups:忽略連續且相同的命令的歷史緩存
Ignorespace:忽略以空白字符的命令
Ignoreboth:以上兩個命令都啓用。
三、快捷鍵的使用方法
C-->ctrl
M-->Alt
E-->esc
DEL-->backspae
C-L:clear 清屏
Ctrl a 將光標跳轉至命令行行首
Ctrl e 將光標跳轉至命令行尾
Ctrl k 刪除光標所在位置至行尾的命令行信息
Ctrl u 刪除光標所在位置至行首的命令行信息
Ctrl c 結束前臺進程,取消命令的運行
四、命令補全機制
命令補全機制有兩個方面的理解,命令自己字符串的補全,參數的補全。
shell命令的執行過程:
1).shell會根據用戶鍵入回車來判斷用戶的輸入結束
2).shell會將收集到的命令信息,根據空白字符來分段(token),第一個分段被理解爲命令字段。
3).判斷一個字段是內部命令仍是外部命令,若是是內部命令,則直接運行,若是是外部命令,經過PATH變量所指示的路徑信息,去查找相關的位置,以肯定是否存在同名文件,若是有就執行,不然就報錯。
4).判斷選項是否正確,判斷參數是否正確。
使用tab鍵能夠完成命令補全:
若是給出的字符串不能做爲惟一標準,則bash不予補全。再次敲打tab鍵,bash會給出參考列表,若是參考列表中的內容過多,bash會詢問是否顯示該列表。
根據提供的參考路徑來進行補全,若是參數沒有任何提示信息,則默認從工做目錄進行查找。
五、命令行展開
~:bash會自動將其展開爲當前登錄用戶的家目錄。
~STRING:bash會自動將其展開爲以「STRING」爲用戶名的用戶家目錄。
~+:調用shell變量「PWD」的值
~—:調用shell變量「OLDPWD」的值
{}:在花括號中能夠填充一個以「,」分割開的路徑列表,bash會將其展開爲多個獨立的路徑。
六、命令的執行結果
任何一個linux命令都有兩種執行結果。
其一:命令的正常輸出結果。 跟用戶需求相關的返回內容
``:反向單引號,反引號
$() :標準的命令引用格式
wc:統計一個文件中有的行數字數及字節數。(-c -l -w)
命令的執行狀態返回值。 跟命令執行成功與否相關的返回內容。
保存在bash的一個特殊變量中:$?
0:命令執行成功
1:表示小的問題
2:表示嚴重問題
127:表示命令自己出問題
3-126,128-255:用戶自定義狀態信息
七、引用功能
‘’ :強引用
凡是被單引號引用的內容,,bash一概將其視爲普通字符,即便其自己有特殊功能和做用也如此。但單引號自己是個例外。
「」:弱引用
被雙引號引用的內容中有一些特殊字符仍然會保留其特殊含義。好比$,\,「」
八、轉義功能
\: bash中定義的轉義字符,只能使其後一個字符失去意義。
九、Globbing 文件名通配,簡稱爲glob
元字符:
*:匹配任意長度的任意字符,某些特俗位置的「.」字符不能被匹配
?:匹配任意單個字符,必須且只有一個字符被匹配
[ ]:匹配指定範圍內的任意單個字符,必須且只有一個字符被匹配
[a-z]:a,A,b,B,c,C............y,Y,z
[A-Z]:A,b,B,c,C.....................y,Y,z,Z
字符集:
[:lower:]:全部小寫字母
[[:lower:]]: 通配任意單個小寫字母
[:upper:]: 全部大寫字母
[:alpha:]: 表示全部字母
[:digit:]: 表示全部十進制數字
[:alnum] :表示全部的大小寫字母以及十進制數字
[:space:]: 表示空白字符
[:punct:]: 全部的標點符號
^:取反匹配,
十、輸入輸出重定向
在使用計算機的時候,實現某種功能的主體是:程序
程序=指令+數據
數據:文件,IO
能夠用於輸出的設備:文件,鍵盤文件,文件系統中的常規文件,網卡設備,聲卡設備等,
能夠用於輸出的設備:文件,顯示器,文件系統中的常規文件,網卡設備,聲卡設備等
每一種程序都有三種形式的數據流
輸入數據流:爲程序獲取數據的數據流。默認的輸入數據流就是鍵盤。
輸出數據流:將程序所處理的數據結果展現給用戶的數據流。默認的輸出數據流的終點是顯示器。
錯誤數據流:將程序沒法處理或處理過程當中出現問題的結果展現給用戶的數據流。默認錯誤數據流的終點是顯示器。
從鍵盤實現的輸入數據流稱爲標準輸入
到顯示器上的輸出數據流稱爲標準輸出
到顯示器上的錯誤數據流稱爲標準錯誤輸出,簡稱標準錯誤。
文件描述符:File Descriptor,FD
0:標準輸入,stdin
1:標準輸出,stdout
2:標準錯誤,stderr
IO重定向:採用非標準設備文件實現的IO操做
簡單來講,
不是從鍵盤設備完成的數據流輸出就能夠稱爲輸入重定向或重定向輸入。
不是到顯示器設備的正確輸出數據流就被稱爲輸出重定向或重定向輸出。
不是到顯示器設備的錯誤輸出數據流就被稱爲錯誤重定向或重定向錯誤。
輸出重定向:
>: 覆蓋輸出重定向
~]# set -C // 開啓防誤覆蓋開關
在此開關開啓後,可使用「>|」符號繼續覆蓋重定向
Set +C //關閉防覆蓋開關
>>:追加輸出重定向