linux shell常用命令

分割字符串
date_hour=2019101415
date_time=${date_hour:0:8}
hour=${date_hour:8:2}
注意:date_hour后面的0:8,代表着取第0个位置后面的8位字符,8:2表示取第8位后的2位字符。

shell基本运算符:

整数计算:

方法一:使用expr

val=`expr 2 + 2`
val=`expr $a \* $b`
echo "两数之和(乘积)为 : $val"

注意:表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2;乘号(*)前边必须加反斜杠(\)才能实现乘法运算;。
方法二:使用 $[ ]

val= $[ $1 + $2 ]
val= $[ $1 * $2 ]  #此时不用对\*转义

小数计算:

#加
f=$(echo "scale=4; $var2 + $var1" | bc)
#减
f=$(echo "scale=4; $var2 - $var1" | bc)
#乘
f=$(echo "scale=4; $var2 * $var1" | bc)
#除
f=$(echo "scale=4; $var2 / $var1" | bc)
#混合
f=$(echo "scale=4; $var2 / $var1 * 100" | bc)

shell关系运算符:
-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false
-ne 检测两个数是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
-lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
-ge 检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
-le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。

shell返回值:
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

linux常用命令:
cat
cat -n 或 –number 由 1 开始对所有输出的行数编号
cat -b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
cat -s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
cat > filename 创建一个新的文件,不能编辑现有的
cat file1 file2 > file 将多个文件的内容串联合并输出到另一个文件里

head:显示文件最开始部分内容
head -n 10 filename 显示filename文件的前10行

tail:显示文件最后部分内容
tail -f filename 监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
tail -n 20 filename 显示filename最后20行。

more:分页显示(q退出,b返回上一页,空格键下一页,回车键下一行)
more -n 定义屏幕大小为n行
查找中,可根据模式查找字符串,输入斜杠 /模式字符串 回车进行查找,n和N控制向上和向下查找

grep:匹配/正则匹配
grep -i :忽略大小写(ignore case)。
grep -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
grep -n :显示行号
grep -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
grep -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
grep -o :只显示被模式匹配到的字符串。
grep --color :将匹配到的内容以颜色高亮显示。
grep -A n:显示匹配到的字符串所在的行及其后n行,after
grep -B n:显示匹配到的字符串所在的行及其前n行,before
grep -C n:显示匹配到的字符串所在的行及其前后各n行,context

去重复行
sort -u test

依次读文件
for line in `cat ${in}`
do
echo $line
done

一次读文件的一行
cat file | while read line
do echo $line
done

多行注释
:<<!
被注释的多行内容
!

vim批量删除
1)删除所有内容:先用G 转到文件尾,然后使用下面命令:
:1, .d
2)删除第10行到第20行的内容:先用20G转到第20行,然后使用下面命令:
:9, .d
3)关于删除的一些说明:
在vi中," . "表示当前行,“1,。”表示从第一行到当前行,“d ” 表示删除。
如果只是想删除某一行,那么把光标指到该行,然后输入d d 即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值