第四章 bash的特性

2021-09-20 13:57:38 字數 2577 閱讀 5314

4.1 bash的特性

a) 支援命令歷史、命令補全

b) 支援管道、重定向

c) 支援命令別名

d) 支援命令列編輯

e) 支援命令列展開

f) 支援檔名通配

g) 支援變數

h) 支援程式設計

4.2 bash支援的引號

``:命令替換

"":弱引用,可以實現變數替換

'':強引用,不完成變數替換

4.3.1 游標跳轉

ctrl+a:跳到命令列首

ctrl+e:跳到命令行尾

ctrl+u:刪除游標至命令列首的內容

ctrl+k:刪除游標至命令行尾的內容

ctrl+<--:游標定位到離自己最近的乙個單詞前面

ctrl+l:清屏

4.3.2 命令歷史

history:檢視命令歷史

-c:清空命令歷史

-d offset [n]:刪除指定位置的命令歷史

-w:儲存命令歷史至歷史檔案~/.bash_history中

命令歷史的使用技巧:

!n:執行命令歷史中的第n條命令

!-n:執行命令歷史中倒數第n條命令

!!:執行上一條命令

!string:執行命令歷史中最近乙個以指定字串開頭的命令

!$:引用前乙個命令的最後乙個引數

esc,.:按下esc鬆開後按.,引用前乙個命令的最後乙個引數

控制命令歷史的記錄方式:

環境變數:histcontrol

ignoredups:忽略重複的命令(連續且相同方為「重複」)

ignorespace:忽略所有以空格開頭的命令,如「  ls -l」

ignoreboth:ignoredups和ignorespace均生效

修改環境變數histcontrol值的方式:export histcontrol=ignoreboth

4.3.3 命令補全

搜尋path環境變數所指定的每個路徑下以我們給出的字串開頭的可執行檔案,如果多於乙個,兩次tab,可以給出列表,否則將直接補全

4.3.4 路徑補全

搜尋我們給出的起始路徑下的每個檔名,並試圖補全

4.3.5 命令別名

1

aliascmdalias='command [options] [arguments]'

在shell中定義的別名僅在當前shell生命週期中有效,別名的有效範圍為當前的shell程序。

4.4 命令替換

1$(command)或`command`

把命令中某個子命令替換為其執行結果的過程,就叫做命令替換

4.5 檔名通配:globbing

*:匹配任意長度的任意字元

?:匹配任意單個字元

:匹配指定範圍內的任意單個字元

[abc],[a-m],[0-9]

[[:space:]]    表示空白字元

[[:punct:]]    表示標點符號

[[:lower:]]    表示小寫字母

[[:upper:]]    表示大寫字母

[[:alpha:]]    表示大小寫字母

[[:digit:]]    表示數字

[[:alnum:]]    表示數字和大小寫字母

使用man 7 glob命令可以獲得以上字元集合的幫助資訊!!!

[^]:匹配指定範圍之外的任意單個字元

4.6 環境變數:

path:命令搜尋路徑

histsize:命令歷史緩衝區大小

shell:當前shell

4.6.1 bash內建變數:

random:儲存著0-32768之間的隨機數

隨機數生成器:熵池

/dev/random:其生成的隨機數用盡時會阻塞使用者程序,待生成更多的隨機數裡即恢復,比較安全

/dev/urandom:其生成的隨機數用盡時會通過軟體模擬生成更多的隨機數進來,不會阻塞使用者程序

4.7 命令列展開

~:展開為使用者的主目錄

~username:展開為指定使用者的主目錄

{}:可承載乙個以逗號分隔的列表,並將其展開為多個路徑

/tmp/ ==> /tmp/a,/tmp/b

4.8 命令的執行結果狀態

bash使用特殊變數$?儲存最近一條命令的執行狀態結果

程式執行以後有兩類結果:

a) 程式的返回值

b) 程式的執行狀態結果

程式狀態返回**(0-255):

0:正確執行

1-255:錯誤執行,1、2、127系統預留,有特殊意義

第四章 bash特性詳解

第四章 bash特性詳解 03 02 base特性詳解 bash及其特性 shell 外殼 gui gnome,kde,xfce cli sh,csh,ksh,bash,tcsh,zsh linux允許同乙個使用者登入多次 root,student 程式 程序 程序 在每個程序看來,當前主機上只存在...

第四章 繼承

一 為什麼要繼承 在物件導向中我們將具有很多重複內容的類中的內容提取出來,寫成乙個單獨的類 其他類只需要繼承就能取得這些功能,同時可以在自己類中寫入獨特的自定義方法 二 繼承語法 inte ce circle nsobject 繼承是在介面中定義的 冒號後的類名是要整合的類,nsobject 是co...

第四章 物件

三個特性 身份 型別 值 每個物件都有唯一的身份來標識自己,使用內建函式id 得到。例子 usr bin env python coding utf 8 a 32 print a b a print id a id b 結果 d python27 python.exe e workp python ...