运维面试题之linux基础

时间:2021-03-10 21:23:28

吐槽:

某某命令是什么,某个配置文件的路径,呃。。。。你难道不知道有--help和Tab这种东西吗?

linux系统的启动过程是怎么样的?

grub引导>加载内核>启动init进程依据inittab文件设定运行级别

怎么查看磁盘IO占用情况?

一般是用iotop工具

查看内存使用情况有哪些方法?

top 和 free 命令

强行杀掉一个进程用什么命令?

kill -9

怎么查看文件的大小?

ls -lh 或者 du -sh

使用什么命令查看 ip 地址?

ifconfig 或者 ip add li

排除网络故障一般用哪几个命令?

ping  tcpdump telnet netstat

怎么创建一个软链接?

ln -s

怎么改变一个文件的权限?

chomd

linux对用户的资源限制怎么实现?

在limits.conf配置文件中配置或者ulimit命令临时限制

怎么禁止ssh用户使用密码登陆?

在sshd_config 中password登陆的选项设置成弄no

怎么拒绝192.168.1.1访问本机的8080端口?

iptables 在INPUT链中设置

iptables -A INPUT -s 192.168.1.1 -p tcp --dport 80 -j DROP

路由转发经过iptables哪个链?

FORWARD链

同步文件一般用哪个工具?

rsync

逻辑卷怎么创建?

使用lvm 创建pv>vg>lv

你处理复杂文本一般会用什么?

awk sed grep 或者python内置的一些方法

下面是难点:

一个文件删除了但是发现空间却没释放是怎么回事?

有可能有进程正在使用这个文件,linux系统中存储数据分为两部分为数据部分和指针部分,指针位于文件系统的元数据当中(metadata)

数据被删除后指针也会被删除,但是有进程在使用这个文件指针就会被进程锁定,所以内核就认为文件并没有被删除

linux系统中的inode是什么?满了会有什么后果

因为文件都存储在硬盘的块上面,必须找到一个地方储存文件的元信息,比如创建者创建时间文件大小等等,存储文件元数据的地方就是inode

linux内核中并没有文件名的概念,是用inode号码还识别文件的,如果inode号码满了新文件将无法获得inode号码导致无法存储

能简单介绍一下文件描述的作用吗?

linux系统将所有设备都当作文件来处理,而用文件描述符来标识每个文件对象

一个进程启动后系统中会有一个已打开文件描述符表,记录着所有该进程打开的文件描述符

默认情况下,启动一个进程后,会打开三个文件,分别是标准输入、标准输出、标准错误分别使用了0、1 、2号文件描述符

linux有哪些I/O模型?

阻塞I/O、非阻塞I/O、I/O复用、信号驱动I/O、异步I/O

linux 下的有哪些IO多路复用模型?有什么区别?

select 、poll、epoll

select 每次都把fd(文件描述符)从用户态拷贝到内核态,而且每次要遍历内核中的fd,开销比较大,另外支持的fd数量太小了,默认是1024

poll跟select很像只不过支持的fd不太一样

epoll是对select和poll的改进,弥补了以上缺点,通过epoll_ctl函数实现句柄只拷贝一次,epoll_ctl会为fd指定一个回调函数从而避免遍历,epoll不受fd的数量限制具体跟系统的配置有关

iptables和netfilter是什么关系?

netfilter是linux内核的一个数据包处理模块,具有网络地址转换、数据包修改、数据包过滤的功能,还定义了5个数据数据挂载点,使得我们有机会更改数据包路由、方向、和内容

五个数据点分别是PREROUTING、INPUT、OUTPUT、FORWORD、POSTROUTING

而netfilter的规则是存在内核内存中的,用户无法直接访问到,netfilter会开放一个xtables的接口,这时候就需要一个在用户态可以修改netfilter规则的工具那就是iptables