0
点赞
收藏
分享

微信扫一扫

vim的变量、文件比对、打开多个文件、day4,5,6,7,8练习题

山竹山竹px 2022-08-26 阅读 56


day11

文章目录

  • ​​day11​​
  • ​​1. vim的变量​​
  • ​​2. vim文件比对​​
  • ​​3. vim打开多个文件​​
  • ​​4. day04练习题​​
  • ​​5. day05练习题​​
  • ​​6. day06练习题​​
  • ​​7. day07练习题​​
  • ​​8. day08练习题​​

1. vim的变量

#显示行号  


:set nonu #取消行号


:set list #给每一行的结尾加上制表符 $


:set nolist #取消制表符的显示


:noh #取消高亮显示


:set ic #搜索的忽略大小写


vim环境变量的配置文件



~/.vimrc #个人用户的配置文件 优先级高



/etc/vimrc #全局环境变量配置文件


set nu #写在文件中


[root@qls ~]# cat ~/.vimrc
set

2. vim文件比对

[root@qls ~]# diff  passwd passwd.bak         #了解  
2d1
< ROOT
13c12
< vfgbvgnftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
---
> ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin



[root@qls ~]# vimdiff passwd passwd.bak #把不同之处进行高亮显示

3. vim打开多个文件

#水平打开两个文件进行编辑   切换窗口使用  ctrl键 + ww

[root@qls ~]# vim -o old.txt new.txt

#垂直分割两个文件

[root@qls ~]# vim -O old.txt new.txt

#快速的到达指定的行

[root@qls ~]# vim +10 passwd.bak

4. day04练习题

#__,普通用户提示符是__$__。



2.linux关机重启的命令有哪些 ?

关机:

shutdown

halt

init 0

poweroff

重启

reboot

shutdown

init 6


3.bash是什么?

命令解释器

4.bash特性, 常见的bash特性有哪些?

1. tab键补全

2. 快捷键

3. 历史命令 history

4. 命令别名 alias


5.网卡的配置文件路径什么?

/etc/sysconfig/network-scripts/ifcfg-eth33


6.[root@qiudao ~]# 已知这个是linux命令行,那么请问root表示什么?

当前登录的用户 管理员用户


7.接第上题,qiudao表示什么?


主机名


8.接上题,~的位置表示什么?而~本身又代表了什么?


当前所在的目录

当前用户的家目录


[root@qiudao ~]# yum install -y net-tools 已知命令行内容,下面几道练习题根据此命令行内容作答。

9.已知当前光标所在位置在最后面,我如果要删除命令行的内容,该怎样操作呢?

ctrl + u

10.已知当前光标所在位置在最前面,我如果要删除命令行的内容,该怎样操作呢?

ctrl + k

11.已知当前光标所在位置在最后面,我想只删除net-tools,该怎样操作呢?

ctrl + w

12.磁盘分区安装系统的时候,你是怎么分区的?

/boot #引导分区 500-1024M

swap #临时交换分区 虚拟内存分区 物理内存 1-2倍 峰值 16G

/ #系统分区 剩余多少给多少


13.网络类型都有哪几种?这几种模式,各个意思你是怎么理解的?

NAT 有自己的虚拟网络,啊hi用自己的虚拟网卡

桥接 共享主机网卡,跟主机一个局域网

仅主机 只能跟主机进行连接


14.快照有什么作用?


可以恢复到指定的某种快照的状态下



15.克隆分哪几种?各表示什么含义?

链接

完整


16.GNU是什么,介绍一下都有哪些内容?

Emacs #编辑器

gcc #编译器

bash #命令解释器

gawk #编程语言

hurd #内核 研发中


17.GPL是什么,内容是什么?

通用公共许可协议




18.Linux的发行版本都有哪些?

Redhat

CentOS

Fedora

suse

Debian

Ubuntu

freebsd


19.创建一个目录,shanghai。

mkdir shanghai

20.创建一个文件,test.txt

touch test.txt

21.进入到shanghai这个目录。

cd shanghai

22.显示你当前所在的位置。

pwd

23.如何快速从当前目录切换到家目录?

cd


24.用ls -a随便查看一个目录,发现每个目录下都会有两个名为“.”和“..”的目录,解释它们分别代表的含义

. 当前目录

.. 当前目录的上一级目录


25.解释linux系统下“绝对路径”和“相对路径”的区别?

绝对路劲都是以根或者以~开头的

相反就是相对路径


