Linux 知识总结

加载和卸载 Linux 内核模块

  • 使用 insmodmodprobe 来加载内核模块(WSL 不支持,输入后显示一个都没启用)。

配置静态 IP

  1. 先使用 ip link show 查看可用的网卡。
  2. 编辑 /etc/network/interfaces 并写入(替换为自己的网卡名称):
    1
    2
    3
    4
    5
    6
    auto eth0
    iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4
  3. 执行 sudo systemctl restart networking 重启网络。

Linux 的常见目录

  • /bin:存放用户基本命令,如 lscpmv 等。
  • /sbin:存放系统级命令,如 ifconfigreboot
  • /boot:存放启动程序和内核映像文件。
  • /etc:存放环境变量、系统配置等。
  • /lib:存放共享库和内核模块。
  • /mnt:作为文件系统的挂载点。
  • /opt:可选目录,存放第三方软件包。
  • /proc:虚拟文件系统,提供系统进程和内核信息。
  • /tmp:临时目录,重启系统后会清空。
  • /usr:存放用户程序及其库文件。
  • /var:存放经常变化的文件,如日志等。

SELinux

  • 是一个用于加强系统安全性的工具,类似于一个安全策略管理员,确保进程仅能访问所需的资源。

Linux 的日志系统

  • 主要依赖 syslog 记录系统消息。
  • 使用 journalctl 查询日志。
  • 查看 /var/log/syslog 中的日志。

磁盘配额管理

  • 通过安装 quota 工具,并编写配置文件、重新挂载分区等来实现磁盘配额管理。

使用 netstat 查看网络连接

  • netstat -an:显示所有的连接(包括待建立连接)。
  • netstat -tuln:显示所有监听的 TCP 和 UDP 端口。

查看和管理系统服务

  • 查看服务
    1
    systemctl list-units --type=service
  • 启动/停止/重启/开机自启/取消自启
    1
    systemctl start/stop/restart/enable/disable <服务名>

使用 SSH 远程登录

1
ssh root@主机名

常见 Linux 系统故障及解决

  • 磁盘耗尽导致系统无法正常运行
    1. 确认故障:
      1
      df -h
    2. 查找占用空间的目录和文件:
      1
      du -sh /*
    3. 定位并清理大文件。

strace 调试用户空间程序

  • 重定向输出到文件
    1
    strace -o output.txt ./main
  • 附加到正在运行的进程
    1
    strace -p <PID>

tcpdump 网络抓包分析

  • 指定监听的网络接口/端口
    1
    tcpdump -i eth0 port 80
  • 保存数据包到文件
    1
    tcpdump -w capture.pcap

排查进程占用的文件/端口

  • 查看某个文件被哪个进程占用
    1
    lsof /path/file
  • 查看占用端口的进程
    1
    lsof -i :8080
  • 杀死进程
    1
    kill -9 PID

排查网络问题和故障

  1. 检查 IP 地址:
    1
    ifconfig 或 ip addr
  2. 检查默认路由/网关:
    1
    route -n
  3. 检查 DNS:
    1
    cat /etc/resolv.conf
  4. 测试与外部的连接:
    1
    ping <目标地址>
  5. 如果仍然无网络连接,可尝试重启网络服务:
    1
    systemctl restart network

排查内存泄漏

  1. 查看整体内存使用情况
    1
    top
  2. 按内存占用排序进程
    1
    ps aux --sort=-%mem
  3. 使用 valgrind 分析程序的内存使用
    1
    valgrind --leak-check=yes ./main
  4. 查看进程的内存映射情况
    1
    pmap <PID>

CFS(完全公平调度)

  • CFS(Completely Fair Scheduler) 是 Linux 内核的调度策略。
  • 每个任务按照 权重 分配 CPU 时间,权重由任务的 nice 值 决定。
  • 内部使用红黑树 管理任务,以确保公平性。