Spectator6 Asked: 2019-05-07 10:55:15 +0800 CST2019-05-07 10:55:15 +0800 CST 2019-05-07 10:55:15 +0800 CST 是否可以创建一个终端命令别名来自动化 CTRL + ALT + SYSRQ + REISUO 按键? 772 无论出于何种原因,我的外部硬盘驱动器在启动时经常遇到 initramfs 问题,导致我运行$ fsck /dev/sdb2 -y以使一切恢复正常。 我注意到的一件事是,使用标题命令关闭或重新启动系统大大减少了此错误的发生。 有没有办法创建一个脚本或终端别名来“完成”按下这些键的动作(每个字母之间有一点延迟)?所以与其用手指和脚趾玩数字体操,我可以简单地打字$ reisuo,它会为我完成动作? shutdown reboot 2 个回答 Voted Best Answer Radovan Garabík 2019-05-07T11:22:05+08:002019-05-07T11:22:05+08:00 #!/bin/sh for c in r s u o; do echo $c > /proc/sysrq-trigger sleep 1 done (虽然没有模拟CTRL键,反正也没效果) 编辑:删除e i,因为它们会杀死进程,包括当前的 shell 和脚本的其余部分不会继续。你最好还是使用kill或slay无论如何。而当你在做的时候SysRQ s u o,r是无关紧要的。 Spectator6 2019-05-10T08:34:48+08:002019-05-10T08:34:48+08:00 对于像我这样可能对 shell 脚本不熟悉的人,以下是我如何让@Radovan 的脚本启动并运行的分步说明: $ cd /usr/local/bin这是保存脚本的地方。在此目录中保存脚本不需要添加新路径。 sudo vim rsuo.sh要与此目录正确交互,需要使用 sudo 权限创建脚本 在上面添加@Radovan 的脚本,感谢@JdeBP 的好建议,现在省略了 SIGTERM 和 SIGKILL 命令,因此脚本能够运行完成 保存文件后,需要扩展其权限,以便非 root 用户可以访问它,使用以下命令:$ sudo chmod u+x rsuo.sh和/或$ sudo chown <user_name> rsuo.sh 现在文件已经设置好了,要为命令创建别名,打开 .bashrc ( $ vim ~/.bashrc) 并添加alias rsuo="cd /usr/local/bin && sudo rsuo.sh" 保存后,关闭并重新启动终端,当您输入 时$ rsuo,它会提示您输入 sudo 密码,然后执行脚本。 我对 rsub 命令重复了上述步骤,这样我也可以重新启动系统。 根据自己的喜好食用双份奥利奥;)
(虽然没有模拟CTRL键,反正也没效果)
编辑:删除
e i
,因为它们会杀死进程,包括当前的 shell 和脚本的其余部分不会继续。你最好还是使用kill
或slay
无论如何。而当你在做的时候SysRQ s u o
,r
是无关紧要的。对于像我这样可能对 shell 脚本不熟悉的人,以下是我如何让@Radovan 的脚本启动并运行的分步说明:
$ cd /usr/local/bin
这是保存脚本的地方。在此目录中保存脚本不需要添加新路径。sudo vim rsuo.sh
要与此目录正确交互,需要使用 sudo 权限创建脚本$ sudo chmod u+x rsuo.sh
和/或$ sudo chown <user_name> rsuo.sh
$ vim ~/.bashrc
) 并添加alias rsuo="cd /usr/local/bin && sudo rsuo.sh"
$ rsuo
,它会提示您输入 sudo 密码,然后执行脚本。