刚刚脑子也是抽了,觉得 history 里面 clear, exit, pwd 这种垃圾太多,总翻不到自己想找的以前的命令(某个 grep 正则表达式),于是准备拿.bash_history 开刀,vim 一番操作终于干掉了 clear, pwd 这种。
然后敲了一下 history,发现还没更新(应该是下次登录的时候重新载入),于是想到了用 source 更新一下。
高潮来了,我在命令行里敲下了 source .bash_history,一行行字符在屏幕飞速滚过,好像有什么不对。。。
左右翻看了一下,挂载到根目录下的硬盘被清空。。。
看了一下 history。。。
是不是已经凉了?还有救么?
101
adminsam 2019-01-17 15:57:51 +08:00 1
“于是想到了用 source 更新一下” 你可真是个小机灵鬼呢
|
102
RobertYang 2019-01-17 15:58:10 +08:00 via Android 1
太秀了吧,居然想用 source
|
103
nonfxck 2019-01-17 16:09:47 +08:00
总翻不到自己想找的以前的命令
这个可以换 ZSH 解决啊,ZSH 自带更智能的历史命令。在用或者方向上键查找历史命令时,zsh 支持限制查找。比如,输入 ls,然后再按方向上键,则只会查找用过的 ls 命令。而此时使用则会仍然按之前的方式查找,忽略 ls |
104
Beebird 2019-01-17 16:15:31 +08:00
感觉楼主在发生这种事后,还是挺欢乐的,祝愿欢乐常伴你哦
|
105
Malvo 2019-01-17 16:25:34 +08:00
楼主是游离在天才边缘的人
|
106
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 |
107
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 ``` |
108
lexuskingxx 2019-01-17 16:46:22 +08:00
哈哈哈。。。赶紧跑路吧,楼主 。
|
109
toyland 2019-01-17 16:52:35 +08:00
如果楼主看了笔者命令行视频的第 2 集重温历史的话,或许不会酿成杯具,该视频教你数种查看、搜索及执行历史命令的方法: https://selfhostedserver.com/courses
|
110
shayuvpn0001 OP 说用 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 这两个人畜无害的组合起来要了老命. |
111
MartinWu 2019-01-17 17:19:54 +08:00
@shayuvpn0001 你觉得 source 人畜无害是真的 too young too naive。
|
112
justff 2019-01-17 17:49:46 +08:00
让我了解到一种跑路新姿势
|
113
xuboying 2019-01-17 17:57:27 +08:00
我都是 rm -rf ../xxx/* ,绝对不允许 rm -rf * 这种进入历史
防止按上下键翻出不小心直接回车 |
114
avenger 2019-01-17 18:00:25 +08:00 via iPhone
业务服务器删了,重新部署一台就是了,多大点事,有热备的话 dns 轮循改下,业务不会中断超过 10 分钟
|
115
orm 2019-01-17 18:19:53 +08:00
学习了
|
116
shaoS 2019-01-17 18:22:45 +08:00
令人窒息的操作
|
117
doresu 2019-01-17 18:27:30 +08:00 5
|
118
iwtbauh 2019-01-17 18:27:48 +08:00 via Android
“说用 sudo 能够拯救我的,放弃吧。你们更新环境参数 /配置的时候,也会加上 sudo 的吧,只要加了 sudo 提权,后面的都无解吧。你每次运行 source .bashrc 肯定前面会加上 sudo 的,所以这里我还是会加上 sudo 的。”
source 是 bash 的内置命令,不能被 sudo 运行的。 同理也有 sudo echo xxx > /... 如果 shell 打不开 /...也是无法运行的 |
120
supervipcard 2019-01-17 19:09:45 +08:00
原谅我笑出了声
|
121
messyidea 2019-01-17 21:09:09 +08:00
从来没有在 shell 里面用过 source,数据库里面倒是用过,导表的时候
所以说 zsh 大法好~记忆 history 比较方便 |
122
helloworld000 2019-01-17 21:18:38 +08:00
@messyidea ros programming 的话用的很多 source
|
123
sodora 2019-01-17 21:27:27 +08:00 via Android
root 敢死队嘛。正常~
就算没这次也会也有下一次。 |
124
nicevar 2019-01-17 21:32:53 +08:00 1
v 站上每年能看到大量 linux 作死方式
|
125
msg7086 2019-01-17 21:58:15 +08:00
@shayuvpn0001 #110
source 和.bash_history 都不是人畜无害的。 source 是以当前用户环境执行程序而且不关心执行权限(所以可以执行任何程序),非常危险。 .bash_history 里有很多修改系统文件的命令,如果运行的话也非常危险。 可以说,这是两个非常危险的东西放在一起了。 |
126
yuikns 2019-01-18 00:05:16 +08:00 via iPhone
然而 source 不能 sudo
source filename 等价于 eval $( cat filename ) 目的是当前环境执行命令,这样各种 export 在执行完毕后能用。前面加个 sudo,什么鬼 |
127
applehater 2019-01-18 00:29:58 +08:00
原来 source 是这个原理的啊,我还以为只是设置 export 而已
|
128
juanyilxc 2019-01-18 02:46:35 +08:00
一顿操作猛如虎,一看硬盘呜呜呜
|
129
SharkIng 2019-01-18 03:11:49 +08:00
为什么不用 Ctrl + r 搜索呢?
|
130
JsonLee 2019-01-18 08:48:25 +08:00 via iPhone
为啥用 source 来生效.bash_history 文件的修改呢?又为啥 source 要用 sudo 来执行呢?我觉得你是没理解 source 命令的作用。
|
131
dychenyi 2019-01-18 09:17:00 +08:00
跟 source 有啥关系,source 只是执行命令。
你要是在 makfile 里面写 rm rf / 让有权限的人 make 一把不是一样效果? |
132
stebest 2019-01-18 09:28:51 +08:00
没事,只是把历史上做过的事在这里重新做了一下
|
133
pkoukk 2019-01-18 10:27:53 +08:00
哈哈哈哈哈,用 source 更新一下,楼主你真的是个天才
|
134
TripleZ 2019-01-18 10:49:27 +08:00 via Android
生活不易哈哈哈哈哈哈哈
|
136
samuel37 2019-01-18 10:57:26 +08:00
害怕,source 里做删除操作这么危险吗
|
137
jerryxiao 2019-01-18 12:51:25 +08:00
fat/ntfs/ext 的话 用 photorec 还有救
|
139
aprilface 2019-01-18 13:58:55 +08:00 via Android
梭哈啦
|
140
neroxps 2019-01-18 14:08:24 +08:00
生产环境中,就不应该用 f 命令~哪怕删除 10000 个文件,也应该按一万次 y
|
141
master13 2019-01-18 15:41:41 +08:00
我有一点不太明白,你想找 grep 那一行,为什么不把 history cat 出来直接 grep “ grep ”……
|
142
CivAx 2019-01-18 16:30:41 +08:00
|
143
smilepig 2019-01-18 16:37:55 +08:00
能拿到硬盘的话,可以试试用软件恢复数据。。。
|
144
mygoare 2019-01-18 16:41:30 +08:00 via iPhone
太真实了!
|
145
maxio 2019-01-18 16:41:40 +08:00
一开始都没有理解到为什么 source .bash_history 可以更新。
后来 get 到了,果然还是楼主聪明,这样确实可以更新一把! |
146
ayanmw 2019-01-18 16:41:40 +08:00
你居然用 source ~/.bash_history ....ni 应该怪 bash_history 为什么不加一个 # 前缀~~~
这不是 shell 脚本,只是文本,不能 source 的!! |
147
ayanmw 2019-01-18 16:44:49 +08:00
rm -rf * 其实有一个 ie ext undelete 什么软件 是可以找回来的.不过 过于专业, 且碰到 容易犯错的你,还是算了吧!
|
148
fox0001 2019-01-18 16:51:24 +08:00 via Android
哈哈哈,此帖必火
|
149
ml071987 2019-01-18 17:05:20 +08:00
大佬,跑到哪了
|
150
Ephen 2019-01-18 18:14:59 +08:00
这波操作 666,后续如何了?
|
151
nilai 2019-01-18 18:21:20 +08:00
这是我看到的最好笑的笑话。。 。 不行了。 憋不住了。 又要笑了。。 哈哈哈哈。。。。 ^_^ ^_^ ^_^
|
152
hackshen 2019-01-19 09:47:43 +08:00
涨姿势了
|
153
shellexy 2019-01-19 15:33:17 +08:00
@nonfxck 这个用不着特地 zsh,
bash 只要在 ~/.inputrc 写上 ``` ## history search "\e[A": history-search-backward "\e[B": history-search-forward ## visible ring set visible-stats on ## menu complete "\C-n": menu-complete ``` 就一样做到输入 ls 后再向上方向键只查找 ls 命令, 对楼主就是输入 grep 后再向上方向键只查找 grep 命令。 另外楼主更新历史记录只要 exec bash 就够了 |
154
shellexy 2019-01-19 17:00:11 +08:00 via Android
@JsonLee 咱怀疑楼主是之前是看到
“ source .bashrc 命令刷新 bash 配置” 类似的东西, 然后误以为 source 是刷新的意思, 所以误以为刷新历史纪录是 source .bash_history |
155
shayuvpn0001 OP @shellexy 是的,你没猜错。。。脑子秀逗了。。。
|
156
n0th1n9 2019-10-28 10:42:51 +08:00
操,我也这样了。。。
|