Linux运维班第一关课后学习效果能力上机大考察

kan

1、创建目录/data/oldboy,并且在该目录下创建文件oldboy.txt。然后在文件oldboy.txt里写入内容"net addr:192.168.181.134  Bcast:192.168.181.255  Mask:255.255.255.0" (不包含引号)。

解答:

分析过程:要完成此题,我们首先要想如何递归创建目录。

法1:

[[email protected] oldboy]# mkdir /data/oldboy -p

[[email protected] oldboy]# echo net addr:192.168.181.134 Bcast:192.168.181.255 Mask:255.255.255.0 >oldboy.txt

总结:

1)mkdir -p 是用来递归创建目录的。

2)echo 可以用来讲内容直接写入文件,如果文件不存在,会自动再 创建文件,


2、将题1中的oldboy.txt文件内容通过命令过滤只输出如下内容:*****

10.0.0.8 10.0.0.255 255.255.255.0

net addr:192.168.181.134  Bcast:192.168.181.255  Mask:255.255.255.0

解答:

[[email protected] oldboy]# awk -F "[ :]+" ‘{print $3,$5,$7}‘ oldboy.txt

192.168.181.134 192.168.181.255 255.255.255.0

[[email protected] oldboy]# awk -F "[ :]+" ‘{print $3" "$5" "$7}‘ oldboy.txt

192.168.181.134 192.168.181.255 255.255.255.0

总结:

1) -F ‘[ :]+‘表示指定分隔符为空格和: ,方括号里有两个分隔符,所以需要加+号 ‘{print $3" "$5" "$7}‘ 表示打印输出 第三个占位符的字符串,第五个占位符???第七。"空格"是根据题目要求打印空格加以区分


3、将题1中的oldboy目录移动到/tmp下,并将/etc/passwd文件复制到/tmp/oldboy下。

[[email protected] ~]# mv /data/oldboy /tmp

[[email protected] ~]# cp /etc/passwd /tmp/oldboy/

总结:

1)mv是移动目录和文件的命令,少用rm命令,可先mv到/tmp下时间长之后没什么影响再删除,血的教训呀。

2)cp是复制文件


4、在题3的基础上使用awk取passwd文件等第10行到20行的第三列重定向到/tmp/oldboy/test.txt文件里   *****

[[email protected] oldboy]# awk ‘NR>9 && NR<21‘ passwd

[[email protected] oldboy]# awk -F ‘:‘ ‘NR>9 && NR<21 {print $3}‘ passwd >/tmp/oldboy/test.txt

总结:

1)awk:NR行号,&& 是并且的意思。awk可以用来处理每一行都要处理的文本。

2)使用awk我们要先看分隔符有哪些,看他们的规律。然后再-F ‘:‘ 来定义分隔符,本文的分隔符是:。

3)‘NR>9 && NR<21 {print $3}‘ 表示NR行号大于9并且小于21,{}花括号表示执行前面的结果。也就是打印输出$3 NR10~20的每行第三个占位符的字符串,awk是每行都会执行的。


5、在题3的基础上要求命令rm删除文件时提示如下禁止使用rm的提示,并使该效果永久生效。rm -f passwd Do

not use rm command*****

解答:

[[email protected] oldboy]# echo ‘alias rm="echo not use rm command"‘

alias rm="echo not use rm command"

[[email protected] oldboy]# echo ‘alias rm="echo not use rm command"‘ >>/etc/profile

[[email protected] oldboy]# echo ‘alias rm="echo not use rm command"‘

alias rm="echo not use rm command"

[[email protected] oldboy]# echo ‘alias rm="echo not use rm command"‘ >>/etc/bashrc

[[email protected] oldboy]# . /etc/profile

alias rm=‘echo not use rm command‘

bash: alias: =echo: not found

bash: alias: not: not found

bash: alias: use: not found

alias rm=‘echo not use rm command‘

bash: alias: command: not found

alias rm=‘echo not use rm command‘

bash: alias: =echo: not found

bash: alias: not: not found

bash: alias: use: not found

alias rm=‘echo not use rm command‘

bash: alias: chenbaojia: not found

[[email protected] oldboy]# . /etc/bashrc

alias rm=‘echo not use rm command‘

bash: alias: =echo: not found

bash: alias: not: not found

bash: alias: use: not found

alias rm=‘echo not use rm command‘

bash: alias: command: not found

