在 Ubuntu 下,如何放置一个对所有人都适用的 shell 别名命令?

在 Ubuntu 下,如何放置一个对所有人都适用的 shell 别名命令?

在 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 用户。如果它们按预期运行,则无需在配置文件中获取文件。如果没有,则获取它们。

相关内容