命令列表:
sleep seconds
date +%s 返回10位时间戳
cat/vim/more file
head/tail -n 10 file
wc [-L行/c字符/w单词] file 统计文件行数/字符数/单次数
sudo ln -s 源文件 目标文件
ln -s 类似Windows下的超级链接。
举例:
当前目录是/local,而我经常要访问/usr/local/linux/work
那么我就可以使用在local下建立一个文件linkwork,
`sudo ln -s /usr/local/linux/work /local/linkwork`
删除链接
`rm -rf symbolic_name` 注意不是
`rm -rf symbolic_name/`
那么上面我就是
`rm -rf /local/linkwork`
- grep [-option] pattern file 如:grep '^我是10$’ grep.txt
-o 只显示匹配的,输出一行一个
-v 反转-o
-n 显示行号
-R/-r 递归
-e 正则
-A/B/C 查看指定内容上下几行
如何在 Linux 中找到最大的 10 个文件呢?
find /home/homework/ -type f -print0 | xargs -0 du -h | sort -rh | head -n 10
切换到当前目录:
du -h |grep -P "\d+G"
du -h |grep -P "\d+M"
- find <指定目录> <指定条件> <指定动作>
> find <指定目录> <指定条件> <指定动作>
<指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。
<指定条件>: 所要搜索的文件的特征。
<指定动作>: 对搜索结果进行特定的处理。
如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
[find -print0和xargs -0原理及用法(https://www.cnblogs.com/liuyihua1992/p/9689314.html)
find -print0 表示在find的每一个结果之后加一个NULL字符,而不是默认加一个换行符。find的默认在每一个结果后加一个'\n',所以输出结果是一行一行的。当使用了-print0之后,就变成一行了.
xargs -0表示xargs用NULL来作为分隔符
- locate file ; updatedb
locate 命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。
Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。
为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
- sed ’s/pattern/replace/‘ file 替换 ( -i 可以将替换应用于原 文件)
- command | xargs (xargs 默认是以空白字符 (空格, TAB, 换行符) 来分割记录的)
-n 3 每行 3 个参数
-d X 自定义分界符
ls /home/xxx/ | tail | awk '{print $8}' | xargs -n 1 -I {} bash -c "echo {};hadoop fs -cat {}
xargs -n 1 -I {} -P 30
-n 每行输出的数量
-i/-I 参数配合{}即可进行文件的操作。
加-i 参数直接用 {}就能代替管道之前的标准输出的内容;
加 -I 参数 需要事先指定替换字符
command| xargs -i echo {} == command| xargs -I {} echo {}
-P 30 开30个线程
bash -c String 从输入流执行shell
- ps
- kill pid
- pkill pname -9强制
- cron
- ssh user@host -p 端口(默认22)
- lftp username@ftphost (端口21)
- scp source destination 其中source和destination都可以是 user@host:path -r 递归复制
如:scp -r ./dist/* www@182.92.232.41:/home/wwwroot/p.[51tiancai.com/public/](http://51tiancai.com/public/)
- ssh-keygen -t rsa -C "youremail@example.com"
- open -a Google\ Chrome --args --disable-web-security
- 压缩命令:tar -zcvf 压缩文件名.tar.gz 被压缩文件名
- 解压缩命令:tar -zxvf 压缩文件名.tar.gz
场景应用
- 批量杀死所有存活的队列进程
pids=`ps -ef|grep app:queue|grep "\-\-process="|grep -v touch|grep -v grep |awk '{print $2}'`
if [ ! -z "$pids" ]
then
echo $pids|xargs kill
echo "kill $pids success"
else
echo 'process not found'
fi
cat test.log |awk '{print $3}' | sort | uniq -c
1、删除以html结尾的10天前的文件,包括带空格的文件:
find /usr/local/backups -name "*.html" -mtime +10 -print0 |xargs -0 rm -rfv
xargs -i 参数或者-I参数配合{}即可进行文件的操作。
加-i 参数直接用 {}就能代替管道之前的标准输出的内容;
加 -I 参数 需要事先指定替换字符
1.1复制以html结尾的10天前的文件,包括带空格的文件到/dir/目录下
find /usr/local/backups -name "*.html" -mtime +10 -print0 |xargs -0 cp {} /dir
2、统计所有c文件的行数
find source_code_dir_path -type f -name "*.c" -print0 | xargs -0 wc -l