如何在linux上建立別名和shell函式

使用別名和bashshell函式建立自己的Linux命令。馴服重複性的任務,截斷冗長的程序,並用您經常使用且難以記住的選項配置標準命令。...

使用別名和bashshell函式建立自己的Linux命令。馴服重複性的任務,截斷冗長的程序,並用您經常使用且難以記住的選項配置標準命令。

別名和shell指令碼是Linux和類Unix作業系統中的強大技術,允許您將命令列體驗磨練為您想要的。您可以定義自己的命令來滿足您的特定需求,並減輕重複性任務的負擔。

別名和shell指令碼做同樣的工作。它們允許您定義和命名一組bashshell功能,然後可以根據您給它的名稱來呼叫這些功能。鍵入名稱比每次要使用時都必須鍵入所有步驟或命令更簡單、更方便。

別名和指令碼的區別在於複雜性和規模。指令碼更擅長儲存更長更復雜的程式碼塊。別名非常適合儲存較短、更簡潔的命令集。

預定義別名

有些別名是為您預定義的。要檢視系統中定義的別名列表,請使用不帶引數的alias命令:

alias

如何在linux上建立別名和shell函式

這些是本文研究的Ubuntu測試機上定義的別名。如果我定義了任何自定義別名,它們也會出現在這個列表中。

在列表的頂部,有一個看起來很複雜的別名alert。我們一會兒再說。ls命令有一堆不同的別名,還有一組別名為grep系列命令提供顏色輸出。例如,定義了這些別名後,無論何時鍵入:

grep

系統將其解釋為:

grep --color=auto

這顯示了別名的一個重要點。它們可以與現有命令同名。它們甚至可以在自己內部包含原始命令。

下面是grep別名的定義。

alias grep='grep --color=auto'
  • alias命令用於定義別名。
  • 下面給出別名的名稱。在這個例子中,它是grep。
  • 等號將別名的名稱連線到別名的主體。對於除非常簡單的別名外的所有別名,別名的主體都用單引號括起來。
  • 別名的主體是在命令列上使用別名時執行的部分。

這個別名的主體只是使用--color=auto選項呼叫grep命令。

警報別名

作為一個簡短的旁白,為了讓您知道它的作用,alert別名用於讓您知道命令何時完成。它還指示命令是否成功完成。它在螢幕頂部提供圖形系統警報。

下面是一個簡單的例子。sleep命令將休眠5秒鐘,然後呼叫警報別名。別名檢查上一個命令的響應。它從歷史檔案中提取最後一個命令。它決定命令是否成功完成。然後在系統警報中顯示結果。

如果命令按預期完成,則系統警報中的圖示是一個小的終端視窗。如果命令返回錯誤程式碼,則系統警報中的圖示為紅色錯誤圖示。

sleep 5; alert

如何在linux上建立別名和shell函式

五秒鐘後,我們看到系統警報:

如何在linux上建立別名和shell函式

圖示是一個小的終端視窗,意味著一切順利。讓我們用一個我們知道會失敗的命令再試一次:

DoomedToFail; alert

如何在linux上建立別名和shell函式

我們的系統警報現在有一個錯誤圖示。

如何在linux上建立別名和shell函式

定義普通別名

如我們所見,要定義別名,我們使用alias命令。

我們將為clear命令建立一個假名。我們的別名將被稱為cls,它將呼叫clear命令。

我們的別名定義非常簡單,不能保證用單引號括起來。如果別名的正文比這個更復雜,或者它包含空格,請用單引號將其括起來。我們將定義別名,使用ls在終端視窗中輸入一些輸出,然後使用新的別名cls清除螢幕。

alias cls=clear ls -l cls

如何在linux上建立別名和shell函式

螢幕被清除。成功,雖然短暫。只有此終端視窗保持開啟狀態,別名才能繼續存在。一旦視窗關閉,別名將消失。

那麼我們如何使我們的別名永久化呢?

.bashrc檔案和別名

您可能想知道預打包的別名是在哪裡定義的。它位於主資料夾的“.bashrc”檔案中。當您啟動互動式shell時,將讀取此檔案並執行其中的命令。也就是說,當您開啟終端視窗時。

在主資料夾中鍵入以下命令以檢視帶有語法高亮顯示的“.bashrc”檔案的內容。

gedit .bashrc

如何在linux上建立別名和shell函式

這將啟動gedit編輯器並載入“.bashrc”檔案。

如何在linux上建立別名和shell函式

突出顯示的區域顯示定義別名的兩個區域。

滾動文件將顯示與別名相關的其他兩個部分:

如何在linux上建立別名和shell函式

第一個是警報別名的定義。第二個是if語句。它的意思是,“如果檔案“.bash\u別名”存在,請讀入它。”

如果您只想定義幾個別名,可以將它們放在“.bashrc”檔案中。把它們塞進包含ls別名的部分下面。

