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

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

有没有办法更改终端窗口中每个命令行前显示的名称?如果可以,那么怎么做?如下所示,我当前的名称太长,每行都占用了大量空间。

$: command not found
liam@liam-Lenovo-Legion-Y7000:~$

答案1

长的部分是计算机名称,也称为您的主机名: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

提示的大部分长度是您的主机名(太长了,我无法重新输入 - 这是发布文本图片而不是发布格式化文本的缺点之一。请阅读 https://askubuntu.com/help/how-to-askhttps://askubuntu.com/help/formatting.).您可以缩短主机名吗?

提示符是通过 shell 魔法生成的,使用PS1环境变量,这个魔法在“PROMPTING”部分PS4中有解释。man $SHELL

相关内容