是否有命令行可以查看我实际使用的计算机?
我广泛使用终端,并且我的 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
在终端中写入
主机名