简而言之:
$ 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
文件。