内置变量:
FS 文字分隔符
OFS 输出的分隔符
RS 记录的分割符
ORS 输出的记录分隔符
NF字段数量
NR 记录号
FILENAME 当前文件名
ARGC 命令行参数的个数
ARGV数组,保存的是命令行所给定的各参数
FNR 各文件分别技术,记录号
自定义变量
也可以将来在处理文件的时候,用自定义变量
也可以指定列 的分隔符,OFS
自定义变量能不能先去使用,后赋值,第一个就为空了,所以要先定义变量
类似下面就会有这样的问题
**awk如果要重复执行,也可以放在一个文件里,直接调用就可以了
**
有几个格式符%就有几个item
awk还可以格式化输出,print 默认就进行换行打印
printf功能强大,可以定义格式format,按一定的格式来输出,宽度多少,左对齐右对齐,小数点
本身在bash里就有内部命令
printf特点就是不会自动换行,要想换行就得告知
模版format可以嵌入必要的输出信息,用的比较多的,数字,,浮点数,字符串,
进行显示的时候还可以加修饰符,修饰符在%后面
【】表示可有可无
默认右对齐,左对齐的需要修改加
有几个百分号就代表有几个定义,就有几个变量-
可以加表头
后面的没写print默认引用print$0 整行
还支持比较符号,甚至还支持模式匹配
~:表示左边是否和右边模式匹配
!~:是否不匹配
包含root就显示
也可以取反,不包含root
支持正则表达式就可以显示root开头的行
所以DF取硬盘使用率就可以抛弃grep
全部想要打印,就可以省略print ¥0
现在就可以把数字取出来,如果大于10的显示,小于的就不显示
还支持逻辑各种运算
把etc/passwd中大于1000,小于1010uid的用户显示出来
小于1000的
awk里通常 0代表假,1代表真
如果selector?判断为真,就执行 iftrue代码,反之就是执行iffalse代码
看用户uid是否大于1000,打印的字后面不一样
awk可以定义过滤条件,加模式定义
用正则表达式,r开头的信息
就显示uuid开头的行/etc/fstab
比较有意义,有些文件里面很多都是注释,我们就关心非#开头的行
为真的时候就显示
取反
正则表达式能否跟变量值
系统判断一个字符串为空或者为0就是假;非0非空就是为真
0和空字符串都是假
显示bash结尾的行
可以换成正则表达式
可以设置行的范围,从什么模式到什么模式中间的行
awk只把文件读进来,不去修改,第10到20行
sed命令可以修改
i=!i =1就打印第一行 再取反就是0,就不打印(打印基数行)
打印偶数行
**sed命令怎么打印偶数行
从第二行开始,每个突进是2 **
systemctl(systemd的基本命令工具)
start
stop
enable
disable
is-enabled 判断当前是否开机活动
is-active 判断当前是否已经启动
reload 建议改了服务配置文件用reload
restart
破解口令
grub修复
删除boot修复
selinux:rhce 考试 修改文件标签 chcon restorecon semange
fcontext -l
2.更改端口 semange port -l查 -a 增加
3. semange boolean -l 布尔值 更改布尔值 setsebool -P ftp_anon_write on =1
4. 开关selinux策略 vim /etc/selinux/config
setenforce 0 1
getenforce
**新命令
awk
chcon
semanage
restorecon
setenforce
getenforce
sestatus
setsebool修改布尔值
getsebool
logger发日志测试
grub2-install
grub2-mkconfig
printf echo **