前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux shell 一些命令

Linux shell 一些命令

作者头像
用户5908113
发布2020-06-22 17:12:03
4910
发布2020-06-22 17:12:03
举报
文章被收录于专栏:Pou光明Pou光明

程序环境: 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) 小于或等于

三、 脚本程序的参数传递

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

代码语言:javascript
复制
#! /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

转行嵌入式的基本素养:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Pou光明 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档