簡而言之:
$ alias search=grep
$ search
search: Command not found.
$ alias search='grep'
$ search
search: Command not found.
$ alias search="grep"
$ search
search: Command not found.
為什麼不alias
工作?
我還添加了別名並source
在以下文件上運行,但出現相同的錯誤:
~/.bashrc
~/.bash_profile
~/.profile
例如,如果這是我的~/.bashrc
:
alias wtf='git'
alias foo="ls"
alias search=grep
我source ~/.bashrc
打開一個新終端,我仍然得到這個:
$ foo
foo: Command not found.
$ wtf
wtf: Command not found.
$ search
search: Command not found.
我不是這台機器上的 root 使用者(Cent OS 6.8,不確定這是否相關),當我運行時,alias
我會看到所有使用者的別名。我不能只為我的用戶建立別名嗎?
答案1
問題是我機器上的預設 shell 是tsch
。
運行echo $SHELL
以確定您正在使用的 shell。如果是tsch
或csh
,則不使用該=
符號來指派別名。
例如,在tsch
:
$ alias foo="ls"
$ foo
foo: Command not found.
但:
$ alias bar ls
$ bar
<works and lists folder contents>
若要將預設 shell 變更為bash
,您可以執行:
$ chsh -s /bin/bash
為了tcsh
與別名保持一致,您必須建立一個~/.tcshrc
檔案。