SebMa Asked: 2022-10-06 10:13:22 +0800 CST2022-10-06 10:13:22 +0800 CST 2022-10-06 10:13:22 +0800 CST 如何检测我是否在控制台上连接 772 我想在进行网络维护之前找到一种可靠的方法来检测我是否在控制台上连接。 到目前为止,我发现了这个: $ tty | grep /dev/tty /dev/tty2 # Connected on the console $ ssh localhost tty | grep /dev/tty $ # Remotely connected 这是一种可靠的方法吗? linux tty 1 个回答 Voted Best Answer larsks 2022-10-06T10:57:06+08:002022-10-06T10:57:06+08:00 单独运行tty会告诉您是否连接到控制台——它可能是本地虚拟控制台,但也可能是伪终端。例如: ssh -t localhost tty /dev/pts/9 该-t标志的意思是“分配一个 tty”,这是交互式 ssh 会话的默认行为。 所以你不能只问“我是否连接到tty?”,而是可以根据tty命令返回的设备做出决定。就像是: case "$(tty)" in /dev/tty[0-9]) echo "I am on a local console." ;; /dev/ttyS[0-9]|/dev/ttyACM[0-9]|/dev/ttyUSB[0-9]) echo "I am on a serial console." ;; *) echo "I am not on a local console" esac
单独运行
tty
会告诉您是否连接到控制台——它可能是本地虚拟控制台,但也可能是伪终端。例如:该
-t
标志的意思是“分配一个 tty”,这是交互式 ssh 会话的默认行为。所以你不能只问“我是否连接到tty?”,而是可以根据
tty
命令返回的设备做出决定。就像是: