看来前端程序员也要学点运维用的工具啊。今天遇到需要在工程里面递归删除.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 1
最近发现 logrotate 命令挺好用的
|
4
ryd994 2017-02-06 16:05:36 +08:00 via Android 1
这………怕是你还不知道 shell 脚本也是语言吧………
awk ,这这又是一本书 sed/grep , regex 要学好 xargs 你说过了,但你估计不知道-P -i -n 的玩法 find 自己就可以-exec uniq/head/tail/wc 这都是常用了 Unix 世界就是这样,每个程序都很简单,但串起来可以很强大 顺带一提,你的命令其实可以更简单 先不加看一遍,然后 find . -type d -name ".svn" -delete |
6
aheadlead 2017-02-06 16:24:43 +08:00
@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 7
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
hambut 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:00
@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 1
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
whwq2012 2017-02-06 19:54:33 +08:00
locate ,贼快的文件索引搜索
|
25
cdlnls 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 1
@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
|
36
whwq2012 2017-02-07 08:00:07 +08:00
@patx find 慢啊, locate 速度快,基本 updatedb 可以秒完成,而我 windows 上的 everything/masterseeker 都要花三四秒建立索引
|
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 1
怎么没有人说 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 1
如何快速上天: 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 2
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 2
|
55
SeanQu 2017-02-09 14:30:45 +08:00
cmatrix 装逼神器
|