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

2017-02-06 15:43:10 +08:00
 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 ?

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

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

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

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

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

在每次脚本执行完毕之后,来一个:
$ savelog -c 7 rich.log
aheadlead
2017-02-06 16:29:16 +08:00
@aheadlead 我傻了… 看到你那个 9⃣️就写了个 9#,应是 3#
R18
2017-02-06 16:30:12 +08:00
rm -rf /
ETiV
2017-02-06 16:31:43 +08:00
grep "search something" -r * --include=*.php
lhbc
2017-02-06 16:50:40 +08:00
grep
sed
awk
不懂这些怎么出来行走江湖

sudo rm -rf /*
执行,然后恢复数据,你就是资深运维了
hambut
2017-02-06 16:59:49 +08:00
楼上的各位,都不带情景的么,谁会直接 rm -rf /

我来设定情景

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

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

我草泥马!!!!
iOran
2017-02-06 17:06:23 +08:00
@aheadlead sorry,打太快了。
UnisandK
2017-02-06 17:07:11 +08:00
iOran
2017-02-06 17:07:23 +08:00
@hambut 乐死个人~
UnisandK
2017-02-06 17:08:16 +08:00
@UnisandK 情景
你们听我解释
iOran
2017-02-06 17:10:25 +08:00
@UnisandK 这么多趣闻轶事呀~
simple4wan
2017-02-06 18:12:18 +08:00
sudo dd if=/dev/zero of=/
manhere
2017-02-06 18:14:26 +08:00
@simple4wan 你这个磁盘碎片整理我给 100 分
ersic
2017-02-06 18:17:33 +08:00
cd -
hahalala
2017-02-06 18:29:52 +08:00
ls -1
chmod -R 777 /

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

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

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

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

© 2021 V2EX