如何缩短Linux终端中显示的用户名前缀
问题描述

新装的ubuntu,这个终端的名称也太长了,主要是@后面这个设备名,所以我想把这玩意儿改短一些
解决办法
打开~/.bashrc
文件,找到如下内容:
if [ "$color_prompt" = yes ]; then |
${debian_chroot:+($debian_chroot)}
:这是一个参数扩展。 如果设置了 debian_chroot 变量,则将其值包含在提示符中,并用括号括起来。 这通常用于在 chroot 环境中指示当前环境。 如果 debian_chroot 未设置,则此部分不显示任何内容。- 用echo命令输出:
echo "${debian_chroot:+($debian_chroot)}"
- 用echo命令输出:

- \u:用户的用户名(例如,”diraw”)
- @:一个字面字符 “@”
- \h:主机名(hostname)的第一个部分,即第一个 . 之前的字符串。 例如,如果主机名是 mycomputer.example.com,则 \h 将显示 mycomputer
- 在终端输出主机名:
hostname
- 在终端输出主机名:

- ::一个字面字符 “:”
- \w:当前工作目录的完整路径
\$
:如果当前用户是 root 用户,则显示 #;否则,显示 $
我这里修改我的hostname即可
1、直接 sudo hostnamectl set-hostname 新主机名
2、然后打开/etc/hosts
,把第二行名称改一下

3、重启电脑
为什么需要同时修改这两个地方?
1、sudo hostnamectl set-hostname 新主机名
→ 修改系统的静态主机名(存储在 /etc/hostname
)
2、修改 /etc/hosts
→ 确保本地域名解析正确,避免某些程序(如 sudo、ping、ssh)出现警告或错误
代码学习
PS1 代表 “Prompt String”,是一个 Bash shell 环境变量,它定义了命令提示符的格式。简单来说,PS1 决定了你在终端中看到的内容,即你输入命令之前显示的字符串。
Bash 还有其他提示符变量,如 PS2(用于多行命令)、PS3(用于 select 循环)和 PS4(用于调试)。
PS1 字符串中可以使用许多特殊字符(也称为转义序列),它们会被 Bash 解释并替换为实际值。 一些常见的特殊字符包括:
- \u:用户名
- \h:主机名(hostname)的第一个部分
- \H:完整的主机名
- \w:当前工作目录的完整路径(~ 代表用户主目录)
- \W:当前工作目录的basename(最后一个目录名)
\$
:如果当前用户是 root 用户,则显示 #;否则,显示 $- \d:当前日期(例如,”Tue May 9”)
- \t:当前时间(24 小时制,HH:MM:SS)
- \s:shell 的名称
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Diraw's World!
右侧切换GitHub或邮箱评论
GiscusTwikoo