厚基础Linux——第六周作业

厚基础Linux——第六周作业

1、查找/etc目录下大于1M且类型为普通文件的所有文件

涉及知识点

find命令

find命令是Linux下最常用的搜索命令,支持多种子命令,对文件名,inode,正则表达式,用户组,文件类型,文件大小,元数据时间,权限构造检索条件。多种检索条件还可以进行逻辑运算。本题考查对文件类型,文件大小进行且运算。

#find常见用法
#find [Path] -子命令 子命令参数
#Path不指定时,检索当前目录

#-type 检索文件类型

#type参数
#f 普通文件
#d 目录
#l 链接文件
#b 块文件
#c 字符文件
#s 套接字文件
#p 管道文件

#-size 检索文件大小

#size参数
#[+/-]n单位

#单位大小写敏感
#k M G c(byte)

#[+/-]n
#n 描述区间为(n-1,n]单位的文件大小
#+n描述区间为(n,无穷大)文件大小
#-n描述区间为[0,n-1]文件大小

#检索条件的逻辑运算

#-a 表示and
#-o 表示or
#-not 表示not,否定

代码段

find /etc/ -size +1M -a -type f | xargs ls -lh

image-20201006160624934

2、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。

涉及知识点

find命令

这里需要使用find命令对文件名进行检索

#find命令常见用法
#-name
#支持通配符"*conf"
xargs命令

很多命令不支持标准输入,本题中的tar命令就是其中之一。xargs接收标准输入,转化为参数提供给这些命令。

#xargs命令常见用法
#xargs [CMD] 将标准输入转化为[CMD]命令的参数
find | xargs tar ...

#xargs行转列。若命令不支持多参数,xargs需要将多参数项转换为列形式,逐一执行
#xargs -n1 将参数转换为1个字段1行

#批量创建用户user1,user2..user10
echo user{1..10} | xargs -n1 useradd
tar命令

tar命令对多个文件进行打包,支持多种压缩格式。

#tar命令常见用法

#tar czvf [FILE].gz [DIR] 压缩[DIR]目录下文件到[FILE].gz,使用gzip算法
# c 使用gzip算法 
# j 使用bzip2算法
# J 使用xz算法

#tar xvf [FILE].gz -C [DIR] 解包[FILE],无需指定压缩算法,解包到[DIR]目录

代码段

find /etc/ -name "*conf" | xargs tar czvf /usr/local/src/`date +%F`.tar.gz

image-20201006163014865

3、利用sed 取出ifconfig命令中本机的IPv4地址

涉及知识点

sed命令

本题中使用正则表达式进行ip匹配,后使用搜索替换功能,仅留下分组。

#sed常见用法
#选项
#-n 禁用自动输出
#-E 在脚本中寻址使用正则表达式
#-e 多个脚本并行执行
#;分隔指令,多个指令串行执行

#搜索替换
#s/xxxx/yyy/[Option]
#[Option]  
#g表示整行执行替换
#p表示打印替换成功的行
#w f1.txt表示将替换成功的行写入f1.txt
#i I 表示替换忽略大小写

代码段

ifconfig ens32 | sed -nE '2s/^[^0-9]+([0-9.]+).*$/\1/p'

image-20201007231122084

4、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

涉及知识点

本题涉及修改文件,需要使用i选项,结合正则表达式搜索替换实现删除。本题修改的是系统配置文件,还应该使用备份选项。

sed命令
#sed命令常见用法
#修改
#-i 会将输出内容写入到文件
#-i.bak 在写入前会备份原文件,后缀为.bak,可自定义后缀。

代码段

sed -Ei.bak 's/^#[[:space:]]+(.*$)/\1/' /etc/fstab

image-20201007232821029

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名

涉及知识点

本题仍旧采用正则表达式和搜索替换,只是从处理文档变成了处理标准输入,搜索替换的内容包含#时,分隔附可以换其它。

代码段

#目录名
echo "/etc/fstab" | sed -nE 's#(^/.*/)(.*$)#\1#p'

#基名
echo "/etc/fstab" | sed -nE 's#(^/.*/)(.*$)#\2#p'

image-20201008063719939

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值