![如何从命令行打开数字锁定](https://linux22.com/image/1128994/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%89%93%E5%BC%80%E6%95%B0%E5%AD%97%E9%94%81%E5%AE%9A.png)
因此,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 setleds
或setleds --help
了解更多信息。
我相信该man
页面中有一个在各种终端上设置 numlock 的示例。您需要/dev/tty7
为终端指定。
答案3
setleds -D +num
打开或setleds -D -num
关闭数字锁定。
答案4
为了建立RaphaelDavid 的回答使用setleds -D +num
和setleds -D -num
:
您可能会收到其他错误,例如:setleds: Error reading current flags setting. Maybe you are not on the console?: ioctl KDGKBLED: Inappropriate ioctl for device
解决此错误信息的方法是setleds
在 TTY 中运行命令(例如: CTRL++ ALT)F2
要从 TTY 切换回桌面,请使用CTRL+ ALT+ F1。