标签:练习题 文件 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。