我们的系统中有7个终端可以使用。其中
我如何检查我当前正在使用哪个
tty7
是基于图形用户界面的。我如何检查我当前正在使用哪个
tty
?tty7
是基于图形用户界面的。tty
?$ who am i
ravexina tty2 2017-04-10 11:19 (:0)
ravexina pts/0 2017-04-10 1:19 (:0)
ps $(pgrep Xorg)
PID TTY STAT TIME COMMAND
1693 tty1 Sl 0:05 /usr/lib/xorg/Xorg
who am i
没有返回任何结果,而执行whoami
返回zanna
,(当执行who
时返回所有会话(我记得有一个相关的问题(被证明无法回答)我们注意到不同的模拟器从who
输出不同的结果)。 - Zannapgrep
非常聪明(你可能想使用$()
语法来代替命令子 - 反引号在Markdown中有点令人困惑),所以你的回答非常好,不应该被那个给你投反对票的人这么做... - Zanna$()
;) - Ravexinatty
都提供“图形支持”,就像“这不是它们的工作一样”,只有终端0到6默认运行有getty
(登录提示符)。最近的桌面环境都使用(KMS +)基于DRM的图形输出,与终端没有任何关联;Xorg、Wayland和类似的系统将它们仅视为座位,以保持范式一致性。在tty7
+上运行图形界面只是一种约定。 - ElementWrxvt-unicode
上也无法工作 :(。 - pevikps $(pgrep X)
(而不是 Xorg
)。 - peviktty
命令似乎是你真正需要的全部。而且who am i
对我来说根本不起作用。 - Seamustty
命令。/dev/tty1 - tty1
/dev/tty2 - tty2
/dev/tty3 - tty3
/dev/tty4 - tty4
/dev/tty5 - tty5
/dev/tty6 - tty6
pts
表示您是通过图形用户界面(GUI)或通过SSH使用终端。 - lithium_jstty
命令会报告一个 pts。 - Monty Harderwho am i
或ps ax|grep $$
。这相对容易做到,因为有多种方法可以找出伪终端,大多数情况下伪终端在标准输入输出上打开,即使IO被重定向也有其他方法可行。这样做的好处是,在使用串口和虚拟终端时,无论你是否使用图形终端模拟器或终端复用器,它都能正确运行。sudo fgconsole
可能会有用。或者像我一样,直接遍历控制台,因为切换通常足够快速。我不知道在非交互或非前台情况下可靠地工作的编程方法。(:1:S0)
,告诉我们伪终端连接到第一个screen会话,该会话连接到第二个X服务器,但不提供任何虚拟控制台信息)。在任何一个ssh会话上运行who都会给出提示(alpha)
,它标识了ssh会话来自的机器,对于远程会话来说相当好。虽然关于连接到伪终端的信息很少(几乎没有虚拟控制台甚至远程终端信息可用),但至少可以确定远程主机。关于screen的信息可能是错误的,因为screen会话是可分离的,而vnc根本不提供有用的信息,因为vnc会话和本地会话之间唯一的区别就是显示编号。在许多情况下,你可以假设:0在tty7上,但并不总是如此,而且对于我来说从来没有这样,因为bravo根本没有显卡,:0是一个vnc会话(这让who感到困惑,因为它认为它是本地控制台),而且没有一台机器使用tty7作为图形会话,因为我(不仅仅是为了违抗)将日志转储到tty7(还有tty5、tty6和tty8),将图形会话放在其他地方。但是等等,screen也可以作为终端程序,允许您通过串行电缆建立会话。当运行who时,这样的会话会报告什么呢?除了串口之外,无论是通过vnc、xterm、ssh、screen和usb串行适配器同时连接,还是连接到我的televideo,都没有任何东西。在计算机启动时,出现主板/计算机制造商标志闪屏后,立即按住Shift键(如果看到Ubuntu标志,说明您错过了进入GRUB菜单的时机)。对于UEFI,请按Esc键(可能需要按多次)以进入GRUB菜单。有时,制造商的闪屏是Windows引导加载程序的一部分,因此当您开机时,它会直接进入GRUB屏幕,无需按下Shift。
从第一个紫色GNU GRUB屏幕上,使用↑和↓键选择Advanced options for Ubuntu,然后按Enter。然后会出现另一个紫色GNU GRUB菜单,其中列出了内核选项的列表。
使用向下箭头键滚动到顶部第二个条目(其描述中带有recovery mode),然后按Enter。
现在您应该能看到这个恢复菜单:
使用箭头键向下滚动到root,然后按Enter。
现在您应该能看到一个类似于以下内容的根提示符:
root@ubuntu:~#
此时,您应该具有只读文件系统。您需要以写权限重新挂载它:
mount -o rw,remount /
现在您可以像在终端中一样运行命令。
sudo fgconsole
来查找当前活动的真实tty。$ tty
/dev/pts/0
$ PS1='`tty`: '
/dev/pts/0: _
ls -l `tty` | awk '{print $10}'
tty
readlink /proc/self/fd/0
exec < /dev/null
之后它将无法工作。 - darw