[考试目的]

1.学生课后复习及预习情况。
2.未来实际工作中做人做事能力。
3.沟通及口头表达能力。

[口头表达技能考试题]
1.描述linux的开机到登陆界面的启动过程(记时2分钟)

*****Linux系统的启动过程:(必须会的题目)

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

解答:

1. 开机BIOS自检

 2. MBR引导:硬盘 0  柱面 0  磁道 1  扇区的前446byte(引导程序)
 3. grub引导菜单:cat /etc/grup.conf
 4. 加载内核kernel
 5. 启动init进程:init进程是Linux第一个启动进程。[root@localhost ~]# ps -ef|grep init
 6.读取inittab文件,执行rc.sysinit,rc等脚本
/etc/inittab
/etc/rc.d/rc.sysinit 设定主机名
/etc/rc.d/rc脚本 设定运行级别
 7. 启动mingetty,进入系统登陆界面 
 


2.描述linux下软链接和硬链接的区别。(记时2分钟)


3.linux shell中单引号和双引号或不加引号的区别(记时2分钟)

19、’     #单引号,所见即所得(看到啥就输出啥),不具有变量置换功能。
20、”     #双引号,具有变量置换功能(会解析里面的内容),不加引号时相当于双引号,但常用双引号。


4.linux运行级别0-6(记时1分钟)

0-halt(Do NOT set initdefault to this)      关机。
1-Single user mode          单用户状态,需要维护服务器时用,比如密码丢失。
2-Multiuser,without NFS(The same as 3,if you not have networking)   多用户模式。
3-Full multiuser mode      完整多用户模式,命令行模式.工作环境一般用3级别。
4-unused     没有使用,保留的。
5-Xll        带桌面的模式。
6-reboot (Do NOT set initdefault to this)   重启。


5.描述linux下文件删除的原理(3分钟)

Linux文件删除原理:

    Linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说,每个文件都有2个link计数器:i_count 和 i_nlink。

i_count的意义是当前文件使用者(或被调用)的数量,i_nlink 的意义是介质连接的数量(硬链接的数量);可以理解为i_count是内存引用计数器,i_nlink是磁盘的引用计数器。

当一个文件被某一个进程引用时,对应i_count数就会增加;当创建文件的硬链接的时候,对应i_nlink数就会增加。

对于删除命令rm而言,实际就是减少磁盘引用计数i_nlink。这里就会有一个问题,如果一个文件正在被某个进程调用,而用户却执行rm操作把文件删除了,那么会出现什么结果呢?当用户执行rm操作删除文件后,再执行ls或者其他文件管理命令,无法再找到这个文件了,但是调用这个删除的文件的进程却在继续正常执行,依然能够从文件中正确的读取及写入内容。这又是为什么呢?

这是因为rm操作只是将文件的i_nlink减少了,如果没其它的链接i_nlink就为0了;但由于该文件依然被进程引用,因此,此时文件对应的i_count并不为0,所以即使执行rm操作,但系统并没有真正删除这个文件,当只有i_nlink及i_count都为0的时候,这个文件才会真正被删除。也就是说,还需要解除该进程的对该文件的调用才行。

以上讲的i_nlink及i_count是文件删除的真实条件,但是当文件没有被调用时,执行了rm操作删除文件后是否还可以找回被删的文件呢?

前面说了,rm操作只是将文件的i_nlink减少了,或者说置0了,实际就是将文件名到inode的链接删除了,此时,并没有删除文件的实体即(block数据块),此时,如果及时停止机器工作,数据是可以找回的,如果此时继续写入数据,那么当新数据就可能会被分配到被删除的数据的block数据块,此时,文件就会被真正的回收了,那时就是神仙也没有办法了。


[技术技能笔试考试题]
说明:
请针对问题给出相关命令答案,写到问题的下边即可(如果实在不会可以百度搜,写上答案,标记是百度搜索得到(该题分数减半))。
以下均为centos linux root环境下命令结果
考试范围:
以往课程内容及留的作业(包括预习内容),
 
