我正在过渡到新的工作开发环境,而且我对 xterm 终端和 CentOS 操作系统还不熟悉。
我正在尝试在 .bashrc 中设置别名:
# .bashrc
alias c='clear'
alias la='ls -a'
但只有c
别名有效:
user@host:~> la
CORRECT>lua (y|n|e|a)? no
la: Command not found.
但user@host:~> c
成功清除了终端。我也尝试定义其他几个别名(直接在交互式终端中),但只有c='clear'
别名有效。为什么有些别名可以工作,而另一些则不行?
答案1
这个提示表明你正在运行tcsh。您的别名.bashrc
无效,因为 tcsh 不会(也不能)读取 bash 的配置文件。您尝试在命令行上定义别名没有明显效果,因为 tcsh 也有一个名为 的命令alias
,但其语法与 bash 略有不同。c
正在工作,因为您的 (t)csh 配置碰巧也有相同的别名。
您可能不打算使用 tcsh。它是 20 世纪 80 年代最好的交互式 shell,但 zsh 在 1990 年代赶上了并超越了它,bash 在 2000 年代也是如此。切换到/bin/zsh
或/bin/bash
作为您的登录 shell:
chsh -s /bin/bash
如果由于管理限制而无法运行 chsh,请参阅无需 chsh 或管理员权限即可更改默认 shell。
如果您绝对必须使用 tcsh,因为您绝对需要依赖它的登录脚本,并且您的管理员生活在 20 世纪 90 年代并且不会更新它们,那么您仍然可以使用不同的交互式 shell。把类似的东西
setenv SHELL /bin/bash
在您的.login
(这是 tcsh 在您登录时读取的文件)中。