26.使用创建文件的命令一次性在oldboy目录下批量创建(oldboy1,oldboy2,oldboy3,oldboy4,oldboy5)这几个文件

touch oldboy/oldboy{1..5}

27.如何检查当前登录的是什么用户?

whoami

28.如何快速返回上一次所在的目录?

cd -

29. 假设超级用户root当前所在目录为:/usr/local,键入cd命令后,用户当前所在目录为?

家目录 /root


30. 在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是?

-p 递归创建


31. 在linux中,下面()命令不是针对目录操作的。 A
A. ps
B. cd
C.pwd
D. ls



32. 建立一个新文件可以使用的命令为?


touch

cat

echo



33. 如果要列出一个目录下的所有文件需要使用命令为?

ls -la

tree -a

34.Linux系统习惯将许多设备驱动存储在什么目录中?

/dev



35.包含了域名与IP地址的映射关系的文件是?

/etc/hosts


36.用什么命令来显示当前目录?

pwd

37.在类linux操作系统中,哪个用户默认对整个操作系统拥有完全控制权?

root


38.linux系统管理员创建一个普通oldboy用户,默认会在哪个目录下创建一个用户的主目录

/home/oldboy

39.使用cd命令进入到/usr/local目录下,然后又执行了cd .. 请问,当前你所在的位置是哪里?

/usr


40.已知你在/etc/sysconfig/network-scripts/目录下,你执行了cd /etc/systemd/命令,怎样才能快速的到达/etc/sysconfig/network-scripts/目录下?


cd -


41.已知当前位置为/opt,请问,执行cd . ,写出你所在的位置?

/opt

42.创建/oldboy目录?

mkdir /oldboy


43.创建/data/test目录,已知/data目录不存在,请给出命令?


mkdir -p /data/test


44.创建/root/user /root/logs /root/conf /root/html目录,请用一条命令实现

mkdir /root/{user,logs,conf,html}

45.创建文件oldboy.txt

touch oldboy.txt


46.在/root/目录下创建文件test.txt test.log test.sh test.conf 请用一条命令创建。


touch /root/test.{txt,log,sh,conf}


47.显示/root目录下的目录结构。

tree /root


48.只显示/目录的两层目录结构。

tree -L 2 /


49.只显示/etc目录下的目录。

tree -d /etc

50.如果我在当前在/目录下,之后执行了以下操作,请告诉我,最后我所在的目录位置

cd /etc/sysconfig/

cd ..

cd ..

cd -

cd ~

cd ..

/ 或者 /home

51.当前用户是root用户,当前所在位置是/usr/local ,输入cd命令后,当前所在目录是哪里?

/root

52.显示当前所在位置信息

pwd


53.显示/oldboy 下面所有文件(包含隐藏文件)的详细信息

ls -la /oldboy

54.在/oldboy目录下创建以你名字的目录。(已知oldboy目录不存在,请用一条命令实现)


mkdir -p /oldboy/qls


55.在你名字的目录下面创建两个文件,分别为test.txt,test.log


touch /oldboy/qls/test.{txt,log}

5. day05练习题

cp  file1.txt  file2.txt


2.批量创建oldboy01,oldboy02,...oldoby05这几个目录

mkdir oldboy{01..05}


3.显示/oldboy 下面所有文件(包含隐藏文件)的详细信息



4.在/oldboy目录下创建以你名字的目录。(已知oldboy目录不存在,请用一条命令实现)
5.在你名字的目录下面创建两个文件,分别为test.txt,test.log
6.把test.txt文件移动到/tmp目录下面

mv test.txt /tmp

7.把test.log文件重命名为test.sh

mv test.log test.sh

8.删除test.sh这个文件

rm -f test.sh


9.删除oldboy这个目录

rm -rf oldboy


10.切换到/tmp目录下,查看当前的工作位置,同时创建data1、data2、data3、共三个目录。

cd /tmp

pwd

mkdir data{1..3}

11.接上一题,分别在data1、data2、data3三个目录下创建3个文件,名字为oldboy1、oldboy2、oldboy3.然后查看/tmp目录的整个目录结构情况,最后检查下data1和oldboy1两个对象的属性。

touch data{1..3}/oldboy{1..3}

tree /tmp

ll -d data1

ll data*/oldboy1


12.把/etc/hosts文件复制到/tmp/data1目录下,然后把data1目录复制到/opt/目录下。

cp /etc/hosts /tmp/data1

cp -a data1 /opt


