Linux面试题--1

1.编辑一个1.txt文件,内容如下

cat >>1.txt <<EOF
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列的所有字符进行排序)
  sort -t "." -k3.1,3.1 -n  -k4.1,4.3 -n 1.txt 
(2)过滤该文件所有的字母,不区分大小写
  grep -i '[a-z]' 1.txt
(3)过滤出以数字3结尾的行
  grep -n '3$' 1.txt
2.将"web3_access.log"上传至你的linux服务器
(1)统计出该文件IP地址出现的次数,并按正序对其进行排序
awk '{print $1}' access.log |sort -n |uniq -c |sort -n
(2)统计该文件内HTTP状态返回码出现的次数(例如200,404,403,在第九列),并按照倒序进行排序
awk '{print $9}' access.log |sort -n |uniq -c |sort -nr
(3)过滤出所有状态返回码是200的行,并将这些返回码为200行的全部替换成300
 [root@yinwucheng ~]# grep '200' access.log |sed 's#200#300#gp'
3.匹配/etc/passwd里包含root关键字的行(要求至少两种方法,分别使用awk和grep)
 grep -n 'root' /etc/passwd
 awk '/root/' /etc/passwd
4.以“:”为分隔符,取出/etc/passwd第一行的最后一列的内容
 awk -F ":" 'NR==1{print $NF}' /etc/passwd
5.取出以“:”为分隔符,第三列(用户UID)以0结尾的
 [root@yinwucheng ~]# awk -F ":" {'print $3'} /etc/passwd |grep '0$'
0
1000
6.使用hostnamectl查看当前系统信息,取出kernel内核版本信息
方法1:
[root@yinwucheng ~]# hostnamectl |awk 'NR==9{print $3}'
3.10.0-957.21.3.el7.x86_64
方法2:
[root@yinwucheng ~]# hostnamectl |sed -n 9p |awk '{print $3}'
3.10.0-957.21.3.el7.x86_64
方法3:
[root@yinwucheng ~]# hostnamectl |grep 'Kernel' |awk -F "[: ]+" '{print $4}'
3.10.0-957.21.3.el7.x86_64:
方法4:
[root@yinwucheng ~]# hostnamectl |sed -nr '9s#^.*Kernel: Linux (.*)$#\1#gp'
3.10.0-957.21.3.el7.x86_64
7.使用hostnamectl查看当前系统信息,取出系统名称
[root@yinwucheng ~]# hostnamectl |grep 'CPE' |awk '{print $4}'
8.使用hostnamectl查看当前系统信息,取出系统版本信息,要求只显示"linux 7"
方法1:
 [root@yinwucheng ~]# hostnamectl |awk 'NR==7{print $4,$5}'
Linux 7
方法2:
hostnamectl |grep 'Operating' |awk '{print $4,$5}'
9.取出当前linux操作系统的DNS /etc/sysconfig/network-scripts/ifcfg-*。
awk -F "=" 'NR==19 {print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0
10.复制/etc/passwd到当前root用户家目录
(1)只查看头3行,并将“:”替换为“#”
  head -n 3 passwd | sed -n 's@:@\#@gp'
(2)查看该文件全部内容,将匹配到的每一行的第一个"bin"替换成"test".
  [root@yinwucheng ~]# cat /etc/passwd |xargs -n1|sed -n 's#bin#test#p' |grep  -n 'test'
(3)查看该文件全部内容,将匹配到的所有"bin"全部替换成"test"
 cat passwd |sed -n 's#bin#test#gp'
11.使用ifconfig查看网卡信息,筛选出包含127.0.0.1的行(不少于三种方法)
[root@yinwucheng ~]# ifconfig |grep '127'
    inet 127.0.0.1  netmask 255.0.0.0
root@yinwucheng ~]# ifconfig |awk 'NR==11'
    inet 127.0.0.1  netmask 255.0.0.0
root@yinwucheng ~]# ifconfig |sed -n '11p'
    inet 127.0.0.1  netmask 255.0.0.0
12.使用awk取出/etc/passwd第一列数据也就是取出用户名
  [root@yinwucheng ~]# awk -F ":" '{print $1}' /etc/passwd
13.写一个文件,文件内容如下

cat >>test.txt<<EOF
server {
lisTEN 80;
server_nAme docs.xuliangwei.com;
root /code/dOcs
index INDEX.html;
}
EOF

(1)过滤docs.xuliangwei.com这段关键字
awk  'NR==3{print $2}' test.txt |sed 's#;##g'
(2)同时过滤出root和index的行,不区分大小写
[root@yinwucheng ~]# egrep -i 'root|index' test.txt 
root /code/dOcs
index INDEX.html;
(3)过滤index,区分大小写
[root@yinwucheng ~]# grep 'index' test.txt 
index INDEX.html;
(4)过滤出带"O"的行,不区分大小写
 [root@yinwucheng ~]# grep -i 'O' test.txt 
 server_nAme docs.xuliangwei.com;
 root /code/dOcs
(5)过滤出不带";"的行
 [root@yinwucheng ~]# grep -v ';' test.txt 
 server {
 root /code/dOcs
 }
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值