/dev/sda`或`dd if=/dev/zero of=/dev/sda`这样简单的命令,能瞬间破坏整个磁盘的文件系统与数据,且几乎无法恢复。其次是极具误导性的`rm -rf /$SOME_DIR_TOBE_DEL/`,一旦变量未赋值,就会变成删除根目录的“终极指令”。最后是重定向使用不当,错误的写法可能覆盖`/dev/null`,导致系统标准输出和错误流混乱,影响全局服务。 文章没有复杂的理论,而是用具体命令示例揭示了风险根源——对命令和系统底层文件缺乏敬畏。它提醒每一位Linux使用者,在键入回车前务必确认命令含义,因为这些操作往往没有“撤销”选项。">
IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Linux 常见高危操作

忘我的追寻 2014-05-27 23:01:41 累计浏览 8,457 次
本机暂存

原文链接已失效,但全文已在站内存档。

探索更多技术文章 技术头条社区

推荐阅读

  1. Bash的模式和配置文件加载
  2. 28个Unix/Linux的命令行神器
  3. Linux如何统计进程的CPU利用率

1. 直接操作设备文件描述符

   我们知道/dev目录下存放的是设备的文件描述符。直接往设备描述符中写入数据,将破坏整个设备,如:对于硬盘设备映射到/dev/目录下的文件描述符写入数据,将破坏该磁盘设备上面的文件系统,或者已有的数据。

   echo  “ ”> /dev/sda,这样一个简单的命令就可以破坏整个磁盘上面的数据;  

   mkfs.ext3 /dev/sda1,创建文件系统;    

   fdisk /dev/sda ,重建分区;    

   dd if=/dev/zero of=/dev/sda,直接写入数据到磁盘设备文件描述符。

   这些对于已经存在数据的硬盘而言,都是致命的。

2. rm -rf

   通常,为了,一条命令就能删除一个目录下的所有文件,以及整个目录,我们会直接使用:rm -rf,有时还会给出这样的代码:rm -rf /$SOME_DIR_TOBE_DEL/,如果SOME_DIR_TOBE_DEL变量未被赋值,那么这条命令将会执行:rm -rf /,将整个Linux系统的根文件目录都删掉了,后果可想而知。

3. 重定向命令使用不当

   正确的重定向标准输出和标准错误的方法是:>/dev/null 2>&1 ,关于连环重定向,可以参考这里的解释:>/dev/null 2>&1 含义。如果一不小心,可能会导致/dev/null 被重定向到0,1或2,导致整个系统异常。