如何在终端中显示当前机器信息?

如何在终端中显示当前机器信息?

是否有命令行可以查看我实际使用的计算机?

我广泛使用终端,并且我的 PS1 会话和计算机之间是相似的,所以我很困惑我当前使用的是什么机器。我所说的机器是指本地计算机或服务器,而不是当前用户(因为 PS1 正在显示此信息)。有命令行吗?

(ps:我请求命令行,而不是如何更改 PS1,因为有时我在小屏幕上工作,并且尝试管理相对较短的行)

谢谢

答案1

恕我直言,提示是提醒您所在位置的最佳工具。它可以用来提醒您有关机器、当前用户名、目录等的信息。提示符始终存在于命令行中,因此很难忽略它。使用其他一些命令查找当前机器名称(例如hostname)显然也可以,但您会忘记这样做。


将主提示设置为包含主机名的字符串:

PS1="$(id -un)@$(hostname) \$ "

这将在我当前的计算机上,对于我的用户,将提示设置为

[email protected] $ 

您可能想要使用hostname -s而不只是hostname删除主机名的域部分。

有些 shell(例如bash)具有速记符号,您可以将其用于相同的目的。对于bash(替换\H\h以获得主机名的较短版本):

PS1='\u@\H \$ '

请注意,没有必要,export PS1因为它仅由当前 shell 进程使用。

可以在 shell 初始化文件中更改此变量。对于bash,修改~/.bashrc.阅读有关 的 shell 手册PS1


对于非常小的屏幕,您可能需要提出自己的动态提示:

case "$(hostname)" in
    bigserver*)  promptstr='bs'  ;;
    srv-*)       promptstr='srv' ;;
    accounting*) promptstr='a'   ;;
    web-dev-*)   promptstr='wd'  ;;
    *)           promptstr=$(hostname -s) ;;
esac

PS1="$promptstr \$ "

或者只使用主机名的前三个字符:

HOSTNAME=$(hostname)
PS1="${HOSTNAME:0:3} \$ "

(显然,这需要一个知道如何进行此类变量替换的 shell,但bash确实如此)

...或者只是一些其他指示符来提醒您您不再是本地的,例如在远程使用( )*之前而不是在本地使用该指示符。或者许多可能的提示中的任何其他提示。$PS1='*$ '

答案2

有很多方法,具体取决于您需要什么信息来区分您的机器。


dmidecode -t1显示有关您所使用的计算机的信息,包括制造商和型号,例如

> dmidecode -t1 | grep Version
    Version: ThinkPad T520

uname -a打印系统信息,例如网络节点主机名 ( -n) 和内核版本 ( -r)。


lsb_release -a显示特定于发行版的信息,例如

> lsb_release -d
Description:    Ubuntu 16.04.3 LTS

答案3

尝试命令 uname -a OR hostname, ip a..etc

答案4

在终端中写入

主机名

相关内容