刚刚脑子也是抽了,觉得 history 里面 clear, exit, pwd 这种垃圾太多,总翻不到自己想找的以前的命令(某个 grep 正则表达式),于是准备拿.bash_history 开刀,vim 一番操作终于干掉了 clear, pwd 这种。
然后敲了一下 history,发现还没更新(应该是下次登录的时候重新载入),于是想到了用 source 更新一下。
高潮来了,我在命令行里敲下了 source .bash_history,一行行字符在屏幕飞速滚过,好像有什么不对。。。
左右翻看了一下,挂载到根目录下的硬盘被清空。。。
看了一下 history。。。
是不是已经凉了?还有救么?
![]() | 1 holajamc 2019-01-17 10:47:56 +08:00 陈独秀你坐下 |
2 sambawy 2019-01-17 10:49:14 +08:00 ![]() 快联系去越南或者泰国的船吧 |
3 CallMeReznov 2019-01-17 10:49:50 +08:00 ![]() |
![]() | 4 hahiru 2019-01-17 10:50:00 +08:00 ![]() 强迫症患者的第 101 种死法。 |
![]() | 5 cjlmwcy 2019-01-17 10:50:04 +08:00 凉凉 |
![]() | 6 zhangroyaso 2019-01-17 10:50:59 +08:00 ![]() 于是想到了用 source 更新一下 ===== 这...什么神操作?!! |
7 a41050447 2019-01-17 10:51:27 +08:00 via iPhone source 也敢乱用,佩服佩服 |
8 auxox 2019-01-17 10:52:30 +08:00 ![]() 比惨我从来没有输过谁 : ) |
![]() | 9 simoncos 2019-01-17 10:52:42 +08:00 ![]() 又一次理解了懒惰的智慧 |
![]() | 10 yuikns 2019-01-17 10:53:26 +08:00 via iPad ![]() |
![]() | 11 shayuvpn0001 OP @zhangroyaso 以为可以像 source .bashrc 那样。。。 |
![]() | 12 ABenmao 2019-01-17 10:55:16 +08:00 ![]() 哈哈哈,吓得我赶紧看了下 source 的用法 |
13 al0ne 2019-01-17 10:55:57 +08:00 重新读取是 history -r 老哥这次要记住了 |
![]() | 14 yuikns 2019-01-17 10:56:16 +08:00 via iPad ![]() 不楼主你们这种动不动就是 root,还把各种服务放一起的(如果是),这种事情今天不发生明天也会的 |
15 exip 2019-01-17 10:56:17 +08:00 via Android source 命令敢这样用?看来您是没明白 source 到底是干什么的。 |
16 xcai 2019-01-17 10:58:30 +08:00 via Android 你千万别想着乘走私船到缅甸,再到越南柬埔寨。。我与 rm -rf / 不共戴天 |
17 ucanuup 2019-01-17 10:59:34 +08:00 ![]() ctrl+r 用来搜索历史命令很好用啊 |
![]() | 18 4DAX07B8Kle4Dm6T 2019-01-17 11:02:47 +08:00 我这里有本《 99 种跑路法》,只需要 10 块钱,楼主来一本? |
19 Greendays 2019-01-17 11:05:25 +08:00 为什么这个命令会出现在 history 里? |
20 cmllwxxl 2019-01-17 11:08:08 +08:00 老哥,需要跑路一条龙吗,不要 998,只要 98,赶紧联系,晚了就跑不了了 |
21 kassadin 2019-01-17 11:08:09 +08:00 吓得我也看了下 source 的用法,一直固定使用 source .zshrc,都当成固定用法了 ,原来还有这种骚操作 |
22 Liberal0 2019-01-17 11:08:49 +08:00 via Android source FILENAME [arguments]:read and execute commands from FILENAME in the current shell. |
![]() | 23 zpf124 2019-01-17 11:11:01 +08:00 我有些没理解, 为什么不是 cd 到 CrGuard 目录了吗? 为什么 rm -rf * 会删到 /下面? source 的时候 cd 命令不起作用? 并且楼主是在 根路径下执行的 source ? |
![]() | 24 shayuvpn0001 OP @Greendays 这是 N 年以前下载 CrGuard 的时候的操作,本来是手动在 Z 盘创建了一个 CrGuard 目录,然后 cd 进去的,git 下载了就拷贝出去了然后删除了 CrGuard。刚才 source 这一把执行到 cd CrGuard 这里必然是 No such file or directory,然后继续在 /z 执行了 rm -rf * -_-!!!! 这真的是美好的一天啊!!! |
25 jssyxzy 2019-01-17 11:12:55 +08:00 hhhhhhhhhh |
![]() | 26 pexcn 2019-01-17 11:14:17 +08:00 资深运维啊 XD |
![]() | 27 shayuvpn0001 OP 不是删除了整个根目录,是删除了挂载到根目录下的 z 盘的全部内容。。。 |
28 exip 2019-01-17 11:15:27 +08:00 数据恢复或许还来得及 |
![]() | 29 whypool 2019-01-17 11:15:45 +08:00 优秀 |
30 richzhu 2019-01-17 11:17:48 +08:00 看了下楼主的帖子 貌似是 JAVA 程序员,我还以为是我同行~ |
![]() | 31 Yiki 2019-01-17 11:18:13 +08:00 哇好骚啊.. |
![]() | 32 ooeyunarika 2019-01-17 11:18:45 +08:00 承包了我今天的笑点 |
  33 morefreeze 2019-01-17 11:18:57 +08:00 你这个需求 ctrl+r 肯定也解决了 如果还找不到 那也是 grep 命令太多了 和 pwd 这些无关 不过学到了跑路新姿势(手动滑稽 |
34 gabon 2019-01-17 11:20:37 +08:00 via Android alias 了解一下 |
![]() | 35 xiaket 2019-01-17 11:21:05 +08:00 ![]() fzf 解决找历史命令的需求 |
![]() | 36 shayuvpn0001 OP @morefreeze 是的,grep 太多,我知道 ctrl + r 的,这次纯粹是想回去翻某一条已经忘记的正则。 |
![]() | 37 anzu 2019-01-17 11:22:07 +08:00 2333333 《 99 种 rm -rf 意外事故》 |
![]() | 38 panyanyany 2019-01-17 11:22:28 +08:00 @zpf124 #23 在楼主执行 source 的时候,z 和 CrGuard 这 2 个目录并不存在,所以还是在根目录 / 下 |
![]() | 39 SakuraKuma 2019-01-17 11:26:06 +08:00 ![]() ... 简直惨.. source 还有个.操作, 还是小心点吧.. . .bash_history 一样效果 |
40 wenzhoou 2019-01-17 11:27:13 +08:00 via Android 让我先笑三十分钟先。 |
![]() | 42 jasonyang9 2019-01-17 11:28:40 +08:00 @panyanyany #38 不是根,`cd z`生效的,他把挂载在这个目录下的分区清空了 |
43 jzmws 2019-01-17 11:30:15 +08:00 你跑把,弟妹和孩子我们会照顾好的!! |
![]() | 44 lynnX 2019-01-17 11:36:35 +08:00 Windows 大法好! ![]() |
![]() | 45 HiJackXD 2019-01-17 11:42:56 +08:00 ![]() |
46 1oNflow 2019-01-17 11:47:51 +08:00 via iPhone 那 source .bashrc 有什么风险吗… |
![]() | 47 pkookp8 2019-01-17 11:48:30 +08:00 via Android rm $ENV -rf 的也注意了,ENV 哪天没赋值,又是 sudo 执行,就炸了 不过现在很多系统都会询问一下是否删除 不过不过不过很多人都不会看直接 yes |
![]() | 48 ymj123 2019-01-17 11:52:32 +08:00 via Android 这么说来,楼主在删库前应该还下了个,gitbuh 上的库。哈哈。 |
![]() | 49 wlsnx 2019-01-17 11:52:33 +08:00 exec $SHELL 了解一下 |
50 H0TSp1RnG 2019-01-17 11:53:43 +08:00 欢声笑语打出 GG |
![]() | 51 guanhui07 2019-01-17 11:55:49 +08:00 流弊 |
52 photon006 2019-01-17 12:03:44 +08:00 ![]() 分享一个方法快速找到之前命令: 在当前用户~目录新建一个隐藏文件.inputrc,内容如下: "\e[A": history-search-backward "\e[B": history-search-forward set show-all-if-ambiguous on set completion-ignore-case on 退出 terminal,重进,输入命令开头几个字母按“上”就出来了。 |
![]() | 53 niuoh 2019-01-17 12:07:15 +08:00 source .bash_history 这条命令也会保存在.bash_history 里 那么这条命令是不是会死循环... |
![]() | 54 bugsnail 2019-01-17 12:17:01 +08:00 又多了一种删库跑路的新姿势 ![]() |
![]() | 56 JackieMe 2019-01-17 12:23:03 +08:00 via Android 我前几天想把别的文件一些内容添加进 ~/.vimrc,没想好正则怎么写命令都没写完脑子抽了就直接运行了,然后命令变成了 grep > ~/.vimrc .. |
![]() | 57 gethin0321 2019-01-17 12:24:38 +08:00  |
![]() | 58 bomb77 2019-01-17 12:26:47 +08:00 因为命令是顺序执行的啊,先 cd 到了 / 目录,你后面还有 cd z 和 cd CrGuard 命令,但如果 / 目录里面没有 z 目录的话,这两个 cd 命令就执行失败了,然后还是在 / 目录,后面的 rm -rf * 就默默在 / 目录里执行了啊 ![]() |
59 gaby2018 2019-01-17 12:34:38 +08:00 这么骚的操作?看来船票是买好了啊!!! |
![]() | 60 yulgang 2019-01-17 12:54:16 +08:00 于是想到了用 source 更新一下.... 骚得我差点信了。 |
61 wemore 2019-01-17 12:59:21 +08:00 via iPhone 你可以陪哥仨当偶像了 |
62 asdf123101 2019-01-17 13:09:45 +08:00 via Android 给大佬劈叉。。。 |
![]() | 63 tabris17 2019-01-17 13:13:34 +08:00 cd / ...... cd CrGuard/ # CrGuard 不存在,所以当前目录仍然是 / |
![]() | 64 cncoffer 2019-01-17 13:15:23 +08:00 刚好楼主的头像很像火箭, 看起来是准备逃去月球了么 |
![]() | 65 liuxey 2019-01-17 13:16:25 +08:00 ![]() |
66 Chenamy2017 2019-01-17 13:44:16 +08:00 感谢你教会了我这种骚操作。 |
![]() | 67 sxsexe 2019-01-17 13:46:17 +08:00 当你意识到问题的严重性时有没有一种从头凉到脚的感觉? 喂 喂 楼主还在吗 |
![]() | 69 starsky007 2019-01-17 13:48:16 +08:00 via Android 666 |
![]() | 70 Felldeadbird 2019-01-17 13:50:32 +08:00 老哥太秀了吧,rm -fr * 删除文件真的不能偷懒 |
![]() | 71 BigPig666 2019-01-17 13:50:59 +08:00 你好骚啊 |
72 xi2008wang 2019-01-17 14:06:11 +08:00 history 文件太坑了,为什么直接以命令的形式保存呢? 如果文件内容形式这样: 1 2018-10-19 10:57:47 cd / 或者前面加#号也可以 #1539915426 #pwd 那完成可以避免。。。。 |
![]() | 73 9Rubi 2019-01-17 14:09:22 +08:00 是个狠人 |
![]() | 74 jim9606 2019-01-17 14:09:29 +08:00 我是好奇为啥你们都直接用 root 用户呢,有 sudo 就算错误执行也不会怎样啊 |
![]() | 75 MarioLuisGarcia 2019-01-17 14:13:13 +08:00 @xi2008wang 方便读取了再执行,比如 `!123` 是执行编号为 123 的 history 命令。 |
![]() | 76 Govda 2019-01-17 14:15:21 +08:00 学到了.. |
77 Muyiafan 2019-01-17 14:15:39 +08:00 ![]() ![]() |
![]() | 78 sdijeenx 2019-01-17 14:17:58 +08:00 其实还好啊,UNIX 认为用户知道自己在干什么,但实际上用户根本不知道自己在干什么。 |
79 loveCoding 2019-01-17 14:18:30 +08:00 是个狠人 |
![]() | 80 haiyang1992 2019-01-17 14:24:04 +08:00 via Android 楼主为什么不 history | grep 一下呢 |
![]() | 81 geew 2019-01-17 14:25:27 +08:00 抱歉 不厚道的笑了 感谢分享 还真不知道 source 原来是这个效果的... |
![]() | 82 fakefish 2019-01-17 14:28:50 +08:00 厉害 |
![]() | 83 laudukang 2019-01-17 14:30:42 +08:00 优秀 |
84 co3site 2019-01-17 14:38:51 +08:00 via Android 哈哈,真是元气慢慢地一天,我 source 我的骚操作,还是 root 权限 |
85 ooooo 2019-01-17 14:44:08 +08:00 论 走上跑路道路 的新姿势 |
![]() | 86 CSM 2019-01-17 15:01:35 +08:00 via Android 不对啊,history 里那条命令是 50 rm -rf * 应该报错 command 50 not found 啊 |
87 missdeer 2019-01-17 15:05:27 +08:00 原谅我笑出了声 |
![]() | 88 abclucifer 2019-01-17 15:07:31 +08:00 不好意思,我笑了 ![]() |
![]() | 89 JZ8ZW193q6W9Awgy 2019-01-17 15:09:44 +08:00 @al0ne 我也记住了,哈哈 |
![]() | 91 log4geek 2019-01-17 15:17:11 +08:00 幸亏你还有在 cd z,要是连这个 cd z 都没有,哈哈哈哈哈哈 |
![]() | 92 sillinger 2019-01-17 15:22:49 +08:00 虽然感觉是个很悲伤的故事,但为何嘴角疯狂上扬......抱歉抱歉 |
![]() | 93 Applenice 2019-01-17 15:23:05 +08:00 原来 source 还能这么用,我去看 source 的用法了。。。 |
![]() | 94 XiaoXiaoNiWa 2019-01-17 15:24:54 +08:00 via Android 。。 |
![]() | 95 lemonda 2019-01-17 15:29:48 +08:00 只有我觉得每条命令前输入 sudo 很麻烦吗? 改造 .bash_history 记录格式又要每台机器操作一遍 删除非空文件夹不用 rm -rf 该怎么删安全? 我现在习惯按照 v2 上某条回复 rm 路径 -rf 这样,稍稍避免了点输错路径粗手指按到回车的风险。 |
![]() | 96 sikariba 2019-01-17 15:40:01 +08:00 笑死了哈哈哈哈楼主拯救了我郁闷的一天 |
![]() | 97 azuginnen 2019-01-17 15:40:59 +08:00 ![]() fzf 啊 ![]() |
![]() | 98 lzj307077687 2019-01-17 15:44:12 +08:00 成为地下偶像吧 |
![]() | 99 allenhu 2019-01-17 15:53:30 +08:00 via Android 厉害了 |
![]() | 100 cppgohan 2019-01-17 15:54:24 +08:00 我不厚道的笑了.. |