13.将/tmp/data1目录移动到/root目录下,然后删除/opt/data1目录下的hosts文件,最后删除/opt目录下的data1目录。

mv /tmp/data1 /root

rm -rf /opt/data1



14.查看oldboy.txt文件中的内容,并显示行号(请使用cat命令)。

cat -n oldboy.txt


15.使用cat命令把oldboy oldgirl student三行内容(每个字符串是一行内容)写入到test.txt文件中


cat>test.txt<<EOF
oldboy
oldgirl
student
EOF

16.查看系统中/etc/services文件中的内容(使用more和less命令,进行上下页查看,并搜索关键字‘ssh’,之后退出。)




17.使用cat命令查看文本文件的内容时要对所有的输出行进行显示行号,怎么实现?


-n


18.使用mv命令,下列说法错误的是? CD
A.mv命令可以重命名文件
B.mv命令可以移动文件
C.mv命令可以复制文件
D.mv命令可以删除文件



19.删除文件的命令为?

rm


20.显示"I'm a student"到屏幕上面

echo "I'm a student"


21.将"I'm a student"追加到hello.txt文件中

echo "I'm a student" >> hello.txt


22.将/etc/passwd文件复制到/opt目录中

cp /etc/passwd /opt/


23.将/tmp目录复制到当前用户的家目录下

cp -a /tmp ~/

24.将/opt目录下的hosts文件移动到/root目录下,并将其改名为ip.txt

mv /opt/hosts /root/ip.txt


25.把/var/log/目录下的所有文件拷贝到/opt目录下

