第二波命令-下部
第1章 显示行号
打印配置文件nginx.conf内容的行号及内容 如何做?
创建环境
[root@nfsnobody ~]# mkdir /nfsnobody &&
echo stu{01..10} |xargs -n1 > /nfsnobody/ngingx.conf
1.1 方法一 cat
-n 显示行号
[root@nfsnobody nfsnobody]# cat -n
ngingx.conf 查看文件有几行 cat -n
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
6 stu06
7 stu07
8 stu08
9 stu09
10 stu10
1.2 方法二 vim
vim /nfsnobody/nginx.conf
进入后
:set nu 显示行号
:set
nonu 取消显示行号
1.3 方法三 awk
NR 行号
$1 表示第一列
$0 表示一整行的内容
[root@nfsnobody ~]# awk '{print NR,$1}'
/nfsnobody/ngingx.conf
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
6 stu06
7 stu07
8 stu08
9 stu09
10 stu10
1.4 方法四
nl
nl number of lines 专门用于显示行号的
[root@nfsnobody nfsnobody]# nl ngingx.conf
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
6 stu06
7 stu07
8 stu08
9 stu09
10 stu10
1.5 第五种方法 grep
-n 显示行号
. 正则表达式 表示任意一个字符
[root@nfsnobody nfsnobody]# grep -n "."
ngingx.conf
1:stu01
2:stu02
3:stu03
4:stu04
5:stu05
6:stu06
7:stu07
8:stu08
9:stu09
10:stu10
1.6 第六种方法 sed
= 表示显示行号
[root@nfsnobody nfsnobody]# sed '=' ngingx.conf|xargs -n2
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
6 stu06
7 stu07
8 stu08
9 stu09
10 stu10
1.7 第七种方法 less (了解)
[root@nfsnobody logs]# less -N
/nfsnobody/ngingx.conf
1.8 练习题
显示/proc/mounts
文件的行号和第1列和第3列
加上 column -t 是为了 按列显示 可以不加
[root@nfsnobody nfsnobody]# awk '{print NR,$1,$3}'
/proc/mounts |column -t
1
rootfs rootfs
2
proc proc
3
sysfs sysfs
4
devtmpfs devtmpfs
5
devpts devpts
6
tmpfs tmpfs
7
/dev/sda3 ext4
8
none selinuxfs
9
devtmpfs devtmpfs
10
/proc/bus/usb usbfs
11 /dev/sda1 ext4
12
none binfmt_misc
第2章 关于find下mtime参数
2.1 查找删除七天之前的日志
已知nginx服务的访问日志按天记录在服务器本地目录/app/logs下,由于磁盘空间紧张,现在要求只能保留最近7天的访问日志!请问如何解决?请给出解决办法或配置或处理命令。(提示:可以从nginx服务配置上着手,也可以从生成出来的日志上着手。)
创建环境
mkdir -p /app/logs
cd /app/logs
for time
in {01..20};do date -s "201805$time"; touch
access_www_$(date +%F).log ;done
date -s "20180520"
date 显示时间 修改时间
date -s 修改时间
搜索七天以前的
[root@nfsnobody logs]# find -mtime +7|xargs ls
-l
为方便 这边使用查看ls 代替删除
实际工作中 ls换成rm即可
[root@nfsnobody logs]# find /app/logs/ -type f
-name "*.log" -mtime +7|xargs ls -l
##完整格式
2.2 练习题
找出/app/logs 下面以.log结尾的7天之前的文件
显示详细信息(ls -l) (3种方法)
2.2.1 方法一
[root@nfsnobody logs]# find /app/logs/ -type f
-name "*.log" -mtime +7 |xargs ls -l
2.2.2 方法二
[root@nfsnobody logs]# ls -l $(find /app/logs/
-type f -name "*.log" -mtime +7)
2.2.3 方法三
[root@nfsnobody logs]# find /app/logs/ -type f
-name "*.log" -mtime +7 -exec ls -l {} ;
第3章 运行级别及iptables补充
3.1 运行级别补充
3.2 关闭iptable
装完Centos系统后,希望iptables,仅关闭3运行级别
怎么做
[root@nfsnobody logs]# chkconfig |grep
"ipt" ##查看
iptables
0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@nfsnobody logs]# chkconfig --level 3 iptables off ##关闭3
[root@nfsnobody logs]# chkconfig |grep
"ipt" ##关闭后检查
iptables 0:off 1:off 2:on 3:off 4:on 5:on 6:off
第4章 单独取一列命令补充
已知如下命令及结果:
[nfsnobody@test ~]$ echo "I am nfsnobody,myqq is
31333741">>nfsnobody.txt
[nfsnobody@test ~]$ cat nfsnobody.txt
I am nfsnobody,myqq is 31333741
创建环境
mkdir /nfsnobody
echo "I am nfsnobody,myqq is
31333741">/nfsnobody/nfsnobody.txt
4.1 方法一 sed |awk
[root@nfsnobody nfsnobody]# sed 's#,# #g' nfsnobody.txt |awk '{print $3,$6}'
nfsnobody 31333741
4.2 方法二 tr | awk
tr
sed命令的阉割版
tr 一对一的替换
[root@nfsnobody nfsnobody]# tr "," " " <nfsnobody.txt |awk '{print $3,$6}
nfsnobody 31333741
4.3 方法三 tr | cut
-d 指定分隔符
-f 某一列
[root@nfsnobody nfsnobody]# tr "," " " < nfsnobody.txt |cut -d " " -f3,6
nfsnobody 31333741
4.4 方法四 sed | cut
[root@nfsnobody nfsnobody]# sed 's#,# #g' nfsnobody.txt |cut -d " " -f3,6
nfsnobody 31333741
4.5 方法五 awk
-F 指定新的分隔符
$NF 表示最后一列
[root@nfsnobody nfsnobody]# awk -F "[,]" '{print $3,$6}' nfsnobody.txt
nfsnobody 31333741
4.6 方法六 sed
[root@nfsnobody nfsnobody]# sed 's#I am ##g' nfsnobody.txt |sed 's#,myqq is # #g'
nfsnobody 31333741
4.7 练习题
显示 /etc/passwd
第1列和第3列内容
要求格式显示为:
USER:第1列内容 UID:第3列内容
USER:第1列内容 UID:第3列内容
USER:第1列内容 UID:第3列内容
USER:第1列内容 UID:第3列内容
USER:第1列内容 UID:第3列内容
[root@nfsnobody nfsnobody]# awk -F "[:]" '{print "USER:"$1,"UID:"$3}' /etc/passwd
第5章 认识wc命令
5.1 统计信息
wc 统计文件的信息
[root@nfsnobody nfsnobody]# wc /etc/services 统计文件的信息
10774 58108 641020 /etc/services
[root@nfsnobody nfsnobody]# wc -l /etc/services 只看有多少行
10774 /etc/services
5.2 统计总数
统计出/etc目录下 以.conf 结尾的文件的数量
[root@nfsnobody nfsnobody]# find /etc/ -type f -name "*.conf" |wc -l
195
第6章 egrep
过滤出/etc/services 文件包含3306或1521两数据库端口的行的内容。
| 扩展正则表达式 egrep ==grep -E
[root@nfsnobody nfsnobody]# grep -E "3306|1521" /etc/services
mysql
3306/tcp #
MySQL
mysql
3306/udp #
MySQL
ncube-lm
1521/tcp # nCube
License Manager
ncube-lm
1521/udp # nCube
License Manager
[root@nfsnobody nfsnobody]# egrep "3306|1521" /etc/services
mysql
3306/tcp #
MySQL
mysql
3306/udp #
MySQL
ncube-lm
1521/tcp # nCube
License Manager
ncube-lm
1521/udp # nCube
License Manager