Linux-shell

输入

键盘输入一个值赋值给data变量

read -p "请输入内容:"  data

整数运算

方式1:expr

例如:expr 1 + 2

方式2:$(())

例如:echo $((5-3*2))

方式3:$[]

例如:echo $[5+3]

方式4:let

例如:let sum=4+5   ,   let i++

判断

条件测试

数值比较:[ 整数1 操作符 整数2 ]  注意:[]左右要留一个空格

操作符:-gt:大于,-lt:小于,-eq:等于 ,-ne:不等于,-ge:大于等于,-le 小于等于

文件测试: [ 操作符 文件或目录 ]

操作符:

-f filename:当filename存在返回真

字符串比较:[ "字符串" 操作符 "字符串"  ]

操作符=:等于,例如:[ "yes" = "yes" ]

操作符!=:不等于

多条件(and 和 or)

多条件都成立:

[ 1 -lt 2 -a 5 -gt 3 ] 

[[ 1 -lt 2 && 5 -gt 3 ]]

[ 1 -lt 2 ] && [ 5 -gt 3 ] 

多条件有一个条件成立:

[ 1 -lt 2 -o 5 -gt 10 ]

[[ 1 -lt 2 || 5 -gt 3 ]]

[ 1 -lt 2 ] || [ 5 -gt 3 ] 

流程控制

if流程控制

case流程控制

while循环

条件为冒号":"时为死循环

for 循环

数组

数组定义方式1:

arr=(元素1 元素2 元素3)

数组定义方式2:

arr=(`命令`) #命令的返回值作为数组元素,例如arr=(`ls /home`)

数组定义方式3:逐一定义

arr[0]=元素1

arr[1]=元素2

arr[2]=元素3

数组访问方式:

${数组名[下标]},下标为*或@符号指访问所有元素,单个范围下标从0开始

${arr[*]:1} 从下标为1的数据开始获取

${arr[*]:1:3} 从下标为1的数据开始获取到下标为3的元素结束

sed命令

逐行处理

删除

sed -r '/root/d' filename   #删除文件中带root的

sed -ri '/root/d' filename  #加-i参数,删除后更新到文件

sed -r '3d' filename #删除第3行

sed-r '3,10d' filename #删除第3到10行

sed -r '$d' filename #删除最后一行

内容替换s

sed -r 's/源内容/目标内容/' filename

sed -r 's/root/aaa/' filename #替换匹配到的第一个root为aaa

sed -r 's/^root/aaa/' filename #替换在行首的root为aaa

sed -r 's/root/aaa/g' filename #替换匹配到的所有root为aaa,g指全局

sed -r 's#/aaa/ccc#/bbb/ddd#' filename #也可以用#作为分隔符,/aaa/ccc替换为/bbb/ddd

读取文件r

sed -r 'r 1.txt' filename #把1.txt内容添加到filename下的每一行

sed -r '$r 1.txt' filename #把1.txt内容添加到filename下的最后一行

sed -r '/root/r 1.txt' filename #把1.txt内容添加到filename中带root的下的每一行

另存文件w

sed -r 'w 2.txt' filename #filename另存为2.txt

sed -r '/root/w 2.txt' filename #带root的行另存为2.txt

sed -r '1,5w 2.txt' filename #1-5行另存为2.txt

追加内容a

sed -r 'a bbb' filename #在每一行后面追加 aaa

sed -r '/root/a bbb' filename #在内包含root的每一行后面追加aaa

插入命令 i

sed -r '1i aaa' filename #在第一行后面插入aaa

整行替换c

sed -r '2c aaa' filename #第二行整行替换为aaa

多重指令用分号分隔

sed -r '操作1;操作2;操作3' filename

awk命令

逐行数据处理

awk -F: '{print $0}'  2.txt  #-F后面设置的是分隔符,默认是空格 print打印 $0整行,$1第一列

#BEGIN在awk开始执行前执行,END在awk执行结束之后执行

awk -F: 'BEGIN{print "awk start"}{print $0}END{print "awk end"}' 2.txt

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值