三剑客之sed&grep

第1章 练习题

1.1 1 取得/etc/hosts 文件的权限

如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r--r--  644,要求使用命令取得644 这样的数字。

1.1.1 方法一 awk 指定分隔符

[root@znix ~]# stat /etc/hosts |awk -F "[0/]" 'NR==4{print $2}'

644

1.1.2 方法二 stat  -c%a

[root@znix ~]# stat -c%a /etc/hosts

644

1.2 2 目录的硬链接数

linux 下通过 mkdir 命令创建一个新目录/clsn/ett,它的硬链接数是多少,为什么?

如果在/clsn/ett下面再创建一个目录 test。再问/clsn/ett 的硬链接数是多少?为什么。

1.2.1 新目录的硬链接数为2

[root@znix clsn]# ls -ldi ett/ ett/.

151313 drwxr-xr-x 2 root root 4096 Sep  4 10:09 ett/

151313 drwxr-xr-x 2 root root 4096 Sep  4 10:09 ett/.

1.2.2 目录下的硬链接数为 2+下级目录数

[root@znix clsn]# mkdir -p ett/dir01

[root@znix clsn]# ls -ldi ett/ ett/. ett/dir01/..

151313 drwxr-xr-x 3 root root 4096 Sep  4 10:11 ett/

151313 drwxr-xr-x 3 root root 4096 Sep  4 10:11 ett/.

151313 drwxr-xr-x 3 root root 4096 Sep  4 10:11 ett/dir01/..

1.3 3 取出ip地址

执行命令取出 linux eth0 IP地址。

1.3.1 方法一 awk

[root@znix ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'

10.0.0.201

1.3.2 方法二 grep

[root@znix ~]# ifconfig eth0|egrep  "([0-9]{1,3}\.?){4}" -o |head -1

10.0.0.201

1.3.3 方法三 sed 反向引用

[root@znix ~]# ifconfig eth0|sed -nr '2s#^.*dr:(.*)  Bc.*$#\1#gp'

10.0.0.201

1.4 4 网卡配置文件的路径DNS的路径

请给出默认情况 eth0 网卡配置文件的路径及客户端 DNS的路径。

eth0 网卡

/etc/sysconfig/network-scripts/eth0

DNS配置

/etc/resolv.conf

1.5 5

查找当前目录下所有文件,并把文件中的 www.etiantian.org 字符串替换成 www.clsn.cc

[root@znix ~]# find /* |sed 's#www.etiantian.org#www.clsn.cc#g'

1.5.1 运维职责

1.数据不能丢

2.网站7*24运行

3.用户体验好 尽量让用户从内存 /

1.5.2 网站有关的问题从发现到解决的过程

1、运营人员、网站用户发现问题,网站有弹窗广告。

2、运营人员报给开发人员,开发联系运维人员。开发和运维共同解决。

3、开发发现的问题原因就是所有站点目录被嵌入了一段JS代码。

4、运维人员解决问题:

a)  备份原始出问题的原始文件。

b)  find+sed替换。

5、详细查看日志,寻找问题发生来源。

6、提供亡羊补牢解决方案

1.6 8 内容在同一行输出

在一个命令上加什么参数可以实现下面命令的内容在同一行输出。

-n  不输出每行行尾的回车

-e  echo支持 \n \t  转移字符系列

\n  换行

\t   tab

[root@znix etc]# echo -n "123" ; echo "223"

123223

[root@znix etc]# echo -n "123"

123[root@znix etc]#

 

[root@znix etc]# echo -e "123\n"

123

[root@znix etc]# echo -ne "123\n"

123

1.7 9 date相关 时间同步

请给出如下格式的 date 命令 例:11-02-26。在给出实现按周输出 比如:周六输出为 6,请分别给出命令。

1.7.1 日期

%F %Y-%m-%d 相同

[root@znix etc]# date +%F

2017-09-04

[root@znix etc]# date +%Y-%m-%d

2017-09-04

1.7.2 时间

%H:%M:%S %T相同

[root@znix etc]# date +%T

10:57:48

[root@znix etc]# date +%H:%M:%S

10:58:53

1.7.3 时间和周数

%w 表示周

[root@znix ~]# date +%F_%w

2017-09-04_1

1.7.4 手动设置系统日期

使用date -s 命令,手动设置命令,但是很少使用。

[root@znix ~]# date -s "20170101 11:41:00"

Sun Jan  1 11:41:00 CST 2017

1.7.5 自动同步系统时间

ntpdate 联网同步主机时间。

[root@znix ~]# ntpdate  ntp1.aliyun.com

 4 Sep 15:17:22 ntpdate[11593]: step time server 182.92.12.11 offset 27.049824 sec

 