考试题(15道):共100分,要求15分钟内完成
 1.如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r--r-- 为 644, 要求使用命令取得

644 这样的数字。

 1 [root@server ~]# stat /etc/hosts
2 File: "/etc/hosts"
3 Size: 178 Blocks: 8 IO Block: 4096 普通文件
4 Device: 803h/2051d Inode: 130078 Links: 1
5 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
6 Access: 2015-12-24 15:50:01.351799952 +0800
7 Modify: 2015-12-02 21:43:38.484600576 +0800
8 Change: 2015-12-02 21:43:38.484600576 +0800
9 #方法1:后向引用法
10 [root@server ~]# stat /etc/hosts|sed -nr '4s#^.*: \(0(.*)/-.*$#\1#gp'
11 644
12 #方法2:awk多分隔符取列
13 [root@server ~]# stat /etc/hosts|awk -F '[0/]' 'NR==4 {print $2}'
14 644
15 #方法3:awk多分隔符取列
16 [root@server ~]# stat /etc/hosts|sed -n '4p'|awk -F '[0/]' ' {print $2}'
17 644
18 #方法4:命令直接取
19 [root@server ~]# stat -c %a /etc/hosts # %a表示访问权限八进制
20 644
21 #方法5:扩展如何将ls -l命令中的权限字符转换为八进制?
22 [root@server ~]# ll /etc/hosts|cut -c 2-10|tr "rwx-" "4210"|awk -F "" '{print $1+$2+$3 $4+$5+$6 $7+$8+$9}'
23 644
24 #知识点:1.tr字符替换的使用;2.cut -c截取字符;3.awk指定分隔符为空。

方法一:

方法二:

方法三:

[ ]:匹配包含在[字符]之中的任意一个字符

方法四:(最佳方法,问题是你会不会想到stat,-c,%a?)

方法五:

2.linux下通过mkdir命令创建一个新目录/oldboy/ett,它的硬链接数是多少,为什么?

如果在/oldboy/ett下面再创建一个目录test,再问/oldboy/ett的硬链接数是多少?为什么?

如果在/oldboy/ett下面再创建一个目录test,再问/oldboy/ett的硬链接数是3

#解答:inode节点号相同,则硬链接数为/oldboy/ett算一个,/ett目录下隐藏文件.算一个,还有/ett/test目录下..算一个,
则在不创建/test目录情况下,/oldboy/ett的硬链接数为2,在创建了/oldboy/ett/test目录后,硬链接数为3。

 

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

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

 1  1 #/etc/sysconfig/network-scripts/ifcfg-eth0:(必须记住)
2 2 DEVICE=eth0 #设备
3 3 HWADDR=00:0C:29:93:5D:E4 #对于虚拟机克隆需要将这项删除,防止冲突
4 4 TYPE=Ethernet #网络类型
5 5 UUID=4f58613e-e829-49a8-86da-f0444d86781d ##对于虚拟机克隆需要将这项删除,防止冲突
6 6 ONBOOT=yes #开机启动
7 7 NM_CONTROLLED=yes
8 8 #BOOTPROTO=dhcp
9 9 BOOTPROTO=static #静态IP
10 10 IPADDR=192.168.1.11 #IP地址
11 11 NETMASK=255.255.255.0 #子网掩码
12 12 GATEWAY=192.168.1.1 #网关
13 13 DNS1=192.168.1.1 #DNS
14 14
15 15 #/etc/resolv.conf (必须记住)
16 16 ;generated by /sbin/dhclient-script #由这个脚本生成
17 17 search localdomain oldboy.local #搜索域
18 18 nameserver 192.168.1.1 #名称服务器,写入会被覆盖 PS:如果配置DNS,ifcfg-eth0优先于resolv.conf。

5.查找当前目录下所有文件,并把文件中的www.google.com字符串替换成www.baidu.com;

 1 #模拟创建文件
