AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 785128
Accepted
Z0OM
Z0OM
Asked: 2024-10-15 21:55:23 +0800 CST2024-10-15 21:55:23 +0800 CST 2024-10-15 21:55:23 +0800 CST

如何使用 setterm 或其他命令重新打开屏幕,仅使用 ssh 上的核心实用程序?

  • 772

我有一个没有图形界面/桌面环境的Debian 12系统。console-only

我使用设备本身关闭了屏幕setterm --blank force,现在我无法通过按下任何键将其重新打开,因为force会导致键盘输入被忽略。

SSH我可以通过 Debian 12 桌面环境进行访问,但是当我setterm -blank 0通过SSH作为进入时root,我收到消息terminal xterm-256-color does not support --blank。

我也无法TTYs在设备本身上切换不同的版本。

即使我在 Debian 桌面上切换到 TTY 并使用setterm --blank 0,我也没有收到任何错误消息,但什么也没有发生。

有了setterm --blank poke,我得到了cannot force unblank。

是否有其他命令core utilities可以用来唤醒屏幕而无需安装其他工具?

否则,我只需重新启动。

debian
  • 1 1 个回答
  • 58 Views

1 个回答

  • Voted
  1. Best Answer
    Z0OM
    2024-10-15T23:25:25+08:002024-10-15T23:25:25+08:00

    要在使用 关闭 后再打开屏幕setterm --blank force,您可以从单独的 中使用以下命令TTY。

    ssh在设备上登录并运行:

    sudo sh -c 'TERM=linux setterm --blank poke </dev/tty1'

    sudo授予超级用户权限

    如果用户拥有 TTY 设备(如 /dev/tty1),则某些操作需要提升权限。这尤其适用于直接与硬件或系统资源交互的命令。TTY 设备上的权限通常允许普通用户读取和写入设备,但某些命令可能需要 root 权限才能更改可能影响整个系统的设置。

    虽然您可能拥有 TTY 设备的所有权,但运行修改终端行为的命令通常需要提升的权限,以确保系统保持安全并且用户不会无意中破坏系统设置。

    在设备本身上,我可以运行setterm --blank force以与常规用户一起关闭屏幕。

    当我setterm --blank force以普通用户身份通过​​ ssh 运行时,

    我收到setterm: cannot force blank: Inappropriate ioctl for device并

    sh -c 'TERM=linux setterm --blank poke </dev/tty1'

    或者

    sh: 1: cannot open /dev/tty2: permission denied

    我收到了setterm: cannot force blank: Operation not permitted

    所以我需要 sudo/root 权限才能通过 ssh 运行命令。

    在安全方面,SSH 会话通常需要更加谨慎地处理。这意味着,即使用户拥有 TTY 设备,SSH 守护程序也可能强制执行额外的限制,要求对可能更改系统行为或终端设置的命令使用 sudo。

    /dev/tty1 等设备的权限设置为允许用户直接访问,但通过 SSH 访问时,权限管理方式可能会有所不同。

    通过 SSH 执行命令时需要 sudo,是因为远程会话与本地访问的权限上下文和安全措施不同。

    sh -c在新 shell 中执行封闭的命令字符串

    TERM=linux设置终端类型

    setterm --blank poke使用它来运行setterm唤醒屏幕poke

    </dev/tty1指定输入来自第一个虚拟终端

    简短解释:

    重定向</dev/tty1| 这指定命令正在从 读取/dev/tty1,这是第一个虚拟终端。这是必要的,因为setterm需要直接与控制台交互

    设置TERM=|TERM=linux很重要,因为它将终端类型设置为linux,确保setterm能够正确解释终端功能并执行所需的操作

    使用sudo| 需要提升权限才能直接与终端交互,这就是为什么sudo有必要

    我现在可以用以下方法关闭屏幕ssh:

    sudo sh -c 'TERM=linux setterm --blank force </dev/tty1'

    编辑:

    似乎无论我在命令中 使用tty1、tty4或任何其他命令,它仍然可以正常工作等等。ttyX</dev/tty4

    内核对虚拟终端的处理Linux 内核管理多个虚拟终端 (TTY),它们都具有相似的特性。当您将 setterm 与指定的 TTY(例如 /dev/tty1)一起使用时,它可以控制该终端的屏幕设置,但不会将命令限制在该特定终端上。由于该命令不依赖于当前终端,而是依赖于输入重定向,因此您可以有效地定位任何 TTY 而不会出现问题。设置 TERM=linux 可确保 setterm 了解如何与终端交互,无论您定位的是哪个 TTY。

    • 1

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve