ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-04-06 10:31:04  阅读:157  来源: 互联网

标签:练习题 文件 oldboy -- qls etc txt root 目录


day11

文章目录

1. vim的变量



:set nu		#显示行号  


:set nonu	#取消行号 


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


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


:noh		#取消高亮显示 


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


vim环境变量的配置文件



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



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


set nu		#写在文件中  


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


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练习题


1.超级用户(管理员用户)提示符是__#__,普通用户提示符是__$__。



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练习题


1. 欲把当前目录下的file1.txt复制为file2.txt 命令是?

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  +10  /root/services

6. day06练习题


1.打开这个网站http://nginx.org/download/,下载一个结尾为tar.gz的软件包

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  -1

7. day07练习题


1.已知sort.log文件内容如下,请根据文件内容的第二列进行倒序排序。
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练习题


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

2.已知文件test.txt内容如下,请给出输出test.txt文件内容时,不包含oldboy字符串的命令。
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'  qls.txt

标签:练习题,文件,oldboy,--,qls,etc,txt,root,目录
来源: https://blog.csdn.net/yangenguang/article/details/115455434

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有