inc*_*ike 5 linux unix shell bash
我有几台机器,主机名真的很长.. 即 companyname-ux-staging-web1.companyname.com。所以我的提示看起来像
[root@mycompany-ux-staging-web1 ~]#
Run Code Online (Sandbox Code Playgroud)
我想用最少的工作为所有机器上的所有用户缩短它。从我读到的内容来看,我有几个选择,但它们都有自己的缺点。
我可以更改主机名,但这可能会影响应用程序。不是一个很好的选择。
我还可以通过为现有用户编辑所有 .bashrc 并为潜在的新用户编辑 /etc/skel/.bashrc 来为所有用户在登录时更改 $PS1。在 10 台以上的机器上需要做很多工作。
我最好的选择是什么,或者我忽略了什么?
您可能应该导出 PS1。您应该编辑系统 bashrc,而不是编辑用户的 bashrc:用户应该能够用他们的选择覆盖提示。
其次,要分发文件,请使用 scp 或 clustersh。如果您设置了 rsa 密钥,您甚至不需要为 scp 多次输入密码:
eval `ssh-agent`
ssh-add
for h in `cat ~/hostlist`; do
scp ~/newbashrc ${h}:/etc/bashrc
done
eval `ssh-agent -k`
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以在/etc/profile.d/目录下创建一个可执行脚本,例如:/etc/profile.d/custom_prompt.sh,内容如下:
#!/bin/sh
export PROMPT_COMMAND=’export PS1="[\e[0;35m][\u \t \h \W]\$ [\e[0m]"‘
Run Code Online (Sandbox Code Playgroud)
使用此方法,您无需修改任何文件即可更改所有用户的 bash 提示。