前言

前段时间重感冒,状态低迷,各项任务进度拖延严重,Blog更新更是非常滞后。

一个感悟:生病时人会有种无力感,想要做但真的很容易放弃。

所以,身体很重要,要花时间锻炼身体,花时间休息非常有必要。

回归正题,今天无意中看到一篇有趣的文章《9 Evil Bash Commands Explained 》,突然想到每年都频发的多起“删库跑路事件“”,有的命令虽然好玩,但异常危险!千万不要让你的好奇心变成潜在危险。

1.

alias cd='rm -rf'

这里发生了什么?

  • alias:是声明bash命令的别名/快捷方式。
  • cd:是指定的别名的名称。
  • rm -rf:是实际运行的命令。不用说我们都知道是干什么的。

终于明白,为什么每一家公司都会强制要求离职时要格式化电脑,因为不知道是不是就有这样的别名设置。

2.

:(){:|: &};:

这里发生了什么?

简单说就是,无终止的条件递归。如果执行此操作,它将快速复制自己,从而消耗完所有的内存和CPU资源(也称为fork bomb)。它可以冻结您的整个系统,因此是拒绝服务攻击的一个示例。令人惊讶的是,仅用12个字节的命令就能执行这种攻击!
翻看耗子叔的文章时发现,他介绍过这个经典的命令:FORK 系统炸弹

3.

dd if=/dev/zero of=/dev/sda

这里发生了什么?

  • dd:是将数据从一个文件设备复制到另一文件设备的命令。
  • if=指定源:/dev/zero 是零字节的无限源。
  • of=指定目标:/dev/sda 是磁盘驱动器。

dd 常用来做磁盘读写测试,但同时也是擦除磁盘的危险命令。

我曾经就犯过这样的错误,当时是刚装完一台Oracle RAC的新Linux系统,没有业务数据,想着插入USB后格式化,usb本来应该是sdc,而我看成了sdb,dd后就后悔了,reboot后,果然系统就起不来了,只能边骂自己边重装。

4.

for i in {1..10};do dd if=/dev/urandom of=/dev/sda;done

这里发生了什么?

这里是上面dd命令的变种,使用随机字节十次覆盖整个磁盘。

5.

git reset --hard

这里发生了什么?

  • git reset:是将git代码库的当前HEAD重置为最后一个提交(或指定)状态。
  • --hard:是重置索引和工作树。自上次提交以来,对工作树中跟踪文件的任何更改都将被丢弃。

换句话说,命令会丢弃所有未提交的更改。由于这些不是git跟踪的,因此无法还原它们。

6.

tar -czvf /path/to/file archive.tgz
# 替换为
tar -czvf archive.tgz /path/to/file

这里发生了什么?

  • tar -czvf:c是创建新文档,z是使用gzip,v是现实执行过程,f是指定到文件。
  • archive.tgz:要创建的压缩文件的名称。
  • /path/to/file:要压缩的文件的路径。

这里的文件顺序至关重要!!!如果第一个文件是你要压缩的文件,则它会被完全销毁,因为它tar是通过覆盖第一个给定文件开始创建存档的,直到事后才意识到第二个给定文件不存在。如果要备份文件并使用错误的参数顺序,崩溃只在一瞬间。

7.

chmod -R 777 /
# 替换为
chmod -R 777 ./

这里发生了什么?

  • chmod -R:递归应用文件权限
  • 777:设置权限模式(允许所有内容)
  • ./:应更改的目录或文件

如果您不注意要定位的目录,而无意中选择了根目录而不是当前目录的娿,那么你将弄乱整个系统的所有权限,从而无法使用。

8.

chown -R root:root /
# 替换为
chown -R root:root ./

这里发生了什么?

  • chown -R:递归地应用新所有者
  • root:root owner:要设置的组
  • ./ 应更改的目录或文件

这将以最可能需要重新安装系统的类似方式弄乱所有文件权限。

9.

fsck -y /dev/sda

这里发生了什么?

  • fsck:是知执行文件系统的检查,而-y 始终尝试自动修复任何检测到的文件系统损坏的标志。
  • /dev/sda:是要检查的卷。

这通常是一件好事,但您的卷已加密。在这种情况下,fsck修复它的尝试将完全破坏它。文件系统只有在解锁后才能检查。

小结

看来,作者写文章的目的真的只是闲来无事而已,不过,倒是给我们提了醒:

  • 通过输入一个简单的命令,就能很容易的销毁一个系统的数据。
  • 输入bash命令尤其要检查是否有拼写错误,比如,rm -rf *你敢乱写吗?!
  • 永远不要只会复制和粘贴代码,别人很可能给你埋了一个雷。
  • 大多数错误都是在root权限下犯的,小心使得万年船!

所以,一定要记住:手握系统权限操作越大,责任也就越大。

最后

如果你知道其他好玩但危险的命令,欢迎留言分享。

免责声明:对于你通过尝试上述命令对系统造成任何的损害,我不承担任何责任。请使用虚拟机等安全环境进行测试。

9个好玩但有点危险的Bash Shell命令相关推荐

  1. bash shell命令(2)

    在上篇<bash shell命令(1)>中,介绍了几种简单的linux shell命令,今天继续介绍bash shell命令 本文地址:http://www.cnblogs.com/arc ...

  2. 第四章:更多的bash shell命令

    第四章:更多的bash shell命令 监测程序 ps (其他ps内容见#1 ) Unix风格的ps命令参数 参数 描述 -A 显示所有进程 -N 显示与指定参数不符的所有进程 -a 显示除控制进程( ...

  3. Linux命令行–基本的bash shell命令

    启动shell: /etc/passwd:包含系统用户账户列表以及每个用户的基本配置信息 每个条目有七个字段,每个字段用冒号隔开 用户名 用户密码 用户的系统UID 用户的系统GID 用户的全名 用户 ...

  4. bash shell 命令 - linux

    参考书籍<Linux命令行与shell脚本编程大全> 复制文件 cp 1.sh -i 13.sh cp -i 在覆盖前询问用户 cp -v 告诉用户正在做什么 创建目录 mkdir 创建多 ...

  5. bash shell 命令

    bash shell可以指定shell的启动方式,常见参数包括: -c string语法格式,参数c表示从"string"字符串中读取命令并执行 -i 启动一个能接受用户输入的交互 ...

  6. 16. Bash Shell - 命令行剪切与召回

    开篇词 我们可以通过借助 Bash Shell 提供的 killing 和 yanking 特性来剪切以及粘贴(召回)命令行内容. 向前 Killing / 剪切文本 我们可以借助 Ctrl K 来剪 ...

  7. 基本的bash shell命令

    bash手册 man命令用来访问存储在Linux系统上的手册页面.在想要查找的工具的名称前面输入man命令就可以找到那个工具相应的手册条目.当使用man命令查看手册时,手册是由分页程序来显示的,使用空 ...

  8. bash shell 命令行选项的用法

    一.简介 1.命令行参数 向shell脚本传递数据的最基本方式是使用命令行参数. (1) 读取参数 读取输入的参数的变量为位置参数,位置参数通过标准数字表示, 其中$0为程序名称,$1为第一个参数,$ ...

  9. Linux命令行–更多bash shell命令(转)

    4.1.1 探查程序 ps 命令 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户进程的进程 显示的当前进程的项目 进程号 运行在哪个终端(tty) 进程占用的CPU时间 Linux系统支 ...

最新文章

  1. python运行程序-一文看懂python程序的执行过程
  2. Database之SQLSever:SQL命令实现理解索引、规则、默认概念及其相关案例之详细攻略
  3. c++一个问题:while(!cin) 的解释
  4. graphpad怎么修改图片大小_Graphpad Prism 8.0进阶篇-绘制小提琴图
  5. java 动态获取IP地址(城市)
  6. python基础函数式编程(十七)
  7. Centos6.5安装tocmat7 配置以及优化
  8. php laypage,LayUI分页和LayUI laypage分页区别详解
  9. 如何下载安定门街道卫星地图高清版大图
  10. 简支梁挠度计算公式推导_挠度公式推导与计算
  11. 英语单词记忆(词缀 / 词根)
  12. [渝粤教育] 宁波财经学院 金融工程学 参考 资料
  13. 无线系列 - 5G大规模MIMO阵列仿真及混合波束成形设计
  14. Sensor Hub
  15. 优雅地使用GEE绘制DEM
  16. Python爬取豆瓣网影评展示
  17. 计算机名更改后无法进入局域网,win10系统局域网计算机名称更改的恢复办法
  18. 带你了解Java高级编程-----网络编程
  19. 本原多项式 M序列和AES不可约多项式
  20. java输出语句没有输出,JAVA语句输出问题

热门文章

  1. visio和preject冲突_Office与Visio安装冲突解决方法
  2. Qualcomm ADK6 EARBUD APPLICATION
  3. 【zz-中电信189号段将在北京放号】
  4. 亚马逊云科技Marketplace(中国区)正式支持付费AMI产品
  5. 设计模式(一)认识UML图提升代码阅读与设计能力
  6. 免费知网万方数据论文下载
  7. 摄影大师常用的9个构图技巧
  8. 《漂亮的流程图绘制》(ConceptDraw Professional)v7.4.0
  9. 影接不暇:IMAX Enhanced上线爱奇艺
  10. 网络空间安全概论第五章笔记