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

相关推荐

  • 马哥教育网络21期+第十二周练习博客下

    6、在LAMP架构中,请分别以php编译成httpd模块形式和php以fpm工作为独立守护进程的方式来支持httpd,列出详细的过程。 # LAMP编译安装 # LAMP编译安装,目前CentOS7操作系统上可以使用yum进行安装,在CentOS6上需要编译安装 CentOS6 http-2.2主要安装的,编译安装LAMP需要h…

    Linux干货 2016-10-17
  • bash脚本作业

    1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统。 2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出。 1、求100以内所有正整数之和 2、通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,…

    Linux干货 2016-08-19
  • 0806文本处理工具

    ———- 文件查看工具 ———- cat:    cat [OPTION]… [FILE]…   //查看文本文件内容,一般后面跟文件名(相对路径),或者是文件名(绝对路径) -n 加行号 -b 加行号,…

    Linux干货 2016-08-07
  • 初识Linux

                              初认识Linux 1.1 Linux的登录界面 在虚拟机安装CentOS 7中有提到,我在安装Linux操作系统的时候,采用的是命令行界面的登录方式,当然也有像Windows那样…

    Linux干货 2016-10-27
  • 常用命令之ls 详解

    ls详解 罗列目录内容权限,列出文件的信息列表(默认为当前目录)。 这个命令是Linux操作系统使用频率最高的命令,没有之一。熟练掌握这个命令的常用参数,可以提高学习、工作效率,因此需要认真对待。 1. 常用选项 – -a,–all:显示当前目录下全部文件(常用) [root@jingz ~]# ls -…

    Linux干货 2016-08-02
  • 程序包编译安装

    linux安装采用命令行形式。

    2018-03-17