Linux面试必问题,想从事Linux工作这些你会了吗?

249 阅读5分钟

笔者其实没有想到去面试,只是在智联上更新了一下简历,就陆陆续续接到很多猎头的邮件和电话,闲话少说,下面就分享给大家Linuxer的面试经历,下面这份是猎头发给我的岗位说明,为了职业道德操守,公司的介绍和面试通知信息我就不贴出来了,我就把岗位要求贴出来:

职位描述:

1、 负责应用服务器的安装、配置、优化与维护;

2、 负责应用系统的日志信息备份、管理、维护与分析;

3、 负责应用系统的日常监测于维护、故障处理、性能分析与优化;

4、 负责应用部署系统、环境配置系统、监控系统的开发、部署、升级与维护,建设高性能的运维平台。

岗位要求:

1、 熟悉Linux操作系统的基础知识,熟练使用Linux常用操作命令;

2、 熟练配置Nginx、HAproxy 等应用相关软件的部署、配置与优化维护;

3、 熟悉网络基础知识、熟悉TCP/IP的工作原理,会配交换机或路由器,能熟练的对网络情况进行分析

4、 熟悉shell/perl/python中的一种或多种进行运维程序的开发;

5、 熟悉Nagios,Ganglia等监控软件

看着上面的要求大家是不是觉得要求也不高啊,你要细看就会发现,这家公司要求的还挺多,不仅要会网络知识(熟悉TCP/IP好像是每家单位的都会写这样的要求),还要会开发技能。相信很多做运维的兄弟在网络这一块是个头疼的事情,都对交换机和路由器不怎么会配置和管理。

关键点来了,就是和面试官沟通了,有笔试的公司会让你做些面试题,没有笔试就直接和面试官聊了,下面是我和面试官沟通完之后记住的一些问题,分享给大家看一下,笔者一共记住了7个问题,好像还有两个问题实在想不起来了,如果大家有更恰当的回答一定要贴出来一起探讨和进步:

1、介绍下自己?

(几乎每家公司首先都会让你做个自我介绍,好像是必修课一样)

回答:此处省略笔者的自我介绍,笔者建议介绍自己的时间不宜过长,3-4分钟为宜,说多了面试官会觉得你太啰嗦了。说太少了也不行,那样会让人感觉你的经历太简单了、太空了。

正常情况下,一般你在做自我介绍的同时,面试官这个时候在看你的简历,他需要一边看简历、一边听你介绍自己,如果你说个几句话就把自己介绍完了,他肯定还没缓过神来,对你的映像会减分的。在介绍的同时思维要清晰,逻辑要清楚,最好是根据你简历上写的经历来介绍,这样可以把面试官的思路带到你这里来,让他思路跟着你走。不要东扯一句,西扯一句。

尽量少介绍自己的性格、爱好(最好能不说就不说),你可以简单罗列干过几家公司(最多罗列3家公司/也包含目前所在的公司,注意顺序不要乱),都在那几家公司负责什么工作,都用过什么技术,在着重介绍一下你目前所在的公司是负责哪些工作的,可以稍微详细一点介绍,不要让面试官听着晕头转向的感觉。

2、灰度发布如何实现?

回答:这个问题事后在知乎上看到了一位网友的建议觉得不错,大家可以参考看一下 !

仔细考虑一下灰度发布系统要达到哪些目的,基本就能有答案了。需要注意的是,客户端应用(无论PC端还是移动端)的灰度发布要比Web应用的灰度发布更为复杂,因为应用运行在用户持有的终端上,数据采集和回滚都更为困难(但可采集的数据类型要更加丰富)。

注:本人缺乏移动客户端产品的经验,下述内容可能不适用于移动客户端产品。

我所理解的灰度发布系统,主要任务是从产品用户群中按照一定策略选取部分用户,让他们先行体验新版本的应用,通过收集这部分用户对新版本应用的显式反馈(论坛、微博)或隐式反馈(应用自身统计数据),对新版本应用的功能、性能、稳定性等指标进行评判,进而决定继续放大新版本投放范围直至全量升级或回滚至老版本。

另外这个问题很重要CentOS 7 vs CentOS 6的不同

(1)桌面系统

[CentOS6] GNOME 2.x

[CentOS7] GNOME 3.x(GNOME Shell)

(2)文件系统

[CentOS6] ext4

[CentOS7] xfs

(3)内核版本

[CentOS6] 2.6.x-x

[CentOS7] 3.10.x-x

(4)启动加载器

[CentOS6] GRUB Legacy (+efibootmgr)

[CentOS7] GRUB2

(5)防火墙

[CentOS6] iptables

[CentOS7] firewalld

(6)默认数据库

[CentOS6] MySQL

[CentOS7] MariaDB

(7)文件结构

[CentOS6] /bin, /sbin, /lib, and /lib64在/下

[CentOS7] /bin, /sbin, /lib, and /lib64移到/usr下

(8)主机名

[CentOS6] /etc/sysconfig/network

[CentOS7] /etc/hostname

(9)时间同步

[CentOS6]

$ ntp

$ ntpq -p

[CentOS7]

$ chrony

$ chronyc sources

(10)修改时间

[CentOS6]

$ vim /etc/sysconfig/clock

ZONE="Asia/Tokyo"

UTC=fales

$ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

[CentOS7]

$ timedatectl set-timezone Asia/Tokyo

$ timedatectl status

(11)修改地区

[CentOS6]

$ vim /etc/sysconfig/i18n

LANG="ja_JP.utf8"

$ /etc/sysconfig/i18n

$ locale

[CentOS7]

$ localectl set-locale LANG=ja_JP.utf8

$ localectl status

(12)服务相关

1)启动停止

[CentOS6]

$ service service_name start

$ service service_name stop

$ service sshd restart/status/reload

[CentOS7]

$ systemctl start service_name

$ systemctl stop service_name

$ systemctl restart/status/reload sshd

自启动

[CentOS6]

$ chkconfig service_name on/off

[CentOS7]

$ systemctl enable service_name

$ systemctl disable service_name

服务一览

[CentOS6]

$ chkconfig --list

[CentOS7]

$ systemctl list-unit-files

$ systemctl --type service

强制停止

[CentOS6]

$ kill -9

[CentOS7]

$ systemctl kill --signal=9 sshd

(13)网络

1)网络信息

[CentOS6]

$ netstat

$ netstat -I

$ netstat -n

[CentOS7]

$ ip n

$ ip -s l

$ ss

2)IP地址MAC地址

[CentOS6]

$ ifconfig -a

[CentOS7]

$ ip address show

3)路由

[CentOS6]

$ route -n

$ route -A inet6 -n

[CentOS7]

$ ip route show

$ ip -6 route show

(14)重启关闭

1)关闭

[CentOS6]

$ shutdown -h now

[CentOS7]

$ poweroff

$ systemctl poweroff

2)重启

[CentOS6]

$ reboot

$ shutdown -r now

[CentOS7]

$ reboot

$ systemctl reboot

3)单用户模式

[CentOS6]

$ init S

[CentOS7]

$ systemctl rescue

4)启动模式

[CentOS6]

[GUICUI]

$ vim /etc/inittab

id:3:initdefault:

[CUIGUI]

$ startx

[CentOS7]

[GUICUI]

$ systemctl isolate multi-user.target

[CUIGUI]

$systemctl isolate graphical.target

默认

$ systemctl set-default graphical.target

$ systemctl set-default multi-user.target

当前

$ systemctl get-default