第二关练习题-下部 |
作者:左婷婷 归档:学习笔记 2018/7/24
|
快捷键: Ctrl + 1 标题1 Ctrl + 2 标题2 Ctrl + 3 标题3 Ctrl + 4 实例 Ctrl + 5 程序代码 Ctrl + 6 正文 |
格式说明: 蓝色字体:注释 ×××背景:重要 绿色背景:注意 |
老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结
学无止境,老男孩教育成就你人生的起点!
联系方式:
网站运维QQ交流群: |
|
Linux 385168604 |
架构师 390642196 |
Python 29215534 |
大数据 421358633 |
官方网站: |
|
http://www.oldboyedu.com |
目 录
1.1 打印配置文件nginx.conf内容的行号及内容,该如何做?
1.1.1 方法1 cat
1.1.2 方法2 vim
1.1.3 方法3 awk 显示某一列
1.1.4 方法4 grep -n
1.1.5 方法5 nl number of lines
1.2 本地目录/app/logs下删除7天之前的日志
1.2.1 find -mtime +7|xargs ls –l
1.2.2 #找出/app/logs 下面以.log结尾的7天之前的文件 显示详细信息(ls -l) (3种方法)
1.3 linux系统运行级别一般为0-6,请分别写出每个级别的含义。
1.4 让iptables开机自启动?
1.5 linux系统中查看中文,但是乱码了,请问如何解决乱码问题?
1.6 现在需要从文件中过滤出“oldboy”和“31333741”字符串,请给出命令.
1.6.1 方法1 sed+awk
1.6.2 方法2 tr+awk
1.6.3 方法3 tr+cut
1.6.4 方法4 awk
1.6.5 方法5 sed sed
1.7 如果需要从文件中过滤出“oldboy,31333741”字符串,请再给出命令.
1.8 显示 /etc/passwd 第1列和第3列内容 要求格式显示为:
1.9 如何查看/etc/services文件的有多少行?
1.9.1 显示行号 只保留最后一行
1.10 统计出 /etc目录下面 以.conf结尾的文件的数量
1.11 总结:
1.12 预习:
1.1 打印配置文件nginx.conf内容的行号及内容,该如何做?
[root@oldboyedu50-lnb /oldboy]# echo stu{01..10} |xargs -n1 >nginx.conf
1.1.1 方法1 cat
[root@oldboyedu50-lnb /oldboy]# cat -n nginx.conf //显示行号
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
6 stu06
7 stu07
8 stu08
9 stu09
10 stu10
1.1.2 方法2 vim
使用vim nginx.conf
按esc退出后
加入:set nu 回车 #显示行号
#nu === number
:set nonu #取消显示行号
1.1.3 方法3 awk 显示某一列
[root@oldboyedu50-lnb ~]# awk '{print NR,$1}' /oldboy/nginx.conf
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
6 stu06
7 stu07
8 stu08
9 stu09
10 stu10
NR 行号
$1 第1列
$2 第2列
$0 一整行内容
1.1.3.1 显示/proc/mounts 文件的行号和第1列和第3列
awk '{print NR,$1,$3}' /proc/mounts
1.1.4 方法4 grep -n
grep -n "." nginx.conf 显示所有行
. 正则表达式 任意一个字符
-n 显示行号
1.1.5 方法5 nl number of lines
nl nginx.conf 显示行号
方法6 sed
Sed = nginx.conf
=显示行号
小结:
1.cat -n /vim (必会)
2.grep awk (必会)
3.nl sed
/selinux /selinux
1.2 本地目录/app/logs下删除7天之前的日志
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 00:00:00"
date //显示时间 修改时间
find
-mtime
modify time 修改时间
1.2.1 find -mtime +7|xargs ls –l
[root@oldboyedu50-lnb /app/logs]# find -mtime +7|xargs ls –l // 显示前七天之前的文件
-rw-r--r-- 1 root root 0 May 1 00:00 ./access_www_2018-05-01.log
-rw-r--r-- 1 root root 0 May 2 00:00 ./access_www_2018-05-02.log
-rw-r--r-- 1 root root 0 May 3 00:00 ./access_www_2018-05-03.log
-rw-r--r-- 1 root root 0 May 4 00:00 ./access_www_2018-05-04.log
-rw-r--r-- 1 root root 0 May 5 00:00 ./access_www_2018-05-05.log
-rw-r--r-- 1 root root 0 May 6 00:00 ./access_www_2018-05-06.log
-rw-r--r-- 1 root root 0 May 7 00:00 ./access_www_2018-05-07.log
-rw-r--r-- 1 root root 0 May 8 00:00 ./access_www_2018-05-08.log
-rw-r--r-- 1 root root 0 May 9 00:00 ./access_www_2018-05-09.log
-rw-r--r-- 1 root root 0 May 10 00:00 ./access_www_2018-05-10.log
-rw-r--r-- 1 root root 0 May 11 00:00 ./access_www_2018-05-11.log
-rw-r--r-- 1 root root 0 May 12 00:00 ./access_www_2018-05-12.log
1.2.2 #找出/app/logs 下面以.log结尾的7天之前的文件 显示详细信息(ls -l) (3种方法)
find /app/logs/ -type f -name "*.log" -mtime +7
方法1
find /app/logs/ -type f -name "*.log" -mtime +7|xargs ls -l
方法2
ls -l $(find /app/logs/ -type f -name "*.log" -mtime +7)
ls -l `find /app/logs/ -type f -name "*.log" -mtime +7`
方法3
find /app/logs/ -type f -name "*.log" -mtime +7 -exec ls -l {} \;
1.3 linux系统运行级别一般为0-6,请分别写出每个级别的含义。
运行级别 1)0-6 含义 0 关机 (不要把运行级别设置为0) 1 单用户模式 single user mode 2 多用户模式无法使用 NFS 3 完全多用户模式 命令行模式 文本模式 (工作默认的环境) 4 待开发 5 X11 桌面(desktop)模式 图形化界面模式 6 重启 (不要把运行级别设置为6) |
runlevel 查看
init 修改
1.4 让iptables开机自启动?
[root@oldboyedu50-lnb ~]# chkconfig --level 3 iptables on //防火墙开机自启动
[root@oldboyedu50-lnb ~]# chkconfig |grep ipt 查看
iptables 0:off 1:off 2:off 3:on 4:off 5:off 6:off
1.5 linux系统中查看中文,但是乱码了,请问如何解决乱码问题?
已知如下命令及结果:
[oldboy@test ~]$ mkdir /oldboy ; echo "I am oldboy,myqq is 31333741">/oldboy/oldboy.txt
[oldboy@test ~]$ cat oldboy.txt
I am oldboy,myqq is 31333741
1.6 现在需要从文件中过滤出“oldboy”和“31333741”字符串,请给出命令.
b.如果需要从文件中过滤出“oldboy,31333741”字符串,请再给出命令.
1.6.1 方法1 sed+awk
[root@oldboyedu50-lnb /oldboy]# sed 's#,# #g' oldboy.txt 将逗号替换为空格
I am oldboy myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# sed 's#,# #g' oldboy.txt |awk '{print $3,$6}' 显示第三,六列
oldboy 31333741
1.6.2 方法2 tr+awk
[root@oldboyedu50-lnb /oldboy]# tr "," " "
I am oldboy myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# tr "," " "
oldboy 31333741
tr sed命令阉割版
[root@oldboyedu50-lnb /oldboy]# echo 123123|tr "123" "abc"
abcabc
[root@oldboyedu50-lnb /oldboy]# echo 112233|tr "123" "abc"
aabbcc
[root@oldboyedu50-lnb /oldboy]# #tr 1对1的替换
1.6.3 方法3 tr+cut
[root@oldboyedu50-lnb /oldboy]# tr "," " "
I am oldboy myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# tr "," " "
-f 某一列
oldboy 31333741
1.6.4 方法4 awk
[root@oldboyedu50-lnb /oldboy]# cat oldboy.txt
I am oldboy,myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# awk -F "," '{print $2}' oldboy.txt //以逗号分割显示第二列
myqq is 31333741
#-F 指定分隔符(菜刀)
#-F指定多个分隔符
[root@oldboyedu50-lnb /oldboy]# awk -F "[, ]" '{print $3,$6}' oldboy.txt //以逗号空格为分隔符显示第三,六列
Oldboy 31333741
1.6.5 方法5 sed sed
[root@oldboyedu50-lnb /oldboy]# cat oldboy.txt
I am oldboy,myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# sed 's#I am ##g' oldboy.txt //将I am替换为空
oldboy,myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# sed 's#I am ##g' oldboy.txt |sed 's#,myqq is##g' //将I am替换为空
再将,myqq is替换为空
oldboy 31333741
1.7 如果需要从文件中过滤出“oldboy,31333741”字符串,请再给出命令.
[root@oldboyedu50-lnb /oldboy]# awk -F"[ ,]" '{print $3"*_*"$NF}' oldboy.txt
oldboy*_*31333741
[root@oldboyedu50-lnb /oldboy]# awk -F"[ ,]" '{print $3":)"$NF}' oldboy.txt
oldboy:)31333741
[root@oldboyedu50-lnb /oldboy]# awk -F"[ ,]" '{print $3","$NF}' oldboy.txt 以空格逗号为分隔符,加上“,”显示第三,最后一列
oldboy,31333741
1.8 显示 /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@oldboyedu50-lnb /oldboy]# awk -F":" '{print "USER:"$1,"UID:"$3}' /etc/passwd|column -t
USER:root UID:0
USER:bin UID:1
USER:daemon UID:2
USER:adm UID:3
USER:lp UID:4
1.9 如何查看/etc/services文件的有多少行?
1.9.1 显示行号 只保留最后一行
[root@oldboy oldboy]# cat -n /etc/services
[root@oldboyedu50-lnb /oldboy]# wc /etc/services //统计文件信息
10774 58108 641020 /etc/services
[root@oldboyedu50-lnb /oldboy]# wc -l /etc/services //-l显示行号
10774 /etc/services
1.10 统计出 /etc目录下面 以.conf结尾的文件的数量
|传递的是文字
|xargs 传递的是文件名
[root@oldboyedu50-lnb /oldboy]# find /etc/ -type f -name "*.conf" | wc –l 统计.conf结尾的文件的数量
195
过滤出/etc/services 文件包含3306或1521两数字所在的行的内容。
egrep "3306或1521" /etc/services
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
| 扩展正则表达式 egrep == grep -E
1.11 总结:
1.显示行号
2.find命令mtime *3 种
3.运行级别 启动流程
4.linux显示乱码排查过程
5.awk取出某一列 指定分隔符
6.其他命令
1.12 预习:
linux文件属性
软连接与硬链接区别
磁盘空间不足及排查解决过程