Linux
在終端中自定義(更改)可執行程序的命令(名稱)的合理方法
背景
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
都會在重命名後一蹶不振。下次更新時,您的系統上將擁有兩個版本的二進製文件:-/