赞
踩
这些其实去百度里面搜都是有的我就不详细举例了
- find `pwd` -name "*pcm" #绝对路径下的所有pcm
- find `pwd` \( -name "*.txt" -o -name "*.text" \) # 绝对路径下的所有.txt和.text
- find `pwd` -type d #绝对路径下的所有目录,f是文件
- find `pwd` -iname "*txt" #绝对路径下的所有txt(且不区分大小写)
- find `pwd` -maxdepth 1 #查找目录最大深度为1
- find `pwd` -size +9600000c #查找目录大于9600000字节的文件
shell基础
- # 单引号
- 变量无效,转义也不可以
- # 双引号
- 变量有效,可出现转义符
-
- # 变量
- name="nihao" # 局部变量,仅在当前shell有效
- exprot name="nihao" # 全局变量,所有shell有效
-
- # 获取字符串长度
- 在${}中使用“#”获取长度
- # 提取子字符串
- ${str:start:len}
-
- # 数组 bash只支持一维数组,不支持多维数组
- # 定义
- array_name=(li wang xiang zhang) (小括号做边界、使用空格分离)
- # 获取数组元素
- echo ${array_name[0]}
- # 取得元素个数:
- ${#array_name[@]} 或者 ${#array_name[*]}
- # 取得单个元素长度:
- ${#array_name[1]}
-
- # 参数
- - $#:参数个数
- - $@:显示所有向脚本传递的参数 “1” “2” “3”(传递了三个参数)
- - $*:显示所有向脚本传递的参数 “1 2 3” (传递了一个参数)
- - $?:是显示最后命令的退出状态,0表示没有错误,其他表示有错误
- - $!:最后一个运行的后台进程
- # 算数运算
- $[1+1] 或 $((1+1)) 或 `expr 2 + 2` (中间要有空格) 或 let i=1+1
- # bc 上面的都不能做小数运算,可以使用bc计算器,也支持 逻辑运算 echo "1>2" | bc 成立返回1,不成立返回0
- - scale=n 可以约束小数位
- 1.直接输入bc,可以进入交互模式
- 2.echo "scale=2;1.1+1.1" | bc
-
- # 数字关系运算符
- -eq := ,Equal
- -ne: != , Not Equal
- -gt: > , Greater Than
- -ge: >= , Greater or Equal
- -lt : < , Less Than
- -le : <= , Less or Equal
-
- # 字符串运算符
- = :检测两个字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。
- != :检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。
- -z :len == 0,为0返回 true。 [ -z $a ] 返回 false。
- -n :len != 0,不为0返回 true。 [ -n “$a” ] 返回 true。
- $ : a != "",不为空返回 true。 [ $a ] 返回 true。
-
- # 布尔运算符
- ! :非运算,表达式为 true 则返回 false。 [ ! false ]
- -o :| ,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ]
- -a :& ,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ]
-
- # 逻辑运算符 有多个判断条件,所以有两个 [[ ]]
- && :逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false
- || :逻辑的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true
-
- # 文件运算符
- -d file :检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。
- -f file :检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。
- -s file :检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。
- -e file :检测文件(包括目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true。
- -r file -w file -x file :可读可写可执行返回true
-
- # 字符串切割
- ${file#.*} 删掉第一个
- ${file##.*} 删掉最后一个
- ${file%%.*} 删掉最后一个
- ${file%.*} 删掉第一个
-
- ${file/dir/path}:将第一个dir替换为 path
- ${file//dir/path}: 将全部dir替换为 path
-
- # read == 标准输入
- read -p "请输入姓名" -t 3 -s name
- -p:提示输入
- -t:计时输入
- -s:输入不显示,类似于密码输入
- cat txt | while read line;do commend ;done # 按行读取文本
-
-
- # 条件测试
- test 选项 参数 或 [ 选项 参数 ] (空格必须加)
- - 多个命令组合
- ; - [ 1 -eq 1 ] ;echo 1 # 用;两条命令没有逻辑关系,依次执行
- && - [ 1 -eq 1 ] && echo 1 # && 有关系,只有第一条命令执行成功,才能执行第二条
- || - [ 1 -eq 1 ] || echo 1 # || 有关系,如果第一条命令执行成功,第二条就不执行,反之,第二条执行
-
- # if 判断
- if 条件测试;then
- 命令
- elif 条件判断;then
- 命令
- else
- 命令
- fi
-
- # for 循环
- # 方法一:
- for 变量 in 值列表 # 技巧 {1..10} 1-10 ; {a..z} a-z
- do
- 命令
- done
- # 方法二:
- for((初值;条件;步长))
- do
- 命令
- done
-
- # case 语句
- case 变量 in
- 模式1)
- 命令;;
- 模式2)
- 命令;;
- *)
- 默认命令
- esac
-
-
- # 函数
- function 函数名{ }
- 函数名(){ }
-
- # basename 命令
- $ basename /usr/bin/sort 输出"sort"。
- $ basename ./include/stdio.h .h 输出"stdio"。
- # dirname 命令
- $ dirname /tmp/test/file.txt 输出"/tmp/test"
-
- # tr 命令
- -s : 删除重复字符串
- echo "a b c" | tr -s " " # a b c
- echo "aaaaaab" | tr -s "a" # ab
- -c : 取反
- -d : 删除
- tr -cd '0-9a-zA-z' < /dev/urandom | head -c 10 # 只提取前10个字符
-
- # cut 命令 切割列
- -d:指定分隔符
- -f:指定第几列
- cut -d : -f 1 txt # 选择以:为分割符的第一列
今天就分享那么多,我妈妈喊我回家吃饭了拜拜!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。