久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

五分鐘搞定Bash功能與使用技巧

一個(gè)完整計(jì)算機(jī)的體系結(jié)構(gòu)包括:硬件與軟件,而軟件又分為系統(tǒng)軟件與應(yīng)用軟件,負(fù)責(zé)對(duì)硬件僅需管理與操作的是系統(tǒng)軟件的內(nèi)核部分,用戶是無(wú)法與硬件或內(nèi)核打交道的,用戶通過(guò)應(yīng)用程序或部分系統(tǒng)軟件發(fā)出指令(可能是通過(guò)瀏覽器發(fā)送一封郵件),這些指令會(huì)被翻譯并傳給內(nèi)核,內(nèi)核在得知用戶的需求后調(diào)度硬件資源來(lái)完成操作(比如,使用網(wǎng)卡發(fā)送數(shù)據(jù)包)。

在Linux環(huán)境下,我們一般通過(guò)Shell來(lái)與內(nèi)核交流,并最終實(shí)現(xiàn)我們想要使用計(jì)算機(jī)資源的目的。由于Linux的開(kāi)放性特點(diǎn),使得在Linux下對(duì)Shell的選擇也很多,CentOS 6.3系統(tǒng)中可以使用的Shell有/bin/sh、/bin/bash、/bin/tcsh、/bin/csh這幾種,/etc/shells文件說(shuō)明了當(dāng)前系統(tǒng)有哪些可用的Shell。不同的Shell有不同的特點(diǎn)以及操作方式,我們這里以CentOS默認(rèn)使用的Shell為講解案例即Bash。

BASH功能介紹

 

1命令歷史

 

Bash擁有自動(dòng)記錄命令歷史的功能,用戶所執(zhí)行的命令會(huì)在注銷(xiāo)時(shí)自動(dòng)記錄到自己家目錄下的.bash_history 這樣一個(gè)隱藏文件中。查看這些命令歷史記錄的方法有很多,可以通過(guò)直接打開(kāi)文件來(lái)查看,也可以通過(guò)鍵盤(pán)的上下鍵來(lái)上翻或下翻歷史記錄,還可以通過(guò)history命令查看歷史記錄,所有的命令歷史都有記錄編號(hào)。命令歷史能夠記錄的信息數(shù)量由HISTSIZE變量所決定,CentOS 6.3默認(rèn)通過(guò)/etc/profile文件定義了HISTSIZE=1000,也就是最多可以記錄最近所使用的1000條命令,當(dāng)有第1001條命令執(zhí)行時(shí)第一條命令會(huì)被覆蓋,執(zhí)行history -c命令可以清空所有的歷史記錄。

記錄命令歷史的除了可以查看歷史記錄外,還可以在需要時(shí)直接調(diào)用歷史記錄再次執(zhí)行該命令:

1.上下鍵翻閱歷史命令,找到合適的命令后直接回車(chē)即可執(zhí)行。

2. 輸入!string調(diào)用命令歷史(string為關(guān)鍵字),如!vim將調(diào)用最后一次執(zhí)行的以vim開(kāi)頭的命令。或者通過(guò)!n來(lái)準(zhǔn)確定位歷史記錄,如!242將直接調(diào)用命令歷史的第242條記錄并執(zhí)行。

3. 通過(guò)Ctrl+r快捷鍵打開(kāi)搜索功能,接著輸入關(guān)鍵字即可在命令歷史中搜索相關(guān)命令,回車(chē)完成執(zhí)行操作。如果沒(méi)有搜索到適合的命令按ESC鍵退出搜索。

2命令別名

 

在CentOS 6.3系統(tǒng)中我們可以直接使用ll命令來(lái)顯示文件的詳細(xì)信息,其實(shí)系統(tǒng)中并沒(méi)有l(wèi)l這樣一個(gè)命令,它僅是被提前定義好的一個(gè)別名而已,別名的好處是可以把本來(lái)很長(zhǎng)的指令簡(jiǎn)化縮寫(xiě),為常用且復(fù)雜的命令及選項(xiàng)創(chuàng)建別名可以大大提高日常工作效率。

五分鐘搞定Bash功能與使用技巧

3管道與重定向

 

