在哪里定义别名:.cshrc 还是 .bashrc?

har*_*mut 2 command-line alias

我应该在哪里定义 shell 别名?也就是说,最佳实践是什么(以及为什么)?

我可以想到以下选项:

  1. .bashrc
  2. .cshrc
  3. .tcsh
  4. ...

Zan*_*nna 8

您提到的选项是指不同的外壳。当用户启动 shell 程序时,rc会读取用户主目录中的相关文件。如果您正在使用 bash(就像您在 Ubuntu 中打开终端时一样,除非您已经安装并为用户选择了不同的默认 shell),那么您应该将别名放在 中.bashrc,或者如果您愿意(例如以便您可以更轻松地查看和编辑所有别名),在专用.bash_aliases文件中。这个文件默认是不存在的,但是如果创建了,它会默认在 bash 启动时source .bashrc

$ grep -n '^[^#]*bash_alias' /etc/skel/.bashrc
104:if [ -f ~/.bash_aliases ]; then
105:    . ~/.bash_aliases
Run Code Online (Sandbox Code Playgroud)

如果您正在使用另一个外壳,则使用适合rc该外壳的。


Ser*_*nyy 7

您使用的 shell 决定了要使用的文件。如果你使用 bash,在 .cshrc 中定义它们是没有意义的,因为 bash 不会读取它,反之亦然