bash的工作特性之命令執行狀態返回值和命令行展開

bash特性之一:命令別名

將一個命令用其他名字來代替,可以用別名來簡化操作。

獲取當前用戶可用的別名的定義:

~]#alias NAME=COMMAND

bash的特性之二:命令歷史

shell進程會保存其會話中用戶曾經執行過的命令;命令通過其“歷史文件”來持久保存此前執行過的命令;每個用戶都有其自己專用的歷史文件;

HISTSIZEshell進程的緩沖區保留的歷史命令的條數;

HISTFILESIZE:命令歷史文件可保存的歷史命令的條數;

默認均為1000;

bash的工作特性之命令執行狀態返回值和命令行展開 

命令語法格式:

history [-c] [-d OFFSET] [n]

history -anrw [FILENAME]

history -ps VALUE [VALUE]

-c: 清空命令歷史;

-d offset(偏移量):刪除指定命令歷史,offsethistory顯示出來的命令數字

-r: 從文件讀取命令歷史至歷史列表中;

-w:把歷史列表中的命令追加至歷史文件中;

history #:顯示最近的#條命令;

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

   環境變量:HISTCONTROL(/etc/profile配置文件中控制)

          ignoredups:忽略重復的命令,連續且相同方為“重復”

          ignorespace:忽略所有以空白開頭的命令

          ignoreboth=以上兩個之和

修改環境變量值得方法:export變量名=“值”

變量賦值:把賦值符號后面的數據存儲于變量名指向的內存空間。

 

bash特性之三:快捷鍵

   ctrl+a:跳轉至命令行行首

   ctrl+e:跳轉至命令行行尾

   ctrl+u:刪除行首至光標所在處之間的所有字符;

   ctrl+k:刪除光標所在處至行尾的所有字符;

   ctrl+l:清屏,相當于clear

   ctcl+c:取消命令的執行

 

bash的特性之四:命令補全和路徑補全

 

1.命令查找和補全機制:

bash執行命令

   內部命令:內部命令沒有具體的二進制文件,而是有內核提供的。

   外部命令:bash根據PATH 環境變量定義的路徑,自左而右在每個路徑搜尋已給定命令命命名的文件,第一次找到即為要執行的命令。

    補全方法:給定開頭的部分字符串如果能惟一標識某命令程序文件,則直接補全;

    不能惟一標識某命令程序文件,再擊tab鍵一次,會給出列表;

2.路徑補全

在給定起始路徑下,以對應路徑下的打頭字串逐一匹配起始路徑下每個文件:

TAB按鍵;

如果能惟一標識,則直接補全;

否則,再一次tab,給出列表;

3.命令行展開

~:自動展開為用戶的家目錄,或指定的用戶的家目錄;

{}:花括號展開。可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;

 

bash的特性之五:命令行展開

 

1)、命令行展開;

以某些bash能夠解釋的符號來代替命令中的某些參數。

~:展開為用戶的目錄;

例:切換至目錄

 cd ~

~USERNAME:展開為指定用戶的主目錄

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

例:在/tmp/d目錄下創建f1,f2,f3三個文件

    touch /tmp/d/f{1,2,3}

    /tmp/{ab}=/tmp/a,/tmp/b

 

bash特性之六:命令的執行結果狀態

    bash的基礎特性之狀態值返回:在bash中使用一個特殊的變量$?來保存上一個命令的執行狀態結果:用法 ~]# echo $?

0表示成功,

1-255表示失敗

bash的工作特性之命令執行狀態返回值和命令行展開 

同樣程序執行也有兩類結果:

程序的返回值:程序的功能定義

程序的執行狀態結果:程序執行完成后的狀態

bash特性之七:變量

程序:指令+數據

數據:文件、變量;

變量:內存空間,有名稱,名稱即為變量名,對應的內存空間中的數據即為變量的值;

變量賦值:NAME=VALUE

=:賦值符號;

VALUE存儲到NAME指向的內存空間中;

編程語言:

強類型:嚴格區分變量中的數據類型;

弱類型:不區分變量中存儲的數據類型,統一為字符型;

bash:統統默認為字符型數據;變量無需事先聲明;

變量替換:把變量引用符號出現的位置替換為其指向的內存空間中的數據;

bash變量種類:

本地變量:作用域為當前shell進程;不包括其子進程;

環境變量:使用域為當前shell進程及其子進程;

局部變量:

作用域:生效范圍,也即可引用到的范圍;

本地變量:

   變量賦值:NAME=VALUE

    變量引用:$NAME, ${NAME}

查看變量:set

撤銷變量:unset NAME

注意:此處非為變量引用,因此不能使用$;

所有的本地變量在shell進程終止時,會被自動撤銷;

環境變量:

變量聲明和賦值:

declare -x NAME[=VALUE]

export NAME[=VALUE]

引用方式:

${NAME}, $NAME

注意:bash內嵌了許多環境變量,名稱為全大寫字母,例如UID、HOME、PWD、SHELL, PATH, HISTSIZE等等;

環境變量查看:

export, declare -x  ,env, printenv

撤銷環境變量:

unset NAME

只讀變量:常量

(1) declare -r NAME

(2) readonly NAME

不支持重新賦值,也不支持撤銷操作;

bash的工作特性之命令執行狀態返回值和命令行展開 

 

原創文章,作者:N24_云淡風輕,如若轉載,請注明出處:http://www.www58058.com/57986

(0)
N24_云淡風輕N24_云淡風輕
上一篇 2016-11-06
下一篇 2016-11-06

相關推薦

  • NoSQL之MongoDB

    分布式系統理論 1、 CAP: 分布式系統只能滿足其中兩個? Consistency :一致性 Availibility:可用性 Partitions Tolerance :分區容錯性 C,A : SQL 傳統的數據庫。 兩段機制。 C,P :悲觀枷鎖機制,分布式加鎖機制。加鎖機制與SQL不太一樣。 這里的C為最終一致性。 放棄C后的特例,既可以保證可用性,…

    2018-01-09
  • linux 小命令

    設置自動登錄、設置網絡自動連接、字體顏色

    2017-11-19
  • centos 6.5下搭建svn服務端

    1、先配置好yum源,svn的包在系統光盤里就有 2、yum install subversion #安裝svn的服務端程序 3、mkdir -p /application/svndata #創建svn的數據存儲目錄,名字可以隨便取 4、svnserve -d -r /application/svndata/ #指定svn的數據存儲目錄,就是剛才創建的 5、…

    Linux干貨 2015-10-08
  • linux入門學習動手部分

    linux入門學習了幾天,各種命令跟選項如果靠記憶很容易忘記,通過下面隨堂實驗加深記憶 實驗操作部分 enable 命令使用 禁用內部命令 enable -n echo 禁用echo命令 重新啟用echo命令 enable echo type 命令使用 type -a echo 列出所有echo的內部命令外部命令 type -p cd 顯出cd外部命令的路徑…

    Linux干貨 2017-05-20
  • 15-2用戶系統資源配額

    用戶資源系統配額 在系統中,允許系統用戶使用存儲空間,但是不能限制的讓用戶隨意使用存儲空間,對用戶存儲空間的設定就是用戶資源系統配額。 下面以/home 為例,通常如果系統中有一定的用戶,會把用戶的家目錄作為一個單獨的分區,從而實現更好的管理。下面具體講解如何把用戶家目錄從根系統分區分離出來進行磁盤配額。 1、拿出一個未使用的分區,把用戶家目錄的數據拷貝到新…

    Linux干貨 2016-12-02

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-11-10 20:17

    總結的比較詳細,注意下排版會更好~

欧美性久久久久