Linux知识第二弹
Linux 知识总结
加载和卸载 Linux 内核模块
- 使用
insmod
或modprobe
来加载内核模块(WSL 不支持,输入后显示一个都没启用)。
配置静态 IP
- 先使用
ip link show
查看可用的网卡。 - 编辑
/etc/network/interfaces
并写入(替换为自己的网卡名称):1
2
3
4
5
6auto 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 - 执行
sudo systemctl restart networking
重启网络。
Linux 的常见目录
/bin
:存放用户基本命令,如ls
、cp
、mv
等。/sbin
:存放系统级命令,如ifconfig
和reboot
。/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
df -h
- 查找占用空间的目录和文件:
1
du -sh /*
- 定位并清理大文件。
- 确认故障:
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
排查网络问题和故障
- 检查 IP 地址:
1
ifconfig 或 ip addr
- 检查默认路由/网关:
1
route -n
- 检查 DNS:
1
cat /etc/resolv.conf
- 测试与外部的连接:
1
ping <目标地址>
- 如果仍然无网络连接,可尝试重启网络服务:
1
systemctl restart network
排查内存泄漏
- 查看整体内存使用情况:
1
top
- 按内存占用排序进程:
1
ps aux --sort=-%mem
- 使用
valgrind
分析程序的内存使用:1
valgrind --leak-check=yes ./main
- 查看进程的内存映射情况:
1
pmap <PID>
CFS(完全公平调度)
- CFS(Completely Fair Scheduler) 是 Linux 内核的调度策略。
- 每个任务按照 权重 分配 CPU 时间,权重由任务的 nice 值 决定。
- 内部使用红黑树 管理任务,以确保公平性。
评论