2 [root@server ~]# cat >>newfile<<EOF
3 fgsdgsdfdsmldsmgdls,,,,;sdkgsdwww.google.comgelewgmewlgmewgwelgewww.google.com
4 gsgewgewgeomomodsgmegipweigtepvsnvdvd dfjwwewww.google.com
5 rewrwero39r309,.;l'121'l'..www.google.com
6 erjeowew.emglwewetwewww.google.com
7 35325325230www.google.com
8 EOF
9 #sed替换
10 [root@server ~]# find ./ -type f -name "newfile"|xargs sed -i 's#www.google.com#www.baidu.com#g
11 #查看文件是否替换
12 [root@server ~]# cat newfile
13 fgsdgsdfdsmldsmgdls,,,,;sdkgsdwww.baidu.comgelewgmewlgmewgwelgewww.baidu.com
14 gsgewgewgeomomodsgwww.baidu.commegipweigtepvsnvdvd dfjwwewww.baidu.com
15 rewrwero39r309,.www.baidu.com;l'121'l'..www.baidu.com
16 erjwww.baidu.comeowew.emglwewetwewww.baidu.com
17 353www.baidu.com25325230www.baidu.com
18 #扩展:在生产场景,如果遇到木马,广告脚本植入,所有网络文件,以及用户文件都被植入,不可代码重新铺设;
使用备份还原会损失上个备份点到备份还原完成的数据,不可取,此时就可以使用sed -i批量将脚本删除,而不影响正常的业务。 ***这是一个企业生产环境实际遇到的问题,该企业一个lamp的服务器,站点目录下所有文件均被植入了一串脚本,
包过图片也被植入了,网站打开时就会调用这个脚本的地址,显示一个广告,造成的影响很恶劣。
·实际解决办法就是遍历所有目录所有文件,把以上被植入的内容删除掉。

6.问题:如何赋予oldboy文件-rw-r--r-x权限属性

 1 [root@server ~]# ls -ld oldboy
2 drwxr-xr-x 2 root root 4096 12月 24 17:50 oldboy #原目录权限为755
3 方法1:数字修改方法
4 [root@server ~]# chmod 645 oldboy
5 [root@server ~]# ls -ld oldboy
6 drw-r--r-x 2 root root 4096 12月 24 17:50 oldboy
7 方法2:字符权限修改方法
8 [root@server ~]# chmod u-x,g-x oldboy ##等价于chmod u=rw,g=r,o=rx
9 [root@server ~]# ls -ld oldboy
10 drw-r--r-x 2 root root 4096 12月 24 17:50 oldboy
11 #注释
12 r===4
13 w===2
14 x===1

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

1 [root@server ~]# su - test
2 [test@server ~]$ sudo su - oldboy
3 [sudo] password for test: ##输入test的密码

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

 1 [root@server ~]# echo "oldboy";echo "oldboy"
2 oldboy
3 oldboy
4 [root@server ~]# echo -n "oldboy";echo "oldboy" ## -n不换行输出
5 oldboyoldboy
6 [root@server ~]# echo -e "oldboy\toldgirl" ## -e:解析转义字符,\t tab
7 oldboy oldgirl
8 [root@server ~]#
9 [root@server ~]# echo -e "oldboy\noldgirl" ##\n回车
10 oldboy
11 oldgirl

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

 1 #年短格式
2 [root@server ~]# date +%y-%m-%d
3 15-12-24
4 #年长格式
5 [root@server ~]# date +%Y-%m-%d
6 2015-12-24
7 [root@server ~]# date +%F
8 2015-12-24
9 #显示周几
10 [root@server ~]# date +%u
11 4
12 [root@server ~]# date +%w
13 4
14 #拓展:日志轮询可以使用使用定时任务定期删除7天前的日志;也可以使用*.log.$(date +%w)创建,轮一周新的日志就自动覆盖就的日志文件。还可以表示为*.log.`date +%w`来创建。其中`date +%w`===$(date +%w) 更新阿里云时间:ntpdate ntp1.aliyun.com
 

时间命令会用在打包文件时:

10.问题:当从root用户切到普通用户时,执行ifconfig会提示如下。(centos5有这个问题,centos6已经不会有这个问题了。)

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

1 #环境变量PATH的问题
2 #可以临时生效
3 export PATH=/sbin/ifconfig:$PATH
4 #也可以永久生效,将以上语句写入/etc/profile中

11.扩展问题:打印三天前的日期格式如:2015-12-10

 1 [root@server ~]# date +%F
2 2015-12-24
3 [root@server ~]# date +%F -d "-3day" ##显示三天前的日期
4 2015-12-21
5 #date的其他用法:
6 #现在时间
7 [root@server ~]# date +%F\ %T
8 2015-12-24 21:34:19
9 #1表示过去三天时间
10 [root@server ~]# date +%F\ %T -d "-3day"
11 2015-12-21 21:35:31
12 #2表示将来三天时间
13 [root@server ~]# date +%F\ %T -d "+3day"
14 2015-12-27 21:36:03

12.已知/oldboy/test.txt文件内容如下:

编辑文件内容:

[root@server oldboy]# echo "
> fsdfdsgdsgsdoldboy
>
> gdgdsgsdgweewgewg
>
> whalodlggoyw" >>test.txt
[root@server oldboy]# ls
test.txt
[root@server oldboy]# cat test.txt

fsdfdsgdsgsdoldboy

gdgdsgsdgweewgewg

whalodlggoyw

请将文件中空行过滤掉;

 1 #方法1:
2 [root@server oldboy]# grep -v '^$' test.txt
3 fsdfdsgdsgsdoldboy
4 gdgdsgsdgweewgewg
5 whalodlggoyw
6 #方法2:
7 [root@server oldboy]# grep -o '.*' test.txt
8 fsdfdsgdsgsdoldboy
9 gdgdsgsdgweewgewg
10 whalodlggoyw
11 #方法3:使用sed显示
12 [root@server oldboy]# sed '/^$/d' test.txt
13 fsdfdsgdsgsdoldboy
14 gdgdsgsdgweewgewg
15 whalodlggoyw
16 #方法4:使用awk
17 [root@server oldboy]# awk '/^[^$]/' test.txt
18 fsdfdsgdsgsdoldboy
19 gdgdsgsdgweewgewg
20 whalodlggoyw
21 #方法5:使用awk NF判断
22 [root@server oldboy]# awk 'NF>0 {print $0}' test.txt
23 fsdfdsgdsgsdoldboy
24 gdgdsgsdgweewgewg
25 whalodlggoyw

13.已知/oldboy/ett.txt文件内容为:

oldboy
olldbooooy
qerwerwer

请使用grep或egrep正则匹配的方式过滤出前两行内容

 1 #方法1:过滤以“o”开头的
2 [root@server oldboy]# grep '^o' ett.txt
3 oldboy
4 olldbooooy
5 #方法2:过滤以“y”结尾的
6 [root@server oldboy]# grep 'y$' ett.txt
7 oldboy
8 olldbooooy
9 方法3:排除以“^q”开头的
10 [root@server oldboy]# grep -v '^q' ett.txt
11 oldboy
12 olldbooooy

14.描述下列路径的内容是做什么的?

1 /var/log/messages #系统日志
2 /var/log/secure #安全日志
3 /var/spool/clientmqueue #邮件临时目录
4 /proc/interrupts #中断相关文件
5 /etc/fstab #磁盘文件系统开机自启动文件
6 /etc/profile #环境变量配置文件

15.如何快速查到ifconfig的全路径,请给出命令;

 1 [root@server oldboy]# which ifconfig    #which
