课前习题:
1.把/etc/hosts /etc/fstab 文件打包压缩到/backup目录 conf.tar.gz
2.解压到/opt目录下面
3.检查 /opt/etc/hosts /opt/etc/fstab
[root@oldboyedu50-lnb ~]# mkdir -p /backup
[root@oldboyedu50-lnb ~]# tar zcf /backup/conf.tar.gz /etc/hosts /etc/fstab
tar: Removing leading `/' from member names
[root@oldboyedu50-lnb ~]# tar xf /backup/conf.tar.gz -C /opt/
[root@oldboyedu50-lnb ~]# ll /opt/etc/
total 8
-rw-r--r-- 1 root root 805 Jul 10 18:21 fstab
-rw-r--r-- 1 root root 177 Jul 19 18:05 hosts

第1章 Awk
打印配置文件nginx.conf内容的行号及内容,该如何做?
[root@oldboyedu50-lnb /oldboy]# #{1..5} 生成序列
[root@oldboyedu50-lnb /oldboy]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@oldboyedu50-lnb /oldboy]# echo {01..10}
01 02 03 04 05 06 07 08 09 10
[root@oldboyedu50-lnb /oldboy]# echo stu{01..10} |xargs -n1
stu01
stu02
stu03
stu04
stu05
stu06
stu07
stu08
stu09
stu10
[root@oldboyedu50-lnb /oldboy]# echo stu{01..10} |xargs -n1 >nginx.conf
stu01 stu01 stu01 stu01 stu01 stu01 stu01 stu01
stu02 stu02 stu02 stu02 stu02 stu02 stu02 stu02
stu03 stu03 stu03 stu03 stu03 stu03 stu03 stu03
stu04 stu04 stu04 stu04 stu04 stu04 stu04 stu04
stu05 stu05 stu05 stu05 stu05 stu05 stu05 stu05
stu06 stu06 stu06 stu06 stu06 stu06 stu06 stu06
stu07 stu07 stu07 stu07 stu07 stu07 stu07 stu07
stu08 stu08 stu08 stu08 stu08 stu08 stu08 stu08
stu09 stu09 stu09 stu09 stu09 stu09 stu09 stu09
stu10 stu10 stu10 stu10 stu10 stu10 stu10 stu10
方法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
方法2 vim
:set nu #显示行号
#nu === number

:set nonu #取消显示行号
方法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 一整行内容
显示/proc/mounts 文件的行号和第1列和第3列
awk '{print NR,$1,$3}' /proc/mounts
方法4 grep -n
grep -n "." nginx.conf
. 正则表达式 任意一个字符
-n 显示行号
方法5 nl number of lines
nl nginx.conf
方法6 sed
=显示行号
第2章 删除日志
题:已知nginx服务的访问日志按天记录在服务器本地目录/app/logs下,由于磁盘空间紧张,现在要求只能保留最近7天访问日志!请问如何解决? 请给出解决办法或配置或处理命令。
删除7天之前的日志
mkdir -p /app/logs
cd /app/logs
for time in {01..20};do date -s "201805$time"; touch accesswww$(date +%F).log ;done
date -s "20180520 00:00:00"
date 显示时间 修改时间
find
-mtime
modify time 修改时间
[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
题:找出/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 {} \;
第3章 Linux系统的运行级别
题:linux系统运行级别一般为0-6,请分别写出每个级别的含义。
0 关机
1 单用户模式
2 多用户模式无法使用NFS
3 完全多用户模式 命令行模式 文本模式
4 待开发
5 x11 桌面模式 图形化界面模式
6 重启
题:装完系统后,希望让网络文件共享服务NFS(iptables),仅在3级别上开机自启动,该如何做?
让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

linux系统中查看中文,但是乱码了,请问如何解决乱码问题?
乱码原因:Linux系统的字符集和远程连接工具字符集不同
如何排查:1查看系统字符集(echo $LANG)
2检查xshell使用的字符集
如何解决:修改xshell字符集
修改系统的字符集:
临时修改字符集 重新登录之后失败-ecportLANG=en_US UTF-8
永久修改字符集 重启登录之后生效-把/etc/sysconfig/18n 里面的字符集修改LANG=”en_USUTF-8”
检查:echo $LANG和查看字符集文件

第4章 过滤
题: 已知如下命令及结果:
[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
a.现在需要从文件中过滤出“oldboy”和“31333741”字符串,请给出命令.
b.如果需要从文件中过滤出“oldboy,31333741”字符串,请再给出命令.

a.现在需要从文件中过滤出“oldboy”和“31333741”字符串,请给出命令.
方法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
方法2 tr+awk
[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt
I am oldboy myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt |awk '{print $3,$6}'
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的替换
方法3 tr+cut
[root@oldboyedu50-lnb /oldboy]# cut -d " " -f2,3,4 oldboy.txt
am oldboy,myqq is
[root@oldboyedu50-lnb /oldboy]# cut -d " " -f2-5 oldboy.txt
am oldboy,myqq is 31333741
-d 指定分隔符(菜刀)
-f 某一列

a.现在需要从文件中过滤出“oldboy”和“31333741”字符串,请给出命令.
[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt
I am oldboy myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt |cut -d " " -f3,6
oldboy 31333741
方法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}' oldboy.txt
oldboy
方法5 sed
[root@oldboyedu50-lnb /oldboy]# ca时t oldboy.txt
I am oldboy,myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# sed 's#I am ##g' oldboy.txt
oldboy,myqq is 31333741
[root@oldboyedu50-lnb /oldboy]# sed 's#I am ##g' oldboy.txt |sed 's#,myqq is##g'
oldboy 31333741

b.如果需要从文件中过滤出“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
#显示 /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
USER:root UID:0
USER:bin UID:1
USER:daemon UID:2
USER:adm UID:3
USER:lp UID:4
USER:sync UID:5
[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

题:如何查看/etc/services文件的有多少行?
显示行号 只保留最后一行
[root@oldboyedu50-lnb /oldboy]# wc /etc/services
10774 58108 641020 /etc/services
[root@oldboyedu50-lnb /oldboy]# wc -l /etc/services
10774 /etc/services
统计总数
统计出 /etc目录下面 以.conf结尾的文件的数量
|传递的是文字
|xargs 传递的是文件名
[root@oldboyedu50-lnb /oldboy]# find /etc/ -type f -name "*.conf" | wc -l
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

转载于:https://blog.51cto.com/13860447/2149604

第二关练习讲解(下部)相关推荐

  1. java第二章选择题_Java第二章习题讲解(2)

    第二章习题讲解(1) 3.阅读或调试程序 (1) 上机运行下列程序,注意观察输出的结果.Java public class E{ public static void main(String args ...

  2. sql 字符串比较大小_SQL简单查询第二关

    第二关目录大纲: 1.基本的查询语句 2.指定查询条件 3.注释和sql语句注意事项 4.运算符 5.字符串模糊查询 一.基本的查询语句 select <列名1>,<列名2>, ...

  3. sqli-labs第一关和第二关

    sqli-labs 第一关 一.首先确定是否存在注入 二.找到回显位置 三.在回显位置使用函数或者语句来获取信息 第二关 一.首先确定是否存在注入 二.找到回显位置 三.在回显位置使用函数或者语句来获 ...

  4. 最新cocos2d-x 3.0博客教学 小游戏[史上最坑爹的游戏] 003第二关:点击绿色按钮100下

    昨天做了[关闭卡死的电脑]这个关卡今天要做的是点击绿色按钮100下,这游戏真的坑爹,看你能不能玩过关,哈哈哈. 这关做起来比较简单游戏逻辑也比较简单,直接上第二关的源代码,注意最后面又当天的源码下载 ...

  5. 数学建模国赛 2020B-穿越沙漠 第二关至第六关思路分享

    穿越沙漠第二关至第六关思路 开始讲题之前唠嗑一下: 很感谢所有读者和粉丝对上一篇的第一关解题博文的喜欢,也收到很多人的称赞,我很高兴大家能喜欢我写的东西. 其实这道题的模型在建立之处就是对着六关通用的 ...

  6. SQL注入闯关第二关---第四关

    目录 第二关Less-2:GET - Error based - Intiger based 1.判断注入点类型 2.使用order by猜测字段数,根据第一关,字段数为3: 3.联合查询获取显示位置 ...

  7. java小游戏超级玛丽:06.第二关的设计

     第二关预览图: 判断是否为第二关 if (sort == 2) {} 砖块位置图: 砖块坐标: A(240,390) B(270,360) C(300,330) D(270,360) E(300,3 ...

  8. 【less-2】sqli-labs靶场第二关

    文章目录 网址 解法 传入id=1查看页面回显 第一步:判断注入类型.如字符型,数值型 第二步:判断表字段数(使用order by) 第三步:使用union select 1,2,3联合查询语句查看页 ...

  9. unidbg第二讲 例子讲解com.sun.jna.JniDispatch32

    讲解例子 com.sun.jna.JniDispatch32 代码位置为:{unidbg_project}\unidbg-android\src\test\java\com\sun\jna 需求 1: ...

  10. MySQL数据库 - 复杂查询(一)第二关

    @R星校长 第2关:换座位 本关任务:改变相邻俩学生的座位. 小美是一所中学的信息科技老师,她有一张tb_Seat座位表,平时用来储存学生名字和与他们相对应的座位 id. tb_Seat表结构数据如下 ...

最新文章

  1. 医学+数据科学,必将大有可为 | 清华生物医学影像研究中心赵锡海
  2. RequestBodyAdvice和ResponseBodyAdvice
  3. 一次解析系统_消防稳压泵的流量、压力、选型以及配套气压罐的重难点解析
  4. 逆元~(乘法逆元及其应用)
  5. 在python中字符串可以使用什么来表示_Python 字符串定义
  6. C#LeetCode刷题之#104-二叉树的最大深度​​​​​​​(Maximum Depth of Binary Tree)
  7. 操作mysql_MySQL学习笔记之基础操作
  8. redis+php微博,redis+php实现微博(三)微博列表功能详解
  9. 四川省成都市谷歌高清卫星地图下载
  10. TP5 使用redis
  11. 【AD20学习笔记】PCB封装库的创建
  12. Android知识梳理:点击事件分发机制
  13. 我堕落了?我怎么就堕落了? (转)
  14. PDF文件怎么合并在一起?这三种方法快利用起来
  15. YOLO V1 论文精讲
  16. 清华大学教授AI领域创业,能否打破中美印三足鼎立僵局?
  17. 持续交付(CD)简单介绍
  18. 嵌入式分享合集144
  19. 简要分析git作用及应公司业务要求分析,什么是响应式和虚拟dom面试题
  20. PS 人物脸部高光贴图的制作

热门文章

  1. JS中的attribute和property的区别和联系
  2. python提示jsondecodeerror是什么意思_Python爬虫解析json遇到一类JSONDecodeError的解决方案...
  3. LabVIEW创建的PDA应用程序不是一个合法的Pocket PC应用程序
  4. ecshop修改模板可输出php代码,修改ecshop模板体会
  5. Win7 定时关机,重启命令
  6. SecureCRT 关键字配色显示
  7. 数据库学习笔记(进阶)
  8. csgo红锁号能解锁吗_CSGO红锁黑刀号!重磅!大规模红锁!
  9. hsql导入mysql_关于HSQLDB访问已有数据库文件的操作说明
  10. COSTDOWN Project's BSP(一)