非运维的同学们,你们用过那些简单又实用的 shell 命令?

2017 年 2 月 6 日
 iOran

看来前端程序员也要学点运维用的工具啊。今天遇到需要在工程里面递归删除.svn 的需求,网上查了下看到:

find . -type d -name ".svn"|xargs rm -rf;

顺利搞定问题。但随后执行

svn add .

发现有好多 *.a 文件被 global-ignore 了。自己 svn add . --no-ignore ,又有本地 ignore ,不想继续挖坑下去,一看到之前执行的指令,是不是也可以结合起来直接递归把目录里面的 *.a 一起 svn add 进入?

然后自己 man 了下 find ,看了下参数,发现貌似可以这么玩:

find . -type f -name "*.a"|xargs svn add;

试了一下,果然好用到爆炸,以前咋就没有意识到这些 shell command 的威力呢?

来来来,大伙来分享下,还有哪些你知道的实用瑞士军刀?例如 find 结合 |xargs Xcommand ?

5765 次点击
所在节点    问与答
56 条回复
iOran
2017 年 2 月 6 日
帖子不要沉了啊。我先说个最普罗大众的:
```
ls -al
```
aheadlead
2017 年 2 月 6 日
最近发现 logrotate 命令挺好用的
iOran
2017 年 2 月 6 日
@aheadlead 能来一条案例吗?比如场景 + 结果过程,如果有点参数说明 9⃣️更棒了~
ryd994
2017 年 2 月 6 日
这………怕是你还不知道 shell 脚本也是语言吧………
awk ,这这又是一本书
sed/grep , regex 要学好
xargs 你说过了,但你估计不知道-P -i -n 的玩法
find 自己就可以-exec
uniq/head/tail/wc 这都是常用了

Unix 世界就是这样,每个程序都很简单,但串起来可以很强大

顺带一提,你的命令其实可以更简单
先不加看一遍,然后
find . -type d -name ".svn" -delete
iOran
2017 年 2 月 6 日
@ryd994 以前只知道几个词汇,没有大面积用过,自己又是前端,最多就简单的命令。

今天一用感觉这些指令的确太有魅力了。
aheadlead
2017 年 2 月 6 日
@iOran 哈哈 2#是手滑发出来的,
本来想写点补充,
但是因为考虑到这个命令可以顾名思义,写了一会又关掉了。
看到你的 9# ,我打开我刚写的脚本看了看,发现我其实记错命令了,实际是 savelog 。

这个 savelog 命令是最近发现的,可以很方便的做 logrotate 。
shell 脚本有时要打日志,每次执行生成一个日志文件(如: rich.log )。
通常没有必要保存太多的日志(比如只用保留最后 7 个日志文件)。
通过这个命令,就可以简单实现:

在每次脚本执行完毕之后,来一个:
$ savelog -c 7 rich.log
aheadlead
2017 年 2 月 6 日
@aheadlead 我傻了… 看到你那个 9⃣️就写了个 9#,应是 3#
R18
2017 年 2 月 6 日
rm -rf /
ETiV
2017 年 2 月 6 日
grep "search something" -r * --include=*.php
lhbc
2017 年 2 月 6 日
grep
sed
awk
不懂这些怎么出来行走江湖

sudo rm -rf /*
执行,然后恢复数据,你就是资深运维了
WeeH9T
2017 年 2 月 6 日
楼上的各位,都不带情景的么,谁会直接 rm -rf /

我来设定情景

我擦,这个目录好深啊,删除一个目录下的东西。

rm -rf /dir1/dir2/dir3/dir5/dir6 /*

我草泥马!!!!
iOran
2017 年 2 月 6 日
@aheadlead sorry,打太快了。
UnisandK
2017 年 2 月 6 日
iOran
2017 年 2 月 6 日
@hambut 乐死个人~
UnisandK
2017 年 2 月 6 日
@UnisandK 情景
你们听我解释
iOran
2017 年 2 月 6 日
@UnisandK 这么多趣闻轶事呀~
simple4wan
2017 年 2 月 6 日
sudo dd if=/dev/zero of=/
manhere
2017 年 2 月 6 日
@simple4wan 你这个磁盘碎片整理我给 100 分
ersic
2017 年 2 月 6 日
cd -
hahalala
2017 年 2 月 6 日
ls -1
chmod -R 777 /

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

https://v2ex.xtra.eu.org/t/338470

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

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

© 2021 V2EX