Shell
如何臨時繞過 tcsh 中的別名?
我正在使用 tcsh。bash 和 zsh 以及其他建議在這裡無濟於事。
我有幾個別名被命名為與另一個命令相同的東西,所以如果我對它進行 unalias,輸入相同的東西現在會做不同的事情。
大多數時候我想要別名命令,這就是我擁有它們的原因。但是,有時我想要不帶別名的命令。
在沒有實際取消別名和重新定義命令的情況下,有沒有一種簡單的方法可以告訴 tcsh 使用 unaliased 命令來代替?
例如,vi 別名為 vim,但有時我只想使用 vi。cd 是別名以更改我的視窗標題,但有時我想不理會它。
顯然我可以輸入 /usr/bin/vi 但由於 cd 是一個 shell 內置命令,因此沒有等效的命令。有沒有通用的解決方案?
您可以使用反斜杠:
% alias ls ls -a % ls # ls -a output here % \ls # plain ls output here
對於 shell 內置函式,有一個陷阱:前導反斜杠會阻止使用別名和內置函式,但內部反斜杠只會抑制別名。
% alias cd pushd % cd /tmp /tmp /tmp % c\d % dirs ~ /tmp
(我很想將其稱為反對使用
csh
貝殼家族的另一個論點。)
不要製作破壞 shell 內置函式的別名。你的生活會輕鬆很多。剩下很多組合鍵,試試
cw
你的更改視窗標題別名:)**編輯:**修復不屬於您的別名的兩步解決方案:
- 找到別名
cd
為 change-directory 命令以外的其他東西的猴子,並請求將其轉移到本地論文的 oped 列。他不應該從事可以將這種想法強加於其他人的工作的工作!echo unalias cd >> ~/.bashrc