共計 2278 個字符,預(yù)計需要花費 6 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章主要介紹 linux 中如何定義自己的命令,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
學(xué)習(xí)如何創(chuàng)建別名:你可以將太長或難以記憶的命令打包成你自己構(gòu)建的命令。
命令別名 Alias 在 Linux shell 中指的是將一些太長或者太難記的多個命令組合起來,成為一個由用戶自己構(gòu)建的命令。
可以通過 alias 命令來創(chuàng)建命令別名。在 alias 后面跟上想要創(chuàng)建的別名名稱、一個等號(=),以及希望使用這個別名來執(zhí)行的命令,這樣一個命令別名就創(chuàng)建好了。舉個例子,ls 命令在默認(rèn)情況下是不會對輸出的內(nèi)容進行著色的,這樣就不能讓用戶一眼分辨出目錄、文件和連接了。對此,可以創(chuàng)建這樣一個命令別名,在輸出目錄內(nèi)容的時候為輸出內(nèi)容著色:
alias lc= ls --color=auto
其中 lc 是自定義的命令別名,代表“l(fā)ist with color”的意思。在創(chuàng)建命令別名的時候,需要先確認(rèn)使用的別名是不是已經(jīng)有對應(yīng)的命令了,如果有的話,原本的命令就會被覆蓋掉了。注意,定義命令別名的時候,= 兩端是沒有空格的。當(dāng)運行 lc 的時候,就相當(dāng)于執(zhí)行了 ls –color 命令。
此后,執(zhí)行 lc 列出目錄內(nèi)容的時候,就會輸出帶有著色的內(nèi)容了。
你可能會發(fā)現(xiàn)你在執(zhí)行 ls 的時候,本來就是輸出帶有著色的內(nèi)容。那是因為大部分 Linux 發(fā)行版都已經(jīng)將 ls 設(shè)定為帶有著色的命令別名了。
可以直接使用的命令別名
實際上,執(zhí)行不帶任何內(nèi)容的 alias 命令就可以看到當(dāng)前已經(jīng)設(shè)定的所有命令別名。對于不同的發(fā)行版,包含的命令別名不盡相同,但普遍都會有以下這些命令別名:
alias ls= ls –color=auto:這個命令別名在前面已經(jīng)提到過了。–color=auto 參數(shù)會讓 ls 命令在通過標(biāo)準(zhǔn)輸出在終端中顯示內(nèi)容時進行著色,而其它情況(例如通過管道輸出到文件)下則不進行著色。–color 這個參數(shù)還可以設(shè)置為 always 或 never。
alias cp= cp -i:-i 參數(shù)代表“
交互 interactive
”。在使用 cp 命令復(fù)制文件的時候,可能會無意中覆蓋現(xiàn)有的文件,在使用了 -i 參數(shù)之后,cp 命令會在一些關(guān)鍵操作前向用戶發(fā)出詢問。
alias free= free -m:在 free 命令后面加上 -m 參數(shù),就可以將輸出的內(nèi)存信息以 MiB 這個更方面閱讀和計算的單位輸出,而不是默認(rèn)的 Byte 單位。
你使用的發(fā)行版自帶的命令別名可能多多少少和上面有些差別。但你都可以在命令前面加上 \ 修飾符來使用命令的最基本形式(而不是別名)。例如:
\free
就是直接執(zhí)行 free,而不是 free -m。還有:
\ls
執(zhí)行的就是不帶有 –color=auto 參數(shù)的 ls。
如果想要持久地保存命令別名,可以在 .bashrc 文件中進行修改,而它來源于我們的 /etc/skel 目錄。
使用命令別名糾正錯誤
各種發(fā)行版的設(shè)計者都會盡量設(shè)置用戶可能需要用到的命令別名。但是不同的用戶的習(xí)慣各不相同,一些用戶可能剛從其它操作系統(tǒng)遷移到 Linux,而不同操作系統(tǒng)的基本命令又因 shell 而異。因此,對于剛從 Windows/MS-DOS 系統(tǒng)遷移到 Linux 系統(tǒng)的用戶,不妨使用
alias dir= ls
這個命令別名來列出目錄內(nèi)容。
類似地,
alias copy= cp alias move= mv
也可以在尚未完全熟悉 Linux 的時候用得順手。
還有一種情況,就是在經(jīng)常出現(xiàn)輸入錯誤的場合中做出容錯,例如,對于我來說,Administration 這個單詞就很難快速正確地輸入,因此很多用戶都會設(shè)置類似這樣的別名:
alias sl= ls
以及
alias gerp= echo You did it *again*! grep
grep 命令最基本的用途就是在文件中查找字符串,在熟悉這個命令之后,它一定是最常用的命令之一,因此輸入錯誤導(dǎo)致不得不重輸命令就很令人抓狂。
在上面 gerp 的例子中,包含的不只是一條命令,而是兩條。*** 條命令 echo You did it *again*! 輸出了一條提醒用戶拼寫錯誤的消息,然后使用分號(;)把兩條命令隔開,再往后才是 grep 這一條正確的命令。
在我的系統(tǒng)上使用 gerp 來搜索 /etc/skel/.bashrc 中包含“alias”這個單詞的行,就會輸出以下內(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í)行多個命令,甚至更進一步,把多個命令串連起來,讓后面的命令可以使用到前面的命令的執(zhí)行結(jié)果。這樣的做法已經(jīng)非常接近 bash 腳本了。這篇文章已經(jīng)接近尾聲,我們將在下一篇文章中詳細(xì)介紹。
如果想要刪除在終端中臨時設(shè)置的別名,可以使用 unalias 命令。
unalias gerp
以上是“l(fā)inux 中如何定義自己的命令”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!
向 AI 問一下細(xì)節(jié)
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!