如何更改终端窗口中每个命令前显示的用户或计算机名称?

有没有办法更改终端窗口中每个命令行前显示的名称?如果有,那么如何操作呢?如下所示,我的当前名称太长了,在每一行中占用了很多空间。
$: command not found
liam@liam-Lenovo-Legion-Y7000:~$

1欢迎来到Ask Ubuntu。请不要上传终端的截图。请始终从终端复制文本,并直接粘贴到您的问题中。然后使用编辑问题窗口上方的“{_}”图标将粘贴的文本格式化为code。请编辑您的问题,并指明您是想要更改终端显示内容还是更改用户名?更改用户名可能会影响其他事项,例如您的“Home”文件夹从/home/liam变为/home/harry - user68186
2@ 符号之后的长部分是您计算机的主机名,而不是您的用户名。例如,请参考 Ubuntu 更改计算机名称 - steeldriver
打开终端并复制粘贴此命令:PS1='${debian_chroot:+($debian_chroot)}Harry@MyPC:\w\$ ' 这将暂时将您的名称更改为Harry,将计算机名称更改为MyPC,但仅在命令提示符中显示。或者,您可以将计算机名称更改为简短而简单的东西,例如(梅赛德斯)"奔驰",而不是"liam-Lenovo-Legion-Y7000"。 - user68186
因为我有多个安装和几个系统,所以我喜欢给系统和版本取一个简短的名称。"fred@Z170-jammy:~$ " - oldfred
可能对于刚接触Unix的人来说并不清楚,但是这个提示非常有用,不仅可以知道当前正在使用的用户ID和系统,还可以方便地使用scp和rsync命令快速移动文件和目录。例如: $ scp ~/.bash_aliases joe@romulus: 或者 $ rsync -avz ~/.bash* joe@romulus: 这些命令将匹配通配符模式的文件复制到用户ID为"joe"的romulus主机上的HOME目录中。 - JohnP
2个回答

长的部分是计算机名称,也被称为主机名:liam-Lenovo-Legion-Y7000 最简单的方法是将您的计算机名称更改为类似于liam的内容,这样提示会显示如下:
liam@liam:~$

查看此重复答案以了解如何使用hostnamectl命令更改计算机名称。

在您的情况下,要将主机名更改为liam,您可以使用以下命令:

sudo hostnamectl set-hostname liam

这里是另一个关于如何更改设备名称的重复问题。


或者,以下是一种更复杂的方法,可以从提示符中删除计算机名称。

在不改变实际计算机名称的情况下,您可以通过编辑您的~/.bashrc文件来删除提示符中的计算机名称。

在我们开始之前,请备份此文件:

cp ~/.bashrc ~/.bashrcbackup

运行以下命令使用nano编辑文件:

nano ~/.bashrc

1. 按下CTRL+W进行搜索,然后输入PS1,最后按下ENTER

这一行应该是这样的:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

编辑这一行以删除@\h\[\033[00m\]直到:,但不要删除:,因此编辑后的行应该是这样的:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u:\[\033[01;34m\]\w\[\033[00m\]\$ '

2. 按下 CTRL+W,然后按下 ENTER

这一行应该是这样的:

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

编辑这行代码,删除@\h,使得编辑后的代码看起来像这样:
PS1='${debian_chroot:+($debian_chroot)}\u:\w\$ '

3. 按下 CTRL+W,然后按下 ENTER

此行应该看起来像这样:

PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

编辑这行,删除@\h,使得编辑后的行看起来像这样:
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u: \w\a\]$PS1"

编辑文件完成后,按下CTRL+o保存更改,然后按下CTRL+x退出nano。

最后,运行以下命令应用更改:

source ~/.bashrc

您的提示现在应该显示为以下内容:
liam:~$

2我对这个很好的回答唯一建议的另一件事是,你可以在终端中自由地进行实验 - 只需键入PS1=<你想尝试的内容>,它将立即生效 - 如果你喜欢它,你可以像上面那样编辑到.bashrc文件中,如果你不喜欢它,更改会在你关闭终端时消失。 - Will
这解决了我的问题,非常感谢! - liam

大部分提示的长度是主机名(对我来说太长了,无法重新输入 - 这是发布文本图片而不是发布格式化文本的缺点之一。请阅读https://askubuntu.com/help/how-to-askhttps://askubuntu.com/help/formatting。)你能缩短主机名吗?
提示是通过shell魔术产生的,使用PS1PS4环境变量。这个魔术在man $SHELL的“PROMPTING”部分有解释。