bash的基礎(chǔ)特性
命令處理機(jī)制
命令補(bǔ)全:
shell程序在接收到用戶執(zhí)行命令的請求,分析完成之后,最左側(cè)的字符串會被當(dāng)作命令
查找內(nèi)部命令:
根據(jù)PATH環(huán)境變量中設(shè)定的目錄,自左而右逐個搜索目錄下的文件
給定的打頭字符串如果能唯一標(biāo)識謀命令程序文件,按下TAB鍵將會則直接補(bǔ)全命令;
如不能唯一標(biāo)識某命令程序文件,再次按下TAB鍵,將會給出由給定字符串開頭的一系列命令列表。
路徑補(bǔ)全:
根據(jù)給定的起始路徑下,以給定的開頭字符串來逐一匹配起始路徑下的每個文件,TAB鍵操作同命令補(bǔ)全機(jī)制。
目錄管理類的命令:
mkdir命令:make directory
~]# mkdir [OPTION]...DIRECTORY...
-p:按需創(chuàng)建父目錄
-v:verbose,顯示詳細(xì)過程
-m:創(chuàng)建目錄時設(shè)置權(quán)限,沒有m選項(xiàng)則為默認(rèn)選項(xiàng)
注意:路徑基名方為命令的作用對象,基名之前的路徑必須存在
rmdir命令:刪除空目錄
~]# rmdir [OPTION]... DIRECTORY...
-p:刪除某空目錄后,如果上一級目錄也為空,則繼續(xù)刪除,直至非空目錄
命令行展開
~:自動展開為用戶或指定用戶的家目錄
{}:可承載一個以逗號分隔的路徑列表,并能夠?qū)⑵湔归_為多個路徑
如:
~]# mkdir -p /tmp/x/{y1{a,b},y2} 相當(dāng)于創(chuàng)建了tmp/x/y1/a,tmp/x/y1/b,tmp/x/y2目錄
~]# mkdir {a,b}_{c,d} 在當(dāng)前目錄下創(chuàng)建了a_c,a_d,b_c,b_d四個目錄
比較復(fù)雜的:
~]# mkdir -p /tmp/mysysroot/{bin,sbin,etc/sysconfig/network-scrpits,usr/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}
tree命令:
以樹狀結(jié)構(gòu)顯示目錄的層級結(jié)構(gòu)
~]# tree [OPTIONS][directory]
-l: level,指定要顯示的層級
命令的執(zhí)行狀態(tài)結(jié)果:
bash通過狀態(tài)返回值來輸出此結(jié)果:
成功為0,失敗為1-255
命令執(zhí)行完成后,其狀態(tài)返回值保存于bash的特殊變量“$?”中,通過命令~]# ehco $? 調(diào)用
有些命令正常執(zhí)行時還會有命令返回值,但這不是狀態(tài)返回值
根據(jù)命令及其功能不同,結(jié)果各不相同
引用命令的執(zhí)行結(jié)果:
$(COMMAND)或反引號`(COMMAND)`
如:~]# mkdir $(date +%H-%M-%S)
~]# mkdir `date +%H-%M-%S`
bash的引用
強(qiáng)引用:''
弱引用:""
命令引用:``
bash的快捷鍵
ctrl + a:跳轉(zhuǎn)至命令行首
ctrl + e:跳轉(zhuǎn)至命令行尾
ctrl + u:刪除行首至光標(biāo)所在處之間的所有字符
ctrl + k:刪除光標(biāo)所在處至行尾的所有字符
ctrl + l:清屏,相當(dāng)于clear
文本查看類命令:
- cat
- tac
-
more命令
分屏查看文本內(nèi)容,不可向上翻頁 -
less命令
可通過home鍵,end鍵,PgUP鍵,PgDn鍵,↑鍵,↓鍵實(shí)現(xiàn)翻屏或翻頁 -
head命令
查看文件的前n行,默認(rèn)為10行
~]# head [options] FILE
-n 20 可以直接寫成-20 -
tail命令
查看文件末尾n行
~]# tail [options] FILE
-n 用法同head命令
-f 查看文件尾部內(nèi)容結(jié)束后不退出,跟隨顯示新增的行,其它終端通過追加添加文本內(nèi)容 -
stat命令
顯示文件或文件系統(tǒng)狀態(tài)(元數(shù)據(jù))
stat FILE...
每個文件都有兩類數(shù)據(jù):元數(shù)據(jù)(metadata),數(shù)據(jù)(data)
時間戳- access time:
- modify time:
- change tme:
-
touch命令
修改時間戳
~]# touch [POSTION][PATH]
-c 不創(chuàng)建空文件
-a 僅修改access time
-m 僅修改modify time
-t STAMP [[CC]YY]MMDDhhmm[.ss]