Ubuntu 16.04 LTS执行reboot前如何添加确认?molly-guard无效求助
reboot导致笔记本重启的问题 我完全懂这种崩溃感——哪怕99次都操作正确,那1次手滑在本地终端标签页敲了reboot,笔记本直接重启没任何提示,之前没保存的工作全泡汤,真的太闹心了。既然molly-guard没起作用,咱们来试试几个更直接的“安全锁”方案,而且绝对不影响你在minicom里给嵌入式系统发命令:
方法1:给本地reboot加带确认的别名(最推荐)
这个办法只针对你的本地Ubuntu终端生效,完全不干扰minicom里的操作——毕竟minicom是串口程序,你在里面敲的命令都是发给嵌入式设备的,和本地bash环境没关系。
步骤很简单:
- 打开你的bash配置文件:
nano ~/.bashrc - 拉到文件末尾,添加这一行:
alias reboot='read -p "你确定要重启当前笔记本吗?(y/N) " confirm && [ "$confirm" = "y" ] && /sbin/reboot' - 按
Ctrl+O保存,Ctrl+X退出,然后执行下面的命令让配置立即生效:source ~/.bashrc
之后你在本地终端敲reboot时,会先弹出确认提示:只有输入小写的y并回车,才会触发重启;按回车或者输入其他字符,都会直接取消操作。完美避免手滑误触!
如果你用的是zsh而不是bash,就修改~/.zshrc文件,步骤完全一样。
方法2:限制reboot的执行权限,强制需要sudo
如果觉得别名还不够保险,可以直接修改reboot命令的权限,让普通用户不能直接执行,必须通过sudo(需要输入密码)才能触发重启,相当于多了一层确认门槛:
执行这条命令:
sudo chmod o-x /sbin/reboot
之后你在本地终端直接敲reboot,会提示“权限不够”,必须输入sudo reboot并输入密码才能重启——这时候你大概率会反应过来:“哦不对,我这是在笔记本终端里!”
如果之后想恢复原来的权限,执行:
sudo chmod o+x /sbin/reboot
方法3:给终端标签页做可视化区分(辅助手段)
除了命令层面的防护,还可以给minicom标签页设置不同的颜色或标题,比如把minicom标签页改成红色,本地终端用默认颜色,这样一眼就能区分开,从根源减少误操作的可能。
比如在启动minicom时,给终端设置标题:
minicom -D /dev/ttyUSB0 -b 115200 && echo -ne "\033]0;本地终端\007"
或者直接在minicom的配置里修改启动后的终端标题,具体可以看minicom的-t参数说明。
内容的提问来源于stack exchange,提问作者Nathan Owen

