1.数字运算
1. i=`expr $i + 1`;
2. let i+=1;
3. ((i++));
4. i=$[$i+1];
5. i=$(( $i + 1 ))
2.压缩解压
tar -z(gz格式)/-j(bz2格式) -x解压/-c压缩 -f文件格式 -v过程可视化 file.tar(.gz/bz2) file
三方加密使用dd对压缩后文件转换,openssl进行数据流加解密
tar -zcf - file|openssl des3 -salt -k passwd|dd of=file.des3
dd if=file.des3|openssl des3 -d -k passwd|tar -zxf - -C /home
或者
openssl enc -des3 -k 123456 -in file.gz -out file.des3
openssl enc -d -des3 -k 123456 -in file.des3 -out file.gz
1)对于.tar结尾的文件 tar -xf all.tar
2)对于.gz结尾的文件 gzip -d all.gz gunzip all.gz
3)对于.tgz或.tar.gz结尾的文件 tar -xzf all.tar.gz tar -xzf all.tgz
4)对于.bz2结尾的文件 bzip2 -d all.bz2 bunzip2 all.bz2
5)对于tar.bz2结尾的文件 tar -xjf all.tar.bz2
6)对于.Z结尾的文件 uncompress all.Z
7)对于.tar.Z结尾的文件 tar -xZf all.tar.z
8)对于.tar.xz结尾的文件(需要安装xz)
两层解压: xz -d ***.tar.xz tar -xvf ***.tar
或者: tar xvJf ***.tar
3.注意
ls -F|grep '/$' or ls -l|grep '^d'查看目录文件夹
sh的[ -n "str1" ]注意-n条件判断后面要加注引号判断非空的字符串
4.筛选
grep -v xx 排除-v
grep "xx\|yy" 或条件\|
grep -E/-e 正则匹配 -E或 -e
wc -l 统计行数
awk 'NR==1{print $2}' 表制式数据取第一行第二列
5.运行检查
if [ $? != 0 ] 判断上一个程序有没有执行成功
$?这里表示上一次运行的结果
6.条件判断
条件测试表达式 [ expression ]或者[[ expression ]] (括号两端必须要有空格)或者test expression
组合测试条件 -a:and -o:or !:取非
整数比较
-eq 测试两个整数是否相等
-ne 测试两个整数是否不等
-gt 测试一个数是否大于另一个数
-lt 测试一个数是否小于另一个数
-ge 大于或等于
-le 小于或等于
逻辑与:&&
逻辑或:||
字符串比较
== 等于 两边要有空格
!= 不等
> 大于
< 小于
文件测试
-z string 测试指定字符是否为空,空着真,非空为假
-n string 测试指定字符串是否为不空,空为假 非空为真
-e FILE 测试文件是否存在
-f file 测试文件是否为普通文件
-d file 测试指定路径是否为目录
-r file 测试文件对当前用户是否可读
-w file 测试文件对当前用户是否可写
-x file 测试文件对当前用户是都可执行
-z 是否为空 为空则为真
-a 是否不空
条件测试的写法:
1、执行一个命令的结果 if grep -q "rm" fs.sh;then
2、传回一个命令执行结果的相反值 if !grep -q "rm" fs.sh;then
3、使用复合命令((算式)) if ((a>b));then
4、使用bash关键字 [[判断式]] if [[ str > xyz ]];then
5、使用内置命令:test 判断式 if test "str" \> "xyz";then
6、使用内置命令:[判断式] 类似test if [ "str" \> "xyz" ];then
7、使用-a -o进行逻辑组合 [ -r filename -a -x filename ]
8、命令&&命令 if grep -q "rm" fn.sh && [ $a -lt 100 ];then
9、命令||命令 if grep -q "rm" fn.sh || [ $a -lt 100 ];then