Linux桥梁工具之shell
shell 常用命令
基本与Linux相同, 但也有不同的地方
1.比如流程控制语句if
if [ condition ]
then
程序
elif
else
fi(反向if,代表结束)
2.判断表达式[ condition ](括号前后要空格) 和 计算表达式 $[ 5+6 ]
example
[ 32 -le 32 ] (命令-le前后也要空格)
3.for循环列外可以写如下格式
for((i=0;i<=100;i++)) "可以使用后<=和i++ 但其他循环不能使用 只可用 -lt -e 等比较命令判断"
do
命令程序
done
while [ 条件 ]
do
程序
done
4.case语句不同与java
case $变量名 in
"值1")
等于值1时的命令
;;(此处2个分号相当于break)
"值2")
命令2
;;
*) 这个等于default语句值
默认命令程序
;;
esac (反向拼写case代表结束)
5. read读取控制台输入
read -t 7 -p "Enter your name in 7 seconds " NAME
-t (time)表示等待多久输入参数
-p (print)等待是控制台打印提示
Name 为语句传入的参数
echo $NAME (打印参数)
6 .运算符
“$((运算式))”或“$[运算式]”
如计算(2+3)X 4的值
S=$[(2+3)*4]
echo $S
7.basename系统函数
basename [string / pathname] [suffix] (这个是后缀,如果写了后缀,输出时会删掉后缀名显示)
(功能描述:basename命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。
Shell 工具类
1.cut 剪切
-f 提取第几列
-d 按指定分隔符分开
cut -d ": " -f 2 file
(file要全部文件名,如 nihao .txt)
2.awk(三个人开发的名字组合,无意义)用与分隔筛选
- -F fs fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:
- -v var=value 赋值一个用户定义变量,将外部变量传递给awk
- 内置变量大写才有用
- FILENAME
- NR 现在读取到第几行
- NF 切割后有多少列
- command: print $2 (打印分隔符的第二列)
-
例句 计算第二列和
- 1 40
- 2 50
- 3 60
-
awk -F " " '{sum+=$2}END{print sum}' chengji.txt ()
150
awk -F ":" -v i=1 'BEGIN{ print "start" } pattern{ commands + i} END{ print "end" }' file
(-F以冒号:分隔文件 ,-V 用来自定义参数,用于之后表达式内,pattern可以是条件表达式,正则表达式,begin end只输出一次 ,file 即文件名)
3.sort
-n 大小排序
-r 反转大小排序
-k 选择第几列排序
-t 用什么分隔来排序
例句:
sort -t ":" -nrk 4 file名
系统预定义好的变量
1.脚本的常用执行方式
第一种
采用bash 或sh +脚本路径
如:sh /home/atguigu/datas/helloworld.sh
第二种
修改权限后 输入脚本的路径
chmod +x 文件路径
执行脚本
./路径 或 /路径
第三种 脚本路径前直接加 " . " 然后空格 路径
一二种是再当前shell打开子shell执行脚本,然后关闭子shell 回到 父shell
第三种是在当前shell脚本直接执行,不切换shell
2.显示当前shell 的所有变量
命令:
set
unset 撤销变量
readonly 只读 不能unset撤销
3.特殊字符的意义
$0 脚本名字
$n 第n个参数 10 以上要用大括号 如 ${10}
$# 所有参数的个数
$* 整体输入参数
$@ 分别输入
$? 最后命令的执行状态 0表示执行成功

浙公网安备 33010602011771号