如果您要建立許多別名,或者您只是喜歡將別名封裝在自己的檔案中,您可以在“.bash\u aliases”檔案中定義它們。在“.bash\u aliases”檔案中建立它們的一個優點是,您不會意外更改“.bashrc”檔案中的任何設定。另一個優點是,別名很容易複製到新系統,因為它們完全脫離了“.bashrc”檔案。

在.bash\u別名檔案中儲存別名

在建立“.bash\u aliases”檔案之前,它將不存在。可以使用以下命令建立檔案:

touch .bash_aliases

如何在linux上建立別名和shell函式

讓我們編輯這個檔案並給它新增幾個別名。此命令將在gedit編輯器中開啟“.bash\u別名”檔案。

gedit .bash_aliases

如何在linux上建立別名和shell函式

我們加了三個別名。第一個是我們之前使用的cls別名。下一個叫做h,是呼叫history命令的簡寫方式。

第三個別名叫做ftc。這代表“檔案型別計數”

這個別名更復雜,所以它被包裝在單引號中。它使用由管道連線在一起的一系列命令。它生成不同副檔名和目錄名的排序列表,每個列表項都有一個計數。

相關:如何在Linux上使用管道

當我們儲存了“.bash\u aliases”檔案時,我們可能希望我們的別名是活動的和可訪問的。事實並非如此。在別名定義生效之前,Bash shell必須讀入該檔案。每當開啟互動式shell時,都會執行此操作。

我們還可以使用bashshell內建的。讀取和執行檔案中的命令。因為在處理“.bashrc”時讀入了“.bash\u別名”檔案,所以我們應該透過呼叫“.bashrc”來執行測試。這樣我們就可以檢查“.bash\u alias”檔案是否從“.bashrc”呼叫,以及我們的別名是否有效。

我們使用的命令有:

gedit .bash_alias

編輯“.bash\u alias”檔案。

. .bashrc

這將讀入並執行“.bashrc”中的命令,該命令將呼叫“.bash\u alias”。

ftc

這將呼叫ftc別名。

如何在linux上建立別名和shell函式

我們的別名響應,這意味著Bash已經讀入了“.bashrc”和“.Bash\u別名”,我們的新別名現在處於活動狀態。

現在,您可以繼續向“.bash\u aliases”檔案新增新的別名。如果你發現自己做的事情不止一次或兩次,可以考慮給它取個別名。

刪除別名

有一個刪除別名的命令,這樣BAsh既不會識別別名,也不會響應別名。令人耳目一新的直率,命令被稱為unalias。

要使用它,請提供希望Bash忘記的別名的名稱。要使Bash忘記我們的ftc別名,請使用如下unalias:

unalias ftc

可以使用unalias刪除已定義的別名和任何預定義的別名。

要從系統中刪除所有別名,請使用-a(all)選項:

unalias -a

不過,Bash的記憶喪失不會是永久性的。下次開啟終端視窗時,“忘記的”別名將返回。要真正清除它們,您需要將它們從“.bashrc”和“.bash\u alias”檔案中刪除。

如果你想把它們拿回來,不要從“.bashrc”檔案中刪除它們。相反,透過在每個別名行的開頭新增一個雜湊來註釋它們。要使“.bash\u alias”檔案無效,請重新命名它。如果“.bashrc”檔案看不到它,它就不會讀入它。逆轉這些步驟來恢復別名是一件小事。

shell函式

像別名一樣,bashshell函式可以在“.bashrc”檔案中定義,但是將它們放在自己的定義檔案中通常更整潔。我們將其命名為“.bash\u函式”,遵循用於“.bash\u別名”檔案的約定。

這意味著我們需要告訴“.bashrc”檔案讀入我們的定義。我們可以複製並修改在“.bash\u aliases”檔案中讀取的程式碼片段。啟動gedit並用以下命令載入“.bashrc”檔案:

gedit .bashrc

如何在linux上建立別名和shell函式

您需要新增下面顯示的突出顯示部分。

您可以高亮顯示alias部分並按Ctrl+C,然後移動到需要新部分的位置並按Ctrl+V貼上文字副本。然後您只需將“.bash\u別名”更改為“.bash\u函式”

如何在linux上建立別名和shell函式

我們可以儲存這些更改並關閉gedit。

現在我們將建立並編輯“.bash\u functi***”檔案,並在其中放置函式定義。

touch .bash_functi*** gedit .bash_functi***

如何在linux上建立別名和shell函式

這將在gedit中開啟空的“.bash\u functi***”檔案。

我們將新增一個簡單的函式。up將採用單個命令列引數,即數字。up將呼叫cd。。那麼多次。所以,如果你使用命令

up 2

向上呼叫cd。。兩次並將在目錄樹中向上移動兩級。

定義函式有不同的方法。這裡有一個:

function up() {

word函式是可選的。如果你是一個傳統主義者,使用它,如果你不介意輸入它,就不用輸入了。

下面是我們在gedit中的全部功能:

如何在linux上建立別名和shell函式

function up() {

這標誌著函式定義的開始,它將函式命名為up。

levels=$1

這將建立一個名為levels的變數,並將其設定為第一個引數的值。這個引數將是使用者在呼叫函式時提供的一個數字。$1表示“第一個命令列引數”

while [ "$levels" -gt "0" ]; do

然後我們進入一個迴圈。這可以理解為“當levels的值大於零時,執行迴圈體中包含的操作”

在迴圈體內部,我們有兩個命令。他們是:

cd ..

在目錄樹中上移一級。

levels=$(($levels - 1))

將levels設定為一個新值,該值比當前值小一個。

然後我們回到迴圈的頂部,再次比較levels和zero的值。如果levels大於零,則再次執行迴圈體。如果它不大於零,迴圈就結束了,我們跳轉到done語句,函式就結束了。

儲存這些更改並關閉gedit。

我們將讀入並執行“.bashrc”中的命令,它應該讀入並執行“.bash\u函式”檔案中的命令。

. .bashrc

如何在linux上建立別名和shell函式

我們可以透過移動到目錄樹中的某個位置並使用up移回目錄樹中的“更高”點來測試該函式。

cd ./work/backup/ up 2

如何在linux上建立別名和shell函式

功能正常。我們把目錄樹移到了更高的兩級。

跟蹤型別

在構建別名套件和函式庫時,可能很難記住特定命令是別名還是函式。您可以使用type命令來提醒您。很酷的一點是,你也可以看到它的定義。

讓我們在ftc別名和up函式中使用type。

type ftc type up

如何在linux上建立別名和shell函式

我們得到一個非常有用的提示,告訴我們每個命令是什麼型別的,以及它們的定義。

開始收集

別名和函式可以極大地加快命令列的使用速度。它們可以縮短命令序列,並允許您烘焙始終與標準命令一起使用的選項。

每次看到漂亮的單行線或有用的函式時,都可以對其進行調整和個性化,然後將其新增到“.bash\u別名”或“.bash\u函式”檔案中。

  • 發表於 2021-04-03 03:45
  • 閱讀 ( 47 )
  • 分類:網際網路

你可能感興趣的文章

使用powershell而不是批處理指令碼的5個原因

...以繼續執行這些可以使用PowerShell自動化的任務,並學習如何處理PowerShell錯誤。這應該足夠讓你開始了。 ...

  • 發佈於 2021-03-15 16:49
  • 閲讀 ( 99 )

什麼是符號連結(symlink)?如何在linux中建立一個

... 讓我們看看什麼是符號連結,如何在Linux以及macOS和Windows上建立符號連結,為什麼需要這種特殊型別的快捷方式,等等。 ...

  • 發佈於 2021-03-19 23:12
  • 閲讀 ( 51 )

3種在gmail中使用電子郵件別名的方法

... 下面是如何讓這個功能對你有利,從而更好地管理你的Gmail收件箱。 ...

  • 發佈於 2021-03-20 17:11
  • 閲讀 ( 52 )

使用這些linux命令高效地管理遠端ssh連線

... 但不一定要這樣。是時候學習如何只使用別名透過SSH高效登入、傳輸單個檔案或目錄、執行遠端SSH命令以及輕鬆地將遠端伺服器裝載到本地目錄了。 ...

  • 發佈於 2021-03-28 06:44
  • 閲讀 ( 46 )

哪個linux shell最好?比較了5種常見的貝殼

...你的計算機需要一個翻譯層。這介於你告訴它做什麼和它如何理解之間。 ...

  • 發佈於 2021-03-30 18:45
  • 閲讀 ( 51 )

linux下如何用gocryptfs加密檔案

...解除安裝加密的檔案系統,並進一步簡化過程。 相關:如何在Linux上建立別名和Shell函式

  • 發佈於 2021-04-01 18:42
  • 閲讀 ( 47 )

如何在linux上以彩色顯示手冊頁

...出顯示的文字。 向下滾動,您將看到頁面的不同元素是如何著色的。 多用與少用非常相似,但也有一些不同。在most中按H可檢視鍵繫結及其函式的列表。 用更少的顏色 如果你不想安裝另一個尋呼機或必須學習新的按鍵,有一...

  • 發佈於 2021-04-01 20:53
  • 閲讀 ( 42 )

如何在linux上使用cd命令

...小又簡單。 在使用Linux計算機的第一個小時內,您將學習如何使用Bash和其他shell附帶的cd命令。也許您以前有在其他作業系統上使用它的經驗,不需要解釋。它會改變當前的工作目錄,對嗎?還有什麼要知道的? 好吧,比你想象...

  • 發佈於 2021-04-02 08:58
  • 閲讀 ( 67 )

如何在linux上使用正則表示式(regex)

...在Linux上做了什麼嗎?他們給你命令列魔法!我們將教你如何施展正則表示式法術並提升你的命令列技能。 什麼是正則表示式(regular expressi***)? 正則表示式(regex)是一種查詢匹配字元序列的方法。它們使用字母和符號來定義...

  • 發佈於 2021-04-02 11:27
  • 閲讀 ( 41 )

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