为所有用户更改 Linux 命令提示符的最有效方法?

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 台以上的机器上需要做很多工作。

我最好的选择是什么,或者我忽略了什么?

Mic*_*man 6

您可能应该导出 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 提示。