1. 程式人生 > >bash基礎特性(1)

bash基礎特性(1)

defaults history 緩沖區 記錄 歷史

所有的環境變量可以通過 ehco $# 查看 #為環境變量

bash的基礎特性:


(1)命令歷史

history

環境變量:

HISTSIZE:命令歷史記錄的條數

HISTFILE;~/.bash_history

HISTFILESIZE:命令歷史文件記錄歷史的條數


history -d offset 刪除某條歷史命令

history -c 清空歷史命令

history #:顯示歷史中最近的#條命令

history -a:手動追加當前回話緩沖區的命令歷史至歷史文件中


調用歷史中的命令:

!#:重復執行第#條指令

!#:重復最近以#開頭的指令


調用上一條命的最後一個參數:

!$:

實例:

[[email protected]_IT ~]# cat /etc/fstab

/dev/vda1 / ext3 noatime,acl,user_xattr 1 1

proc /proc proc defaults 0 0

sysfs /sys sysfs noauto 0 0

debugfs /sys/kernel/debug debugfs noauto 0 0

devpts /dev/pts devpts mode=0620,gid=5 0 0

[[email protected]_IT ~]# ls -l !$

ls -l /etc/fstab

-rw-r--r--. 1 root root 396 May 11 19:56 /etc/fstab

[[email protected]_IT ~]#


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

環境變量:HISTCONTORL

ignoredups:忽略連續重復命令(默認)

ignorespece:忽略以空格開頭的指令

ignoreboth:上述兩個都生效


修改環境變量值得方式:export 變量名="值"

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



(2)命令補全

bash執行命令:

內部命令;

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


直接補全:Tab,用戶給定的字符串只有一條唯一對應的命令。

以用戶給定的字符串開頭對應的命令不唯一,則再次Tab可列出所有以該字符串開頭的命令,方式如外部命令。


(3)路徑補全

把用戶給的字符串當做路徑開頭,並在其指定上級目錄下搜索以指定的字符串開頭的文件名

如果唯一:則給出結果

不唯一:再次Tab,給出列表


(4)命令行展開

{}:可承載一個以都好分隔的列表,並將其展開為多個路徑

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


(5)命令執行結果狀態

成功

失敗


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

0:成功

1-255:失敗


程序執行有兩個結果:

程序的返回值

程序的執行狀態結果


bash基礎特性(1)