AWK文本工具和软件包管理

AWK文本工具

两种版本1.nawk   2.gawk

gawk    模式扫描和处理语言

选项:

-F 指明输入时用到的字段分隔符

-v  var=value:自定义变量

基本格式: awk [options] program   file….

programpattern{action statrments;……..}

分隔符,域记录:

1. awk 执行时,由分隔符分隔的字段标记$1,$2….$n 称为域标识。

2. $0为所有域。或者说整行

3. 文件的每一行称为记录

print 格式:print item1,item2,………..

要点:

1. 逗号分隔

2. 输出的各item可以是字符串,也可以是数值

3. 如省略item,相当于print $0

例子:

awk {print hello,awk}           在屏幕输出helloawk

awk -F: ‘{print}’  /etc/passwd      在屏幕上打印/etc/passwd文件的内容

awk -F: ‘{print “zm”}’  /etc/passwd   有多少行就打印多少行zm

awk -F: ‘{print $1}’  /etc/passwd      打印/etc/passwd的以:为分隔符的第一个字段

awk -F: ‘{print $0}’  /etc/passwd      打印所有字段

awk -F: ‘{print $1\t $3}’  /etc/passwd    打印文件的第一个和第三个字段

awk 变量:内置和自定义变量

FS:输入字段分隔符,默认为空白符

awk -v FS=”:” ‘{print $1,$F,$3}’ /etc/passwd 打印第一个字符和第三个字符用:分

awk -F: ‘{print $1,$3,$7}’ /etc/passw 打印1.3.7个字符

OFS:输出字段分隔符,默认为空白字符

awk -v FS=”:” -v OFS=”:” ‘{print $1,$3,$7}’ /etc/passwd   输出以:分隔打印1.3.7

RS:输出记录分隔符,指定输入时的换行符

awk -v RS=” ‘{print}’ /etc/passwd

ORS:输出记录分隔符,输出时用指定符号代替换行符

 awk -v RS=” -v ORS=’###’ ‘{print}’ /etc/passwd

NF:字段数量

awk -F: ‘{print NF}’ /etc/fsta

awk -F: ‘{print $(NF-1)}’ /etc/passwd

NR:记录号

awk ‘{print NR}’ /etc/fstab ; awk END'{print NR}’ /etc/fstab

FNR:各文件分别计数记录号

awk ‘{print FNR}’ /etc/fstab  /etc/passwd    分别打印各个文件行数

FILENAME:当前文件名

awk “{print FILENAME}” /etc/fstab       打印出当前文件名

ARGC:命令行参数的个数

awk ‘{peint ARGC}’ /etc/fstab /etc/inittab   打印命令行参数个数,不加GEGIN不打印

awk ‘BEGIN {print ARGC}’  /etc/fstab /etc/inittab     打印命令行参数个数,awk也算

ARGV:数组,保存的是命令行所给定的各参数

awk ‘BEGIN{print ARGV[0]}’ /etc/fstab /etc/inittab 结果打印处awk

awk ‘BEGIN{print ARGV[1]}’ /etc/fstab /etc/inittab 打印出/etc/fstab

awk变量:自定义变量(区分字符大小写)

-v  var=value

program中直接定义

示例:

awk -v test=’hello gawk’ ‘{print test}’ /etc/fstab   先赋值后打印

awk -v test=’hello gawk’ ‘BEGIN{print test}’ /etc/fstab   只打印一行

awk ‘BEGIN{test=”hello,gawk”;print test}’   

printf命令

格式化输出:printf FORMAT,item1item2…….

1. 必须指定FORMAT

2. 不会自动换行,需要显示给出换行符,\n

3. FORMAT中需要分别为后面每个item指定格式符

格式符:与item一一对应

%c:显示字符的ASCII

%d%i:显示字符的十进制数

%e%E:显示科学计数法值

%f:显示浮点数

%g:以科学计数法或浮点形式显示值

%s:显示字符串

%u:无符号整数

%%:显示自身

修饰符

#[.#]:第一个数字控制显示的宽度;第二个#表示小数点后的精确度,%3.1f

:左对齐  %-15s

+:右对其  %+d

例子:

awk -F: ‘{printf “%s”,$1}’ /etc/passwd  显示$1的字符串

awk -F: ‘{printf “%s\n”,$1}’ /etc/passwd    换行显示$1

awk -F: ‘{printf “%-20s %10d\n”,$1,$3}’ /etc/passwd

awk -F: ‘{printf “Username:%s UID:%d\n”,$1,$3}’ /etc/passwd

awk -F: ‘{printf “Username:%-15s,UID:%d\n” ,$1,$3}’ /etc/passwd

