修改/ etc / profile linux

时间:2014-10-01 07:57:49

标签: linux bash shell

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

谢谢你,抱歉我的英语)

3 个答案:

答案 0 :(得分:5)

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

有各种口味的贝壳。每种口味使用略有不同(每个会话和每个shell,每个站点和每个用户)初始化文件。例如:

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

等...

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

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

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

答案 1 :(得分:2)

他们都执行不同的文件:

来自zsh http://zsh.sourceforge.net/Guide/zshguide02.html

  

现在,这里是启动文件的列表以及它们何时运行。你' 11   看到它们分为两类:/ etc目录中的那些类   由系统管理员放在那里,并为所有用户运行,和   那些在你的主目录中,与许多shell一样,zsh允许你   缩写为“〜'。

/etc/zshenv
Always run for every zsh.
~/.zshenv
Usually run for every zsh (see below).
/etc/zprofile
Run for login shells.
~/.zprofile
Run for login shells.
/etc/zshrc
Run for interactive shells.
~/.zshrc
Run for interactive shells.
/etc/zlogin
Run for login shells.
~/.zlogin

表示csh http://unixhelp.ed.ac.uk/CGI/man-cgi?csh+1

  

登录shell首先执行系统文件中的命令        /etc/csh.cshrc和/etc/csh.login。

您可以建立一个指向同一文件的软链接:

ln -s /etc/profile /etc/zshenv

ln -s /etc/profile /etc/csh.login

答案 2 :(得分:0)

我修改了我的etc / profile文件,以便在启动时启动python脚本。现在我的程序正在运行,但是有一个黑屏,因为我的程序有一段时间的True循环,现在我无法阻止它。请告诉我如何停止程序,我尝试过ctrl + C但没有发生任何事情。