下面呢是对 Linux 面试必背知识点的详细梳理与归结起来说。 一、Linux 基础知识
1.1文件系统与目录结构 Linux 的文件系统采用 ext4 作为默认文件系统,具有良好的性能和可靠性。 - /bin:存放系统核心命令(如 `ls`, `cp`, `mv` 等) - /dev:设备文件目录,包含硬件设备的接口 - /etc:配置文件目录,存放系统配置信息 - /home:用户主目录 - /lib:系统运行所需的共享库 - /root:根用户主目录 关键命令 - `ls -l`:显示文件权限、大小、所有者等信息 - `pwd`:显示当前工作目录 - `cd`:切换目录 - `mkdir`:创建目录 - `rm`:删除文件或目录 - `cp`:复制文件 - `mv`:移动或重命名文件
1.2系统服务与进程管理 Linux 中的系统服务通常由 systemd 管理,它提供了更高效的服务控制机制。 - systemctl:用于管理服务、启动、停止、重启系统服务 - ps:显示当前运行的进程 - top:实时监控系统资源使用情况 - kill:终止进程 - nice:调整进程优先级 关键命令 - `systemctl status
2.1基础命令与管道符 Linux 命令行是系统管理的核心工具,掌握命令行操作能够显著提升工作效率。 - 管道符(|):将一个命令的输出作为另一个命令的输入 - 重定向符(>、<、>>):用于将命令的输出重定向到文件或从文件读取 关键命令 - `ls -l /home`:显示用户主目录下的文件信息 - `grep "pattern" file.txt`:在文件中搜索特定内容 - `sed 's/old/new/g' file.txt`:替换文件中的内容 - `awk 'BEGIN { FS="," } { print $1 }' file.csv`:提取文件中的第一列
2.2文件操作与权限管理 Linux 中文件权限由 用户(User)、组(Group) 和 其他(Other) 三部分组成,权限由 rwx 表示。 - 权限位:r(读)、w(写)、x(执行) - 文件类型:普通文件、目录、符号链接等 关键命令 - `chmod 755 file.txt`:设置文件权限为 rwxr-xr-x - `chown user:group file.txt`:修改文件所有者和所属组 - `ls -l`:显示文件权限信息 三、系统服务与网络配置
1.1系统服务管理 Linux 中的系统服务通常由 systemd 管理,包括网络服务、打印服务、邮件服务等。 - systemd 提供了更高效的启动和停止机制,支持服务的依赖关系管理。 - systemctl 是管理服务的核心工具,支持服务的启动、停止、重启、启用、禁用等操作。 关键命令 - `systemctl start ssh`:启动 SSH 服务 - `systemctl status ssh`:查看 SSH 服务状态 - `systemctl disable ssh`:禁用 SSH 服务
3.2网络服务配置 Linux 中常见的网络服务包括 HTTP、FTP、SSH、Nginx、Apache 等。 - iptables:用于防火墙配置,管理网络流量 - firewalld:基于 systemd 的防火墙管理工具 关键命令 - `iptables -L`:查看防火墙规则 - `firewall-cmd --list-all`:查看防火墙状态 - `iptables -A INPUT -p tcp --dport 80 -j ACCEPT`:允许 HTTP 请求 四、安全机制与权限控制
4.1用户与权限管理 Linux 中用户权限管理主要通过 用户(User)、组(Group) 和 权限(Permission) 三方面来实现。 - 用户:系统中每个用户都有一个唯一的用户名 - 组:用户可以属于多个组,组权限可以继承 - 权限:通过 `chmod` 和 `chown` 管理 关键命令 - `passwd`:修改用户密码 - `sudo`:以管理员权限执行命令 - `sudoers`:配置 sudoers 文件
4.2安全策略与审计 Linux 提供了多种安全机制,包括 SELinux、AppArmor、PAM 等,用于增强系统安全性。 - SELinux:基于模块的强制访问控制 - PAM:插件式身份验证模块 - auditd:系统日志审计工具 关键命令 - `auditctl`:配置审计规则 - `ausearch`:搜索审计日志 - `auditctl -w /etc -p rwx`:允许对 `/etc` 文件进行读写 五、容器与虚拟化技术
5.1Docker 容器 Docker 是一种轻量级的容器化技术,能够将应用及其依赖打包成一个容器,实现快速部署和管理。 - Dockerfile:定义容器的构建规则 - Docker Compose:用于多容器应用的管理 - Docker Swarm:用于分布式容器编排 关键命令 - `docker run -d -p 8080:80 myapp`:启动一个容器 - `docker ps`:查看运行中的容器 - `docker logs container-id`:查看容器日志
5.2Kubernetes(K8s) Kubernetes 是一个容器编排平台,用于管理容器化应用的部署和运行。 - Kubernetes 部署:通过 YAML 文件定义部署配置 - Kubernetes 管理工具:如 `kubectl` 关键命令 - `kubectl get pods`:查看所有 Pod 状态 - `kubectl describe pod pod-name`:查看 Pod 详细信息 - `kubectl apply -f deployment.yaml`:应用部署配置 六、系统监控与性能调优 6.1 系统监控工具 Linux 提供了多种系统监控工具,如 top、htop、vmstat、iostat、free 等。 - top:实时监控 CPU、内存、进程等信息 - htop:图形化界面的监控工具 - vmstat:统计系统虚拟内存和 CPU 使用情况 - iostat:监控磁盘 I/O 情况 关键命令 - `top -b -n 2`:以批处理模式运行 top - `iostat -x 1`:监控磁盘 I/O 情况 - `free -h`:查看内存使用情况 6.2 性能调优 Linux 系统调优涉及 CPU、内存、磁盘、网络等多个方面。 - CPU 调优:调整 CPU 亲和性、调度策略 - 内存调优:调整内存分配、使用 swap 空间 - 磁盘调优:选择合适的文件系统、调整 I/O 配置 关键命令 - `cpuset`:调整 CPU 亲和性 - `vmstat`:监控系统性能 - `sysctl`:调整内核参数 七、Linux 系统维护与故障排查 7.1 系统维护 Linux 系统维护包括系统更新、日志查看、服务管理等。 - 系统更新:通过 `apt`、`yum`、`dnf` 等工具更新系统 - 日志查看:使用 `journalctl`、`dmesg`、`tail -f` 等查看系统日志 - 系统备份:使用 `tar`、`rsync` 等工具进行系统备份 关键命令 - `apt update`:更新软件包列表 - `apt upgrade`:升级软件包 - `journalctl -b`:查看系统日志 7.2 故障排查 Linux 系统常见问题包括服务崩溃、日志异常、权限错误等。 - 服务崩溃排查:检查服务日志、进程状态、内存使用情况 - 权限错误排查:检查文件权限、用户组、SELinux 等 - 网络问题排查:检查网络配置、防火墙规则、DNS 设置 关键命令 - `tail -f /var/log/messages`:实时查看日志 - `ps aux`:查看进程状态 - `netstat -tuln`:查看网络连接状态 八、Linux 系统配置与脚本编写 8.1 系统配置 Linux 系统配置包括用户管理、服务管理、网络配置等。 - 用户管理:通过 `useradd`、`usermod`、`userdel` 管理用户 - 服务管理:通过 `systemctl` 管理服务 - 网络配置:通过 `ifconfig`、`ip`、`nmcli` 等工具配置网络 关键命令 - `useradd -m username`:创建新用户 - `usermod -aG sudo username`:将用户加入 sudo 组 - `ip addr show`:查看网络接口信息 8.2 脚本编写 Linux 脚本编写是系统管理的重要技能,包括 Shell 脚本和 Python 脚本。 - Shell 脚本:使用 `bash`、`sh` 等工具编写脚本 - Python 脚本:使用 `Python` 语言编写自动化脚本 关键命令 - `cat script.sh`:查看脚本内容 - `chmod +x script.sh`:赋予脚本执行权限 - `./script.sh`:运行脚本 九、Linux 系统安全与加固 9.1 系统安全 Linux 系统安全包括防火墙配置、用户权限管理、日志审计等。 - 防火墙配置:使用 `iptables`、`firewalld` 等工具配置防火墙 - 用户权限管理:通过 `sudo`、`chown`、`chmod` 管理权限 - 日志审计:使用 `auditd`、`journalctl` 等工具进行日志审计 关键命令 - `iptables -L`:查看防火墙规则 - `auditctl -w /etc -p rwx`:允许对 `/etc` 文件进行读写 - `journalctl -b`:查看系统日志 9.2 系统加固 Linux 系统加固包括禁用不必要的服务、限制用户权限、设置安全策略等。 - 禁用不必要的服务:使用 `systemctl disable` 禁用服务 - 限制用户权限:使用 `chown`、`chmod` 管理权限 - 设置安全策略:使用 `SELinux`、`AppArmor` 等增强安全性 关键命令 - `systemctl disable ssh`:禁用 SSH 服务 - `chown -R root:root /home`:设置用户权限 - `setenforce 0`:禁用 SELinux 结论 Linux 是 IT 行业中不可或缺的基础技术,掌握 Linux 的核心知识点对于系统管理员、开发人员、运维工程师等至关重要。从系统管理、命令行操作、服务配置到安全机制、性能调优,Linux 知识点覆盖广泛,涉及多个领域。面试者应具备扎实的 Linux 理论基础和实际操作能力,能够快速应对各种系统问题,并在面试中展现出良好的技术素养和解决问题的能力。通过系统学习和实践,面试者将能够胜任 Linux 系统管理、开发、运维等岗位,为职业生涯打下坚实基础。