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+3X 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表示执行成功

 

posted @ 2020-10-09 19:37  浪道  阅读(152)  评论(0)    收藏  举报