alias rm=‘echo not use rm command‘

bash: alias: =echo: not found

bash: alias: not: not found

bash: alias: use: not found

alias rm=‘echo not use rm command‘

bash: alias: chenbaojia: not found

总结:

1)alias 设置别名

2)etc/profile

这个文件是每个用户登录时都会运行的环境变量设置

.bashfile

是单用户登录时比如root会运行的

3). / etc/profile (. / 点加空格 加文件,表示不用重启既可以重新加载文件并实效。)


6、在题3的基础上,删除/tmp/oldboy/下初passwd以外的其他文件。*****

解答:

法一

[[email protected] oldboy]# find /tmp/oldboy/ -type f ! -name ‘passwd‘ -exec rm -f {} \;

[[email protected] oldboy]# ls

passwd

[[email protected] oldboy]# touch oldboy.txt test.txt /tmp/oldboy/

[[email protected] oldboy]# ls

oldboy.txt passwd test.txt

[[email protected] oldboy]# find /tmp/oldboy/ -type f ! -name "passwd" |xargs

/tmp/oldboy/oldboy.txt /tmp/oldboy/test.txt

法二

[[email protected] oldboy]# find /tmp/oldboy/ -type f ! -name "passwd" |xargs rm -f

[[email protected] oldboy]# ls

passwd

总结:

1)! 是取反的意思, ! -name ‘passwd‘ 是说找除了passwd之外其他文件。 -exec 是find 一个参数,表示把-exec前面的结果交给后面的命令执行, {} \; 这个是在命令之后必须加上的固定格式。

2)|xargs 也是把前面的结果交给后面的命令处理。



7、在题3的基础上,请打印/etc/passwd文件中的第2~5行(不低于三种方法)

解答:

法一

[[email protected] oldboy]# head -5 passwd |tail -4

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

法二:

[[email protected] oldboy]# head -5 passwd |tail -4

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

法三:

[[email protected] oldboy]# sed -n ‘2,5‘p passwd

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

总结:

1)head 命令默认表示输出文本前十,-(数字)表示需要输出的行号

2)tail 命令默认表示输出文本后十,-(数字)表示需要输出为行号

3)sed -n (不加-n 默认全部输出,加上之后根据我们指定结果输出,)p的意思是打印输出。



8、在题3的基础上,使用命令调换passwd文件里的root位置和/bin/bash位置?即将所有的第一列和最后一列位置调换。例子:*****

默认:root:x:0:0:root:/root/:/bin/bash  修改后/bin/bash:x:0:0:root:/root:root

解答:

[[email protected] oldboy]# awk -F ‘:‘ ‘{print $7,$2,$3,$4,$5,$6,$1}‘ passwd

/bin/bash x 0 0 root /root root

/sbin/nologin x 1 1 bin /bin bin

/sbin/nologin x 2 2 daemon /sbin daemon

/sbin/nologin x 3 4 adm /var/adm adm

/sbin/nologin x 4 7 lp /var/spool/lpd lp

/bin/sync x 5 0 sync /sbin sync

/sbin/shutdown x 6 0 shutdown /sbin shutdown

/sbin/halt x 7 0 halt /sbin halt

/sbin/nologin x 8 12 mail /var/spool/mail mail

/sbin/nologin x 10 14 uucp /var/spool/uucp uucp

/sbin/nologin x 11 0 operator /root operator

/sbin/nologin x 12 100 games /usr/games games

/sbin/nologin x 13 30 gopher /var/gopher gopher

/sbin/nologin x 14 50 FTP User /var/ftp ftp

/sbin/nologin x 99 99 Nobody / nobody

/sbin/nologin x 69 69 virtual console memory owner /dev vcsa

/sbin/nologin x 499 76 Saslauthd user /var/empty/saslauth saslauth

/sbin/nologin x 89 89 /var/spool/postfix postfix

/sbin/nologin x 74 74 Privilege-separated SSH /var/empty/sshd sshd

/bin/bash x 500 500 /home/oldboy oldboy

/sbin/nologin x 38 38 /etc/ntp ntp

总结:

1)awk 可以用来处理每一行都需要处理的文本,因为awk是逐行执行的。利用分隔符,然后再print 打印对应占位符的字符串即可



9、把/data目录及其子目录下所有以扩展名.txt结尾的文件中包含oldgirl的字符串全部替换为oldboy。*****

解答:

[[email protected] data]# find /data/ -type f -name ‘*.txt‘

/data/12.txt

/data/1.txt

/data/oldboy.txt

/data/3307/aa.txt

/data/3307/123.txt

/data/456.txt

/data/a.txt

/data/3306/456.txt

/data/3306/123.txt

/data/123.txt

[[email protected] data]# find /data/ -type f -name ‘*.txt‘|xargs sed "s#oldgirl#oldboy#g"

oldboy

oldboy

inet addr:192.168.181.134 Bcast:192.168.181.255 Mask:255.255.255.0

oldboy

oldboy

oldboy

oldboy

oldboy

oldboy

oldboy

[[email protected] data]# find /data/ -type f -name ‘*.txt‘|xargs sed -i "s#oldgirl#oldboy#g"

[[email protected] data]# find /data/ -type f -name ‘*.txt‘|xargs cat

oldboy

oldboy

inet addr:192.168.181.134 Bcast:192.168.181.255 Mask:255.255.255.0

oldboy

oldboy

oldboy

oldboy

oldboy

oldboy

oldboy

总结:

1)首先find 加上文件路径然后-type f 确定文件类型, -name "*.txt" *表示所有名字为.txt为后缀的文件。显示出来。

2)|xargs 管道的意思把前面的搜索结果交给后面的命令

3)sed ‘s###g‘ 这是标准格式,当然#号键可以是任意相同的字符代替。 sed "s#oldgirl#oldboy#g" 把oldgirl替换成oldboy。然后就能看到结果了。

4)看到结果之后确认无误, find /data/ -type f -name ‘*.txt‘|xargs sed -i "s#oldgirl#oldboy#g" 加上-i 确认修改,然后我们在看下。确认下结果。


10、查找/oldboy下所有7天以前以olg结尾的大雨1M的文件移动到/tmp下 *****

解答:

[[email protected] oldboy]# ls -lh 首先模拟大于1M的文件,查看当前文件最大最接近的。

总用量 624K

-rw-r--r-- 1 root root 596K 11月 23 13:34 456.log 这是最接近的

drwxr-xr-x 3 root root 4.0K 11月 12 06:27 ext

-rw-r--r-- 1 root root 0 11月 12 06:27 jeacen

drwxr-xr-x 2 root root 4.0K 11月 12 07:16 new

-rw-r--r-- 1 root root 24 11月 23 05:57 nginx.conf

-rw-r--r-- 1 root root 0 11月 12 06:27 oldboy

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 test

-rw-r--r-- 1 root root 0 11月 12 06:27 widi.gz

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 xiaodong

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 xiaofan

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 xingfujie

-rw-r--r-- 1 root root 0 11月 12 06:27 yingsui.gz

[[email protected] oldboy]# cat 456.log >>123.log 追加数据,让他变 1M+

[[email protected] oldboy]# cat 456.log >>123.log 还不够 再来一次,并且把数据追加给123.log

[[email protected] oldboy]# ls -lh

总用量 1.8M

-rw-r--r-- 1 root root 1.2M 12月 3 00:07 123.log 达到数据要求

-rw-r--r-- 1 root root 596K 11月 23 13:34 456.log

drwxr-xr-x 3 root root 4.0K 11月 12 06:27 ext

-rw-r--r-- 1 root root 0 11月 12 06:27 jeacen

drwxr-xr-x 2 root root 4.0K 11月 12 07:16 new

-rw-r--r-- 1 root root 24 11月 23 05:57 nginx.conf

-rw-r--r-- 1 root root 0 11月 12 06:27 oldboy

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 test

-rw-r--r-- 1 root root 0 11月 12 06:27 widi.gz

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 xiaodong

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 xiaofan

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 xingfujie

-rw-r--r-- 1 root root 0 11月 12 06:27 yingsui.gz

[[email protected] oldboy]# cat 456.log >>455.log 这个是为了让两个文件时间一致,

[[email protected] oldboy]# ls -lh

总用量 2.4M

-rw-r--r-- 1 root root 1.2M 12月 3 00:07 123.log

-rw-r--r-- 1 root root 596K 12月 3 00:08 455.log

-rw-r--r-- 1 root root 596K 11月 23 13:34 456.log

drwxr-xr-x 3 root root 4.0K 11月 12 06:27 ext

-rw-r--r-- 1 root root 0 11月 12 06:27 jeacen

drwxr-xr-x 2 root root 4.0K 11月 12 07:16 new

-rw-r--r-- 1 root root 24 11月 23 05:57 nginx.conf

-rw-r--r-- 1 root root 0 11月 12 06:27 oldboy

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 test

-rw-r--r-- 1 root root 0 11月 12 06:27 widi.gz

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 xiaodong

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 xiaofan

drwxr-xr-x 2 root root 4.0K 11月 12 06:27 xingfujie

-rw-r--r-- 1 root root 0 11月 12 06:27 yingsui.gz

[[email protected] oldboy]# date -s 20161215

2016年 12月 15日 星期四 00:00:00 CST

[[email protected] oldboy]# find /oldboy/ -type f -name "*log" -size +1M -mtime +7

/oldboy/123.log

[[email protected] oldboy]# find /oldboy/ -type f -name "*log" -size +1M -mtime +7 -exec mv {} /tmp \;

[[email protected] oldboy]# ls -lh /tmp/

总用量 1.2M

-rw-r--r-- 1 root root 1.2M 12月 3 00:07 123.log

-rw-r--r-- 1 root root 0 11月 12 09:13 ett

drwxr-xr-x 2 root root 4.0K 11月 23 10:35 oldboy

-rw-r--r-- 1 root root 931 11月 23 08:27 passwd

[[email protected] oldboy]#

总结

1)首先我们模拟数据,创建大于1M的文件

2)然后再通过date -s 修改时间变成七天后的时间,因为系统创建文件时间是以创建时的时间,而我们修改系统时间后,文件时间不变。

3) find /oldboy/ -type f -name "*log" -size +1M -mtime +7 表示在oldboy目录下寻找*.log 的文件,-size 是文件大小的参数, 注意kb的话是要小写的。MB 就是大写。 -mtime +7 是时间参数, +7是七天前, -7是七天内。7是最近七天。

4) -exec mv {} /tmp \; mv {} 花括号里表示是前面处理的结果。


11、什么是Linux的运行级别,请描述Linux的运行级别不同数字的含义(附加题)


[[email protected] data]# cat /etc/inittab 查看当前系统运行级别文件

0 - halt (Do NOT set initdefault to this) 关机

# 1 - Single user mode 单用户模式

# 2 - Multiuser, without NFS (The same as 3, if you do not have networking) 多用户没有NFS相当于windows安全模式

# 3 - Full multiuser mode 完整多用户命令行模式

# 4 - unused 保留

# 5 - X11 图形界面模式

# 6 - reboot (Do NOT set initdefault to this) 重启


12、请描述buffer和cache的区别(附加题)

解答:

1)把数据写入到内存,存储数据的地方就叫做buffer缓冲区

2)把数据从内存取出来,这个就叫做缓存区cache.


13、请说出你知道的下列字符在Linux里可以代表的意义(附加题)

~ - . .. | >  >>  <  << !

解答:

~:表示管理员的家目录

-:表示上一级目录

.:表示当前目录

|:表示管道

>:输出重对象

>>:追加输出重对象

<:输入重对象

<<:追加输入重对象

!:取反的意思。

时间: 2024-08-05 06:50:20

Linux运维班第一关课后学习效果能力上机大考察的相关文章

老男孩教育运维班第一关入学摸底考试

创建一个目录/data 解答:mkdir /data/ 2.在/data下创建一个文件oldboy.txt 解答:touch /data/oldboy.txt 3.为oldboy.txt增加内容为"I am studying linux". 解答:(1):vi /data/oldboy.txt进入命令模式,然后按i进入编辑模式就可以写入你要输入的"I am studying linux"内容.再按Esc退出编辑模式然后再按:wq保存退出就可以了. (2):echo

老男孩linux+Python高薪运维就业班第一关课后上机实战考试题

老男孩教育linux+Python高薪运维就业班第一关课后上机实战大考察 (开课第三天上机考试题) (每题10分共130分,过100即可,请给出详细步骤) 1.创建目录/data/oldboy ,并且在该目录下创建文件oldboy.txt,然后在文件oldboy.txt里写入内容"inet addr:10.0.0.8 Bcast:10.0.0.255 Mask:255.255.255.0"(不包含引号). 2.将题1中的oldboy.txt文件内容通过命令过滤只输出如下内容: 10.0

Linux运维课程 第一阶段 重难点摘要(五)CISCO

Linux运维课程第一阶段重难点摘要(五)CISCO 一.高级路由管理 1.        路由:数据包从一台设备通过网络发往另一台不同网络中的设备,路由器不关心这些主机,它们只关心网络和通向每个网络的最佳路径.目的主机的IP地址用来保证数据包可以通过路由到达目的网络,而主机的MAC地址用于将数据包从路由器投递到目的主机. 静态路由:由管理员手动输入到路由表中的路由:不占用带宽,不会随着网络拓扑的变化而变化,缺少灵活性: 动态路由:通过动态学习得到路由:占用网络带宽和CPU资源:会随着网络拓扑的

Linux运维课程 第一阶段 重难点摘要(四)CISCO

Linux运维课程第一阶段重难点摘要(四)CISCO 一.路由器接口操作: 1.#show running-config  查看接口 2.#interface fastethernet 0/1      进入f0/1配置(0/1,0代表插槽1代表端口.若是s0/0/0,第一个0表示路由器本身) 3.#interface fastEthernet 0/1 #description tachingroute    接口描述 4.#do show running-config         do 

参加老男孩教育linux运维班的计划书

我叫ECCFOR,我经过老男孩教育运维班5-6个月的学习后我一定要达到的薪水目标是12K,为了达到此目标我将采取如下是个方案: 1.每天学习5个小时:上班路上1小时.下班路上1小时,回去以后3小时: 2.提前十分钟进入教室浏览课上要学的内容: 3.课上认真听讲.有问题及时记录.上课有机会马上询问: 4.下课后认真梳理老师讲解过的课程,并逐句理解实施操作: 5.课后作业抓紧一切时间完成老师留下的作业: 6.课后多想其他有经验的同学请教: 7.删除手机上其他娱乐相关视频.APP等: 8.及时调整心态

老男孩linux运维班学习决心书

大家好,我叫雷杰,浙江丽水人. 到老男孩教育前,我工作是UI/PHP开发,工作中也会接触到Linux,但也只是基础的LNMP环境搭建. 随着公司业务增长,对服务器运维的要求也越来越高,自己的技术短板也显现出来,虽然业余也会补充些Liunx相关的知识,但因为要工作,知识学习也是断断续续,零零散散,不成系统. 经过长时间考虑,还是决心脱产学习Linux运维,经过平时的观注,感觉老男孩教育比较专业,学员毕业后也都得到了不错的薪资,故决定到老男孩进行linux运维学习.我希望通过近半年的培训学习,自己能

Linux运维学习第一周总结

目录 一.Linux的文件系统与目录结构 二.shell的简介 三.改变终端的显示的用户名.主机名前缀.目录路径后缀 四.当执行一条命令时的查找顺序 五.使用shell脚本编写自己的时间命令 六.文件的时间戳 七.文件的硬链接和软连接 八.管道与输入输出重定向 九.练习题难点 十.总结 一.Linux的文件系统与目录结构 在Linux中一切皆可以被看作是文件,文件和目录被组织成一棵单根倒置树,根在上,枝.干.叶在下.如图所示: 各级目录简介: 1.        /  根目录,位于目录的最顶端,

linux运维入门第一周的学习部分命令!

linux运维入门一周后,部分常用命令. { 逻辑靠思维,命令全靠记!} / 根分区 代表分区的根alias 别名命令 例如:alias NAME='VALUE'cat /etc/ centos-release 查看发行版本cat /proc/meminfo 内存大小echo 显示字符ls /dev/sda* 磁盘分区情况fdisk -l 磁盘分区lsblk 块设备的情况ifconfig 查看IP地址poweroff 关机命令halt 关机命令rpm -qa |wc -l查看安装进度free 查

马哥2016全新Linux+Python高端运维班第一周作业作答

1.描述计算机的组成及其功能. 答:现代计算机设备的组成部分分为五大部分:运算器,控制器,存储器,输入设备,输出设备 其中运算器和控制器是计算机的核心,合称中央处理单元(Central Processing Unit,CPU)或者处理器.CPU内部还有一些高速存储单元,被称为寄存器,其中运算器执行所有的算术以及逻辑运算.控制器负责把每一条指令逐条从存储器中提取出来,经过编译译码之后向计算机发出各种控制指令.而寄存器位处理单元提供所需的操作数据. 存储器是计算机的记忆部分,用来存放程序所涉及的所有