血的教训!解锁 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。。。

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

23991 次点击
所在节点    程序员
156 条回复
messyidea
2019-01-17 21:09:09 +08:00
从来没有在 shell 里面用过 source,数据库里面倒是用过,导表的时候
所以说 zsh 大法好~记忆 history 比较方便
helloworld000
2019-01-17 21:18:38 +08:00
@messyidea ros programming 的话用的很多 source
sodora
2019-01-17 21:27:27 +08:00
root 敢死队嘛。正常~
就算没这次也会也有下一次。
nicevar
2019-01-17 21:32:53 +08:00
v 站上每年能看到大量 linux 作死方式
msg7086
2019-01-17 21:58:15 +08:00
@shayuvpn0001 #110
source 和.bash_history 都不是人畜无害的。

source 是以当前用户环境执行程序而且不关心执行权限(所以可以执行任何程序),非常危险。
.bash_history 里有很多修改系统文件的命令,如果运行的话也非常危险。
可以说,这是两个非常危险的东西放在一起了。
yuikns
2019-01-18 00:05:16 +08:00
然而 source 不能 sudo

source filename
等价于
eval $( cat filename )

目的是当前环境执行命令,这样各种 export 在执行完毕后能用。前面加个 sudo,什么鬼
applehater
2019-01-18 00:29:58 +08:00
原来 source 是这个原理的啊,我还以为只是设置 export 而已
juanyilxc
2019-01-18 02:46:35 +08:00
一顿操作猛如虎,一看硬盘呜呜呜
SharkIng
2019-01-18 03:11:49 +08:00
为什么不用 Ctrl + r 搜索呢?
JsonLee
2019-01-18 08:48:25 +08:00
为啥用 source 来生效.bash_history 文件的修改呢?又为啥 source 要用 sudo 来执行呢?我觉得你是没理解 source 命令的作用。
dychenyi
2019-01-18 09:17:00 +08:00
跟 source 有啥关系,source 只是执行命令。
你要是在 makfile 里面写 rm rf / 让有权限的人 make 一把不是一样效果?
stebest
2019-01-18 09:28:51 +08:00
没事,只是把历史上做过的事在这里重新做了一下
pkoukk
2019-01-18 10:27:53 +08:00
哈哈哈哈哈,用 source 更新一下,楼主你真的是个天才
TripleZ
2019-01-18 10:49:27 +08:00
生活不易哈哈哈哈哈哈哈
oakland
2019-01-18 10:54:37 +08:00
@ABenmao 哈哈哈,感觉我已经把 source 屏蔽了
samuel37
2019-01-18 10:57:26 +08:00
害怕,source 里做删除操作这么危险吗
jerryxiao
2019-01-18 12:51:25 +08:00
fat/ntfs/ext 的话 用 photorec 还有救
ww23xx
2019-01-18 13:10:17 +08:00
@Tyanboot 「世界上的另一個我」
aprilface
2019-01-18 13:58:55 +08:00
梭哈啦
neroxps
2019-01-18 14:08:24 +08:00
生产环境中,就不应该用 f 命令~哪怕删除 10000 个文件,也应该按一万次 y

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

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

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

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

© 2021 V2EX