bash基礎特性(1)
所有的環境變量可以通過 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)