第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 运行级别补充
查看运行级别 runlevel
切换 init
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