Bash的標(biāo)準(zhǔn)輸入設(shè)備是鍵盤(pán)、鼠標(biāo)、手寫(xiě)板等設(shè)備,標(biāo)準(zhǔn)輸出為顯示器,一般我們通過(guò)鍵盤(pán)輸入命令并執(zhí)行,系統(tǒng)將返回信息顯示在屏幕上,默認(rèn)不管是正確的還是錯(cuò)誤的信息都將輸出至顯示器。標(biāo)準(zhǔn)輸入的文件描述符為0,標(biāo)準(zhǔn)輸出的文件描述符為1,錯(cuò)誤輸出的文件描述符為2。但有時(shí)我們需要改變這樣的標(biāo)準(zhǔn)輸入與輸出方式,Linux中我們可以使用重定向符(<、>、<<、>>、|)重新定義輸入與輸出。

管道使得我們可以將多條命令連接在一起使用,它的作用是將一個(gè)命令的標(biāo)準(zhǔn)輸出重定向給下一個(gè)命令并作為該命令的標(biāo)準(zhǔn)輸入。例如,使用ifconfig eth0 | grep ‘inet addr’命令過(guò)濾包含IP地址的行,ifconfig本身會(huì)輸出大量網(wǎng)絡(luò)接口的信息,由于這里使用了管道符號(hào)(|)所以ifconfig命令的所有輸出都將作為grep命令的輸入內(nèi)容,最終實(shí)現(xiàn)過(guò)濾包含IP地址的行。

對(duì)于標(biāo)準(zhǔn)的輸出信息是輸出至顯示器,而有時(shí)你可能并不需要這些輸出信息,又或者是暫時(shí)不需要在屏幕上看到這些信息;另外對(duì)于輸入一般是通過(guò)鍵盤(pán)輸入,而有時(shí)你或許希望可以從文件中讀取輸入信息。輸出重定向可以使用>或>>符號(hào),使用>可以將輸出導(dǎo)入至文件,如果文件不存在則創(chuàng)建該文件,如果文件已經(jīng)存在則會(huì)覆蓋該文件的內(nèi)容;而使用>>可以將輸出追加至文件;另外,對(duì)應(yīng)錯(cuò)誤信息的重定向需要使用2>或2>>符號(hào)實(shí)現(xiàn)。輸入重定向可以使用<符號(hào),它可以可以幫助我們從文件中提取輸入信息。

以下通過(guò)幾個(gè)簡(jiǎn)單的實(shí)例演示重定向的使用方法:

五分鐘搞定Bash功能與使用技巧

4快捷鍵

 

Bash準(zhǔn)備了大量的快捷鍵為用戶使用,熟練掌握這些快捷鍵的全部或部分會(huì)使你在工作中受益頗多,開(kāi)始的時(shí)候你可能需要花費(fèi)大量的時(shí)間來(lái)記憶這些快捷鍵,但一旦你記住了他們,你的工作效率會(huì)直線上升。下面列出了常用的快捷鍵及其功能描述。

五分鐘搞定Bash功能與使用技巧
BASH使用技巧

 

1重定向技巧

 

1.如果你編寫(xiě)了一個(gè)腳本實(shí)現(xiàn)自動(dòng)修改系統(tǒng)帳號(hào)的密碼,那么默認(rèn)當(dāng)密碼修改成功后系統(tǒng)會(huì)提示successfully這樣的提示信息,如果需要修改20個(gè)賬戶密碼則顯示20條這樣的信息。像這樣的案例,大量的成功提示信息并不是我們關(guān)注的重點(diǎn),管理員更多的是關(guān)心錯(cuò)誤提示。所以這時(shí)可以考慮將標(biāo)準(zhǔn)正確輸出屏蔽,Linux中提供了一個(gè)特殊設(shè)備/dev/null,它很像太陽(yáng)黑洞,任何東西往里寫(xiě)入都將永遠(yuǎn)消失。對(duì)大量無(wú)意義的輸出信息可以通過(guò)管道導(dǎo)入至/dev/null設(shè)備。

五分鐘搞定Bash功能與使用技巧

2.標(biāo)準(zhǔn)輸出與錯(cuò)誤輸出分離重定向

很多時(shí)候自動(dòng)運(yùn)行的腳本編寫(xiě)完成后,是要在深夜服務(wù)器負(fù)載最低時(shí)以無(wú)人職守方式運(yùn)行的,那么當(dāng)管理員去檢查腳本運(yùn)行情況時(shí)會(huì)希望看到哪些命令執(zhí)行成功了,哪些命令出現(xiàn)了問(wèn)題,并且為了方便管理需要將正確輸出與錯(cuò)誤輸出分寫(xiě)保存在兩個(gè)不同的記錄文件中,那么分離重定向就顯得尤為重要了。下面我們檢查系統(tǒng)中是否存在tom用戶,如果存在則將tom相關(guān)信息記錄至user文件中,否則記錄至error文件中:

五分鐘搞定Bash功能與使用技巧

