在同一终端切换用户时是否可以更改终端的配置文件?
实际上,我的目标是将终端更改为一个配置文件,该配置文件向我表明它是“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这