如何知道终端名称(命令行提示符)来自哪里?

如何知道终端名称(命令行提示符)来自哪里?

当我使用 登录远程服务器时user,我看到终端名称: user@someName。我想修改someName部分。

我想这可能与主机名有关。所以打开/etc/hostname,它也被命名为someName。但即使更改了hostName,终端名称也没有改变(我尝试注销并重新登录)。

该用户也没有.bashrc创建文件。

答案1

/etc/hostname只会在启动时读取,因此除非您重新启动主机,否则它不会更新机器的主机名。

您可以通过运行以下命令来更新机器的主机名,而无需重新启动hostname,如下所示:

mtak@rubiks:~$ sudo hostname otherhostname
mtak@rubiks:~$ bash
mtak@otherhostname:~$ 

或者让它读取文件/etc/hostname

mtak@otherhostname:~$ less /etc/hostname
rubiks
mtak@otherhostname:~$ sudo hostname -F /etc/hostname
mtak@otherhostname:~$ bash
mtak@rubiks:~$ 

更改主机名后,最好重新启动主机,因为所有使用该主机名的正在运行的守护程序都不会自动更新(例如,Apache 仍会显示Apache/2.4.10 (Debian) 服务器位于 someName 端口 80)。

答案2

在 Linux 上,计算机的名称存储在三个不同的位置:/etc/hostname、shell 使用的变量 $HOSTNAME 以及 X 从中拉取的某个与其他两个不同的位置。(几年前我曾经找到过它,但不记得在哪里找到它,除非我不得不仔细查看 startx 脚本。)

正如上面所说的,更改 /etc/hostname 是不够的。您还需要在 shell 中使用“hostname -F /etc/hostname”进行更改。或者重新启动计算机。

相关内容