在同一终端中更改为不同用户(例如 root)时更改 Gnome 终端(Bash)配置文件

在同一终端中更改为不同用户(例如 root)时更改 Gnome 终端(Bash)配置文件

在同一终端切换用户时是否可以更改终端的配置文件?

实际上,我的目标是将终端更改为一个配置文件,该配置文件向我表明它是“root”终端,我最好非常小心。当然,我对 root 总是非常小心,为了进一步改进,我想更改终端的配置文件,以便它清楚地向我显示我当前正在使用具有 root 权限的终端。

因此为了清楚起见:我不想创建快捷方式来打开具有特定配置文件的 bash 终端,我正在考虑对 .bashrc 进行一些编辑,以检测用户更改并可以切换到配置文件。

这可能吗?如果可以,怎么做?;)

答案1

您只需要编辑用户.bashrc文件root并在其中添加您需要的不同配置文件的内容。

例如,通常设置PS1.bashrc提供不同的提示符(以#而不是结尾的提示符$),以便让用户知道他处于 root 终端中。事实上,我认为这应该是默认行为,因此您应该已经有了这个不同的提示符。

答案2

如果您正在使用,su则可以将-, -l or --login选项添加到命令中以“提供与用户直接登录时所期望的环境类似的环境”。全部根据 su 手册页。这些选项将加载新用户的 .bashrc 或适用于正在加载的 shell 的任何文件。

例如,su -将切换到 root 用户,所有设置与从终端直接以 root 身份登录一样。

更多信息请参阅man su

答案3

我很懒,我对 root 和我的用户使用相同的 .bashrc。主要原因是我喜欢设置多个别名(cp -I 等)。

添加此项来设置您的提示:

if [[ $EUID == 0 ]] ; then
    PS1='\[\033[01;31m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\$' #RED
else
    PS1='\[\033[01;32m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\$' #Green

   # Comment out the above and uncomment the below for a blue user name.
   # PS1='\[\033[01;34m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\$' #Blue
fi

如果以 root 身份运行,则将if [[ $EUID == 0 ]]您的用户名设置为红色。

看 :http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html获取更多提示/选项。

答案4

添加以下行.bashrc

if [ $(id -u) -eq 0 ];
then # you are root, set red colour prompt
  PS1="\\w# "
else # normal
  PS1="\\w$ "
fi

你也可以自定义 PS1

相关内容