1.8 10 环境变量问题

当从root用户切到普通用户clsn时,执行ifconfig会提示。

-bash: command not found.

1.8.1 运行目录的过程

先去PATH

找到   运行命令解释器 shell

找不到 提示 command not found

1.8.2 临时修改 PATH

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp

1.8.3 永久修改 PATH

PATH 内容放到/etc/profile 文件最后

soucre  /etc/profile 让它生效

1.9 11 打印三天前的日期格式

-d "-3day" 表示三天前

-d "3day"  表示三天后

[root@znix ~]# date +%F

2017-09-04

[root@znix ~]# date -d "-3day" +%F

2017-09-01

[root@znix ~]# date -d "3day" +%F

2017-09-07

1.10 12 已知/clsn/test.txt 文件内容为:

clsn

xizi

xiaochao

请问如何把文件中的空格过滤掉。

1.10.1 方法一 grep

-v 排除 ^$ (空行)

[root@znix ~]# grep -v "^$" test.txt

clsn

xizi

xiaochao

1.10.2 方法二 awk

'!/^$/' 排除空行

[root@znix ~]# awk '!/^$/' test.txt

clsn

xizi

xiaochao

1.10.3 方法三 sed

'/^$/d' 排除空行

[root@znix ~]# sed '/^$/d' test.txt

clsn

xizi

xiaochao

1.10.4 sedawk

awk '找谁{干啥}'

sed '找谁干啥

1.11 13 已知/clsn/ett.txt 文件内容为

clsn

clssssn

test

请使用 grep egrep 正则匹配的方式过滤出前两行内容

1.11.1 + 表示前一个字符出现一次或一次以上。

[root@znix ~]# egrep "c+l+n" test.txt

clsn

clssssn

1.11.2 排除以t开头的

[root@znix ~]# grep -v "^t" test.txt

clsn

clssssn

1.11.3 排除以t结尾的

[root@znix ~]# grep "^[^t]" test.txt

clsn

clssssn

1.12 14

1.12.1 请描述下列路径的内容是做什么的?

/var/log/messages         系统普通日志

/var/log/secure          用户登陆日志

/etc/fstab                开机自动挂载

/etc/profile              配置别名 环境变量

/etc/spool/cron/root      定时任务

 

 

 

 

 




 

第2章 回顾

2.1 linux启动过程

1、接通电源

2、进入BIOS自检

3、进入mbr引导

4、进入grub选择内核

5、加载内核

6、运行init进程

7、读取运行级别

8、配置主机名ip地址/etc/rc.sysinit

9、根据不同的运行级别运行不同的软件或服务/etc/rc3.d

10、显示登录界面

 

2.2 软硬链接区别

2.2.1 创建方式

软连接 ln -s

硬链接 ln   两个文件inode号相同互为硬链接

2.2.2 区别

目录不能创建硬链接

硬链接不能跨文件相同(分区)

软连接可以跨文件相同,可以对目录创建软连接。

2.3 文件删除原理

1、inode数为0

2、进程调用数为0

 

posted @   惨绿少年  阅读(2788)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
第1章 练习题1.1 第1题 取得/etc/hosts 文件的权限1.1.1 方法一 awk 指定分隔符1.1.2 方法二 stat  -c%a1.2 第2题 目录的硬链接数1.2.1 新目录的硬链接数为21.2.2 目录下的硬链接数为 2+下级目录数1.3 第3题 取出ip地址1.3.1 方法一 awk1.3.2 方法二 grep1.3.3 方法三 sed 反向引用1.4 第4题 网卡配置文件的路径DNS的路径1.5 第5题1.5.1 运维职责1.5.2 网站有关的问题从发现到解决的过程1.6 第8题 内容在同一行输出1.7 第9题 date相关 时间同步1.7.1 日期1.7.2 时间1.7.3 时间和周数1.7.4 手动设置系统日期1.7.5 自动同步系统时间1.8 第10题 环境变量问题1.8.1 运行目录的过程1.8.2 临时修改 PATH1.8.3 永久修改 PATH1.9 第11题 打印三天前的日期格式1.10 第12题 已知/clsn/test.txt 文件内容为:1.10.1 方法一 grep1.10.2 方法二 awk1.10.3 方法三 sed1.10.4 sed与awk1.11 第13题 已知/clsn/ett.txt 文件内容为1.11.1 + 表示前一个字符出现一次或一次以上。1.11.2 排除以t开头的1.11.3 排除以t结尾的1.12 第14题1.12.1 请描述下列路径的内容是做什么的?第2章 回顾2.1 linux启动过程2.2 软硬链接区别2.2.1 创建方式2.2.2 区别2.3 文件删除原理
点击右上角即可分享
微信分享提示