2命令序列

 

在Linux中我們可以使用控制字符(;、&&、||、&)來(lái)控制命令的執(zhí)行方式。其中[&]控制符使得命令開(kāi)啟一個(gè)子Shelll并在后臺(tái)執(zhí)行;使用[;]控制字符可以把多個(gè)命令組合,但多個(gè)命令之間沒(méi)有任何邏輯上的關(guān)系,僅按循序執(zhí)行;使用[&&]控制字符也可以將多個(gè)命令組合,但僅當(dāng)前一個(gè)命令執(zhí)行成功后才會(huì)執(zhí)行[&&]控制符后面的命令;[||]控制字符的作用與[&&]剛好相反,僅當(dāng)前一個(gè)命令執(zhí)行失敗才會(huì)執(zhí)行[||]控制符后面的命令。下面通過(guò)實(shí)例演示。

1.火狐瀏覽器通過(guò)前端啟動(dòng),使得當(dāng)前Shell將暫時(shí)無(wú)法使用:

[root@centos6 ~]# firefox

2.后臺(tái)運(yùn)行瀏覽器,不影響當(dāng)前Shell的使用:

[root@centos6 ~]# firefox &

3.所有命令按順序執(zhí)行(不管前面的命令是否成功,后面的命令一定正常執(zhí)行):

[root@centos6 ~]# ls /tmp ; ls /root ; ls /home

4.如果某個(gè)文件存在則顯示該文件內(nèi)容,否則報(bào)錯(cuò)(僅當(dāng)ls執(zhí)行成功才會(huì)執(zhí)行cat):

[root@centos6 ~]# ls test.txt && cat test.txt

5.如果有g(shù)edit編輯器則打開(kāi)該程序,否則打開(kāi)vim編輯器:

[root@centos6 ~]# gedit || vim

6.如果id tom執(zhí)行成功則說(shuō)明用戶存在屏幕將顯示Hi,tom,否則顯示No such user:

[root@centos6 ~]# id tom &>/dev/null && echo “Hi,tom” || echo “No such user”

實(shí)例5首先通過(guò)&>重定向符將id命令的所有輸出屏蔽,讓后使用&&與||來(lái)判斷id命令是否執(zhí)行成功,成功就顯示問(wèn)候語(yǔ)否則顯示沒(méi)有該用戶。

3作業(yè)控制

 

Bash環(huán)境中通過(guò)命令開(kāi)啟進(jìn)程的時(shí)候使用&符可以使得該進(jìn)程進(jìn)入后臺(tái)執(zhí)行,或者一個(gè)命令執(zhí)行后使用Ctrl+z快捷鍵可以將該進(jìn)程放入后臺(tái)并暫停執(zhí)行,以后隨時(shí)使用jobs命令可以查看這些后臺(tái)進(jìn)程,并且會(huì)為每個(gè)這樣的進(jìn)程分配一個(gè)編號(hào),通過(guò)fg <編號(hào)>的形式可以將這些后臺(tái)進(jìn)程再次調(diào)回前臺(tái)執(zhí)行。

[root@centos6 ~]# firefox &

[root@centos6 ~]# jobs

[1]+  Running                 firefox &

[root@centos6 ~]# fg 1

4花括號(hào){}的使用

 

通過(guò)括號(hào)擴(kuò)展可以生產(chǎn)命令行或腳本需要的字串,括號(hào)中可以包含連續(xù)的序列或使用逗號(hào)分割的多個(gè)項(xiàng)目,連續(xù)的序列包括一個(gè)起點(diǎn)與一個(gè)終點(diǎn)并使用..分割。接下來(lái)看看具體的語(yǔ)法格式案例:

五分鐘搞定Bash功能與使用技巧

作者:丁丁歷險(xiǎn)

來(lái)源:http://manual.blog.51cto.com/3300438/1131800

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專(zhuān)業(yè)人才培訓(xùn)機(jī)構(gòu)!

    1. 主站蜘蛛池模板: 黄陵县| 汝州市| 霸州市| 西充县| 大兴区| 兴国县| 于都县| 垣曲县| 柳河县| 绥阳县| 江阴市| 彩票| 白沙| 吉林市| 崇阳县| 甘泉县| 本溪| 微博| 平山县| 鹤岗市| 中方县| 柳河县| 西丰县| 军事| 滦平县| 鹿泉市| 台中市| 浠水县| 富顺县| 余干县| 柏乡县| 渝北区| 同江市| 凉山| 汝阳县| 安龙县| 日土县| 苗栗县| 巴彦淖尔市| 车致| 曲周县|