我需要更改正在登录的用户的问候语。因此,我修改了文件/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执行(例如终端窗口))。

    10-07 16:24
    查看更多