2 /sbin/ifconfig
3 [root@server oldboy]# whereis -b ifconfig #whereis -b -b:表示查二进制命令
4 ifconfig: /sbin/ifconfig
5 [root@server oldboy]# locate ifconfig
6 /sbin/ifconfig
7 /usr/lib/python2.6/site-packages/Sphinx-1.0.8-py2.6.egg/sphinx/ext/ifconfig.py
8 /usr/lib/python2.6/site-packages/Sphinx-1.0.8-py2.6.egg/sphinx/ext/ifconfig.pyc
9 /usr/lib/python2.6/site-packages/Sphinx-1.0.8-py2.6.egg/sphinx/ext/ifconfig.pyo
10 /usr/lib/python2.6/site-packages/sphinx/ext/ifconfig.py
11 /usr/lib/python2.6/site-packages/sphinx/ext/ifconfig.pyc
12 /usr/lib/python2.6/site-packages/sphinx/ext/ifconfig.pyo
13 /usr/sbin/pifconfig
14 /usr/share/man/man8/ifconfig.8.gz
15 /usr/share/man/man8/pifconfig.8.gz
16 /usr/share/man/pt/man8/ifconfig.8.gz
17 /usr/share/zsh/4.3.11/functions/_ifconfig
18 [root@server oldboy]# sudo find / -type f -name ifconfig ##find查找,不加sudo,会查找proc等
19 /sbin/ifconfig

16.每周日上午 9: 30 来老男孩 linux 培训上课(用/oldboy.sh 代替),请用 linux 定时任务命令表示。

1 30 09 * * 0 sh /oldboy.sh

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

1 [root@server oldboy]# who ## 2 root pts/0 Dec 23 19:42 (192.168.1.151)

18. 公司一开发人员申请对某一服务器 10 天的普通用户权限,请问你如何操作?

1 [root@server ~]# sudo useradd test2 -e `date +%F -d "+10day"`
2 [root@server ~]# sudo tail -2 /etc/shadow
3 test:!!:16777:0:99999:7:::
4 test2:!!:16793:0:99999:7::16803: ##10天有效期,时间到取消账户

19.请给出正确的关机和重起服务器的命令。

1 halt

2 shutdown -h now

3 reboot

4 shutdown -r

5 init 0

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

 1 Ctrl + a  命令首
2 Ctrl + c 取消进程或者命令
3 Ctrl + d logout
4 Ctrl + e 命令尾
5 Ctrl + l 清屏
6 Ctrl + u 删除光标以前
7 Ctrl + k 删除光标以后
8 tab 命令、路径补全
9 Ctrl+shift+c 复制
10 Ctrl+shift+v 粘贴
 wc -L的面试题:
for 循环打印下面这句话中字母数不大于6的单词:
I am oldboy teacher welcome to oldboy training class.
解答:
[root@localhost ~]# for word in I am oldboy teacher welcome to oldboy training class.;do [ `echo $word|wc -L` -le 6 ] && echo $word;done
I
am
oldboy
to
oldboy
class.

[做人做事技巧考试]
问题1():
A公司请了个技术顾问,技术很一般,你对他不服,但技术顾问和技术部老大关系不错,这时技术顾问给你分配任务,按照你的思维这个任务明知是不对的,你是照做,还是以什么姿态应对? 为什么?
如:部署负载监控已经有的负载监控的插件check_load插件不用,非让你去开发脚本实现,然后不说为什么。再比如公司有公车可以申请,但是领导让你自己把服务器弄到机房。(打车报不了)。

