Linux shell 一些命令

点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,麻烦点个在看或点个赞,感谢~
程序环境: ubuntu16.04  x64 虚拟机
以一个实际的需求为例进行说明: 获取固定网卡的ip地址

一、 例子拆解

1.  ifconfig效果

ifconfig ens33


2.  使用awk格式化字符
ifconfig ens33 | awk ‘/inet/ {print $2}’


|

管道命令操作符 | 可以用来连接进程,管道符左边命令可以作为管道符右边命令的输入。

② 介绍下 awk
指令:

awk是一个强大的文本分析工具,相对于 grep
的查找, sed
的编辑, awk
在其对数据分析并生成报告时,显得尤为强大。简单来说 awk
就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
一种使用方法:
awk ‘{pattern + action}’ {filenames}

pattern 表示 AWK
在数据中查找的内容

action
是在找到匹配内容时所执行的一系列命令
pattern就是要表示的正则表达式,用斜杠括起来

awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息, awk
抽取信息后,才能进行其他文本操作。完整的 awk
脚本通常用来格式化文本文件中的信息
说回例子中参数的意义,
/inet/ 正则表达式

{print $2} 对第二列结果进行输出;以上面 ifconfig ens33
输出为例,按照空格来划分域,找到 inet
所在行并输出第二个域

3 使用cut获取最终需要信息

ifconfig ens33 | awk ‘/inet/ {print $2}’| cut -f2 -d “:”


cut
正如其名,cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。

-f 与 -d
一起使用,指定显示哪个区域

二、 其他怪怪的关键字

整数比较:
-eq(equal) 相等
-ne(inequality) 不相等
-gt(greater than) 大于
-lt(less than) 小于
-ge(greater equal) 大于或等于
-le(less equal) 小于或等于

三、  脚本程序的参数传递

将上面的命令写入脚本文件中,并传入参数:

#! /bin/bash   嵌入式则指定sh解释器


Src_Ip=$(/sbin/ifconfig ens33 | awk '/inet/ {print $2}' | cut -f2 -d ":") Str=$1
echo $Src_Ip echo $Str
if [ "$1" = "hello" ]; then echo '~~~~~~~~~' fi

转行嵌入式的基本素养:
每日鸡汤: 是梦想支撑了生活