cp -a /var/log/* /opt

26.使用echo命令创建一个非空文件


echo '1' >file


27.使用echo命令把oldboy oldgirl student三行内容(每个字符串是一行内容)写入到test.txt文件中

echo -e "oldboy\noldgirl\nstudent" >test.txt


28.将/etc/hosts和/etc/passwd两个文件合并为一个新文件,文件名称为test.log

cat /etc/hosts /etc/passwd >> test.log

29.将/etc/services文件拷贝到/root目录下

cp /etc/services /root

30.分页查看/root/services文件,要求从第10行开始显示

more

6. day06练习题

wget http://nginx.org/download/nginx-0.1.7.tar.gz


2.同样打开上面的网站,下载一个结尾为tar.gz的软件包,要求下载之后的软件包名为nginx.tar.gz

wget -O nginx.tar.gz http://nginx.org/download/nginx-0.1.7.tar.gz

3.打开此网站https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/ 下载一个结尾为rpm的软件包

wget https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.10-1.el7.x86_64.rpm

4.同样打开上面这个网站,下载一个结尾为rpm的软件包,要求下载之后的软件包名为zabbix.rpm

wget -O zabbix.rpm https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.10-1.el7.x86_64.rpm

5.在linux中访问qls的博客网站,访问主页就可以


curl -L www.increase93.com

6.在linux中访问qls的博客网站,要求把主页的内容保存到qls.html文件中。

curl -L www.increase93.com -o qls.html

7.在linux中访问百度的首页

curl www.baidu.com



8.在linux中访问百度的首页,要求把主页的内容保存到baidu.html文件中

curl www.baidu.com -o baidu.html


9.把/etc/hosts文件下载到本地电脑桌面

sz /etc/hosts

10.把/etc/services文件下载到本地电脑D盘中

sz /etc/hosts


11.把你的课堂笔记上传到linux系统中

rz


12.把你的习题笔记上传到linux系统中的/opt目录下面

cd /opt

rz


13.如果我要把本地电脑中的目录上传到linux系统,请问怎么上传?

打包压缩上传

xftp上传

14.查找ifconfig命令的绝对路径在哪里?你能使用几种方法实现?

[root@qls ~]# which ifconfig
/usr/sbin/ifconfig
[root@qls ~]# type -p ifconfig
/usr/sbin/ifconfig
[root@qls ~]# whereis -b ifconfig
ifconfig: /usr/sbin/ifconfig
[root@qls ~]# locate ifconfig
/usr/sbin/ifconfig



15.查找netstat命令的绝对路径在哪里?你能使用几种方法实现?

[root@qls ~]# which netstat
/usr/bin/netstat
[root@qls ~]# type -p netstat
/usr/bin/netstat
[root@qls ~]# whereis -b netstat
netstat: /usr/bin/netstat
[root@qls ~]# locate netstat
/usr/bin/netstat

16.统计文件/etc/hosts的行数?你能使用几种方法实现?

wc -l /etc/hosts

[root@qls ~]# cat -n passwd |tail -1
19 postfix:x:89:89::/var/spool/postfix:/sbin/nologin

[root@qls ~]# grep -c '.*' passwd
19


17.改变bash的提示符实际上就是改变变量?

PS1

18.显示/etc/passwd文件的前5行内容。

head -5 /etc/passwd

19.显示/etc/passwd文件的最后5行内容。

tail -5 /etc/passwd


20.显示/etc/services文件的第11行到第20行的内容

head -20 /etc/services | tail

[root@qls ~]# more +11 /etc/services | more -10

21.查看系统中的cd命令是不是内嵌命令

type -a cd



22.找出系统中文件名为oldboy.txt的所有文件。


find / -type f -name "oldboy.txt"

23.找出系统中名为oldboy的所有目录。

find / -type d -name "oldboy"

24.找出系统中文件名以oldboy开头的所有文件。

find / -type f -name "oldboy*"

25.rm是个危险的命令,要求用命令rm删除文件时提示“rm command no bny”,怎么实现?

alias rm='echo rm command no bny'


26.设置rm命令存在别名之后,要删除/oldboy这个目录,怎么实现?

\rm -rf /oldboy

/usr/bin/rm -rf /oldboy


27.实时查看系统日志/var/log/message的更新

tail -f /var/log/message

28.查找出系统中为s类型的文件


[root@qls ~]# find / -type s
/dev/log
/run/vmware/guestServicePipe

29.查找出系统中为p类型的文件

[root@qls ~]# find / -type p
/run/systemd/inhibit/1.ref
/run/systemd/sessions/104.ref
/run/systemd/sessions/78.ref
/run/systemd/initctl/fifo


30.只显示出/etc/passwd文件的第五行

head -5 /etc/passwd | tail

7. day07练习题

cat >>sort.log<<'EOF'
218.65.30.25 68652
218.65.30.53 34326
218.87.109.154 21201
112.85.42.103 18065
112.85.42.99 17164
218.87.109.151 17163
218.87.109.150 17163
218.65.30.61 17163
218.65.30.126 17163
218.65.30.124 17163
EOF

sort -rnk2 sort.log


2.统计系统文件/etc/services有多少行。

wc -l /etc/services


3.已知文件内容如下,请对该文件的字符串出现的次数进行统计,并从小到大的进行排序出来。
cat>>uniq.txt<<'EOF'
oldboy
oldgirl
oldboy
egon
student
oldgirl
oldboy
EOF


[root@qls ~]# sort uniq.txt | uniq -c | sort -n
1 egon
1 student
2 oldgirl
3 oldboy



4.取出系统中的文件/etc/passwd的第七列(以:为分隔符)。

cut -d ":" -f7 /etc/passwd


5.已知文件test.txt内容如下,请给出输出test.txt文件内容时,不包含oldboy字符串的命令。
test
qiudao
oldboy


head -2 test.txt

grep -v 'oldboy' test.txt

sed '/oldboy/d' test.txt

awk '!/oldboy/' test.txt


6.只查看/etc/passwd文件内第5到第15行的内容


head -15 /etc/passwd | tail -11

sed -n '5,15p' /etc/passwd

awk 'NR==5,NR==15' /etc/passwd


7.test.txt 的内容如下,要求过滤出不包含oldgirl的行。
oldboy
oldgirl
qiudao

grep -v 'oldgirl' test.txt

sed '/oldgirl/d' test.txt

awk '!/oldgirl/' test.txt



8.请执行命令取出linux中eth0的IP地址分别是ip和ifconfig的命令(请用cut,有能力者也可分别用awk,sed命令答)。

[root@qls ~]# ip a s eth0 | head -3 |tail -1 | tr '/' ' ' |cut -d " " -f6
10.0.0.100

[root@qls ~]# ip a s eth0 | awk -F '[ /]' 'NR==3{print $6}'
10.0.0.100

[root@qls ~]# ip a s eth0 | awk -F '[ /]*' 'NR==3{print $3}'
10.0.0.100


[root@qls ~]# ip a s eth0 |sed -nr '3s#(^.*t )(.*)(/.*$)#\2#gp'
10.0.0.100


9.删除/etc/passwd文件的前三行内容。


[root@qls ~]# grep -n '.*' passwd | grep -wv '^[123]'

[root@qls ~]# grep -n '.*' passwd | grep -Ewv '^1|^2|^3'


[root@qls ~]# sed '1,3d' passwd


[root@qls ~]# awk 'NR>3' passwd

10.统计文件/etc/hosts的行数?你能使用几种方法实现?

wc -l /etc/hosts

grep -c '.*' /etc/hosts



11.统计文件/etc/services的字节数。你能使用几种方法实现?

[root@qls ~]# ll /etc/services
-rw-r--r--. 1 root root 670293 Jun 7 2013 /etc/services
[root@qls ~]# wc -c /etc/services
670293 /etc/services
[root@qls ~]# du -sh /etc/services
656K /etc/services
[root@qls ~]# stat /etc/services
File: ‘/etc/services’
Size: 670293 Blocks: 1312 IO Block: 4096 regular file
Device: 803h/2051d Inode: 67125358 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:etc_t:s0
Access: 2020-07-17 18:40:51.792211723 +0800
Modify: 2013-06-07 22:31:32.000000000 +0800
Change: 2020-07-06 02:13:36.049996181 +0800
Birth: -


12.执行下面的命令echo "Im qls , is QQ 1176494252" >file.txt,要求取出该文件中的姓名和QQ号。


[root@qls ~]# cut -d " " -f2,6 file.txt
qls 1176494252


[root@qls ~]# awk '{print $2,$6}' file.txt
qls 1176494252




13.执行如下命令
cat > file.txt <<EOF
abc
123
abc
123
def
EOF
要求去除重复的行

[root@qls ~]# sort file.txt | uniq
123
abc
def


14.接上题,取出每行出现的次数


[root@qls ~]# sort file.txt | uniq -c
2 123
2 abc
1 def


15.统计/var/log下的文件个数,不统计下级目录。

[root@qls ~]# ll /var/log/ | grep '^-' | wc -l
33
[root@qls ~]# ll /var/log/ | grep -c '^-'
33


[root@qls ~]# tree -fL 1 /var/log | tail -1
4 directories, 33 files
[root@qls ~]# tree -fL 1 /var/log | tail -1 | cut -d " " -f3
33


16.统计/var/log下的所有文件和目录个数,不包含隐藏文件。

[root@qls ~]# tree /var/log | tail -1 | cut -d " " -f1,3
4 44



17.以“:”为分隔符,取出/etc/passwd第一行的最后一列的内容


[root@qls ~]# cut -d ":" -f7 passwd | head -1
/bin/bash


[root@qls ~]# awk -F: 'NR==1{print $NF}' passwd
/bin/bash


[root@qls ~]# sed -n '1s#^.*:##gp' passwd
/bin/bash


18.过滤出/etc/passwd以nologin结尾的内容,并统计行数

[root@qls ~]# grep -c 'nologin$' passwd
14


[root@qls ~]# grep 'nologin$' passwd |cat -n
1 bin:x:1:1:bin:/bin:/sbin/nologin
2 daemon:x:2:2:daemon:/sbin:/sbin/nologin
3 adm:x:3:4:adm:/var/adm:/sbin/nologin
4 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
5 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
6 operator:x:11:0:operator:/root:/sbin/nologin
7 games:x:12:100:games:/usr/games:/sbin/nologin
8 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
9 nobody:x:99:99:Nobody:/:/sbin/nologin
10 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
11 dbus:x:81:81:System message bus:/:/sbin/nologin
12 polkitd:x:999:998:User for polkitd:/:/sbin/nologin
13 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
14 postfix:x:89:89::/var/spool/postfix:/sbin/nologin



19.分析如下日志内容,每个域名被访问次数

cat>web.log <<EOF
http://www.oldboy.com/index.html
http://www.oldboy.com/1.html
http://post.oldboy.com/index.html
http://mp3.oldboy.com/index.html
http://www.oldboy.com/3.html
http://post.oldboy.com/2.html
EOF


[root@qls ~]# cut -d "/" -f3 web.log
www.oldboy.com
www.oldboy.com
post.oldboy.com
mp3.oldboy.com
www.oldboy.com
post.oldboy.com
[root@qls ~]# cut -d "/" -f3 web.log |sort
mp3.oldboy.com
post.oldboy.com
post.oldboy.com
www.oldboy.com
www.oldboy.com
www.oldboy.com
[root@qls ~]# cut -d "/" -f3 web.log |sort |uniq -c
1 mp3.oldboy.com
2 post.oldboy.com
3 www.oldboy.com




20.显示/etc/services文件的第11行到第20行的内容




21.已知文件123.txt内容如下,请过滤出包含oldboy字符串的命令
test
OLDBOY
online
oldboy
oldboyoldboy


[root@qls ~]# grep 'oldboy' 123.txt
oldboy
oldboyoldboy
[root@qls ~]# sed -n '/oldboy/p' 123.txt
oldboy
oldboyoldboy
[root@qls ~]# awk '/oldboy/' 123.txt
oldboy
oldboyoldboy


22.过滤出文件123.txt中不包含test的行,并给其过滤出来的内容加上行号


[root@qls ~]# grep -nv 'test' 123.txt
2:OLDBOY
3:online
4:oldboy
5:oldboyoldboy


[root@qls ~]# awk '!/test/{print NR,$0}' 123.txt
2 OLDBOY
3 online
4 oldboy
5 oldboyoldboy

23.要求过滤出文件123.txt中包含oldboy的字符串,忽略大小写。

[root@qls ~]# grep -i 'oldboy' 123.txt
OLDBOY
oldboy
oldboyoldboy
[root@qls ~]# sed -nr '/oldboy|OLDBOY/p' 123.txt
OLDBOY
oldboy
oldboyoldboy
[root@qls ~]# awk '/oldboy|OLDBOY/' 123.txt
OLDBOY
oldboy
oldboyoldboy


24.要求过滤出文件123.txt中包含online字符串的行,并统计共有多少行。


[root@qls ~]# grep -c 'online' 123.txt
1

25.要求过滤出文件123.txt中oldboy的单词。

[root@qls ~]# grep -w 'oldboy' 123.txt
oldboy



写一个文件,文件内容如下,下面几题请用该文件作答?
cat >>test.txt<<EOF
server {
lisTEN 80;
server_nAme www.oldboy.com;
root /code/dOcs
index INDEX.html;
}
EOF
26.过滤www.oldboy.com这段关键字

[root@qls ~]# grep 'www.oldboy.com' test.txt
server_nAme www.oldboy.com;
[root@qls ~]# sed -n '/www.oldboy.com/p' test.txt
server_nAme www.oldboy.com;
[root@qls ~]# awk '/www.oldboy.com/' test.txt
server_nAme www.oldboy.com;



27.同时过滤出root和index的行,不区分大小写


[root@qls ~]# grep -Ei 'root|index' test.txt
root /code/dOcs
index INDEX.html;



28.过滤index,区分大小写


[root@qls ~]# grep 'index' test.txt
index INDEX.html;
[root@qls ~]# awk '/index/' test.txt
index INDEX.html;
[root@qls ~]# sed -n '/index/p' test.txt
index INDEX.html;



29.过滤出带"O"的行,不区分大小写

[root@qls ~]# grep -i 'o' test.txt
server_nAme www.oldboy.com;
root /code/dOcs

[root@qls ~]# sed -nr '/o|O/p' test.txt
server_nAme www.oldboy.com;
root /code/dOcs
[root@qls ~]#

[root@qls ~]# awk '/o|O/' test.txt
server_nAme www.oldboy.com;
root /code/dOcs




30.过滤出不带";"的行

[root@qls ~]# grep -v ';' test.txt
server {
root /code/dOcs
}
[root@qls ~]# sed '/;/d' test.txt
server {
root /code/dOcs
}
[root@qls ~]# awk '!/;/' test.txt
server {
root /code/dOcs
}

31.过滤出以s开头的行

[root@qls ~]# grep '^s' test.txt
server {
server_nAme www.oldboy.com;
[root@qls ~]# sed -n '/^s/p' test.txt
server {
server_nAme www.oldboy.com;
[root@qls ~]# awk '/^s/' test.txt
server {
server_nAme www.oldboy.com;


32.统计该文件的行数

wc -l


33.如果某一天你误操作了"rm -rf *",会发生哪些情况

看目录

删除当前目录下的所有


34.已知123.txt文件内容如下:
linlaoshi
qiulaoshi
oldboy
要求过滤出oldboy这一行的内容?你有几种方法?



35.接上题,要求不显示oldboy这行内容,怎么实现?你有几种方法?

8. day08练习题

test
qiudao
oldboy

3.只查看/etc/passwd文件内第5到第15行的内容

4.把test.txt文件中的oldboy替换为oldgirl,给出命令

sed -i 's#oldboy#oldgirl#g' test.txt


5.test.txt 的内容如下,要求过滤出不包含qiudao的行。有几种方法可以实现
oldboy
oldgirl
qiudao




6.把文件/etc/passwd文件中的/sbin/nologin替换为/bin/bash

sed -i 's#/sbin/nologin#/bin/bash#g' passwd



7.把/etc/selinux/config文件中的SELINUX=enforcing行中的enforcing替换成disabled


[root@qls ~]# sed -i '/^S/s#enforcing#disabled#g' /etc/selinux/config



8.现将文件b.txt 中的所有123 替换成def,请问如何实现?

sed -i 's#123#def#g' b.txt


9.将文件的test.txt中的第10行的oldboy改为oldgirl


sed -i '10s#oldboy#oldgirl#g' test.txt

10.请执行命令取出linux中eth0的IP地址(请用cut,有能力者也可分别用awk,sed命令答)。




11.使用命令调换/etc/passwd文件里 root 位置和/bin/bash 位置? 即将所有的第一列和最后一列位置调换?


[root@qls ~]# sed -r 's#(^.*)(:x.*:)(.*)#\3\2\1#g' passwd


[root@qls ~]# awk -F: '{print $7":"$2":"$3":"$4":"$5":"$6":"$1}' passwd


[root@qls ~]# awk -F: -vOFS=":" '{a=$1;$1=$NF;$NF=a;print}' passwd


12.先拷贝,再删除/etc/passwd文件的前三行内容。


13.使用sed命令打印出/etc/passwd文件的第一行到第三行

sed -n '1,3p' /etc/passwd


14.过滤出/etc/services 文件包含3306或1521两数字所在的行的内容。(三种方法)


[root@qls ~]# 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@qls ~]# sed -nr '/3306|1521/p' /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@qls ~]# awk '/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



15.在linux 系统中,当LAN(局域网)内没有条件记案例DNS 服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置( /etc/hosts )文件(请写全路径)


16.写出redhat中,配置网卡及dns的配置文件是什么?有什么区别?

网卡配置文件 也是DNS配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 重启网络服务生效


DNS1=xxxx
DNS2=xxxx


DNS配置文件
/etc/resolv.conf 立即生效

nameserver xxxxx

nameserver xxxxx

生效的方式的不一样

书写的方式不一样

17.若要将鼠标从VM中释放出来,可按()键完成。

ctrl + alt

18.如何统计/etc下有多少个目录,不包括隐藏目录,只显示目录个数。

[root@qls ~]# tree -d /etc | tail -1
605 directories

19.统计secure.log文件中每个ip地址你用户密码的次数(包含Failed password字符串的行属于密码的,日志群里有,文件很大,建议不要使用cat打开)。

[root@qls ~]# awk '/Failed password/{print $(NF-3)}' secure.log |sort | uniq -c | sort -rn | head
68652 218.65.30.25
34326 218.65.30.53
21201 218.87.109.154
18065 112.85.42.103
17164 112.85.42.99
17163 218.87.109.151
17163 218.87.109.150
17163 218.65.30.61
17163 218.65.30.126
17163 218.65.30.124




20.输入last,统计当前连接本机的每个远程终端IP的连接总次数

[root@qls ~]# last | grep 'pts' |awk '{print $3}' | sort | uniq -c | sort -rn
8 10.0.0.1



21.输入lscpu,取出当前系统的cpu核心数


[root@qls ~]# lscpu | grep '^Core'
Core(s) per socket: 1
[root@qls ~]# lscpu | grep '^Core' | awk '{print $NF}'
1


22.输入df -h,取出当前系统根分区剩余可用磁盘空间


[root@qls ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 98G 1.2G 97G 2% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.6M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 199M 0 199M 0% /run/user/0
[root@qls ~]# df -h | awk 'NR==2{print $4}'
97G
[root@qls ~]# df -h | awk '/\/$/'
/dev/sda3 98G 1.2G 97G 2% /
[root@qls ~]# df -h | awk '/\/$/{print $4}'
97G




23.显示/proc/meminfo文件中以s开头的行(忽略大小写)

[root@qls ~]# grep -i '^s' /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 9732 kB
Slab: 154764 kB
SReclaimable: 104372 kB
SUnreclaim: 50392 kB

[root@qls ~]# sed -nr '/^s|^S/p' /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 9732 kB
Slab: 154764 kB
SReclaimable: 104372 kB
SUnreclaim: 50392 kB
[root@qls ~]# awk '/^s|^S/' /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 9732 kB
Slab: 154764 kB
SReclaimable: 104372 kB
SUnreclaim: 50392 kB


24.执行命令echo "I am qls,myqq is 1176494252">oldboy.txt,
现在需要从文件中过滤出“qls”和“1176494252”字符串,请给出命令?(最少三种方法)

[root@qls ~]# echo "I am qls,myqq is 1176494252">oldboy.txt
[root@qls ~]# cat oldboy.txt
I am qls,myqq is 1176494252
[root@qls ~]# awk -F '[ ,]' '{print $3,$6}' oldboy.txt
qls 1176494252
[root@qls ~]# tr ',' ' ' < oldboy.txt
I am qls myqq is 1176494252
[root@qls ~]# tr ',' ' ' < oldboy.txt |cut -d " " -f3,6
qls 1176494252

[root@qls ~]# sed 's#^.*m ##g' oldboy.txt | sed 's#,.* # #g'
qls 1176494252



25.接上题,如果需要从文件中过滤出“qls,1176494252”字符串,请再给出命令?

[root@qls ~]# sed 's#^.*m ##g' oldboy.txt | sed 's#,.* #,#g'
qls,1176494252

[root@qls ~]# tr ',' ' ' < oldboy.txt |cut -d " " -f3,6 | tr ' ' ','
qls,1176494252

[root@qls ~]# awk -F '[ ,]' '{print $3","$6}' oldboy.txt
qls,1176494252



26.我想在/data/oldboyedu目录下面创建 一个oldboy.txt文件,出现了如下报错。
[root@qiudao ~]# touch /data/oldboyedu/oldboy.txt
touch: cannot touch ‘/data/oldboyedu/oldboy.txt’: No such file or directory
问:为何出现这样的错误?该怎么解决?

/data/oldboyedu/ 目录不存在

mkdir -p /data/oldboyedu/

touch /data/oldboyedu/oldboy.txt



27.翻译题
01).command not found #命令找不到
02).No such file or directory #没有这个文件或者目录
03).File exists #文件已经存在
04).Is a directory #这是个目录
05).Not a directory #不是一个目录


28.在/backup下创建10个.txt的文件,找到/backup目录下所有后缀名为.txt的文件

touch /backup/{01..10}.txt

ll /backup/*.txt




29.显示/etc/services文件的第10行到第20行的内容?



30.显示文件/etc/services的大小?



31.以“:”为分隔符,取出/etc/passwd第一行的第七列也就是最后一列的内容?(两种方法)



32.找出/var/log目录中以.log结尾的文件,并显示这些文件的属性信息。

ll /var/log/*.log

33.寻找名称为mytest.log的文件

find / -type f -name "mytest.log"


34.用命令行更改config.txt文件,把里面的“name”更改为“address”

sed -i 's#name#address#g' config.txt

35.把/etc/passwd文件中的:替换成#


tr ':' '#' < /etc/passwd


36.说明下面这几个文件的作用:

/etc/hostname、 #主机名

/etc/resolv.conf、 #本地DNS文件

/etc/hosts #本地域名解析文件


37.尝试使用sed命令的后向引用和awk命令取出ip地址,请分别使用ip和ifconfig命令取出。
38.在123.txt文件末尾插入‘test’。(两种方法)

sed '$atest' 123.txt

echo 'test' >> 123.txt

cat >>123.txt<<EOF
test
EOF


39.将/etc/passwd文件中第一行到第五行的root替换为admin?


sed -i '1,5s#root#admin#g' passwd



40.统计nginx访问日志access.log中每个访问ip出现次数最多的10个。(已知ip在第一列,日志群里有)

[root@qls ~]# awk '{print $1}' access.log |sort | uniq -c |sort -rn | head
16033 139.226.172.217
1041 47.102.42.79
994 180.95.238.82
727 113.140.249.33
647 223.166.74.124
525 112.87.125.55
429 182.138.163.167
373 112.87.125.53
352 223.166.74.198
308 182.138.158.169



41.取出下列文件的权限如:0644 ?(两种方法)
[root@qls ~]# stat qls.txt
File: ‘123.txt’
Size: 44 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 67160518 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-07-27 16:55:57.055131412 +0800
Modify: 2019-07-27 16:55:50.098131214 +0800
Change: 2019-07-27 16:55:50.101131214 +0800


[root@qls ~]# stat -c %a passwd
644

[root@qls ~]# stat passwd | awk -F '[(/]' 'NR==4{print $2}'
0644


42.删除qls.txt文件中的第10行到20行。(两种方法)


sed '10,20d' qls.txt

awk 'NR<10 || NR>20'


举报

相关推荐

0 条评论