bash的基礎(chǔ)特性
命令處理機(jī)制
命令補(bǔ)全:
shell程序在接收到用戶執(zhí)行命令的請(qǐng)求,分析完成之后而晒,最左側(cè)的字符串會(huì)被當(dāng)作命令
查找內(nèi)部命令:
根據(jù)PATH環(huán)境變量中設(shè)定的目錄通熄,自左而右逐個(gè)搜索目錄下的文件
給定的打頭字符串如果能唯一標(biāo)識(shí)謀命令程序文件决采,按下TAB鍵將會(huì)則直接補(bǔ)全命令;
如不能唯一標(biāo)識(shí)某命令程序文件纵柿,再次按下TAB鍵,將會(huì)給出由給定字符串開頭的一系列命令列表启绰。
路徑補(bǔ)全:
根據(jù)給定的起始路徑下昂儒,以給定的開頭字符串來逐一匹配起始路徑下的每個(gè)文件,TAB鍵操作同命令補(bǔ)全機(jī)制委可。
目錄管理類的命令:
mkdir命令:make directory
~]# mkdir [OPTION]...DIRECTORY...
-p:按需創(chuàng)建父目錄
-v:verbose渊跋,顯示詳細(xì)過程
-m:創(chuàng)建目錄時(shí)設(shè)置權(quán)限,沒有m選項(xiàng)則為默認(rèn)選項(xiàng)
注意:路徑基名方為命令的作用對(duì)象着倾,基名之前的路徑必須存在
rmdir命令:刪除空目錄
~]# rmdir [OPTION]... DIRECTORY...
-p:刪除某空目錄后拾酝,如果上一級(jí)目錄也為空,則繼續(xù)刪除卡者,直至非空目錄
命令行展開
~:自動(dòng)展開為用戶或指定用戶的家目錄
{}:可承載一個(gè)以逗號(hào)分隔的路徑列表蒿囤,并能夠?qū)⑵湔归_為多個(gè)路徑
如:
~]# 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四個(gè)目錄
比較復(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)顯示目錄的層級(jí)結(jié)構(gòu)
~]# tree [OPTIONS][directory]
-l: level,指定要顯示的層級(jí)
命令的執(zhí)行狀態(tài)結(jié)果:
bash通過狀態(tài)返回值來輸出此結(jié)果:
成功為0崇决,失敗為1-255
命令執(zhí)行完成后材诽,其狀態(tài)返回值保存于bash的特殊變量“$?”中,通過命令~]# ehco $? 調(diào)用
有些命令正常執(zhí)行時(shí)還會(huì)有命令返回值恒傻,但這不是狀態(tài)返回值
根據(jù)命令及其功能不同脸侥,結(jié)果各不相同
引用命令的執(zhí)行結(jié)果:
$(COMMAND)或反引號(hào)`(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)容盈厘,不可向上翻頁(yè) -
less命令
可通過home鍵睁枕,end鍵,PgUP鍵扑庞,PgDn鍵譬重,↑鍵,↓鍵實(shí)現(xiàn)翻屏或翻頁(yè) -
head命令
查看文件的前n行罐氨,默認(rèn)為10行
~]# head [options] FILE
-n 20 可以直接寫成-20 -
tail命令
查看文件末尾n行
~]# tail [options] FILE
-n 用法同head命令
-f 查看文件尾部?jī)?nèi)容結(jié)束后不退出臀规,跟隨顯示新增的行,其它終端通過追加添加文本內(nèi)容 -
stat命令
顯示文件或文件系統(tǒng)狀態(tài)(元數(shù)據(jù))
stat FILE...
每個(gè)文件都有兩類數(shù)據(jù):元數(shù)據(jù)(metadata)栅隐,數(shù)據(jù)(data)
時(shí)間戳- access time:
- modify time:
- change tme:
-
touch命令
修改時(shí)間戳
~]# touch [POSTION][PATH]
-c 不創(chuàng)建空文件
-a 僅修改access time
-m 僅修改modify time
-t STAMP [[CC]YY]MMDDhhmm[.ss]