linux - 修改/etc/profile linux

标签 linux bash shell

我需要更改正在登录的用户的问候语。所以我修改了文件/etc/profile。在此问候语中,我需要知道该用户使用哪个 shell 并将其告诉用户。问题是,然后我在 zshcsh 上更改我的 shell 它不起作用。即使我只是在这个文件中输入 echo $SHELL 它也什么都不做。正如我所想,当我使用 cshzsh 时,这个文件 (/etc/profile) 根本不运行。我该如何解决这个问题?

谢谢你,对不起我的英语)

最佳答案

您应该首先阅读系统上每个 shell 的联机帮助页。

有不同口味的 shell 。每种风格使用略有不同(每个 session 和每个 shell,每个站点和每个用户)的初始化文件。例如:

  • sh(和 bash)使用 /etc/profile~/.profile
  • bash 还使用 ~/.bash_profile~/.bashrc~/.bash_logout<
  • csh 使用 /etc/.login~/.cshrc

等...

以上列表并非详尽无遗。这是为了说明您需要检查系统上使用的每个 shell 的确切行为并对其进行适当配置。

您还需要考虑是否要更改系统范围的行为(对应于 /etc 下的初始化文件)或特定于用户的行为(对应于用户主目录中的初始化文件)。

对于某些 shell,还有每个 session (即每次登录一次)和每个 shell 设置(例如每个终端窗口)。一个很好的例子是 ~/.bash_login(每次登录执行一次)和 ~/.bashrc(为每个 shell 执行 - 例如终端窗口)。

关于linux - 修改/etc/profile linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26136710/

相关文章:

Java执行需要su的Linux命令?

linux - GPerfTools/pprof : what does a dashed line mean?

bash - 以下片段是否有效的 Bourne shell 代码?

linux - 在使用简单的 Bash if/elif/else 语句时遇到问题

bash - 差异-r : limit recursion?

bash - FFmpeg 脚本跳过文件

python - 如何使用 python 或 perl 通过 ssh 在另一个 shell 中发送命令

linux 将 dwdiff 结果的最后一行重定向到文件

linux - 无法访问特定目录

linux - 设置环境变量并使其在所有打开的终端中生效