1、查看文件夹大小:
du -s filename,结果以字节为单位显示
du -sh filename,结果以MB为单位显示
2、创建多级目录
mkdir -p file1/file2/file3/...
3、在编译脚本中使用邮件通知
echo "img has ready" | mail -s "project img" email-address@qq.com email-address1@qq.com email-address2@qq.com
4、显示文本开始/结尾几行内容:
head -n 10 file.txt //显示file.txt开头10行内容
tail -n 10 file.txt //显示结尾10行内容
持续输出命令行内容:tail -f command-line
5、awk查找文本中特定字符串
file:version.txt
文本:version="v1.5.4.20170715"
获取版本号:cat version.txt | grep "version" | awk -F '"' '{print $2}' //以双引号为分隔符,第2个域即为版本号
5、当前目录快速搜索文件
find . -iname "filename"
6.sed中引用变量
sed -i '3s/'"$old_wk"'/'"$wk"'/' $currentPath/build/tools/buildinfo.sh
变量必须用单引号包含双引号
7.获取系统日期及年月日
date +%y%m%d
y、m、d大小写不同,显示格式不同
8.获取shell脚本所在目录
currentPath=$(cd $(dirname $0);pwd)
9.shell中的邮件通知
echo -e "content" | mail -s "subject" Email-address
10.过滤固定字符串前后的内容,比如想要找到文件test.txt中包含”music“字符串上下5行的内容:
cat test.txt | grep -A 5 -B 5 "music"
-A是指列出music字符所在的行后面5行内容(after),-B是指music字符所在行前面5行的内容(before)
11.使用egrep匹配满足不同条件的行,类似逻辑||
egrep '^[0-9]|Summary|Domain'
12.shell判断文件内容是否为空
if [ -s file.txt ];then
echo "file is not empty"
else
echo "file is empty"
fi
13.shell去掉空白行
sed -i '/^$/d' file.txt
cat file.txt | tr -s '\n'
14.crontab定时统计任务
crontab -e //进入控制台添加选项
*/1 * * * * /bin/bash path/test.bash //添加一个每分钟执行一次的脚本
15.在shell if中使用多重条件需要加上两个中括号,否则报错
if [[ a=3 || b=3 ]];then
do something
fi
16.awk引用外部变量
awk -F "/" '{print $j}' j=$i
其中i可以是shell脚本中的变量,也可以是环境变量
17.PIPESTATUS变量获取管道命令执行结果
例如命令:ls | grep Android | grep cts | grep abc
使用$?符号只能获取最后一个grep abc的执行结果,而PIPESTATUS会返回一个数组,分别是多个管道命令的执行结果,${PIPESTATUS[0]}会返回0,${PEPESTATUS[2]}则会返回grep cts这条命令的执行结果