1.编辑一个1.txt文件,内容如下
cat >>1.txt < 10.0.3.1 00:0F:AF:81:19:1F 10.0.3.2 00:0F:AF:85:6C:25 10.0.3.3 00:0F:AF:85:70:42 10.0.2.20 00:0F:AF:85:55:DE 10.0.2.21 00:0F:AF:85:6C:09 10.0.2.22 00:0F:AF:85:5C:41 10.0.0.151 00:0F:AF:85:6C:F6 10.0.0.152 00:0F:AF:83:1F:65 10.0.0.153 00:0F:AF:85:70:03 10.0.1.10 00:30:15:A2:3B:B6 10.0.1.11 00:30:15:A3:23:B7 10.0.1.12 00:30:15:A2:3A:A1 10.0.1.1 00:0F:AF:81:19:1F 10.0.2.2 00:0F:AF:85:6C:25 10.0.3.3 00:0F:AF:85:70:42 10.0.2.20 00:0F:AF:85:55:DE 10.0.1.21 00:0F:AF:85:6C:09 10.0.2.22 00:0F:AF:85:5C:41 10.0.0.151 00:0F:AF:85:6C:F6 10.0.1.152 00:0F:AF:83:1F:65 10.0.0.153 00:0F:AF:85:70:03 10.0.3.10 00:30:15:A2:3B:B6 10.0.1.11 00:30:15:A3:23:B7 10.0.3.12 00:30:15:A2:3A:A1 EOF (1)对该文件输出内容进行排序(提示:通过第三列的第一个字符,以及第4列的所有字符进行排序) [root@oldboy ~]# sort -t "." -k3.1,3.1 -k4.1,4.3 -n 1.txt 10.0.0.151 00:0F:AF:85:6C:F6 10.0.0.151 00:0F:AF:85:6C:F6 10.0.0.152 00:0F:AF:83:1F:65 10.0.0.153 00:0F:AF:85:70:03 10.0.0.153 00:0F:AF:85:70:03 10.0.1.1 00:0F:AF:81:19:1F 10.0.1.10 00:30:15:A2:3B:B6 10.0.1.11 00:30:15:A3:23:B7 10.0.1.11 00:30:15:A3:23:B7 10.0.1.12 00:30:15:A2:3A:A1 10.0.1.21 00:0F:AF:85:6C:09 10.0.1.152 00:0F:AF:83:1F:65 10.0.2.2 00:0F:AF:85:6C:25 10.0.2.20 00:0F:AF:85:55:DE 10.0.2.20 00:0F:AF:85:55:DE 10.0.2.21 00:0F:AF:85:6C:09 10.0.2.22 00:0F:AF:85:5C:41 10.0.2.22 00:0F:AF:85:5C:41 10.0.3.1 00:0F:AF:81:19:1F 10.0.3.2 00:0F:AF:85:6C:25 10.0.3.3 00:0F:AF:85:70:42 10.0.3.3 00:0F:AF:85:70:42 10.0.3.10 00:30:15:A2:3B:B6 10.0.3.12 00:30:15:A2:3A:A1 (2)过滤该文件所有的字母,不区分大小写 [root@oldboy ~]# grep -i "[a-z]" 1.txt [root@oldboy ~]# grep "[a-Z]" 1.txt !!!!!! 10.0.3.1 00:0F:AF:81:19:1F 10.0.3.2 00:0F:AF:85:6C:25 10.0.3.3 00:0F:AF:85:70:42 10.0.2.20 00:0F:AF:85:55:DE 10.0.2.21 00:0F:AF:85:6C:09 10.0.2.22 00:0F:AF:85:5C:41 10.0.0.151 00:0F:AF:85:6C:F6 10.0.0.152 00:0F:AF:83:1F:65 10.0.0.153 00:0F:AF:85:70:03 10.0.1.10 00:30:15:A2:3B:B6 10.0.1.11 00:30:15:A3:23:B7 10.0.1.12 00:30:15:A2:3A:A1 10.0.1.1 00:0F:AF:81:19:1F 10.0.2.2 00:0F:AF:85:6C:25 10.0.3.3 00:0F:AF:85:70:42 10.0.2.20 00:0F:AF:85:55:DE 10.0.1.21 00:0F:AF:85:6C:09 10.0.2.22 00:0F:AF:85:5C:41 10.0.0.151 00:0F:AF:85:6C:F6 10.0.1.152 00:0F:AF:83:1F:65 10.0.0.153 00:0F:AF:85:70:03 10.0.3.10 00:30:15:A2:3B:B6 10.0.1.11 00:30:15:A3:23:B7 10.0.3.12 00:30:15:A2:3A:A1 (3)过滤出以数字3结尾的行 [root@oldboy ~]# grep "3$" 1.txt 10.0.0.153 00:0F:AF:85:70:03 10.0.0.153 00:0F:AF:85:70:03 2.将"web3_access.log"上传至你的linux服务器 (1)统计出该文件IP地址出现的次数,并按正序对其进行排序 [root@oldboy ~]# awk '{print $1}' access.log |sort -n|uniq -c|sort -n (2)统计该文件内HTTP状态返回码出现的次数(例如200,404,403,在第九列),并按照倒序进行排序 [root@oldboy ~]# awk '{print $9}' access.log |sort|uniq -c|sort -rn 142666 200 18712 304 3863 404 789 302 418 499 242 400 146 301 50 413 37 403 13 408 7 500 1 0 1 ' (3)过滤出所有状态返回码是200的行,并将这些返回码为200行的全部替换成300 [root@oldboy ~]# awk '{print $9}' access.log |grep "200" |sed "s@200@300@g" 3.匹配/etc/passwd里包含root关键字的行(要求至少两种方法,分别使用awk和grep) [root@oldboy ~]# grep "root" /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin [root@oldboy ~]# awk "/root/" /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin 4.以“:”为分隔符,取出/etc/passwd第一行的最后一列的内容 [root@oldboy ~]# grep "^root" /etc/passwd|awk -F ":" '{print $7}' /bin/bash [root@oldboy ~]# head -1 /etc/passwd|awk -F ":" '{print $7}' /bin/bash [root@oldboy ~]# head -1 /etc/passwd|cut -d ":" -f 7 5.取出以“:”为分隔符,第三列(用户UID)以0结尾的 [root@oldboy ~]# awk -F ":" '{print $3}' access.log |grep "0$" 6.使用hostnamectl查看当前系统信息,取出kernel内核版本信息 [root@oldboy ~]# hostnamectl|grep "Kernel"|awk '{print $3}' 3.10.0-957.el7.x86_64 [root@oldboy ~]# hostnamectl |awk '/Kernel/{print $3}' 3.10.0-957.el7.x86_64 7.使用hostnamectl查看当前系统信息,取出系统名称 [root@oldboy ~]# hostnamectl |grep "Stat" |awk '{print $3}' oldboy 8.使用hostnamectl查看当前系统信息,取出系统版本信息,要求只显示"linux 7" [root@oldboy ~]# hostnamectl|grep "Opera"|awk '{print $4,$5}' Linux 7 9.取出当前linux操作系统的DNS /etc/sysconfig/network-scripts/ifcfg-*。 [root@oldboy ~]# grep "DNS" /etc/sysconfig/network-scripts/ifcfg-*|awk -F "=" '{print $2}' 223.5.5.5 10.复制/etc/passwd到当前root用户家目录 (1)只查看头3行,并将“:”替换为“#” [root@oldboy ~]# head -3 passwd |sed 's@:@#@g' root#x#0#0#root#/root#/bin/bash bin#x#1#1#bin#/bin#/sbin/nologin daemon#x#2#2#daemon#/sbin#/sbin/nologin (2)查看该文件全部内容,将匹配到的每一行的第一个"bin"替换成"test". [root@oldboy ~]# grep -w "bin" passwd |sed 's@bin@test@' sed这里的g代表全局替换 不加g仅替换每行第一个出现的字符 root:x:0:0:root:/root:/test/bash test:x:1:1:test:/test:/stest/nologin sync:x:5:0:sync:/stest:/test/sync oldboy:x:1000:1000:oldboy:/home/oldboy:/test/bash (3)查看该文件全部内容,将匹配到的所有"bin"全部替换成"test" [root@oldboy ~]# grep "bin" passwd |sed 's@bin@test@g' root:x:0:0:root:/root:/test/bash test:x:1:1:test:/test:/stest/nologin daemon:x:2:2:daemon:/stest:/stest/nologin adm:x:3:4:adm:/var/adm:/stest/nologin lp:x:4:7:lp:/var/spool/lpd:/stest/nologin sync:x:5:0:sync:/stest:/test/sync 11.使用ifconfig查看网卡信息,筛选出包含127.0.0.1的行(不少于三种方法) [root@oldboy ~]# ifconfig|grep "127.0.0.1" inet 127.0.0.1 netmask 255.0.0.0 [root@oldboy ~]# ifconfig|awk '/127/' inet 127.0.0.1 netmask 255.0.0.0 [root@oldboy ~]# ifconfig lo|sed 2p -n inet 127.0.0.1 netmask 255.0.0.0 12.使用awk取出/etc/passwd第一列数据也就是取出用户名 [root@oldboy ~]# awk -F ":" '{print $1}' /etc/passwd 13.写一个文件,文件内容如下 cat >>test.txt< server { lisTEN 80; server_nAme docs.xuliangwei.com; root /code/dOcs index INDEX.html; } EOF (1)过滤docs.xuliangwei.com这段关键字 [root@oldboy ~]# grep "docs." test.txt |awk '{print $2}' docs.xuliangwei.com; (2)同时过滤出root和index的行,不区分大小写 [root@oldboy ~]# grep -E "root|index" test.txt -i root /code/dOcs index INDEX.html; (3)过滤index,区分大小写 [root@oldboy ~]# grep "index" test.txt index INDEX.html; (4)过滤出带"O"的行,不区分大小写 [root@oldboy ~]# grep -i "O" test.txt server_nAme docs.xuliangwei.com; root /code/dOcs (5)过滤出不带";"的行 [root@oldboy ~]# grep -v ";" test.txt server { root /code/dOcs } 14.如果某一天你误操作了"rm -rf *",会发生哪些情况 会删除当前所在目录下的所有内容 选择题 1.linux有三种查看文件命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用C A.cat B.more C.less D.me 2.若一台计算机的内存为8G,则交换分区的大小通常是C A.64GB 交换分区swap最大16GB B.128GB C.16GB D.32GB 3.安装linux操作系统时,必须要创建的两个分区 B A./和boot B./和swap C./home和/usr D./var和/trap 4.用于windows和linux文件传输最便捷的方法是D A.winscp B.ftp C.scp D.rz sz 5.删除文件的命令为D A.mkdir B.rmdir C.mv D.rm 6.改变bash的提示符实际上就是改变变量(C) A.$HOME B.$PWD C.$PS1 D.$PS2 7./etc文件系统的标准应用是用于D A.安装附加的应用程序 B.存放可执行程序,系统管理工具 C.设置用户的主目录 D.存放用于系统管理的配置文件