命令格式
COMMAND [OPTIONS…] [ARGUMENTS..]
[OPTIONS..] 選項:用于啟用或關閉命令的某個或某些功能
短選項: -c ,例如:-l ,-a ,-h…
長選項:–all, 例如:–utc, –help,–word, –human-readable
[ARGUMENTS..]參數:命令的作用對象,比如文件名,用戶名等
注意:多個選項以及多參數和命令之間使用空白字符隔開
取消和結束命令執行:Ctrl+c(強制退出) Ctrl+d(正常退出)
多個命令一起執行用 “;”隔開
例:ls;pwd;hostname;alias
命令的類型
命令是怎樣執行的呢?輸入命令后按回車,提請shell程序找到鍵入命令所對應的可執行程序或代碼 ,
并由其分析后提交給內核分配資源將其運行起來。
在shell中可執行的命令有兩類
命令分為內部命令和外部命令
內部命令:是shell內部自帶的,內部命令依賴與shell類型,內部命令優先于外部命令!
# help 內部命令列表
# enable cmd 啟用內部命令
# enable -n cmd 禁用內部命令
# enable -n 列出所有禁用的內部命令
外部命令:在文件系統路徑下有對應的可執行程序文件
查看路徑:which COMMAND 列出外部命令路徑
which -a COMMAND 顯示別名以及外部命令所有路徑
which –skip-alias COMMAND 忽略別名只顯示外部命令路徑
whereis COMMAND 列出外部命令所有路徑以及命令本身man幫助文檔
判斷當前生效的命令是內部或外部命令:
# type COMMAND
# type -a COMMAND 顯示內部命令和外部命令
# type -P COMMAND 顯示外部命令的路徑
例:~]#type history
history is a shell builtin
執行外部命令
HASH緩存表:系統初始hash表為空,當外部命令執行時,默認會從PATH路徑下尋找
該命令,找到后會將這條命令的路徑記錄到hash表中,當再次使用該命令時,shell
解釋器首先會查看hash表,存在將執行之,如果不存在,將會去PATH路徑下尋找。
hash基本用法:
# hash 顯示hash緩存
# hash -l 顯示hash緩存詳細信息
# hash -d name 清除name(別名)緩存
# hash -t name 顯示單個name(別名)路徑
# hash -p path name 將命令全路徑path起別名為name
# hash -r 清空所有緩存
執行命令的順序:
1.先從內部命令查找,如果有將直接執行
2.再從hash pash 里查找
3.最后再查找$PATH
命令別名
列出當前shell進程所有可用的命令別名
# alias
定義別名NAME,其相當于執行命令VALUE
alias NAME=’VALUE’
例:alias cdnet=’cd /etc/sysconfig/network-scripts/’
在命令行中定義的別名,僅對當前shell進程有效
如果想永久有效,要定義在配置文件中
僅對當前用戶: ~/.bashrc
對所有用戶有效:/etc/bashrc
例:~]#nano .bashrc
alias rm=’rm -i’
alias cdnet=’cd /etc/sysconfig/network-scripts/ ‘
編輯配置給出的新配置不會立即生效
bash進程重新讀取配置文件
source .bashrc或. .bashrc
取消別名NAME,只能臨時取消: # unalias name
# unalias -a name
如果原始命令和別名同名,要執行原始命令
# \COMMAND
# ‘COMMAND’
原創文章,作者:shenjialong,如若轉載,請注明出處:http://www.www58058.com/76507