溫馨提示×

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

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

linux中如何定義自己的命令

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

這篇文章主要介紹linux中如何定義自己的命令,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

學(xué)習(xí)如何創(chuàng)建別名:你可以將太長(zhǎng)或難以記憶的命令打包成你自己構(gòu)建的命令。

命令別名Alias在 Linux shell 中指的是將一些太長(zhǎng)或者太難記的多個(gè)命令組合起來(lái),成為一個(gè)由用戶自己構(gòu)建的命令。

可以通過(guò) alias 命令來(lái)創(chuàng)建命令別名。在 alias 后面跟上想要?jiǎng)?chuàng)建的別名名稱、一個(gè)等號(hào)(=),以及希望使用這個(gè)別名來(lái)執(zhí)行的命令,這樣一個(gè)命令別名就創(chuàng)建好了。舉個(gè)例子,ls 命令在默認(rèn)情況下是不會(huì)對(duì)輸出的內(nèi)容進(jìn)行著色的,這樣就不能讓用戶一眼分辨出目錄、文件和連接了。對(duì)此,可以創(chuàng)建這樣一個(gè)命令別名,在輸出目錄內(nèi)容的時(shí)候?yàn)檩敵鰞?nèi)容著色:

alias lc='ls --color=auto'

其中 lc 是自定義的命令別名,代表 “l(fā)ist with color” 的意思。在創(chuàng)建命令別名的時(shí)候,需要先確認(rèn)使用的別名是不是已經(jīng)有對(duì)應(yīng)的命令了,如果有的話,原本的命令就會(huì)被覆蓋掉了。注意,定義命令別名的時(shí)候,= 兩端是沒(méi)有空格的。當(dāng)運(yùn)行 lc 的時(shí)候,就相當(dāng)于執(zhí)行了 ls --color 命令。

此后,執(zhí)行 lc 列出目錄內(nèi)容的時(shí)候,就會(huì)輸出帶有著色的內(nèi)容了。

你可能會(huì)發(fā)現(xiàn)你在執(zhí)行 ls 的時(shí)候,本來(lái)就是輸出帶有著色的內(nèi)容。那是因?yàn)榇蟛糠?Linux 發(fā)行版都已經(jīng)將 ls 設(shè)定為帶有著色的命令別名了。

可以直接使用的命令別名

實(shí)際上,執(zhí)行不帶任何內(nèi)容的 alias 命令就可以看到當(dāng)前已經(jīng)設(shè)定的所有命令別名。對(duì)于不同的發(fā)行版,包含的命令別名不盡相同,但普遍都會(huì)有以下這些命令別名:

  • alias ls='ls --color=auto':這個(gè)命令別名在前面已經(jīng)提到過(guò)了。--color=auto 參數(shù)會(huì)讓 ls 命令在通過(guò)標(biāo)準(zhǔn)輸出在終端中顯示內(nèi)容時(shí)進(jìn)行著色,而其它情況(例如通過(guò)管道輸出到文件)下則不進(jìn)行著色。--color 這個(gè)參數(shù)還可以設(shè)置為 alwaysnever

  • alias cp='cp -i'-i 參數(shù)代表“

    交互interactive

    ”。在使用 cp 命令復(fù)制文件的時(shí)候,可能會(huì)無(wú)意中覆蓋現(xiàn)有的文件,在使用了 -i 參數(shù)之后,cp 命令會(huì)在一些關(guān)鍵操作前向用戶發(fā)出詢問(wèn)。

  • alias free='free -m':在 free 命令后面加上 -m 參數(shù),就可以將輸出的內(nèi)存信息以 MiB 這個(gè)更方面閱讀和計(jì)算的單位輸出,而不是默認(rèn)的 Byte 單位。

你使用的發(fā)行版自帶的命令別名可能多多少少和上面有些差別。但你都可以在命令前面加上 \ 修飾符來(lái)使用命令的最基本形式(而不是別名)。例如:

\free

就是直接執(zhí)行 free,而不是 free -m。還有:

\ls

執(zhí)行的就是不帶有--color=auto 參數(shù)的 ls。

如果想要持久地保存命令別名,可以在 .bashrc 文件中進(jìn)行修改,而它來(lái)源于我們的 /etc/skel 目錄。

使用命令別名糾正錯(cuò)誤

各種發(fā)行版的設(shè)計(jì)者都會(huì)盡量設(shè)置用戶可能需要用到的命令別名。但是不同的用戶的習(xí)慣各不相同,一些用戶可能剛從其它操作系統(tǒng)遷移到  Linux,而不同操作系統(tǒng)的基本命令又因 shell 而異。因此,對(duì)于剛從 Windows/MS-DOS 系統(tǒng)遷移到 Linux  系統(tǒng)的用戶,不妨使用

alias dir='ls'

這個(gè)命令別名來(lái)列出目錄內(nèi)容。

類似地,

alias copy='cp'alias move='mv'

也可以在尚未完全熟悉 Linux 的時(shí)候用得順手。

還有一種情況,就是在經(jīng)常出現(xiàn)輸入錯(cuò)誤的場(chǎng)合中做出容錯(cuò),例如,對(duì)于我來(lái)說(shuō), Administration 這個(gè)單詞就很難快速正確地輸入,因此很多用戶都會(huì)設(shè)置類似這樣的別名:

alias sl='ls'

以及

alias gerp='echo "You did it *again*!"; grep'

grep 命令最基本的用途就是在文件中查找字符串,在熟悉這個(gè)命令之后,它一定是最常用的命令之一,因此輸入錯(cuò)誤導(dǎo)致不得不重輸命令就很令人抓狂。

在上面 gerp 的例子中,包含的不只是一條命令,而是兩條。***條命令 echo "You did it *again*!" 輸出了一條提醒用戶拼寫(xiě)錯(cuò)誤的消息,然后使用分號(hào)(;)把兩條命令隔開(kāi),再往后才是 grep 這一條正確的命令。

在我的系統(tǒng)上使用 gerp 來(lái)搜索 /etc/skel/.bashrc 中包含“alias”這個(gè)單詞的行,就會(huì)輸出以下內(nèi)容:

$ gerp -R alias /etc/skel/.bashrcYou did it *again*!        alias ls='ls --color=auto'        alias grep='grep --colour=auto'        alias egrep='egrep --colour=auto'        alias fgrep='fgrep --colour=auto' alias cp="cp -i"alias df='df -h'alias free='free -m'alias np='nano -w PKGBUILD' alias more=less shopt -s expand_aliases

在命令別名中以固定的順序執(zhí)行多個(gè)命令,甚至更進(jìn)一步,把多個(gè)命令串連起來(lái),讓后面的命令可以使用到前面的命令的執(zhí)行結(jié)果。這樣的做法已經(jīng)非常接近 bash 腳本了。這篇文章已經(jīng)接近尾聲,我們將在下一篇文章中詳細(xì)介紹。

如果想要?jiǎng)h除在終端中臨時(shí)設(shè)置的別名,可以使用 unalias 命令。

unalias gerp

以上是“l(fā)inux中如何定義自己的命令”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(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