一.awk命令
1.1知识点回顾
1.2课前分享
1.grep -v 取反 -w 过滤内容双方必须是空格,相当于界限符 -r 递归过滤 -E 扩展正则,相当于egrep -o -i -c -n -A -B -C 2.sed 用法: 1.取行 2.删除行 3.替换行 4.增加内容 5.后向引用
sed '模式+动作' 模式:找谁 动作:找到后干什么
参数选项: -n 取消默认输出 -r 支持扩展正则 -i 修改源文件
1.sed -n 'np' file ‘n’为数字,p为print 打印输出 2.sed -n 'n,mp' file 3.sed -n '$p' file 4.sed -n 'np;mp' file
含糊过滤 1.sed -n '//p' 2.sed -n '//,//p' 查找日志,过滤时间区间
删除 支持正则 1.sed 'nd' file 2.sed 'n,md' file 3.sed '//,//d' file 4.sed -i -r
增加内容 1. sed '3a 内容' file 在第三行下边追加内容 2. sed '3i 内容' file 在第三行插入内容 3. sed '3c 内容' file 在第三行完全替换 4. sed ‘3w new.txt’ file 将第三行内容保存到新文件中
替换 支持正则 sed 's###g' file sed 'sAAAg' file sed 's///g' file
AWK命令
```bash 公司中: 绝大部分干伐 故意无力。 别人不做我们做。支持向导。 现在做的项目需要做一个报告,你们谁来做一下。 拿着报告给向导述职。 在公司和同事和向导好利益。当自己好朋友来处。 公司 运维主管 运维司理 架构师。
awk作用 GNU/AWK 编程语言 1.取行 2.取列 3.含糊过滤 4.判定比较 字符串比对 数字比对 5.支持if for while 数组 6.格式化输出
语法布局: awk '模式' file # 默认就是输出 不需要加动作 awk '模式+动作' file 其他命令的输出|作为awk命令的输入 df -h|awk 'NR==2'
1.awk取行 语法布局: sed -n '3p' file awk 'NR==3' file NR awk的内置变量 存储着每行的行号 符号 == 即是第几行
1.3awk取行
1.4.awk含糊过滤
1.5awk取列
awk '{print $1}' file # 取出文件中的第1列 默认按照空格或者tab键分隔成列 假如没有空格或者tab键,awk会将整行看成一列 在awk中齐备在动作中的字符串都被看做是变量,加上双引号则视为平常的字符串
awk内置变量 $0 # 表示整行 $1 # 表示文件的第1列 $2 # 表示文件的第2列 , # 逗号表示空格 NF # 表示每一行末了一列的列号
1.6awk指定分隔符
语法布局: awk -F: '{print $1}' # 第一种指定分隔符方法 awk -F ":" '{print $1}' # 第二种指定分隔符方法
案例1.取出passwd中的用户名称 以冒号分隔 [root@oldboyedu ~]# awk -F: '{print $1}' passwd root bin daemon adm lp sync
留意假如指定了分隔符 默认的空格和tab键分隔符失效 root:x: 0:0: root [root@oldboyedu ~]# cat aa.txt root: x : 0:0: ro ot [root@oldboyedu ~]# awk -F: '{print $NF}' aa.txt ro ot
1.7awk小结
awk模式+动作 模式: 通过NR找出指定的行 awk 'NR==5' 通过含糊过滤的方式找出行 awk '/root/' awk 'NR==5{print $1}'
案例1.输出文件中第2行的第2列 [root@oldboyedu ~]# cat 7.txt a
a b
b c d q w e c [root@oldboyedu ~]# awk 'NR==2{print $2}' 7.txt b
案例4.输出包含adm的行的 第3列 [root@oldboyedu ~]# awk -F: '/adm/{print $3}' passwd 3 awk口试题: 我有一个文档,取出文件中的第5行的第3列
取出包含adm行的第3行的第3列 [root@oldboyedu ~]# awk '/adm/' passwd adm:x:3:4:adm:/var/adm:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin [root@oldboyedu ~]# awk -F: '/adm/{print $3}' passwd 3 3 3 [root@oldboyedu ~]# awk -F: '/adm/{print $3}' passwd |tail -1 3
```bash 1.awk取行 ***** awk 'NR==3' file df -h|awk 'NR==5' NR==3 NR!=3 NR>3 NR>=3 NR<3 NR<=3 && awk 'NR>3&&NR<6' file || awk 'NR==5||NR>8' file
2.awk含糊过滤 ***** awk '//' file awk '//,//' file # 区间范围 awk '/^/' file # 支持正则 ^ $ | []
3.awk取列 ***** 默认空格tab键为分隔符 $1 $2 awk '{print $1}' file awk '{print $1,$2}' file awk '{print $NF}' file # 取出文件中末了一列 awk '{print $(NF-1)}' file # 取出文件中倒数第2列
4.awk指定分隔符 ***** awk -F awk -F: awk -F ":" '{print $1}' file awk -F "[:/]" 指定任意单个 awk -F "[:/]+" 前字符出现一连1一次及以上作为1个字符串 awk -Fa # 指定a为分隔符
二.软件安装-find文件查找
2.1 软件安装
特点:
必须保证可以联网
类似手机软件市肆直接安装
类似windows360软件管家 搜刮软件-->点击安装自动帮我们安装
安装位置自动,我们自己不能界说位置
自动解决依赖问题 某个软件依赖于别的一个软件
用饭点外卖 打包好: 饭已经做好
/etc/yum.repos.d/ # 存放软件仓库的设置 repository 仓库
yum语法布局
yum -y install 软件包的名称
yum -y isntall wget sl cowsay net-tools
yum clean all # 清理仓库缓存
参数选项:
install # 安装
remove # 卸载
假如是centos需要将默认的仓库地点更改成国内的仓库地点,麒麟系统不需要修改。
1.备份默认的仓库
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.下载新的仓库到设置目次下
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
2.2 仓库先容
2.3 RPM软件安装
2.4 RPM软件参数详解
2.5 UBT软件安装方式
2.6 文件范例增补
作用: 根据不同的文件范例查找出想要的文件
语法布局:
find 在哪里找 找什么范例的 # 格式1
find /data f
find /data 按照名称查找 # 格式2
文件范例:
f # 表示平常文件
d # 表示目次
l # 表示链接文件
c # 表示字节设备
b # 表示块设备 /dev/sda 磁盘 光驱
2.7 知识点小结
1.软件安装三种方式
yum安装
yum -y install 包的名称
yum -y install pk1 pk2 pk3
yum -y remove pk1
yum clean all # 清理仓库缓存
rpm安装
rpm -ivh xxx.rpm # rpm安装
rpm -qa wget # 查看软件是否安装
rpm -qa wget lrzsz net-tolls # 查看多个是否安装
rpm -e wget # 卸载 还是yum卸载
rpm -qa|grep xxx # 过滤包含xx的包
-------
rpm -ql 查看安装了哪些内容
rpm -qc 查看设置文件
-------
什么情况下用rpm包
1.仓库中没有这个软件 通过第三方网站下载下来的rpm包
2.没有网络的情况下
ubt系统
apt -y install 包名称
apt -y remove 卸载
dpkg -l wget # 查看是否安装
dpkg -i xx.deb # ubt是以deb结尾的安装包,kylin和centos都是以rpm结尾的安装包
dpkg -r xx # 卸载软件
dpkg -L wget # 查看安装了哪些内容
编译安装
文件范例:
f
d
l
b # 硬件设备 /dev/sda /dev/sr0
c # 字节设备
/dev/null 空 类似黑洞
Kylin系统设置了一个额外的仓库 epel仓库
ubt系统修改了默认的仓库为阿里云 条记整理好
2.8 FIND按照文件范例和名称查找
1.查找大文件
2.小文件多的
inode号,一个文件最少占用一个inode和一个block
相当于一本书的索引,一本书的目次有限制的 比如200个
查看inode使用
[root@oldboyedu ~]# df -i
2.9 FIND按照文件大小查找
案例1.查找出平常文件并且名称为1.txt的
[root@oldboyedu oldboy]# find ./ -type f -a -name "1.txt"
./1.txt
案例2.查找出目次并且名称是test-1
[root@oldboyedu oldboy]# find ./ -type d -a -name "test-1"
./test-1
案例3.查找出文件名称*.txt 或者 *.log
[root@oldboyedu oldboy]# find ./ -name "*.txt" -o -name "*.log"
./1.txt
./2.txt
./test.txt
./test-1/1.log
./test-1/2.log
案例4.按照深度品级查找
[root@oldboyedu oldboy]# find ./ -maxdepth 1 -name "*.txt" -o -name "*.log"
./1.txt
./2.txt
./test.txt
./12.txt
./a.txt
2.10 FIND按照时间查找
三种时间:
atime: 访问时间
mtime: 文件修改时间
ctime: 文件属性修改时间
find ./ -mtime +7 # 7天前修改过的文件
find ./ -mtime -7 # 7天内修改过的文件
find ./ -mtime 0 # 24小时内被修改过的文件
2.11 FIND执行结果交给其他命令执行
2.12 知识点小结
1.软件安装
yum安装
yum -y install pkg.name
yum -y remove pkg.name
yum clean all # 清理仓库缓存
yum list # 查看仓库中所有的软件
yum -y reinstall # 覆盖安装
yum -y install --downloadonly --downloaddir=xx wget
rpm安装
先有xx.rpm结尾的包
rpm -ivh xx.rpm
rpm -e xx
rpm -qa wget # 查看wget是否安装
rpm -ql wget # 装了哪些内容
rpm -qc wget # 设置文件
ubuntu安装
apt update # 假如不让安装先执行
apt -y install pkg.name
apt -y remove pkg.name
dpkg -i xx.deb # .deb的文件必须存在
dpkg -r xx # 卸载
dpkg -l wget # 查看软件是否安装
字节设备:
/dev/null # 空
/dev/zero # 使用dd命令
$? 上一条命令返回结果
仓库的设置:
centos修改默认的仓库为阿里云
麒麟系统安装扩展的仓库 epel仓库
ubt系统修改默认的仓库为阿里云
2.find查找
按范例查找
find /data -type f
find /data -type d
按名称查找
find /data -name "1.txt"
不区分大小写
find /data -iname "1.log"
或者和并且
-o
-a # 默认可以不加
find /data -type f -name "test.txt"
find /data -type f -o name "test"
按照大小查找
find /data -size 10M 即是10M +10 大于10M -10M 小于10M
find / -type f -size +1G
find / -type d -size +1M # 查找系统中小文件比较多的目次
按照深度品级查找
find /data -maxdepth 1 -type f
按照时间查找
find /data -mtime +7
find /data -mtime +30
按照inode号查找
find /data -inum 823842
笔试题: 查找出大于30天前的文件并且删除
find /data -mtime +30|xargs rm -rf
xargs 使用方法
ntpdate 时间同步
```
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |