溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux中命令別名有什么用

發(fā)布時(shí)間:2021-10-28 17:07:11 來(lái)源:億速云 閱讀:185 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要為大家展示了“l(fā)inux中命令別名有什么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“l(fā)inux中命令別名有什么用”這篇文章吧。

別名即快捷方式

Linux shell 最美妙的事情之一是可以使用數(shù)以萬(wàn)計(jì)的選項(xiàng)和把命令連接在一起執(zhí)行真正復(fù)雜的操作。好吧,也許這種美麗是在旁觀者的眼中的,但是我們覺(jué)得這個(gè)功能很實(shí)用。

不利的一面是,你經(jīng)常需要記得難以記憶或難以打字出來(lái)的命令組合。比如說(shuō)硬盤上的空間非常寶貴,而你想要做一些清潔工作。你的***步可能是尋找隱藏在你的家目錄里的東西。你可以用來(lái)判斷的一個(gè)標(biāo)準(zhǔn)是查找不再使用的內(nèi)容。ls 可以幫助你:

ls -lct

上面的命令顯示了每個(gè)文件和目錄的詳細(xì)信息(-l),并顯示了每一項(xiàng)上次訪問(wèn)的時(shí)間(-c),然后它按從最近訪問(wèn)到最少訪問(wèn)的順序排序這個(gè)列表(-t)。

這難以記住嗎?你可能不會(huì)每天都使用 -c-t 選項(xiàng),所以也許是吧。無(wú)論如何,定義一個(gè)別名,如:

alias lt='ls -lct'

會(huì)更容易一些。

然后,你也可能希望列表首先顯示最舊的文件:

alias lo='lt -F | tac'

linux中命令別名有什么用

圖 1:使用 lt 和 lo 別名。

這里有一些有趣的事情。首先,我們使用別名(lt)來(lái)創(chuàng)建另一個(gè)別名 —— 這是完全可以的。其次,我們將一個(gè)新參數(shù)傳遞給 lt(后者又通過(guò) lt 別名的定義傳遞給了 ls)。

-F 選項(xiàng)會(huì)將特殊符號(hào)附加到項(xiàng)目的名稱后,以便更好地區(qū)分常規(guī)文件(沒(méi)有符號(hào))和可執(zhí)行文件(附加了 *)、目錄文件(以 / 結(jié)尾),以及所有鏈接文件、符號(hào)鏈接文件(以 @ 符號(hào)結(jié)尾)等等。-F 選項(xiàng)是當(dāng)你回歸到單色終端的日子里,沒(méi)有其他方法可以輕松看到列表項(xiàng)之間的差異時(shí)用的。在這里使用它是因?yàn)楫?dāng)你將輸出從 lt 傳遞到 tac 時(shí),你會(huì)丟失 ls 的顏色。

第三件我們需要注意的事情是我們使用了管道。管道用于你將一個(gè)命令的輸出傳遞給另外一個(gè)命令時(shí)。第二個(gè)命令可以使用這些輸出作為它的輸入。在包括 Bash 在內(nèi)的許多 shell 里,你可以使用管道符(|) 來(lái)做傳遞。

在這里,你將來(lái)自 lt -F 的輸出導(dǎo)給 tactac 這個(gè)命令有點(diǎn)玩笑的意思,你或許聽說(shuō)過(guò) cat 命令,它名義上用于將文件彼此連接(concat),而在實(shí)踐中,它被用于將一個(gè)文件的內(nèi)容打印到終端。tac 做的事情一樣,但是它是以逆序?qū)⒔邮盏降膬?nèi)容輸出出來(lái)。明白了嗎?cattac,技術(shù)人有時(shí)候也挺有趣的。

cattac 都能輸出通過(guò)管道傳遞過(guò)來(lái)的內(nèi)容,在這里,也就是一個(gè)按時(shí)間順序排序的文件列表。

那么,在有些離題之后,最終我們得到的就是這個(gè)列表將當(dāng)前目錄中的文件和目錄以新鮮度的逆序列出(即老的在前)。

***你需要注意的是,當(dāng)在當(dāng)前目錄或任何目錄運(yùn)行 lt 時(shí):

# 這可以工作:lt# 這也可以:lt /some/other/directory

……而 lo 只能在當(dāng)前目錄奏效:

# 這可工作:lo# 而這不行:lo /some/other/directory

這是因?yàn)?Bash 會(huì)展開別名的組分。當(dāng)你鍵入:

lt /some/other/directory

Bash 實(shí)際上運(yùn)行的是:

ls -lct /some/other/directory

這是一個(gè)有效的 Bash 命令。

而當(dāng)你鍵入:

lo /some/other/directory

Bash 試圖運(yùn)行:

ls -lct -F | tac /some/other/directory

這不是一個(gè)有效的命令,主要是因?yàn)?/some/other/directory 是個(gè)目錄,而 cattac 不能用于目錄。

更多的別名快捷方式

  • alias lll='ls -R' 會(huì)打印出目錄的內(nèi)容,并深入到子目錄里面打印子目錄的內(nèi)容,以及子目錄的子目錄,等等。這是一個(gè)查看一個(gè)目錄下所有內(nèi)容的方式。

  • mkdir='mkdir -pv' 可以讓你一次性創(chuàng)建目錄下的目錄。按照 mkdir 的基本形式,要?jiǎng)?chuàng)建一個(gè)包含子目錄的目錄,你必須這樣:

mkdir newdirmkdir newdir/subdir

或這樣:

mkdir -p newdir/subdir

而用這個(gè)別名你將只需要這樣就行:

mkdir newdir/subdir

你的新 mkdir 也會(huì)告訴你創(chuàng)建子目錄時(shí)都做了什么。

別名也是一種保護(hù)

別名的另一個(gè)好處是它可以作為防止你意外地刪除或覆寫已有的文件的保護(hù)措施。你可能聽說(shuō)過(guò)這個(gè) Linux 新用戶的傳言,當(dāng)他們以 root 身份運(yùn)行:

rm -rf /

整個(gè)系統(tǒng)就爆了。而決定輸入如下命令的用戶:

rm -rf /some/directory/ *

就很好地干掉了他們的家目錄的全部?jī)?nèi)容。這里不小心鍵入的目錄和 * 之間的那個(gè)空格有時(shí)候很容易就會(huì)被忽視掉。

這兩種情況我們都可以通過(guò) alias rm='rm -i' 別名來(lái)避免。-i 選項(xiàng)會(huì)使 rm 詢問(wèn)用戶是否真的要做這個(gè)操作,在你對(duì)你的文件系統(tǒng)做出不可彌補(bǔ)的損失之前給你第二次機(jī)會(huì)。

對(duì)于 cp 也是一樣,它能夠覆蓋一個(gè)文件而不會(huì)給你任何提示。創(chuàng)建一個(gè)類似 alias cp='cp -i' 來(lái)保持安全吧。

以上是“l(fā)inux中命令別名有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI