血的教训!解锁 source 命令新的姿势,已准备跑路。

2019-01-17 10:44:43 +08:00
 shayuvpn0001

刚刚脑子也是抽了,觉得 history 里面 clear, exit, pwd 这种垃圾太多,总翻不到自己想找的以前的命令(某个 grep 正则表达式),于是准备拿.bash_history 开刀,vim 一番操作终于干掉了 clear, pwd 这种。

然后敲了一下 history,发现还没更新(应该是下次登录的时候重新载入),于是想到了用 source 更新一下。

高潮来了,我在命令行里敲下了 source .bash_history,一行行字符在屏幕飞速滚过,好像有什么不对。。。

左右翻看了一下,挂载到根目录下的硬盘被清空。。。

看了一下 history。。。

是不是已经凉了?还有救么?

23990 次点击
所在节点    程序员
156 条回复
adminsam
2019-01-17 15:57:51 +08:00
“于是想到了用 source 更新一下” 你可真是个小机灵鬼呢
RobertYang
2019-01-17 15:58:10 +08:00
太秀了吧,居然想用 source
nonfxck
2019-01-17 16:09:47 +08:00
总翻不到自己想找的以前的命令

这个可以换 ZSH 解决啊,ZSH 自带更智能的历史命令。在用或者方向上键查找历史命令时,zsh 支持限制查找。比如,输入 ls,然后再按方向上键,则只会查找用过的 ls 命令。而此时使用则会仍然按之前的方式查找,忽略 ls
Beebird
2019-01-17 16:15:31 +08:00
感觉楼主在发生这种事后,还是挺欢乐的,祝愿欢乐常伴你哦
Malvo
2019-01-17 16:25:34 +08:00
楼主是游离在天才边缘的人
jimages
2019-01-17 16:26:07 +08:00
@xi2008wang zsh_history 是有的
比如:
: 1529583012:0;cmake ls
: 1529583755:0;vim CMakeLists.txt.in
: 1529584232:0;cp ../3/CMakeLists.txt ./
: 1529584256:0;cp ../big/lib/gtest/CMakeLists.txt.in ./lib
: 1529584269:0;mkdir CMakeLists.txt.in
zealinux
2019-01-17 16:35:05 +08:00
```bash
sudo apt-get install trash-cli

echo >> ~/.bashrc <<EOF
alias rm=” trush-put ”
alias rm-trash="sudo rm -rf $HOME/.local/share/Trash/files/"
EOF
```
lexuskingxx
2019-01-17 16:46:22 +08:00
哈哈哈。。。赶紧跑路吧,楼主 。
toyland
2019-01-17 16:52:35 +08:00
如果楼主看了笔者命令行视频的第 2 集重温历史的话,或许不会酿成杯具,该视频教你数种查看、搜索及执行历史命令的方法: https://selfhostedserver.com/courses
shayuvpn0001
2019-01-17 17:16:00 +08:00
说用 sudo 能够拯救我的,放弃吧。你们更新环境参数 /配置的时候,也会加上 sudo 的吧,只要加了 sudo 提权,后面的都无解吧。你每次运行 source .bashrc 肯定前面会加上 sudo 的,所以这里我还是会加上 sudo 的。


====================醒!目!提!示!====================

这次事故是在 win7 系统下的 git bash 操作的, win 7 会把 C 盘, D 盘.... Z 盘挂在根目录上.
win7 下默认是管理员权限启动 git bash, 不存在 root 用户不 root 用户, 直接一把梭...
目前 Z 盘正在恢复中....

====================醒!目!提!示!====================

主要不是 sudo 的问题,也不是不注意 rm -rf 用法的问题.
是没想到 source 和.bash_history 这两个人畜无害的组合起来要了老命.
MartinWu
2019-01-17 17:19:54 +08:00
@shayuvpn0001 你觉得 source 人畜无害是真的 too young too naive。
justff
2019-01-17 17:49:46 +08:00
让我了解到一种跑路新姿势
xuboying
2019-01-17 17:57:27 +08:00
我都是 rm -rf ../xxx/* ,绝对不允许 rm -rf * 这种进入历史
防止按上下键翻出不小心直接回车
avenger
2019-01-17 18:00:25 +08:00
业务服务器删了,重新部署一台就是了,多大点事,有热备的话 dns 轮循改下,业务不会中断超过 10 分钟
orm
2019-01-17 18:19:53 +08:00
学习了
shaoS
2019-01-17 18:22:45 +08:00
令人窒息的操作
doresu
2019-01-17 18:27:30 +08:00
iwtbauh
2019-01-17 18:27:48 +08:00
“说用 sudo 能够拯救我的,放弃吧。你们更新环境参数 /配置的时候,也会加上 sudo 的吧,只要加了 sudo 提权,后面的都无解吧。你每次运行 source .bashrc 肯定前面会加上 sudo 的,所以这里我还是会加上 sudo 的。”

source 是 bash 的内置命令,不能被 sudo 运行的。

同理也有

sudo echo xxx > /...

如果 shell 打不开 /...也是无法运行的
Tyanboot
2019-01-17 18:50:15 +08:00
@jimages 有也没用,这种格式的你 source 一下照样是会执行的。。。
supervipcard
2019-01-17 19:09:45 +08:00
原谅我笑出了声

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/527839

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX