看来前端程序员也要学点运维用的工具啊。今天遇到需要在工程里面递归删除.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 ?
![]() | 1 iOran OP 帖子不要沉了啊。我先说个最普罗大众的: ``` ls -al ``` |
![]() | 2 aheadlead 2017-02-06 15:55:13 +08:00 ![]() 最近发现 logrotate 命令挺好用的 |
![]() | 4 ryd994 2017-02-06 16:05:36 +08:00 via Android ![]() 这………怕是你还不知道 shell 脚本也是语言吧……… awk ,这这又是一本书 sed/grep , regex 要学好 xargs 你说过了,但你估计不知道-P -i -n 的玩法 find 自己就可以-exec uniq/head/tail/wc 这都是常用了 Unix 世界就是这样,每个程序都很简单,但串起来可以很强大 顺带一提,你的命令其实可以更简单 先不加看一遍,然后 find . -type d -name ".svn" -delete |
![]() | 6 @iOran 哈哈 2#是手滑发出来的, 本来想写点补充, 但是因为考虑到这个命令可以顾名思义,写了一会又关掉了。 看到你的 9# ,我打开我刚写的脚本看了看,发现我其实记错命令了,实际是 savelog 。 这个 savelog 命令是最近发现的,可以很方便的做 logrotate 。 shell 脚本有时要打日志,每次执行生成一个日志文件(如: rich.log )。 通常没有必要保存太多的日志(比如只用保留最后 7 个日志文件)。 通过这个命令,就可以简单实现: 在每次脚本执行完毕之后,来一个: $ savelog -c 7 rich.log |
![]() | 8 R18 2017-02-06 16:30:12 +08:00 via Android ![]() rm -rf / |
![]() | 9 ETiV 2017-02-06 16:31:43 +08:00 via iPhone grep "search something" -r * --include=*.php |
![]() | 10 lhbc 2017-02-06 16:50:40 +08:00 grep sed awk 不懂这些怎么出来行走江湖 sudo rm -rf /* 执行,然后恢复数据,你就是资深运维了 |
![]() | 11 WeeH9T 2017-02-06 16:59:49 +08:00 楼上的各位,都不带情景的么,谁会直接 rm -rf / 我来设定情景 我擦,这个目录好深啊,删除一个目录下的东西。 rm -rf /dir1/dir2/dir3/dir5/dir6 /* 我草泥马!!!! |
![]() | 13 UnisandK 2017-02-06 17:07:11 +08:0 @hambut http://coolshell.cn/articles/4875.html 青井来了 doge |
![]() | 17 simple4wan 2017-02-06 18:12:18 +08:00 sudo dd if=/dev/zero of=/ |
![]() | 18 manhere 2017-02-06 18:14:26 +08:00 @simple4wan 你这个磁盘碎片整理我给 100 分 |
![]() | 19 ersic 2017-02-06 18:17:33 +08:00 via Android cd - |
20 hahalala 2017-02-06 18:29:52 +08:00 ls -1 chmod -R 777 / |
![]() | 21 dtfm 2017-02-06 18:58:49 +08:00 via Android ![]() linux 刚入坑不久,说几个简单的, shell 为 zsh ,不确定 bash 是否兼容。 systemd-analyze blame 由慢到快查看开机时间占用。 直接输 cd ,不带参数就是切到 home 目录下。 大家都知道 ll 是 ls -l 的简化,但其实输单独一个 l 也可以。 切回上一个访问目录 cd - 。 切回父目录的父目录, cd ../..,以此类推。 统计某文件个数 ll l grep xxx l wc -l |
![]() | 22 lun10439547 2017-02-06 19:43:51 +08:00 果然有 rm -rf 这个东西。。。。 |
![]() | 23 sundong 2017-02-06 19:50:36 +08:00 别抢饭碗啊 =。= |
![]() | 24 syahd 2017-02-06 19:54:33 +08:00 locate ,贼快的文件索引搜索 |
![]() | 25 cctv6 2017-02-06 21:53:10 +08:00 ls -lah cd ../ . rm cd mv vim chmod htop |
![]() | 26 lydasia 2017-02-06 21:53:38 +08:00 rm -rf...... |
27 OrangeM21 2017-02-06 21:57:16 +08:00 lz rz |
28 jasontse 2017-02-06 22:01:08 +08:00 via Android |
29 DoraJDJ 2017-02-06 22:27:19 +08:00 ls -laZ grep 自己觉得经常用的比较方便的指令就这些了 |
![]() | 30 xratzh 2017-02-06 23:47:25 +08:00 via iPhone echo sed grep tar scp |
31 fytriht 2017-02-06 23:51:21 +08:00 ![]() @dtfm item2 + zsh 可以省略掉'cd'和'/' '..' 是回到父目录 '...' 是回到父目录的父目录 以此类推 |
32 fytriht 2017-02-06 23:52:04 +08:00 du -sh 查看文件夹 /文件的大小 |
![]() | 34 xuboying 2017-02-07 00:08:06 +08:00 via Android 当年会个 perl 可以打死 awk sed uniq wc find grep tail head sort |
![]() |
![]() | 37 abmin521 2017-02-07 09:03:29 +08:00 via Android |
![]() | 38 czheo 2017-02-07 09:41:11 +08:00 ! |
![]() | 39 bikegl 2017-02-07 10:24:16 +08:00 ![]() 怎么没有人说 sl 这个命令, 具我的研究它可以用来测试网络是否稳定 如果稳定的话会有一列火车帽着白烟从屏幕右边向左边疾驰而过 如果不稳定火车就会一卡一卡的走不动 |
![]() | 40 jarlyyn 2017-02-07 10:25:36 +08:00 find sed grep |
![]() | 41 shellfly 2017-02-07 10:57:32 +08:00 |
![]() | 42 aristotll 2017-02-07 11:05:17 +08:00 r#33 @dtfm 其实都是语法糖 你 `alias` 就能看见了 ``` $alias -='cd -' ...=../.. ....=../../.. .....=../../../.. ......=../../../../.. 还有很多.... `` |
![]() | 43 popu111 2017-02-07 11:53:51 +08:00 ![]() 如何快速上天: chmod -R 000 / 见不到下班了 |
![]() | 45 loryyang 2017-02-07 13:06:53 +08:00 shell 使用技巧是无止境的,有时间就学几手 https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md 如果让我投票,我投 alias 一票, ctrl+r 两票 |
![]() | 46 cosven 2017-02-07 13:16:46 +08:00 目前感受: 入门: cd, ls, cat, less... 一级: grep, find... 二级: awk, xargs...据说 sed 也是 三级: 待补充 |
47 QAPTEAWH 2017-02-07 13:29:45 +08:00 alias emcas=emacs alias emasc=emacs |
![]() | 48 xiaket 2017-02-07 14:01:38 +08:00 直接翻一遍 LPI 认证那本书吧. |
![]() | 49 Chewbacca 2017-02-07 14:34:19 +08:00 ![]() while read -d " "; do sl; done 孩子不到 1 岁的时教会按空格看火车,按了一年多了 |
![]() | 50 loading 2017-02-07 14:37:51 +08:00 via Android sl |
52 wildcat007 2017-02-07 14:39:11 +08:00 |
![]() | 54 DaCong 2017-02-07 15:10:09 +08:00 ![]() |
55 SeanQu 2017-02-09 14:30:45 +08:00 cmatrix 装逼神器 |