100 道 Linux 面试题(附答案及pdf)

老实说,这1 00道Linux面试题非常重要。
我在准备面试的时候也看过类似的东西。
但仅仅阅读摘要可能还不够。
我必须告诉你一个更具体的经历。

比如在关于Nginx负载均衡的第三个问题中,我遇到了一个陷阱。
有一个客户使用IPHash策略。
因此,用户报告说他们始终访问同一后端服务器。
后来经过排查,发现是配置错误——流量模块IP地址检索正则化太严格,只捕获了内网IP地址。
老实说,只看摘要很容易错过这么详细的问题。
要理解这一点,您必须将其与真实的网络环境结合起来。
ngx_stream_module确实是一个被遗忘的模块,但是当涉及到四级代理场景时,它比ngx_http_upstream_module灵活得多。

针对第五个问题,我给大家举一个MySQL主从复制的真实例子。
当系统达到一定程度时,数据库的延迟跃升至 1 0 秒。
按理说Binlog应该可以抑制,但是后来发现是max_allowed_pa​​cket I/O流配置参数太小,导致Binlog的核心库被截断。
这样的问题不是单纯看电路图就能解决的。
必须经历过坑才能明白设置参数的重要性。
xtrabackup 确实很棒。
当我对电子商务系统进行完整备份时,InnoDB表在几秒钟内就打开了。
但在进行增量备份时,要注意log_bin_trust_database_change设置,否则可能会出现问题。

关于问题7 提到的监控工具,如果使用得当,ELK组合可以省去很多问题。
对于一个财务项目,我使用 Logstash 和 Beats 来收集日志。
我发现系统日志中的 BGP 路由问题导致数据包丢失。
我当时很担心,最后发现我我必须手动将Syslog源IP段添加到防火墙白名单中。
zabbix中主动/被动模式的选择也颇为神秘。
有一种运营商设计,其中被动模式比主动模式更稳定,因为客户网络中的延迟很高。

在第9 题的网络协议部分,我遇到了一个关于三向握手的奇怪问题。
在一次具体的跨云部署中,客户端的SYN报文实际上在director上进行了两次NAT,导致连接建立超时。
如果你以前没有遇到过这样的问题,很难判断。
您必须了解IP层的细节。
动态/静态资源分类其实更重要。
当我在搭建一个特定的视频平台时,我发现当短视频直接作为静态资源安装时,命中CDN缓存的可能性从6 0%增加到8 5 %。

安全也很有趣。
测试表明,当CPU核心数设置为+1 时,Nginx的worker_processes性能更好,但后来在单核服务器上挂了——因为负载均衡算法在切换worker时丢失了会话。
配置 Tomcat JVM 设置是一项技术工作。
当我为特定系统配置GC设置时,线程堆栈溢出变成了内存溢出。
我当时真是哭笑不得。

这些细节不能仅仅通过阅读摘要来了解。
它们需要通过累积的项目经验来理解。
建议将这些问题分解为几个部分,并找到与每个问题相对应的现实生活案例。
例如,对于LVS-NAT模式,可以在文档中找到更改请求头的描述;对于单线程Redis,您可以查看Reactor 6 .0架构实现。
老实说,面试官喜欢问“细节决定成败”之类的问题。
光知道原理是没有用的。
您需要知道什么情况会导致问题以及如何解决这些问题。

干货分享|面试常考的 21 条 Linux 命令

说白了,如果你想在Linux面试中获得高分,这2 1 条命令就是你的核心武器库。
但不要以为只记住就够了,可以灵活运用。

我们先来说说最重要的。
去年我们做的高并发项目只是基于find/-size+5 0M-execrm{};以保存系统。
如果使用得当,这个命令可以节省运维团队一半的时间。
另一点是 grep 使用正则表达式非常有趣。
例如grep-A3 的error\|warn日志文件直接为你提供了上下文,面试官一眼就能了解你的技术深度。
还有另一个关键细节。
当chmod使用数字表示权限时,7 5 5 并不是随机写入的。
rwx对应的数字加起来是7 一开始我以为按顺序做就可以了,后来发现不对。
我必须像 r=4 +w=2 +x=1 那样分割它。

等一下,还有一件事。
不要混合 tar 的不同 jczv 参数。
例如,打包时,-j 表示bzip2 ,-z 表示gzip。
如果顺序错误,压缩会直接失败。
老实说,这很混乱,所以我建议单独写下来。
最简单的陷阱是 rm-rf。
去年,一位同事在运行此命令之前没有创建备份。
结果整个申请表都丢了,三天的工资也丢了。

建议在不同场景下练习这些命令。
例如,如果您正在监视一个进程,使用 top+grep 比 ps-aux 快得多。
但不要记住它。
如果你能清楚地解释为什么在面试时使用这个命令比使用这个命令更有效率,那将会很有帮助。

linux经常问的面试题有哪些?

1 .检查内核版本:uname -a 或 cat /proc/version 2 .检查IP地址:ifconfig -a 或 ip addr show 3 、查看剩余磁盘空间:df -ah 4 .管理服务:service status[服务名称]或systemctl status[服务名称] 5 .检查目录大小:du -sh [directory] 6 、查看开放端口号:netstat -tulnp 或 ss -lntpd 7 、查看CPU使用进程:top或ps aux | grep [进程名称] 8 .挂载文件:mount /dev/hda1 /mnt 9 、查看命令手册:man <命令>