让 FreeBSD 的 sh shell 不显示用户名

Written by

in

以前我连什么是 shell 都不知道,不是没查过资料,但是查资料也理解不了。后来慢慢知道了,而且知道各种不同的 shell ,比如 FreeBSD 的 sh , csh , zsh ,还有 Linux 的 Bash 等等。

除了 FreeBSD 之外,其它的 BSD 系统我也装过,对 OpenBSD 的 ksh 印象深刻,ksh 为什么只显示主机名不显示用户名呢?起初我还以为这是 ksh 和 sh 的区别。最近装了 NetBSD ,突然发现 NetBSD 的 sh 也只显示主机名。NetBSD 的 sh 和 FreeBSD 的 sh 应该是同一个东西。这才发现,原来 shell 是否显示用户名,是各种 shell 配置后的结果。

让 FreeBSD 的 Shell 不显示用户名

如何让 FreeBSD 的 sh 不显示用户名

# 编辑 ~/.shrc 文件

$ ee ~/.shrc

接着在这个文件中找到 PS1 变量的位置,修改如下:

# 更新 PS1 变量包含主机名 (\h) 和你当前目录 (\w):

PS1="\h:\w \$ "

最终显示效果如:FreeBSD:/usr/home $

接着执行下面的命令让修改生效:

$ . ~/.shrc

2026年9月24日更新:

今天找到了另一个方法,直接在系统默认的 .shrc 文件末尾加入如下内容:

if [ "\$(id -u)" = "0" ]; then
    PS1="`hostname`# "
else
    PS1="`hostname`$ "
fi
export PS1

然后执行如下命令使其生效即可。

$. ~/.shrc

搞定!

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *