新聞中心
我們?cè)贚inux上工作時(shí),每個(gè)人都會(huì)遇到需要查找shell命令的幫助信息的時(shí)候。 盡管內(nèi)置的幫助像man pages、whatis命令有所助益, 但man pages的輸出非常冗長(zhǎng), 除非是個(gè)有l(wèi)inux經(jīng)驗(yàn)的人,不然從大量的man pages中獲取幫助信息是非常困難的,而whatis命令的輸出很少超過(guò)一行, 這對(duì)初學(xué)者來(lái)說(shuō)是不夠的。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、沙灣ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的沙灣網(wǎng)站制作公司
在Linux Shell中解釋Shell命令
有一些第三方應(yīng)用程序, 像我們?cè)贚inux 用戶的命令行速查表提及過(guò)的’cheat’命令。cheat是個(gè)優(yōu)秀的應(yīng)用程序,即使計(jì)算機(jī)沒(méi)有聯(lián)網(wǎng)也能提供shell命令的幫助, 但是它僅限于預(yù)先定義好的命令。
Jackson寫了一小段代碼,它能非常有效地在bash shell里面解釋shell命令,可能最美之處就是你不需要安裝第三方包了。他把包含這段代碼的的文件命名為“explain.sh”。
explain.sh工具的特性
-
易嵌入代碼。
-
不需要安裝第三方工具。
-
在解釋過(guò)程中輸出恰到好處的信息。
-
需要網(wǎng)絡(luò)連接才能工作。
-
純命令行工具。
-
可以解釋bash shell里面的大部分shell命令。
-
無(wú)需使用root賬戶。
先決條件
***的條件就是’curl’包了。 在如今大多數(shù)Linux發(fā)行版里面已經(jīng)預(yù)安裝了curl包, 如果沒(méi)有你可以按照下面的命令來(lái)安裝。
# apt-get install curl [On Debian systems]
# yum install curl [On CentOS systems]
在Linux上安裝explain.sh工具
我們要將下面這段代碼插入’~/.bashrc’文件(LCTT譯注: 若沒(méi)有該文件可以自己新建一個(gè))中。我們要為每個(gè)用戶以及對(duì)應(yīng)的’.bashrc’文件插入這段代碼,但是建議你不要加在root用戶下。
我們注意到.bashrc文件的***行代碼以(#)開始, 這個(gè)是可選的并且只是為了區(qū)分余下的代碼。
#explain.sh 標(biāo)記代碼的開始, 我們將代碼插入.bashrc文件的底部。
# explain.sh begins
explain () {
if [ "$#" -eq 0 ]; then
while read -p "Command: " cmd; do
curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$cmd"
done
echo "Bye!"
elif [ "$#" -eq 1 ]; then
curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$1"
else
echo "Usage"
echo "explain interactive mode."
echo "explain 'cmd -o | ...' one quoted command to explain it."
fi
}
explain.sh工具的使用
在插入代碼并保存之后,你必須退出當(dāng)前的會(huì)話然后重新登錄來(lái)使改變生效(LCTT譯注:你也可以直接使用命令source~/.bashrc 來(lái)讓改變生效)。每件事情都是交由‘curl’命令處理, 它負(fù)責(zé)將需要解釋的命令以及命令選項(xiàng)傳送給mankier服務(wù),然后將必要的信息打印到Linux命令行。不必說(shuō)的就是使用這個(gè)工具你總是需要連接網(wǎng)絡(luò)。
讓我們用explain.sh腳本測(cè)試幾個(gè)筆者不懂的命令例子。
1.我忘了‘du -h’是干嘛用的, 我只需要這樣做:
$ explain 'du -h'
獲得du命令的幫助
2.如果你忘了’tar -zxvf’的作用,你可以簡(jiǎn)單地如此做:
$ explain 'tar -zxvf'
Tar命令幫助
3.我的一個(gè)朋友經(jīng)常對(duì)’whatis’以及’whereis’命令的使用感到困惑,所以我建議他:
在終端簡(jiǎn)單的地敲下explain命令進(jìn)入交互模式。
$ explain
然后一個(gè)接著一個(gè)地輸入命令,就能在一個(gè)窗口看到他們各自的作用:
Command: whatis
Command: whereis
Whatis/Whereis命令的幫助
你只需要使用“Ctrl+c”就能退出交互模式。
4. 你可以通過(guò)管道來(lái)請(qǐng)求解釋更多的命令。
$ explain 'ls -l | grep -i Desktop'
獲取多條命令的幫助
同樣地,你可以請(qǐng)求你的shell來(lái)解釋任何shell命令。 前提是你需要一個(gè)可用的網(wǎng)絡(luò)。輸出的信息是基于需要解釋的命令,從服務(wù)器中生成的,因此輸出的結(jié)果是不可定制的。
對(duì)于我來(lái)說(shuō)這個(gè)工具真的很有用,并且它已經(jīng)榮幸地添加在我的.bashrc文件中。你對(duì)這個(gè)項(xiàng)目有什么想法?它對(duì)你有用么?它的解釋令你滿意嗎?請(qǐng)讓我知道吧!
請(qǐng)?jiān)谙旅嬖u(píng)論為我們提供寶貴意見,喜歡并分享我們以及幫助我們得到傳播。
文章題目:輕松使用“ExplainShell”腳本來(lái)理解Shell命令
本文地址:http://fisionsoft.com.cn/article/djijsjo.html


咨詢
建站咨詢
