是否可以创建终端命令别名来自动执行 CTRL + ALT + SYSRQ + REISUO 按键?

是否可以创建终端命令别名来自动执行 CTRL + ALT + SYSRQ + REISUO 按键?

无论出于何种原因,我的外部硬盘驱动器在启动时经常遇到 initramfs 问题,导致我运行$ fsck /dev/sdb2 -y以使所有内容恢复正常。

但我注意到的一件事是,使用标题命令关闭或重新启动系统可以大大减少此错误的发生。

有没有办法创建一个脚本或终端别名来“完成”按下这些键的操作(每个字母之间有很小的延迟)?因此,我不必用手指和脚趾玩数字体操,而是只需打字$ reisuo,它就会为我完成动作?

答案1

#!/bin/sh

for c in r s u o; do
  echo $c > /proc/sysrq-trigger
  sleep 1
done

(不过,CTRL键不是模拟的,反正也没啥作用)

编辑:删除,e i因为它们会杀死进程,包括当前的 shell,并且脚本的其余部分将不会继续。无论如何,你最好使用killor slay。当你在做什么时SysRQ s u or是无关紧要的。

答案2

对于像我这样刚接触 shell 脚本的人来说,以下是我如何启动并运行 @Radovan 脚本的分步说明:

  1. $ cd /usr/local/bin这是保存脚本的位置。在此目录中保存脚本不需要添加新的路径。
  2. sudo vim rsuo.sh要正确与此目录交互,需要使用 sudo 权限创建脚本
  3. 在上面添加 @Radovan 的脚本,感谢 @JdeBP 的伟大建议,现在省略了 SIGTERM 和 SIGKILL 命令,以便脚本能够运行完成
  4. 保存文件后,需要扩展其权限,以便非 root 用户可以使用以下命令访问它:$ sudo chmod u+x rsuo.sh和/或$ sudo chown <user_name> rsuo.sh
  5. 现在文件已全部设置完毕,要为命令创建别名,请打开 .bashrc ( $ vim ~/.bashrc) 并添加alias rsuo="cd /usr/local/bin && sudo rsuo.sh"
  6. 保存后,关闭并重新启动终端,当您键入 时$ rsuo,它会提示您输入 sudo 密码,然后执行脚本。
  7. 我对 rsub 命令重复了上述步骤,这样我也可以有办法重新启动系统。
  8. 根据您的喜好食用双份奥利奥;)

相关内容