Linux運(yùn)維必備技能第二彈~
想告訴大家,Unix/Linux下,最有效率技巧的不是操作圖形界面,而是命令行操作,因?yàn)槊钚幸馕吨詣?dòng)化。如果你知道Linux有多強(qiáng)大,而這個(gè)強(qiáng)大完全來自于命令行。那么想要成為一名優(yōu)秀的Linux運(yùn)維工程師一定要學(xué)習(xí)一些技能,今天小編要跟大家分享的文章是想要成為Linux運(yùn)維工程師都需要學(xué)習(xí)哪些技能?相信對你一定會(huì)有很大的幫助!
二、日常
o??在bash里,使用Ctrl-R而不是上下光標(biāo)鍵來查找歷史命令。
o??在bash里,使用Ctrl-W來刪除最后一個(gè)單詞,使用Ctrl-U來刪除一行。請man bash后查找Readline Key Bindings一節(jié)來看看bash的默認(rèn)熱鍵,比如:Alt-.把上一次命令的最后一個(gè)參數(shù)打出來,而Alt-*則列出你可以輸入的命令。
o??回到上一次的工作目錄:cd–?(回到home是cd ~)
o??使用xargs。這是一個(gè)很強(qiáng)大的命令。你可以使用-L來限定有多少個(gè)命令,也可以用-P來指定并行的進(jìn)程數(shù)。如果你不知道你的命令會(huì)變成什么樣,你可以使用xargs echo來看看會(huì)是什么樣。當(dāng)然,-I{}也很好用。示例:
o??pstree -p可以幫你顯示進(jìn)程樹。
o??使用pgrep和pkill來找到或是kill某個(gè)名字的進(jìn)程。(-f選項(xiàng)很有用)。
o??了解可以發(fā)給進(jìn)程的信號(hào)。例如:要掛起一個(gè)進(jìn)程,使用kill -STOP [pid].使用man 7 signal來查看各種信號(hào),使用kill -l來查看數(shù)字和信號(hào)的對應(yīng)表。
o??使用nohup或?disown如果你要讓某個(gè)進(jìn)程運(yùn)行在后臺(tái)。
o??使用netstat -lntp來看看有偵聽在網(wǎng)絡(luò)某端口的進(jìn)程。當(dāng)然,也可以使用lsof。
o??在bash的腳本中,你可以使用set -x來debug輸出。使用set -e來當(dāng)有錯(cuò)誤發(fā)生的時(shí)候abort執(zhí)行。考慮使用set -o pipefail來限制錯(cuò)誤。還可以使用trap來截獲信號(hào)(如截獲ctrl+c)。
o??在bash腳本中,subshells (寫在圓括號(hào)里的)是一個(gè)很方便的方式來組合一些命令。一個(gè)常用的例子是臨時(shí)地到另一個(gè)目錄中,例如:
o??在bash中,注意那里有很多的變量展開。如:檢查一個(gè)變量是否存在: ${name:?error message}。如果一個(gè)bash的腳本需要一個(gè)參數(shù),也許就是這樣一個(gè)表達(dá)式input_file=${1:?usage: $0 input_file}。一個(gè)計(jì)算表達(dá)式:i=$(( (i + 1) % 5 ))。一個(gè)序列:{1..10}。截?cái)嘁粋€(gè)字符串:${var%suffix}和${var#prefix}。示例:if var=foo.pdf, then echo ${var%.pdf}.txt prints“foo.txt”。
o??通過<(some command)可以把某命令當(dāng)成一個(gè)文件。示例:比較一個(gè)本地文件和遠(yuǎn)程文件/etc/hosts:diff /etc/hosts <(ssh somehost cat /etc/hosts)。
o??了解什么叫 “here documents” ,就是諸如cat <<EOF這樣的東西。
o??在bash中,使用重定向到標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤。如:some-command >logfile 2>&1。另外,要確認(rèn)某命令沒有把某個(gè)打開了的文件句柄重定向給標(biāo)準(zhǔn)輸入,最佳實(shí)踐是加上 “</dev/null”,把/dev/null重定向到標(biāo)準(zhǔn)輸入。
o??使用man ascii來查看ASCII表。
o??在遠(yuǎn)端的ssh會(huì)話里,使用screen或dtach來保存你的會(huì)話。(參看《28個(gè)Unix/Linux的命令行神器》)
o??要來debug Web,試試curl和curl -I或是wget。我覺得debug Web的利器是firebug,curl和wget是用來抓網(wǎng)頁的,呵呵。
o??把HTML轉(zhuǎn)成文本:lynx -dump -stdin
o??如果你要處理XML,使用xmlstarlet
o??對于Amazon S3,s3cmd是一個(gè)很方便的命令(還有點(diǎn)不成熟)
o??在ssh中,知道怎么來使用ssh隧道。通過-L or -D (還有-R),翻墻神器。
o??你還可以對你的ssh做點(diǎn)優(yōu)化。比如,.ssh/config包含著一些配置:避免鏈接被丟棄,鏈接新的host時(shí)不需要確認(rèn),轉(zhuǎn)發(fā)認(rèn)證,以前使用壓縮(如果你要使用scp傳文件):
o??如果你有輸了個(gè)命令行,但是你改變注意了,但你又不想刪除它,因?yàn)槟阋跉v史命令中找到它,但你也不想執(zhí)行它。那么,你可以按下Alt-#,于是這個(gè)命令關(guān)就被加了一個(gè)#字符,于是就被注釋掉了。
以上就是小編今天為大家分享的關(guān)于想要成為Linux運(yùn)維工程師都需要學(xué)習(xí)哪些技能的文章,希望本篇文章能夠?qū)φ趶腖inux相關(guān)工作的小伙伴們有所幫助。想要了解更多Linux相關(guān)知識(shí)記得關(guān)注馬哥教育的官網(wǎng)。最后祝愿小伙伴們工作順利!
聲明:文章來源于網(wǎng)絡(luò),侵刪!