Linux 基础
1. Linux 基础知识范围
Linux 基础笔记用于建立日常运维、故障排查和服务管理的命令基础,重点不在单一命令记忆,而在理解命令背后的系统对象。
| 模块 | 核心对象 | 常用命令 |
|---|---|---|
| 文件与目录 | 路径、文件、目录、链接 | ls、cp、mv、rm、find |
| 权限管理 | 属主、属组、权限位、ACL、sudo | chmod、chown、setfacl、visudo |
| 用户管理 | 用户、组、密码、登录 Shell | useradd、usermod、passwd、id |
| 磁盘管理 | 磁盘、分区、文件系统、挂载 | lsblk、df、du、mount |
| 网络管理 | 网卡、IP、路由、端口、连通性 | ip、ss、ping、curl |
| 进程管理 | PID、信号、优先级、作业 | ps、top、kill、nice |
| 软件管理 | 软件包、依赖、源码编译 | dnf、yum、rpm、make |
2. 文件与目录基础
2.1. 常见目录
| 目录 | 作用 |
|---|---|
/ | 根目录,所有目录的起点。 |
/bin、/sbin | 基础命令和系统管理命令。 |
/etc | 系统和服务配置文件。 |
/home | 普通用户主目录。 |
/root | root 用户主目录。 |
/var | 日志、缓存、运行时数据等变化数据。 |
/tmp | 临时文件目录。 |
/usr | 用户态程序、库文件、文档等。 |
/proc | 进程和内核状态的虚拟文件系统。 |
/sys | 设备、驱动和内核对象的虚拟文件系统。 |
2.2. 常用文件命令
pwd
ls -lah
cd /etc
cp source target
mv old new
rm file
mkdir -p /data/app
touch app.log
生产环境中执行 rm、mv、递归修改权限等命令前,应确认当前路径和目标路径,避免误操作。
2.3. 文件查找
find /etc -name "*.conf"
find /var/log -type f -mtime -1
locate nginx.conf
which bash
whereis nginx
find 是实时查找,适合精确定位;locate 依赖索引数据库,查询速度快但可能不是最新结果。
3. 权限管理
3.1. 权限表示
ls -l 输出中的权限字段表示文件类型、属主权限、属组权限和其他用户权限。
-rwxr-xr-x
| 位置 | 含义 |
|---|---|
| 第 1 位 | 文件类型,例如普通文件、目录、链接。 |
| 第 2-4 位 | 属主权限。 |
| 第 5-7 位 | 属组权限。 |
| 第 8-10 位 | 其他用户权限。 |
3.2. 权限数字
| 数字 | 权限 | 说明 |
|---|---|---|
| 7 | rwx | 读、写、执行。 |
| 6 | rw- | 读、写。 |
| 5 | r-x | 读、执行。 |
| 4 | r-- | 只读。 |
| 0 | --- | 无权限。 |
chmod 755 file
chmod u+x file
chmod g-w file
chmod o-r file
3.3. 属主与属组
chown user:group file
chown -R appuser:appuser /opt/app
chgrp group file
chown -R 会递归修改目录下所有文件和目录,生产环境使用前应确认目标目录。
3.4. 特殊权限
| 权限 | 标识 | 作用 |
|---|---|---|
| SUID | s 出现在属主执行位 | 以文件属主身份执行程序。 |
| SGID | s 出现在属组执行位 | 以文件属组身份执行程序;用于目录时可继承属组。 |
| Sticky Bit | t 出现在其他用户执行位 | 常用于 /tmp,仅文件属主或目录属主可删除文件。 |
chmod u+s /usr/bin/example
chmod g+s /data/share
chmod +t /tmp
3.5. ACL 访问控制
ACL 用于在传统属主、属组、其他用户权限之外,给指定用户或组追加权限。
getfacl file
setfacl -m u:username:rwx file
setfacl -m g:groupname:rx file
setfacl -R -m u:username:rx directory/
setfacl -x u:username file
3.6. sudo 权限
sudo 用于授予普通用户可审计的特权命令执行能力,配置文件通常通过 visudo 编辑。
user host=(runas) commands
示例:
user1 ALL=(ALL) ALL
%ops ALL=(ALL) /usr/bin/systemctl, /usr/bin/journalctl
4. 用户管理
4.1. 用户与组文件
| 文件 | 说明 |
|---|---|
/etc/passwd | 用户基本信息。 |
/etc/shadow | 用户密码哈希和密码策略。 |
/etc/group | 用户组信息。 |
/etc/gshadow | 用户组密码和管理信息。 |
4.2. 常用用户命令
useradd -m -s /bin/bash user1
passwd user1
usermod -aG wheel user1
id user1
groups user1
4.3. 锁定与解锁用户
passwd -l user1
passwd -u user1
usermod -L user1
usermod -U user1
锁定账号适合临时禁用用户;如果用户已离职,还应检查 SSH key、sudo 权限、定时任务和文件归属。
5. 磁盘管理
5.1. 磁盘查看
| 命令 | 说明 |
|---|---|
fdisk -l | 查看磁盘分区信息。 |
lsblk | 列出块设备层级结构。 |
lsblk -f | 查看文件系统类型和挂载点。 |
blkid | 查看设备 UUID 和文件系统类型。 |
df -h | 查看文件系统容量使用情况。 |
du -sh /path | 查看目录空间占用。 |
5.2. 分区管理
fdisk /dev/sdb
parted /dev/sdb
| 分区表 | 特点 |
|---|---|
| MBR | 传统分区表,通常支持 4 个主分区,常见于 2TB 以下磁盘。 |
| GPT | 新一代分区表,支持更多分区和更大容量磁盘。 |
5.3. 格式化与挂载
mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb2
mount /dev/sdb1 /mnt/data
mount | grep sdb
开机自动挂载通常配置在 /etc/fstab。
UUID=xxx /mnt/data ext4 defaults 0 2
修改 /etc/fstab 后应先执行 mount -a 验证配置,避免下次重启进入异常状态。
5.4. RAID 基础
| 级别 | 说明 | 最少磁盘 | 容错 |
|---|---|---|---|
| RAID 0 | 条带化,性能较高但无冗余。 | 2 | 无 |
| RAID 1 | 镜像,写入两份数据。 | 2 | 通常可坏 1 块 |
| RAID 5 | 分布式奇偶校验。 | 3 | 通常可坏 1 块 |
| RAID 10 | 先镜像再条带化。 | 4 | 取决于故障分布 |
5.5. LVM 逻辑卷管理
LVM 将物理磁盘抽象为物理卷、卷组和逻辑卷,便于后续扩容。
pvcreate /dev/sdb1
vgcreate vg_data /dev/sdb1
lvcreate -L 100G -n lv_app vg_data
mkfs.xfs /dev/vg_data/lv_app
mount /dev/vg_data/lv_app /data
扩容示例:
lvextend -L +50G /dev/vg_data/lv_app
xfs_growfs /data
6. 网络管理
6.1. 网络信息查看
ip addr
ip route
ss -lntup
ping 8.8.8.8
curl -I https://example.com
| 命令 | 作用 |
|---|---|
ip addr | 查看网卡和 IP 地址。 |
ip route | 查看路由表。 |
ss -lntup | 查看监听端口和进程。 |
ping | 检查三层连通性。 |
curl | 验证应用层访问。 |
6.2. 临时配置 IP 与路由
ip addr add 192.168.1.10/24 dev eth0
ip link set eth0 up
ip route add default via 192.168.1.1
临时配置重启后通常会丢失,生产环境应写入发行版对应的网络配置文件或使用 NetworkManager 管理。
6.3. 网络统计
ss -s
ip -s link
netstat -s
排查网络问题时,应同时确认 IP、路由、DNS、端口监听、防火墙和上游网络策略。
7. 进程管理
7.1. 查看进程
ps aux
ps -ef
top
htop
pstree -p
pidof nginx
| 命令 | 说明 |
|---|---|
ps | 查看某一时刻的进程快照。 |
top | 动态查看系统负载和进程资源占用。 |
pstree | 查看父子进程关系。 |
pidof | 根据进程名查询 PID。 |
7.2. 进程信号
kill -15 PID
kill -9 PID
kill -1 PID
kill -2 PID
| 信号 | 名称 | 说明 |
|---|---|---|
| 1 | SIGHUP | 常用于通知进程重新加载配置。 |
| 2 | SIGINT | 中断信号,通常对应 Ctrl+C。 |
| 15 | SIGTERM | 请求进程正常退出,优先使用。 |
| 9 | SIGKILL | 强制杀死进程,无法被进程捕获。 |
7.3. 进程优先级
ps -eo pid,ni,comm
nice -n -5 command
renice -n -5 -p PID
nice 值越低,进程优先级通常越高;调整优先级需要结合系统负载和业务影响评估。
7.4. 后台作业
command &
jobs
fg %1
bg %1
nohup command > app.log 2>&1 &
长期运行任务建议使用 systemd、screen 或 tmux 管理,而不是仅依赖当前终端。
8. 软件包管理
8.1. YUM 与 DNF
RHEL、CentOS、Rocky Linux、AlmaLinux 等发行版常使用 yum 或 dnf 管理软件包。
| 命令 | 说明 |
|---|---|
dnf install package | 安装软件包。 |
dnf remove package | 卸载软件包。 |
dnf update package | 更新软件包。 |
dnf search keyword | 搜索软件包。 |
dnf list installed | 列出已安装软件包。 |
dnf info package | 查看软件包信息。 |
dnf groupinstall group | 安装软件包组。 |
8.2. RPM
rpm -ivh package.rpm
rpm -e package
rpm -qa
rpm -ql package
rpm -qf /path/to/file
rpm 更偏底层包操作,不会像 dnf 一样自动处理远程仓库依赖。
8.3. 源码编译
./configure --prefix=/usr/local
make
make install
源码编译前应确认依赖、编译参数、安装路径和后续升级方式。
9. Vim 编辑器
Vim 常见模式包括一般模式、编辑模式和指令行模式。
9.1. 一般模式
| 按键 | 说明 |
|---|---|
h、j、k、l | 左、下、上、右移动。 |
0、$ | 行首、行尾。 |
gg、G | 文件首行、尾行。 |
x | 删除光标处字符。 |
dd | 删除整行。 |
yy | 复制整行。 |
p、P | 粘贴到下一行或上一行。 |
u | 撤销。 |
Ctrl+r | 重做。 |
9.2. 编辑模式
| 按键 | 说明 |
|---|---|
i | 在光标处插入。 |
a | 在光标后插入。 |
o | 在下一行插入新行。 |
Esc | 退出编辑模式。 |
9.3. 指令行模式
| 命令 | 说明 |
|---|---|
:w | 保存。 |
:q | 退出。 |
:wq | 保存并退出。 |
:q! | 强制退出且不保存。 |
:set nu | 显示行号。 |
:set nonu | 取消行号。 |
:/keyword | 搜索关键词。 |
:s/old/new/g | 替换当前行匹配内容。 |
10. 基础排查命令清单
hostnamectl
uptime
free -h
df -h
du -sh /var/*
ip addr
ip route
ss -lntup
ps aux --sort=-%cpu | head
journalctl -xe
基础排查应先确认系统状态、资源使用、网络连通性、服务状态和最近日志,再进一步定位具体原因。
关联文档
- Linux:Linux 技术体系入口。
- Linux 系统管理:系统启动、服务、日志、备份与生产管理清单。
- Linux 网络服务:DHCP、Samba、FTP、rsync、SSH 等网络服务。
- Linux 磁盘管理:磁盘、分区、文件系统、LVM 与容量排查。
- Linux 进程状态:进程状态、信号与调度相关内容。
- Linux 调试与追踪工具:调试、追踪和性能分析工具。