NO24 第三关--企业面试题的更多相关文章

  1. Shell企业案例实战和企业面试题

    shell企业面试题 1.批量创建带有随机小写字符文件程序 使用for循环在/pizza目录下创建10个html文件,其中每个文件包含10个随机小写字母加固定字母_pizza 1.思路分析: 核心是: ...

  2. (转)linux运维必会MySQL企业面试题

    linux运维必会MySQL企业面试题  老男孩教育运维班全体学员MySQL必会企业面试题最实战.最细致.最落地的运维实训基地,老男孩教育连续多年国内平均就业工资最高! 数据库的重要性是所有技术里最核 ...

  3. (转)2017年最新企业面试题之shell(一,二)

    2017年最新企业面试题之shell(一) ********************************************** 企业Shell面试题1:批量生成随机字符文件名案例 * *** ...

  4. (转)关于inode和block的两道企业面试题

    关于inode和block的两道企业面试题 原文:http://www.tk4479.net/xiaolong361/article/details/52373374 一.一个100M的磁盘分区,分别 ...

  5. 运维派 企业面试题4&5 创建10个 用户 ; ping探测主机是否在线

    Linux运维必会的实战编程笔试题(19题) 企业面试题4: 批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串). #!/bin/bash # ;i<=; ...

  6. 运维派 企业面试题3 为上题中的 "十个随机字母_test.html" 文件 更名

    Linux运维必会的实战编程笔试题(19题) 企业面试题3 #将试题2中创建的文件名uopiyhgawe_test.html# test-->修改为omg,html-->HTML 方法一: ...

  7. 运维派 企业面试题2 创建10个 "十个随机字母_test.html" 文件

    Linux运维必会的实战编程笔试题(19题) 企业面试题2: 使用for循环在/tmp/www目录下通过随机小写10个字母加固定字符串test批量创建10个html文件,名称例如为: --[root@ ...

  8. 运维派 企业面试题1 监控MySQL主从同步是否异常

    Linux运维必会的实战编程笔试题(19题) 企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读 ...

  9. memcached企业面试题

    面试题如下: 1.Memcached是什么,有什么作用?Memcached是一个开源的,高性能的内存绶存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思. Memcached的作用:通 ...

随机推荐

  1. redis哨兵模式启动redis-sentinel sentinel.conf 报错

    [root@node01 redis-3.2.8]# redis-sentinel sentinel.conf *** FATAL CONFIG FILE ERROR ***Reading the c ...

  2. 01-JAVA语言基础(动手动脑)

    一.一个JAVA类文件中只能有一个public类吗? 01-JAVA语言基础.ppt第22页“一个Java源文件中可以写多个类,但其中只能有一个类是“公有(public)”的,并且Java要求源文件名 ...

  3. Copy-On-Write容器(转载)

    Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改, ...

  4. Codeforces1140D. Minimum Triangulation

    题目链接 本题是区间dp里的三角剖分,板子题,dp[i][j]表示凸多边形i-j构成的最值,转移方程为dp[i][j] = min/max(dp[i][k]+dp[k][j]+w[i,j,k])(i& ...

  5. MySQL高级 InnoDB 和 MyISAM 的区别

    InnoDB:支持事务处理等不加锁读取支持外键支持行锁不支持FULLTEXT类型的索引不保存表的具体行数,扫描表来计算有多少行DELETE 表时,是一行一行的删除InnoDB 把数据和索引存放在表空间 ...

  6. SpringBoot 集成Log4j、集成AOP

    集成Log4j (1)在pom.xml中添加依赖 <!--去掉springboot默认的日志--> <dependency> <groupId>org.spring ...

  7. Preparing for the interview of FLAG and USDA

    7,Dynamic Programming 1,Unique Paths A robot is located at the top-left corner of a m x n grid (mark ...

  8. SQL的四种连接(内连接,外连接)

    一,内连接(inner join) 内连接(INNER JOIN):分显式的和隐式的,返回连接表中符合连接条件和查询条件的数据行.(所谓的连接表就是数据库在做查询形成的中间表). 1.隐式的内连接 没 ...

  9. Android开发之显示分辨率及单位

    Android 各种屏幕分辨率: VGA:         Video Graphics Array,即:显示绘图矩阵,相当于640×480 像素: HVGA:       Half-size VGA ...

  10. node.js绑定监听事件EventEmitter类

    Node.js 有多个内置的事件,我们可以通过引入 events 模块,并通过实例化 EventEmitter 类来绑定和监听事件,如下: // 引入 events 模块 var events = r ...