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

lia*_*iam 4 hostname device-name username

有没有办法更改终端窗口中每个命令行之前出现的名称?如果是这样,那又如何呢?如下所示,我当前的内容太长,每行占用大量空间。

$: command not found
liam@liam-Lenovo-Legion-Y7000:~$
Run Code Online (Sandbox Code Playgroud)

mch*_*hid 5

长的部分是计算机名称,也称为您的主机名:liam-Lenovo-Legion-Y7000

最简单的方法是将您的计算机名称更改为 liam 之类的名称,以便提示符显示如下:

liam@liam:~$
Run Code Online (Sandbox Code Playgroud)

有关如何使用hostnamectl命令更改计算机名称的信息,请参阅此重复答案。

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

sudo hostnamectl set-hostname liam
Run Code Online (Sandbox Code Playgroud)

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


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

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

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

cp ~/.bashrc ~/.bashrcbackup
Run Code Online (Sandbox Code Playgroud)

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

nano ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

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

该行应如下所示:

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

编辑该行以删除@\h\[\033[00m\]最多:但不删除的行,:因此编辑后的行应如下所示:

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

2. 按CTRL+ W,然后按ENTER

该行应如下所示:

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
Run Code Online (Sandbox Code Playgroud)

编辑要删除的@\h,以便编辑后的行应如下所示:

PS1='${debian_chroot:+($debian_chroot)}\u:\w\$ '
Run Code Online (Sandbox Code Playgroud)

3. 按CTRL+ W,然后按ENTER

该行应如下所示:

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

编辑要删除的@\h,以便编辑后的行应如下所示:

PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u: \w\a\]$PS1"
Run Code Online (Sandbox Code Playgroud)

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

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

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

您的提示现在应如下所示:

liam:~$
Run Code Online (Sandbox Code Playgroud)

  • 我对这个伟大答案的唯一建议是,您可以在终端中自由实验 - 只需输入“PS1=<无论您想尝试什么>”,它将立即生效 - 喜欢它,您可以编辑.bashrc 如上所述,如果您不喜欢它,那么一旦您关闭该终端,更改就会消失。 (2认同)