awk -F: ‘$0 ~ /root/{print $1}’ /etc/passwd      如果包涵root就打印

awk -F: ‘$0 ~  “root”‘ /etc/passwd            打印包含root的行

awk -F: ‘$0 !~  /root/’ /etc/passwd            不打印包含root的行

awk -F: ‘$3==0’ /etc/passwd       打印第三个字段包含0

操作符:&&|| !

实例:

 awk -F: ‘$3>=0 && $3<=1000 {print $1}’ /etc/passwd   打印id大于3小于1000的用户

 awk -F: ‘$3==0 || $3>=1000 {print $1}’ /etc/passwd   打印id等于31000的用户

awk -F: ‘!($3==0){print $1}’ /etc/passwd    打印id不等于3的用户

awk -F: ‘!($3>=500){print $3}’ /etc/passwd   打印id大于3id

df | awk ‘$1 ~ /^\/dev\/sd/{print $1,$5}’| awk -F% ‘{print $1}’   打印dev内存使用

seq 10 | awk ‘i=!i’                          打印奇数行

awk控制语句

语法:

if(condition){statement,……}[else statement]

if(condition){statement1}else if(condition2){statement2}

awk -F: ‘{if($3>=100)print $1,$3}’ /etc/passwd      $3大于100就打印$1,$3

awk -F: ‘{if($3>=1000){printf “Common user:%s\n”,$1} else {printf “root or user:%s\n”,$1}}’ /etc/passwd

while循环

awk ‘/^[[:space:]]*linux16/{i=1;while(i<=NF){print $i,length($i);i++}}’ /etc/grub2.cfg

软件包管理YUM,RPM

二进制应用程序组成部分

二进制文件,库文件,配置文件,帮助文件

查看二进制程序所依赖的文件    ldd /PATH/TO/BINARY_FILE

管理及查看本机装载的库文件    ldconfig

  /sbin/ldconfig -p 显示本机已经缓存的所有可用库文件名

配置文件/etc/ld.so.conf.d/,  /etc/ld.so.conf.d/*.conf

缓存文件/etc/ld.so.cache

rpm包安装[insttall-options]

–test:测试安装

–nodeps:忽略依赖关系

–replacepkgs

–nosignature 不检查来源合法性

–nodigest不检查包完整性

–noscripts 不执行程序包脚本

-u 安装有旧程序包,则升级。不存在旧版,则安装

-f  安装有旧程序包,则升级。不存在旧版,则不执行操作

–oldpackage:降级安装

–force:强制安装

换内核用-ivh

-e卸载  -a所有包  -f查看指定文件由那个程序包安装生成

-q   针对未安装的程序包查询操作

-c   程序配置文档   -d程序的文档 -l生成的所有文件 -R依赖关系

Yum

[****]

baseurl=file://  http://   ftp://  https://

gpgcheck=0  

enabled=1

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92451

(1)
zhangmengzhangmeng
上一篇 2018-03-15
下一篇 2018-03-15

相关推荐

  • 让运维工程师不再蓝瘦、香菇

    最近广西一小哥失恋后录的视频风靡互联网,也让“蓝瘦、香菇”这两个词火了一把。虽然原故事男主角是因为失恋才蓝瘦、香菇,但想想作为运维“狗”的我们也时常因强大的工作压力而蓝瘦,常常在晚上睡得香呼呼的时候因为要处理故障从温暖的被窝爬起来,看着铝朋友鄙视的眼神,真的好香菇……本来作为技术大牛的我们,工作应该是很酷的事情,享受的应该是小白美铝们崇拜的眼神,可现在却那么…

    系统运维 2017-01-09
  • M25 Linux 学习,FHS标准

    FHS FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数Linux版本采用这种文件组织形式,FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。 FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bi…

    2017-07-15
  • 马哥教育21期网络班—第7周课程+练习—-成长进行时–努力前进

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; fdisk /dev/sdb   1、磁盘分区 &nbs…

    Linux干货 2016-08-19
  • inotify+rsync同步方案(ubuntu,适用其他发行版)

    系统:Ubuntu 16.04.1  工具:rsync 3.1.1 、inotify -tools 3.14      作者:jevtse    本文除了软件安装部分,其他内容同样适用其他linux系统;同步目标主机:172.16.250.…

    2017-03-05
  • iptables

    iptables: Firewall:隔离工具;Packets Filter Firewall;工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件; 硬件防火墙:在硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现;  软件防火墙:应用软件处理逻辑运行于通用硬…

    Linux干货 2016-12-05
  • Samba & Vsftp

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)   1)共享名为shared,工作组为magedu;   2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;   3)添加s…

    Linux干货 2016-12-20