在 Ubuntu 9.10 下,我可以在哪里放置别名该命令对所有用户(root用户或其他用户)有效,并且可以与 GNOME 下的 shell 以及 ssh 会话和普通控制台登录一起使用?
例如,我喜欢这个ll
命令,它在 Ubuntu 下默认没有定义,但在 openSuSE 下有。我可以手动输入:
alias "ll=ls -als"
但它仅对当前 shell 有效。我希望它对所有用户、所有时间、远程或本地连接都有效。
我应该编辑哪个文件?
答案1
你应该把它放在:
/etc/bash.bashrc
可供所有用户使用。
答案2
实际上,我发现答案至少对我来说是两个先前答案的组合。我发现以下方法对我有用:
文件 /etc/profile 确实已执行,但其中的别名命令不起作用。我理解其中的别名命令仅在执行 shell 进程时有效。查看文件 /etc/bash.bashrc,我在文件顶部看到该文件必须“源自”/etc/profile。
因此我首先在 /etc/bash.bashrc 中添加了我想要的别名命令。例如:
alias "ll=ls -als"
然后我在 /etc/profile 的末尾附加了源命令:
source /etc/bash.bashrc
它似乎在本地启动的 shell 和通过 SSH 连接的 shell 中都运行良好。
答案3
尝试一下该/etc/profile
文件。
这是为了对 Bourne shell 和兼容 shell 进行系统范围的初始化。
答案4
如文件顶部所述/etc/bash.bashrc
:
# System-wide .bashrc file for interactive bash(1) shells.
# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.
因此,Jon 和 jfmessier 都是正确的。Jon 可能已经/etc/bash.bashrc
在 中进行了采购/etc/profile
,这似乎是默认情况。
我建议插入别名命令/etc/bash.bashrc
并尝试先运行它们,无论是使用普通用户还是 root 用户。如果它们按预期运行,则无需在配置文件中获取文件。如果没有,则获取它们。