Linux

在終端中自定義(更改)可執行程序的命令(名稱)的合理方法

  • February 24, 2022

背景

xfce4-terminal舉個例子,我想通過鍵入來執行程序**。****term**

當我輸入which xfce4-terminal它返回/usr/bin/xfce4-terminal

所以,我創建了一個符號連結:sudo ln -s /usr/bin/xfce4-terminal /usr/bin/term.

現在我可以通過鍵入來執行程序term

問題

我一直想知道這是否是實現目的的合理方法。要求最好的方法(甚至沒有研究)可能是一個主觀問題,但在這裡我要求一種標準方法(如果有的話),或者我的方法可能具有的任何優點和缺點。

我想到了以下替代方案:

  • 重命名程序:mv xfce4-terminal term
  • 使用環境變數(但有很多方法可以做到這一點……)
  • 一開始就避免偷懶

我已經知道了:

  • 我可以Tab用來自動完成
  • (在 GUI 中)我可以使用 ++ 之類的快捷Ctrl方式Alt``T
  • 如果另一個程序被命名為“term”,則創建符號連結有衝突的風險
  • 重命名有破壞依賴的風險

環境:

uname --all返回:

  • Linux debian 4.19.0-18-amd64 #1 SMP
  • Debian 4.19.208-1 (2021-09-29)
  • x86_64 GNU/Linux

最安全的方法是使用別名,正如他們在評論中已經提到的那樣。

符號連結也可以工作,但請注意,某些程序會根據呼叫它們的名稱來改變它們的行為。

例如 bash-scripts 檢查內容$0並根據它呼叫不同的函式。

重命名程序本身就是自找麻煩:

任何依賴的東西xfce4-terminal都會在重命名後一蹶不振。下次更新時,您的系統上將擁有兩個版本的二進製文件:-/

引用自:https://unix.stackexchange.com/questions/691963