有重复内容,但肯定是重点
Linux面试((二)
一、Linux操作系统知识
1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块?
答:RHEL、CentOS、乌班图、红旗、debian等。我是从centos6.6打基础的,www.centos.org。(7月4号我去面试,面试官问我:“你对Linux内核哪部分最熟悉?”,我一时懵逼答的进程管理。我特么哪块都不擅长啊!下次再被问到说iptables)
##类Unix有:FreeBSD 、HP-UX、AIX、solaris
2.Linux开机启动流程详细步骤是什么?系统安装完,忘记密码如何破解?
答:BIOS加电自检,决定从硬盘、光驱、还是从网络中启动——读取MBR,加载boot-loader——出现grub菜单、加载内核——启动初始进程init,读取/etc/inittab文件决定从哪个运行级别驱动——侦测硬件,加载驱动程序——硬件完成后,开始执行/etc/rc.sysinit,准备系统初始化环境,如时区、网络等——执行该运行级别下的自启服务——运行/etc/rc.local自启脚本——运行mingetty程序,出现用户登录界面,验证成功便能使用操作系统啦
3.企业中Linux服务器系统分区标准是什么?(硬盘为300G,内存16G)
答:boot:200MB swap:8G 根分区:60G(20%左右) 家分区:剩下的全部空间(/home 主要用于存放个人数据,要是服务器用户很多,这个分区得要大)
##理论上:在小于2GB物理内存的系统中,交换分区大小应该设置为内存大小的两倍,如果内存大小多于2GB,交换分区大小应该是物理内存大小加上2GB
##生产情况下,物理内存 交换分区(SWAP)
<= 4G 至少4G
4~16G 至少8G
16G~64G 至少16G
64G~256G 至少32G
4.某一天突然发现Linux系统文件只读,该怎么办呢?完整操作步骤。
答:mount -t ext4 -o romount,rw / ###重新挂载根分区
##如果上面不成功的话,按F2设置光盘启动进入救援模式(linux rescue)修复,执行"fsck.ext4 -y /dev/sda2" (假如只读的分区类型为ext4,分区为/dev/sda2)
5.安装一台系统使用DVD光盘安装,如何安装50台Linux系统如何安装呢?思考一下。
答:kickstart无人值守安装,需要配置apache、tftp、PXE、DHCP等服务
6.用虚拟机安装了一台Linux系统,突然想克隆一台服务器,克隆后发现无法上网,如何解决?
答:首先点击VMWARE的虚拟网络编辑器,移除所有VMNET,重新添加VMNET0,设置为桥接模式,再把虚拟机操作系统的网卡设置桥接即可。(亲身感受,可能因为物理主机没有长时间关机有关,重启一下试试)
##克隆后的地址冲突也是一个原因
7.Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?
答:在Centos 7以下是/etc/sysconfig/network-scripts/ifcfg-eth0,IP地址、子网掩码、网关、DNS服务器或者hosts文件记录
8.一般可以使用什么软件远程linux服务器?通过什么上传文件和下载文件?
答:软件:putty、secure-CRT、xshell、VNC(图形化)。 windows和Linux互传文件可以用winscp,Linux与Linux互传文件使用scp命令,也可以搭建FTP服务器
9./mnt目录主要用于什么?/root目录跟root用户有什么关系?/根目录与/boot目录有什么联系?
答:/mnt主要用来挂载外部设备,/root根目录是root用户的家目录,/boot目录是/根目录的子目录
10.某一天误操作,执行了rm??-rf??* ,会有哪些情况发生?请举例。
答:文件被彻底干掉,很难恢复。严重点系统瘫痪,数据全部丢失
二、Linux命令及文件操作
1.在/tmp/目录下创建test.txt文件,内容为: Hello,World! ,用一个命令写出来。
答:cd /tmp | echo "Hello,World" > test.txt
2.给test.txt文件除所有者之外增加执行权限,最终以数字写出文件的权限。
答:chmod 655 test.txt ##普通文件默认权限为655
3.用vi命令编辑test.txt,如何跳转到末行,首行,行首、行末,如何在光标行下一行插入,如何复制5行,删除10行,查找jingfeng的字符、把jingfeng替换为jfedu.net
答:末行:G 首行:gg 行首:^ 行尾:$ 光标下插入一行: o 复制5行:5yy(包括当前行)
删除10行:10dd(包括当前行) 替换::%s/jingfeng/jfedu.net/g
4.查找linux系统下以txt结尾,30天没有修改的文件大小大于20K同时具有执行权限的文件并备份到/data/backup/目录下。
答:find / -name *txt -mtime +30 -type f -size +20k -perm a=x -exec cp {} /data/backup/ \;
5.当前test.txt所属的用户为root,组为abc,请将test.txt使拥有者为abc,组为root,写出命令。
答:chown abc.root test.txt ##或者chown abc test.txt ,chgrp root test.txt
6.如何修改Linux启动级别为字符模式并永久生效,如何临时、永久关闭selinux及防火墙,请分别写出操作方法。
答:vi /etc/inittab ;id:3:initdefault: 临时关闭selinux:setenforce 0 (permissive),永久:vi /etc/sysconfig/selinux,selinux=disabled
临时关闭防火墙:service iptables stop。永久关闭防火墙:chkconfig iptables off ##不让它开机自启
7.每次开机在/tmp目录下创建一个当天的日期文件夹(提示:当前日期表示的方法为:`date +%Y%m%d`)
答:vi /etc/rc.local ,mkdir -p /tmp/`date +%Y%m%d`
8.如何查看文件内容,命令有哪些?查看文件第1行到3行,查看文件最后一行。
答:cat 、more 、less,sed '1,3p' test.txt 或者head -3 test.txt ,最后一行:tail -1 test.txt
9.查看linux服务器IP的命令,同时只显示包含ip所在的行打印出来。
答:ifconfig ,ifconfig |grep "inet addr:"
10.将普通用户test加入root组的命令是?
答:usermod -G root test
三、Linux磁盘及软件管理操作
1.如何添加一块新的50G硬盘到linux服务器系统作为单独的分区,并正在使用?需要哪些操作步骤?
答:fdisk /dev/sdb ,p键进行分区,n划分区号,分区大小可以默认,w写入分区表,partprobe可以使kernel重新读取分区信息,从而避免重启系统
格式化mkfs.ext4 /dev/sdb ,最后vi /etc/fstab, 开机自动挂载
2.有个金士顿U盘,需要往服务器/var/www/html/目录下上传一个index.html文件,如何操作并完成。
答:fdisk -l查看U盘所属盘名,mount -t vfat /dev/sdb mnt/usb , cd /mnt/usb,cp index.html /var/www/html/ (拔优盘的时候之前要umont,否则U盘多半被损坏!)
##用winscp软件将Windows中U盘的文件,远程连接拷贝到Linux对应目录中
3.有一块移动硬盘,上面有300G数据,如何快速cp到linux服务器?
答:???不知道,有人说挂载,这不合题意啊
4.光盘里面有一个httpd-2.2.15.xx.rpm包,如何挂载并安装呢?
答:mount /dev/cdrom /mnt/cdron ,cd /mnt/cdrom/Packages,rpm -ivh httpd-2.2.15.xx.rpm
5.使用rpm命令安装、卸载、更新ntp-0.7.12.x86_64.rpm这个软包。
答:rpm -ivh ,rpm -e ,rpm -uvh
6./var/www/html/是网站的发布目录,如何每天凌晨0点30对其进行自动备份,写出操作步骤?
答:crontab -e ; 30 0 * * * /bin/cp /var/www/html/* /backup/
##或者crontab -e ;30 0 * * * /bin/tar zcvf /backup/html.tar.gz /var/www/html/* &>/dev/null
7.使用tar命令打包并压缩/root目录,然后移动到/tmp下,将其权限设置其他人只读。
答:tar zcvf /tmp/root.tar.gz /* ; chmod o=r-- /tmp/root.tar.gz
8.Yum命令与rpm命令的区别?如何使用rpm安装一个有依赖的包?
答:yum能够解决rpm包安装的依赖性问题,并且yum是在线安装,需要配置yum仓库; rpm -ivh *.rpm --nodeps
##--nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了--nodeps你就能装上了。--force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用--force强制安装
9.在这个月内,每天的早上 6 点到 12 点中,每隔 2 小时创建一个test.txt文件,内容为ok,如何实现?
答:crontab -e ;0 6-12/2 * * * /bin/echo "ok" >>test.txt
##chkconfig crond on
10.将/usr/local/test目录下大于100K 的文件转移到/tmp 目录下。
答:find /usr/local/test -size +100k -a -type f -exec {} /tmp \;
11.简述 raid0 raid1 raid5三种工作模式的工作原理及特点。
答:raid0:将数据分布在所有磁盘中,利用率为100%,但是没有冗余能力,最少需要2块磁盘
raid1:采用镜像功能,每份数据都拷贝一份,利用率为50%,成本太高,冗余能力好,读性能佳,最少需要2块磁盘
raid5:最少需要3块磁盘,其中两块硬盘用来存放数据,另一块磁盘用来奇偶校验码,当其中一块磁盘数据丢失,可以通过奇偶校验码进行恢复数据
12.如何查看占用端口 8080 的进程。
答:lsof -i:8080 ###-i是IPv4、IPv6协议
四、Linux服务配置及管理
1.请写出 apache2.X 版本的两种工作模式,以及各自工作原理。如何查看apache 当前所支持的模块,并且查看是工作在哪种模式下?
答:prefork:一个进程处理一个请求,root主进程创建若干个子进程后,在请求到来的时候根据需要1秒钟创建2个进程,再过1秒钟创建4个子进程,直到满足最终的需要,这种预派生的模式,可以在请求到来时已经创建好处理进程,从而提高访问效率
worker:一个进程中的多个线程处理多个请求,由于线程之间共享地址空间,从而系统消耗比较小,资源利用率高,但是一个线程崩溃会牵连到其他线程
httpd -M 查看已经使用的模块,httpd -l查看工作模式(httpd -V也行)
2.Linux下nfs在客户端无法挂载,请写出排查步骤?
答:NFS是网络通信的文件系统,在服务端showmout-e查看是否服务端正常共享,客户端showmount -e IP 看是否能检测到,检查配置文件/etc/exports是否正确,
还有ping一下看是否能互通。
3.Linux下已经部署了dhcp服务器,客户端无法获取的IP,如何解决?
答:在客户端检查/etc/sysconfig/network-scripts/ifcfg-eth0看BOOTPRO=DHCP与否,ping命令测试客户端和服务端是否能互通,检查服务端的配置文件/etc/dhcpd.conf 是否有语法错误
4.常见的FTP软件有哪些?Linux最常用的是?如何共享一个资源让他人使用用户名和密码访问?
答:Serv-U,vsftpd; vi /etc/vsftpd/vsftpd.conf 使anonymous_enable=NO
5.如何禁止FTP使用匿名用户登录?命令行如何访问ftp服务器?
答: vi /etc/vsftpd/vsftpd.conf 使anonymous_enable=NO ;ftp IP地址
6.ApacheWEB服务器的发布目录在哪里?
答:rpm包安装的httpd服务,静态网页是在/var/www/html,动态网页是在/var/www/cgi-bin
源码包安装的httpd服务,网页是在/usr/local/apache2/htdocs
7.ApacheWEB服务器有几种工作模式,每种模式的简单区别?
答:prefork和worker
8.MySQL服务器的用途是?Apache和mysql可以安装在一台机器吗?如何查看apache和mysql端口和进程?
答:数据库存储和查询数据;可以安装在同一台机器,但是负载和磁盘IO率会影响系统整体性能,ps aux |grep httpd 或者mysqld
9.如何在虚拟机上面部署4个网站,访问的域名分别为www.a1.com??test.a1.comwww.a2.com??test.a2.com?
答:基于域名的虚拟主机,在/var/www/html建立各自相应的网页目录,
vi /etc/httpd/conf.d/vhosts.conf ##因为在/etc/httpd/conf/httpd.conf文件中含有Include conf.d/*.conf字段,代表包含该内容
NameVirtualHost 192.168.0.6:80
ServerName www.a1.com
ServerAdmin [email protected]
DocumentRoot /var/www/html/
Options Indexs FollowSymlinks
AllowOverride None
Order allow deny
Allow from all
CustomLog "/var/log/httpd/a1.com/access_log combined"
ErrorLog "/var/log/httpd/a1.com/error_log"
...
10.假设 Apache 产生的日志文件名为access_log,在 apache 正在运行时,执行命令 mv access_log access_log.bak,执行完后,请问新的 apache的日志会打印到哪里,为什么?
答:依旧会打印到access_log中(默认创建一个新文件),因为Apache的配置文件里边指定的为这个文件名,当没有的时候会自动创建
11.我们都知道 FTP 协议有两种工作模式,说说它们的大概的一个工作流程?
答:主动模式:客户端打开一个控制端口N,同时开启一个数据端口N+1,控制端口N与服务端的21端口建立连接,并发送Port命令告知对方服务端我的数据端口是N+1,于是服务端用20端口和客户端的数据端口N+1建立TCP连接,从而开始传输数据
被动模式:也是客户端打开一个控制端口N,同时开启另一个数据端口N+1,发送port命令告知服务端我的数据端口是N+1,请你连过来,然而服务端发送一个PASV命令,同时开启自己服务端的数据端口P,客户端收到这条命令后,用它的N+1端口和服务端P建立连接,完毕后即可传输数据。
12.Linux内核引导时,从哪个文件中读取要加载的文件系统。
答:/etc/fstab
13.写出下面服务的常用端口ftp http dns snmp pop3、dhcp、nfs、mysql、samba等服务。
答:ftp:21 20 http:80 dns:53 snmp:25 pop3:110 dhcp:67 nfs:111 mysql:3306 samba:137 138 139
14.Mysql创建数据库的命令,创建表的命令,插入语句的命令?
答:create database test_db; use test_db ; create table tb_name;insert into table_name values ( );
15.Mysql备份命令?Mysql如何给root用户对jfedu授权访问,密码为jfedu.net,请写出命令?
答:mysqldump -uroot -p123456 -h127.0.0.1 >> back_sql; mysql>grant all privileges on *.jfedu to root@'192.168.0.1' identified by jfedu.net;
16.Mysql忘记密码该如何操作呢?
答:[root@localhost log]# mysqladmin -uroot -h127.0.0.1 password "123456"
##停止mysql服务,编辑/etc/my.cnf,在mysqld选项中加一行 --skip-grant-start保存后启动mysql,此时无需密码。进去之后执行
mysql> use mysql;
mysql> update user set password=password('newpass') where user='root';
mysql> flush privileges;
17.Linux运维工程师都需要具备哪些技能和职业品质?
答:技能:(1)足够专业的知识面储备(2)凭熟悉程度+相关文档结合配置服务,以便提高工作效率又防止漏配
品质:(1)学会去积累,网络、系统、数据库领域知识多如牛毛,以便于跟不同人士进行交流
(2)对排错过程,问题以及解决方法做好笔记,等下个问题来了的时候,能记着最好,记不着就来查看笔记,以最快速度去解决问题,而把时间精力拿来研究下一个问题
(3)谨慎,有可能误操作让公司损失惨重,个人信心受到影响
(4)责任心,主人翁意识,这片区域归我管!