Linux 系统的不同发行版在常用命令上存在一些差异,主要体现在 包管理命令、服务管理命令 和 部分工具链 上。以下是主要区别对比:
一、包管理命令对比
1. Debian/Ubuntu 系(APT)
功能 | 命令 |
---|---|
更新软件源 | sudo apt update |
安装软件 | sudo apt install <包名> |
卸载软件 | sudo apt remove <包名> |
搜索软件 | apt search <关键词> |
列出已安装软件 | apt list --installed |
升级所有软件 | sudo apt upgrade |
2. Red Hat/CentOS/Fedora 系(YUM/DNF)
功能 | 命令 |
---|---|
更新软件源 | sudo yum makecache |
安装软件 | sudo yum install <包名> |
卸载软件 | sudo yum remove <包名> |
搜索软件 | yum search <关键词> |
列出已安装软件 | yum list installed |
升级所有软件 | sudo yum update |
注:Fedora 及新版 CentOS/RHEL 使用
dnf
(替代yum
),命令格式相同,如sudo dnf install <包名>
。
3. Arch Linux 系(Pacman)
功能 | 命令 |
---|---|
更新软件源 | sudo pacman -Sy |
安装软件 | sudo pacman -S <包名> |
卸载软件 | sudo pacman -R <包名> |
搜索软件 | pacman -Ss <关键词> |
列出已安装软件 | pacman -Q |
升级所有软件 | sudo pacman -Syu |
二、服务管理命令对比
1. Systemd 系(主流发行版通用)
功能 | 命令 |
---|---|
启动服务 | sudo systemctl start <服务名> |
停止服务 | sudo systemctl stop <服务名> |
重启服务 | sudo systemctl restart <服务名> |
查看服务状态 | systemctl status <服务名> |
开机自启 | sudo systemctl enable <服务名> |
禁用开机自启 | sudo systemctl disable <服务名> |
2. 旧版 SysVinit(部分老系统)
功能 | 命令 |
---|---|
启动服务 | sudo service <服务名> start |
停止服务 | sudo service <服务名> stop |
查看服务状态 | service <服务名> status |
注:现代发行版(如 Ubuntu 18.04+、CentOS 7+)均已切换到
systemd
。
三、网络配置命令对比
1. 传统命令(通用)
功能 | 命令 |
---|---|
查看IP地址 | ifconfig (需安装 net-tools ) |
测试网络连通性 | ping <目标IP> |
2. 新版工具(推荐)
功能 | 命令 |
---|---|
查看IP地址 | ip addr (iproute2 工具包) |
配置路由 | ip route |
注:
ifconfig
已逐渐被ip
命令取代,但需注意:
Debian/Ubuntu:默认未安装
ifconfig
,需手动安装net-tools
。Arch Linux:直接使用
ip
,不推荐ifconfig
。
3.其他
命令 | 说明 | 示例 |
---|---|---|
ping | 测试网络连通性 | ping google.com |
ifconfig / ip | 查看网络接口 | ip a 或 ifconfig |
netstat | 网络连接状态 | netstat -tulnp (监听端口) |
ssh | 远程登录 | ssh user@192.168.1.1 |
scp | 安全复制文件 | scp file.txt user@host:/path |
wget / curl | 下载文件 | wget https://example.com/file.zip |
四、用户管理命令对比
1. 创建用户
发行版 | 命令 |
---|---|
Debian/Ubuntu | sudo adduser <用户名> |
Red Hat/CentOS | sudo useradd <用户名> |
Arch Linux | sudo useradd -m <用户名> |
区别:
adduser
(Debian系):交互式创建,自动生成家目录。
useradd
(其他系):需加-m
参数创建家目录。
2. 设置密码
命令 | 说明 |
---|---|
passwd <用户名> | 所有发行版通用 |
3.其他
命令 | 说明 | 示例 |
---|---|---|
chmod | 修改权限 | chmod 755 script.sh (rwxr-xr-x) |
chown | 修改所有者 | chown user:group file.txt |
sudo | 提权执行 | sudo apt update |
passwd | 修改密码 | passwd (当前用户) |
useradd / userdel | 用户管理 | sudo useradd newuser |
五、文件系统工具对比
1. 磁盘空间查看
功能 | 命令(通用) |
---|---|
查看磁盘使用 | df -h |
查看目录大小 | du -sh <目录路径> |
2. 文件系统格式化
发行版 | 命令示例 |
---|---|
通用 | sudo mkfs.ext4 /dev/sdX1 |
注:工具名称相同,但部分发行版需手动安装:
Ubuntu:
sudo apt install e2fsprogs
CentOS:
sudo yum install e2fsprogs
3.磁盘挂载
命令 | 用途 |
---|---|
mount | 挂载文件系统 |
umount | 卸载文件系统 |
mount -a | 挂载 /etc/fstab 中的所有条目 |
lsblk | 查看块设备信息 |
blkid | 查看设备 UUID 和文件系统类型 |
常用命令示例
1). 查看已挂载的文件系统
mount # 显示所有已挂载的文件系统
mount | grep /dev/sd1 # 过滤特定设备
cat /proc/mounts # 另一种查看方式(更底层)
2). 挂载设备(如U盘、硬盘)
sudo mount /dev/sdb1 /mnt/usb # 将 /dev/sdb1 挂载到 /mnt/usb
/dev/sdb1:设备名(可通过 lsblk 或 fdisk -l 查看)
/mnt/usb:挂载点(需提前创建目录)
3). 挂载 ISO 文件
sudo mount -o loop ubuntu.iso /mnt/iso # 挂载 ISO 到 /mnt/iso
#-o loop:将文件视为块设备挂载
4). 挂载网络共享(NFS/SMB)
# NFS 挂载
sudo mount -t nfs 192.168.1.100:/share /mnt/nfs
# SMB/CIFS 挂载(Windows 共享)
sudo mount -t cifs -o username=user,password=123 //192.168.1.100/share /mnt/smb
5). 挂载时指定文件系统类型
sudo mount -t ext4 /dev/sdc1 /mnt/data # 指定 ext4 文件系统
常见文件系统类型:
ext4(Linux)
ntfs(Windows)
vfat(FAT32)
xfs(高性能文件系统)
6). 挂载时设置选项
sudo mount -o ro /dev/sdb1 /mnt/usb # 只读挂载
sudo mount -o remount,rw /mnt/usb # 重新挂载为可读写
sudo mount -o noexec /dev/sdb1 /mnt/usb # 禁止执行该分区的程序
常用选项:
ro / rw:只读 / 读写
noexec:禁止执行程序
nosuid:忽略 SUID 权限
sync / async:同步 / 异步写入
7). 卸载文件系统
umount /mnt/usb # 卸载挂载点
umount /dev/sdb1 # 或通过设备名卸载
umount -l /mnt/usb # 强制卸载(lazy unmount,适用于文件系统忙时)
4. 磁盘 I/O
iostat
- 磁盘 I/O 统计
iostat -x 1 # 每秒显示一次详细磁盘统计
-
关键指标:
-
%util
:设备利用率(接近100%表示饱和) -
await
:平均 I/O 响应时间(ms) -
r/s
,w/s
:读写请求数 -
rkB/s
,wkB/s
:读写吞吐量(KB/s)
-
iotop
- 类似 top 的 I/O 监控
sudo iotop -o # 只显示实际有 I/O 的进程
按 r
反向排序,o
只显示活跃进程
dstat
- 综合监控
dstat -d # 磁盘读写监控
dstat -D sda # 监控指定磁盘
六、文件与目录操作
命令 | 说明 | 示例 |
---|---|---|
ls | 列出目录内容 | ls -l (详细列表) |
cd | 切换目录 | cd /home 或 cd .. (返回上级) |
pwd | 显示当前路径 | pwd |
mkdir | 创建目录 | mkdir new_dir |
rm | 删除文件/目录 | rm file.txt (文件)rm -r dir (递归删除目录) |
cp | 复制文件/目录 | cp file1.txt file2.txt cp -r dir1 dir2 (复制目录) |
mv | 移动/重命名 | mv old.txt new.txt (重命名)mv file.txt /tmp (移动) |
touch | 创建空文件 | touch newfile.txt |
find | 查找文件 | find /home -name "*.txt" |
七、文件内容查看与编辑
命令 | 说明 | 示例 |
---|---|---|
cat | 显示文件内容 | cat file.txt |
less / more | 分页查看文件 | less large_file.log |
head | 显示文件开头 | head -n 10 file.log (前10行) |
tail | 显示文件末尾 | tail -f log.txt (实时追踪日志) |
grep | 文本搜索 | grep "error" log.txt (搜索关键词) |
vim / nano | 文本编辑 | vim file.txt |
八、系统信息与管理
命令 | 说明 | 示例 | |
---|---|---|---|
top / htop | 查看进程/资源占用 | top (实时监控) | |
ps | 查看进程 | `ps aux | grep nginx` |
kill | 终止进程 | kill -9 1234 (强制终止PID 1234) | |
df | 磁盘空间 | df -h (人类可读格式) | |
du | 目录大小 | du -sh /home (统计总大小) | |
free | 内存使用 | free -m (以MB显示) | |
uname | 系统信息 | uname -a (内核版本等) |
九、压缩与解压
命令 | 说明 | 示例 |
---|---|---|
tar | 打包/解包 | tar -czvf archive.tar.gz dir/ (压缩)tar -xzvf archive.tar.gz (解压) |
zip / unzip | ZIP压缩 | zip archive.zip file1 file2 |
gzip / gunzip | GZ压缩 | gzip file.txt |
十、进程
ps
- 查看当前进程快照
ps aux # 查看所有运行中的进程(BSD风格)
ps -ef # 查看所有进程(标准UNIX风格)
ps -u user # 查看特定用户的进程
ps -p PID # 查看指定PID的进程
ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head # 按CPU使用率排序
top
/ htop
- 动态查看进程
top # 实时监控进程(按CPU排序,q退出)
htop # 增强版top(需安装,支持交互式操作)
pstree
- 以树状显示进程
pstree -p # 显示进程树(包含PID)
kill
- 通过信号控制进程
kill -9 PID # 强制终止进程(SIGKILL信号)
kill -15 PID # 优雅终止进程(SIGTERM信号,默认)
killall nginx # 终止所有名为"nginx"的进程
pkill -f "python script.py" # 根据名称匹配终止进程
xkill
- 图形界面强制关闭窗口(X11环境)
xkill # 点击崩溃的窗口强制关闭
后台进程管理
&
/ jobs
/ fg
/ bg
command & # 后台运行命令
jobs # 查看当前会话的后台任务
fg %1 # 将任务1调到前台
bg %1 # 继续在后台运行任务1
nohup
- 退出终端后仍运行
nohup command & # 忽略SIGHUP信号,日志默认写入nohup.out
pgrep
- 根据名称查找PID
pgrep -l nginx # 查找名为"nginx"的进程及PID
常用组合示例
-
查找并终止进程:
ps aux | grep nginx # 查找nginx进程 kill -9 $(pgrep nginx) # 强制终止所有nginx进程
-
监控高CPU进程:
top -o %CPU # 按CPU使用率排序
-
后台运行并保存输出:
nohup ./script.sh > output.log 2>&1 &
十一、其他实用命令
命令 | 说明 | 示例 | |
---|---|---|---|
history | 查看命令历史 | `history | grep "apt"` |
alias | 设置别名 | alias ll='ls -alh' | |
crontab | 定时任务 | crontab -e (编辑计划任务) | |
ln | 创建链接 | ln -s /path/file link_name (软链接) |
十二、总结:如何快速适应不同发行版?
-
记住核心差异:
-
包管理:
apt
(Debian) vsyum/dnf
(Red Hat) vspacman
(Arch) -
服务管理:
systemctl
(主流) vsservice
(旧版)
-
-
查询工具所属包:
# Debian/Ubuntu dpkg -S $(which <命令名>) # Red Hat/CentOS rpm -qf $(which <命令名>)
-
通用命令优先:
-
文件操作(
ls/cp/mv
)、文本处理(grep/sed/awk
)等命令在所有发行版中完全一致。
-
-
使用
man
文档:man <命令名> # 查看具体用法