如何从命令行打开数字锁定

如何从命令行打开数字锁定

因此,numlockx 似乎是自动启用 numlock 的标准方法。就我而言,我有自己的脚本,无论如何都会在启动时运行,而安装整个包来打开 numlock 感觉很麻烦。我希望有人能告诉我如何从命令行执行此操作,这样我就可以将其放入现有脚本中。

请注意,我对在登录屏幕上打开 numlock 不感兴趣,这似乎是许多类似问题的焦点。我想做用 numlockx 可以轻松完成的事情,但只需在登录时运行的现有脚本中添加一两行即可。提前致谢!

答案1

您可以通过访问 /dev/console 在 SSH 会话中设置数字锁定状态,这需要 root 权限(除非您更改 上的权限/dev/console)。

所有这些命令都假设用户无需密码即可执行 sudo。当用户属于名为“sudo”或“wheel”的组(具体取决于发行版和本地配置)时,通常就是这种情况。

# turn on numlock
sudo sh -c 'setleds +num < /dev/console'

# turn off numlock
sudo sh -c 'setleds -num < /dev/console'

也可以写入设备的 /sys 条目:

# Note that 'bash' is used to support the '?' glob.
# You could use 'sh' if you specified "input1."

# Turn off numlock LED (also turns off the numlock state)
sudo bash -c 'echo 0 > /sys/class/leds/input?::numlock/brightness'

# Turn on numlock LED
sudo bash -c 'echo 1 > /sys/class/leds/input?::numlock/brightness'

对于 /sys 方法,您不需要生成子 shell,因为tee无需输出重定向即可写入亮度文件:

# both the ? glob and > redirection happen outside the sudo process by your local shell

# Turn on
echo 1 | sudo tee /sys/class/leds/input?::numlock/brightness > /dev/null

# Turn off
echo 0 | sudo tee /sys/class/leds/input?::numlock/brightness > /dev/null

在 Raspberry Pi 4 Model B rev 1.4 上测试。

答案2

您可以使用setleds。请参阅man setledssetleds --help了解更多信息。

我相信该man页面中有一个在各种终端上设置 numlock 的示例。您需要/dev/tty7为终端指定。

答案3

setleds -D +num打开或setleds -D -num关闭数字锁定。

答案4

为了建立RaphaelDavid 的回答使用setleds -D +numsetleds -D -num

您可能会收到其他错误,例如:setleds: Error reading current flags setting. Maybe you are not on the console?: ioctl KDGKBLED: Inappropriate ioctl for device

解决此错误信息的方法是setleds在 TTY 中运行命令(例如: CTRL++ ALTF2

要从 TTY 切换回桌面,请使用CTRL+ ALT+ F1

相关内容