9个好玩但有点危险的Bash Shell命令
Posted mickjoust
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9个好玩但有点危险的Bash Shell命令相关的知识,希望对你有一定的参考价值。
前言
前段时间重感冒,状态低迷,各项任务进度拖延严重,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命令的主要内容,如果未能解决你的问题,请参考以下文章