Linux终端命令相关
匹配F:\
不要用双引号
grep -nr 'F:\\'
xargs
xargs
可以把前面的结果传递到后面,就不用``,更好用
find -name 'file' | xargs grep -rl 'keyword' | xargs sed -i 's/keyword/replaceword/g'
find -name 'file' | xargs grep -rl 'keyword' | xargs sed -i '/\"keyword\"/,+2d'
bash终端中0 1 2的意义
2>&1
终端中0-stdin
1-stdout
2-stderr
,如果调试的时候或是其他方式引用命令,比如php调用,没有返回结果,可以加上这一句,把stderr的结果输出到stdout上,就可以调试查看bug
source
执行脚本的时候可以使用sh
bash
./
source
等。source
与前面的区别就是在当前shell中执行,这也是为什么source
往往用作设置环境变量。bash
等执行脚本的时候会起一个子shell,并不是在当前shell执行,所以执行完,子shell退出,并没有设置当前对的环境变量
使用某个用户执行命令
有时候,比如大部分数据库,需要创建单独的用户执行,但是这个用户经常又不能登录,一些命令又需要对应用户执行,可以使用如下命令
sudo -u esu jmap -histo 1234|head -20
esu
是es对应的用户,jmap -histo 1234|head -20
是执行打印es进程jvm详情。
fuser
fuser -v xxx
查看文件xxx被哪个进程占用
ls按照时间排序
ls -t
可以按照时间排序
xargs 别名
有时候使用xargs的时候,需要把前面的内容作为参数再操作。比如ls获得文件,xargs传递进来,然后mv到一个目录,这时候需要xargs的-I参数
ls|xargs -I mfile mv mfile backup
上面就是把ls的内容用mfile代替,后面的mv就可以使用了