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.命令行展開

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

{}:花括號展開??沙休d一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;

 

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

 

1)、命令行展開;

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

~:展開為用戶的目錄;

例:切換至目錄

 cd ~

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

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

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

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

    /tmp/{a,b}=/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、HOMEPWD、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 18:37
下一篇 2016-11-06 18:52

相關推薦

  • 馬哥教育網絡班22期+第二周課程練習

    week2作業: 1.linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 (1)touch 功能:創建文件 示例:  [root@director1 example]# touch file1 file2 [root@director1 example]# ll to…

    Linux干貨 2016-08-22
  • iptables之nat

    NAT網絡地址轉換SNAT:修改IP報文中的源IP地址 本地向互聯網請求讓本地網絡中的主機可使用統一地址與外部通信,從而實現地址偽裝請求:修改源IP,如果修改則由光梨園定義響應:修改目標IP,由nat自動根據會話表中追蹤機制實現相應修改DNAT:修改目標地址轉換 外網服務器向其他客戶端請求請求:由外網主機發起,修改其目標地址,由管理員定義相應:修改源地址,但…

    2017-11-12
  • CentOS多網卡單個ip和單個網卡多個ip的設置

    一、單個網卡設置一個IP地址     1.初始狀態已添加一個網卡eth0,并設置的均為自動獲取IP地址,如下圖所示:網卡為eth0,ip地址為10.1.249.36;為了后續實驗的順利進行,我們把NetworkManager服務關閉     chkconfig NetworkMa…

    Linux干貨 2016-09-06
  • N25期—第五周作業

    1、 顯示當前系統上root、fedora或user1用戶的默認shell; grep -E "^(root|fedora|user1):" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某單詞后面…

    Linux干貨 2017-01-02
  • 磁盤管理進階

    1、/etc/fstab文件     設備名 掛載點 文件系統 掛載選項 轉儲頻率 自檢次序     UUID=e79e4c9d-8d0f-4675-8945-9ec23ea77c67 /             &nb…

    Linux干貨 2016-09-02
  • 馬哥教育網絡班21期-第一次課程作業

    計算機組成部分及其作用 1.總線 電子管道,攜帶信息字節并在各個部件間傳輸。分為地址總線,數據總線,控制總線。 CPU最大可尋址范圍:2^N*M,  N為地址總線數量,M為數據總線數量。 2.I/O設備 I/O設備及輸入輸出設備,最常見的輸入設備就是我們非常熟悉的鍵盤,鼠標,我們通過我們通過這些設備向計算機傳達指令,讓計算機完成我們想要它完成的工作…

    Linux干貨 2016-06-29

評論列表(1條)

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

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

欧美性久久久久