我需要更改正在登录的用户的问候语。因此,我修改了文件/etc/profile
。在此问候中,我需要知道该用户使用哪个 shell 并将其告诉用户。问题是,然后我更改了zsh
或csh
上的 shell ,它不起作用。即使我只是在此文件中键入echo $SHELL
,也不会执行任何操作。我认为,当我使用csh
和zsh
时,此文件(/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执行(例如终端窗口))。