Linux 系统基础命令速查表

fengmian

1文件与目录操作 30 条

命令说明
ls -l长格式列出文件与权限
ls -a显示隐藏文件(含 . 与 ..)
ls -lh人类可读方式显示文件大小
ls -R递归列出子目录内容
pwd显示当前工作目录绝对路径
cd /path切换到指定目录
cd ..返回上一级目录
cd ~切换到当前用户家目录
cd -切换回上一次所在目录
mkdir dir创建单个目录
mkdir -p a/b/c递归创建多级目录
rmdir dir删除空目录
rm file删除文件
rm -r dir递归删除目录及其内容
rm -f file强制删除,忽略不存在与提示
rm -rf dir强制递归删除(高危,慎用)
cp a b复制文件
cp -r s d递归复制目录
cp -p a b复制时保留原文件属性
cp -a s d归档复制,保留全部属性与链接
mv a b移动文件或重命名
touch file创建空文件或更新访问/修改时间
cat file连接并打印文件内容
tac file逆序(从末行到首行)显示文件
head -n 10 file显示文件前 10 行
tail -n 10 file显示文件后 10 行
tail -f file实时跟踪文件新增内容
wc -l file统计文件行数
ln -s src link创建指向源文件的软链接
find / -name file从根目录递归按名称查找文件

2文本查看与搜索 30 条

命令说明
cat -n file显示内容并带行号
less file分页查看,支持上下滚动与搜索
more file分页查看(仅向前)
nl file显示内容并加行号
head file默认显示前 10 行
tail file默认显示后 10 行
tail -f file持续监控日志尾部
grep "pat" file在文件中搜索匹配字符串
grep -i "pat" file忽略大小写搜索
grep -r "pat" dir递归搜索目录下所有文件
grep -v "pat" file反向匹配,输出不含模式的行
grep -n "pat" file输出匹配行及其行号
grep -E "p1|p2" file扩展正则,匹配多个模式
grep -c "pat" file统计匹配行数
grep -l "pat" *仅列出包含匹配的文件名
egrep "p1|p2" file等价于 grep -E
fgrep "str" file按固定字符串搜索(非正则)
cut -d: -f1 file以 : 为分隔符取第一列
cut -c1-10 file截取每行第 1-10 个字符
sort file按字典序排序输出
sort -r file逆序排序
sort -n file按数值大小排序
sort -u file排序并去重
uniq file去除相邻重复行(需先排序)
uniq -c file统计每行重复次数
diff a b逐行比较两个文件差异
comm a b按列比较已排序的两个文件
rev file反转每行字符顺序
paste a b将两文件对应行合并为一行
column -t file按空白对齐为表格形式

3文本处理(sed/awk/tr) 30 条

命令说明
sed 's/old/new/' f替换每行首个 old 为 new
sed 's/old/new/g' f全局替换所有匹配
sed -i 's/a/b/g' f就地修改文件内容
sed -n '1,5p' f仅打印第 1 至 5 行
sed '2d' f删除第 2 行
sed '/pat/d' f删除包含模式的行
sed '1d' f删除首行
sed 'G' f在每行后插入空行
sed '=' f为每行添加行号
sed '/pat/a text' f在匹配行后追加文本
sed '/pat/i text' f在匹配行前插入文本
awk '{print $1}' f打印每行的第一列
awk -F: '{print $1}' f以 : 为分隔符取第一列
awk '{print NF}' f打印每行列数
awk 'NR==5' f仅打印第 5 行
awk '$1>10' f打印第一列大于 10 的行
awk '{sum+=$1} END{print sum}' f累加第一列并输出总和
awk '/pat/{print}' f打印匹配模式的行
awk 'length($0)>80' f打印长度超过 80 字符的行
awk '{print $0, NR}' f打印整行及行号
awk -v x=5 'BEGIN{print x}'使用变量 x 并输出
tr 'a-z' 'A-Z'将小写转换为大写
tr -d 'chr'删除指定的字符
tr -s ' '压缩连续空格为单个
tr ' ' '\n'将空格替换为换行
wc -w file统计文件单词数
wc -c file统计文件字节数
fold -w 80 file每 80 列折行
awk 'END{print NR}' f统计文件总行数
sed 's/^[ \t]*//' f去除行首空白

4用户与组管理 30 条

命令说明
whoami显示当前登录用户名
id显示当前用户的 UID/GID 与所属组
id user显示指定用户的 ID 信息
who显示当前登录系统的用户
w显示登录用户及其正在执行的进程
users列出当前登录的用户名
last显示近期登录历史
lastlog显示所有用户最近一次登录时间
useradd user创建新用户(不建家目录)
useradd -m user创建用户并生成家目录
useradd -G grp user创建用户并加入附加组
useradd -s /sbin/nologin u创建禁止登录的账户
usermod -aG grp user将用户追加到附加组
usermod -l new old修改用户名
usermod -s /bin/bash u修改用户登录 shell
usermod -L user锁定用户账户
usermod -U user解锁用户账户
userdel user删除用户账户
userdel -r user删除用户并清理家目录
passwd user为用户设置或修改密码
passwd -l user锁定用户密码
passwd -u user解锁用户密码
passwd -e user强制用户下次登录改密码
groupadd grp创建新用户组
groupadd -g 1001 grp指定 GID 创建组
groupmod -n ng og修改组名
groupdel grp删除用户组
gpasswd -a u g将用户加入组
gpasswd -d u g将用户移出组
chage -l user查看用户密码老化策略

5权限与所有权 30 条

命令说明
chmod 755 f以数字方式设置 rwxr-xr-x 权限
chmod u+x f为属主添加执行权限
chmod g-w f移除属组的写权限
chmod o=r f将其他用户的权限设为只读
chmod -R 644 dir递归设置目录内权限
chmod +x script为脚本添加可执行权限
chown u f修改文件属主
chown u:g f同时修改属主与属组
chown -R u:g dir递归修改属主与属组
chgrp grp f修改文件属组
chgrp -R grp dir递归修改属组
umask查看当前权限掩码
umask 022设置新建文件默认掩码
ls -l查看文件权限与属主属组
ls -ld dir查看目录自身权限
ls -la详细列出含隐藏文件
stat f查看文件详细状态与权限位
getfacl f查看文件的 ACL 规则
setfacl -m u:u:rwx f为用户设置 ACL 读写执行
setfacl -x u:u f删除指定用户的 ACL 规则
setfacl -R -m g:g:r f递归为组设置只读 ACL
setfacl -b f清除文件全部 ACL 规则
chattr +i f设置文件不可变(不可删改)
chattr -i f解除文件不可变属性
chattr +a f设置文件仅可追加内容
lsattr f查看文件特殊属性
sudo cmd以 root 权限执行单条命令
sudo -i切换到 root 交互 shell
sudo -u user cmd以指定用户身份执行命令
su - user切换并加载目标用户环境

6软件包管理(APT/Debian) 30 条

命令说明
apt update刷新软件源索引
apt upgrade升级所有可升级的包
apt full-upgrade智能处理依赖的完全升级
apt install pkg安装指定软件包
apt install -y pkg自动确认安装
apt remove pkg卸载软件包(保留配置)
apt purge pkg卸载并清除配置文件
apt autoremove清理不再需要的依赖
apt search kw按关键字搜索包
apt show pkg显示包详细信息
apt list --installed列出已安装包
apt list --upgradable列出可升级的包
apt-cache policy pkg查看包版本与安装策略
apt-cache depends pkg查看包依赖关系
apt-get install pkg安装包(底层命令)
apt-get download pkg仅下载 deb 包不安装
dpkg -i pkg.deb用 dpkg 安装本地 deb 包
dpkg -r pkg卸载 deb 包
dpkg -l列出所有已安装 deb 包
dpkg -L pkg列出包安装的文件
dpkg -S file查询文件属于哪个包
dpkg --configure -a修复中断的配置过程
apt-mark hold pkg锁定包版本禁止升级
apt-mark unhold pkg解除包版本锁定
apt-cache rdepends pkg查看反向依赖
apt edit-sources编辑软件源配置
apt-get clean清理下载缓存
apt-get autoclean清理过期缓存包
apt-file search f查找包含某文件的包
add-apt-repository ppa:x添加 PPA 软件源

7软件包管理(YUM/DNF/RPM) 30 条

命令说明
dnf update更新所有可升级包
dnf upgrade升级包(同 update)
dnf install pkg安装软件包
dnf install -y pkg自动确认安装
dnf remove pkg卸载软件包
dnf autoremove清理无用依赖
dnf search kw按关键字搜索包
dnf info pkg显示包详细信息
dnf list installed列出已安装包
dnf list available列出可安装包
dnf provides file查询文件由哪个包提供
dnf groups list列出可用包组
dnf groupinstall "grp"安装整组软件包
dnf repoquery --list pkg列出包内含文件
dnf history查看事务历史
dnf history undo id撤销指定事务
dnf clean all清理全部缓存
yum update兼容模式更新(旧命令)
rpm -ivh pkg.rpm安装本地 rpm 包并显示进度
rpm -e pkg卸载 rpm 包
rpm -qa列出全部已安装 rpm 包
rpm -ql pkg列出包内文件
rpm -qf file查询文件所属 rpm 包
rpm -qi pkg显示包信息
rpm -Uvh pkg.rpm升级 rpm 包
rpm -V pkg校验包文件是否被篡改
rpm --import key导入 GPG 公钥
dnf config-manager --add-repo url添加软件仓库
dnf module list列出可用模块流
dnf downgrade pkg降级到旧版本

8systemd 服务管理 30 条

命令说明
systemctl start svc启动指定服务
systemctl stop svc停止指定服务
systemctl restart svc重启服务
systemctl reload svc重载服务配置(不中断)
systemctl status svc查看服务运行状态
systemctl enable svc设置开机自启动
systemctl disable svc取消开机自启动
systemctl is-enabled svc查看是否开机自启
systemctl is-active svc查看服务是否正在运行
systemctl list-units列出当前活跃单元
systemctl list-unit-files列出所有单元文件状态
systemctl daemon-reload重新加载 unit 配置
systemctl mask svc彻底屏蔽服务(无法启动)
systemctl unmask svc取消屏蔽服务
systemctl cat svc查看服务 unit 文件内容
systemctl show svc显示服务全部属性
systemctl edit svc生成覆盖配置片段
journalctl -u svc查看服务日志
journalctl -u svc -f实时跟踪服务日志
systemctl --failed列出启动失败的服务
systemctl get-default查看默认启动目标
systemctl set-default multi-user设为多用户命令行目标
systemctl isolate rescue切换到救援模式
systemctl poweroff关机
systemctl reboot重启系统
systemctl suspend挂起(睡眠)
systemctl hibernate休眠(写盘)
hostnamectl查看/设置主机名与系统信息
timedatectl查看与设置系统时间
localectl查看与设置区域与键盘

9进程管理 30 条

命令说明
ps显示当前终端的进程
ps aux显示全部用户的所有进程
ps -ef全格式显示进程及父 PID
ps -u user显示指定用户的进程
ps -p pid查看指定 PID 的进程
top实时动态监控进程与资源
htop增强版交互式进程监控
pstree以树状结构显示进程关系
pgrep name按名称查找进程 PID
pidof name查找进程 PID
kill pid向进程发送终止信号
kill -9 pid强制杀死进程(SIGKILL)
kill -l列出所有信号名称
killall name按进程名终止全部匹配
pkill -u user终止指定用户的所有进程
nice -n 10 cmd以较低优先级运行命令
renice 10 pid修改运行中进程的优先级
nohup cmd &脱离终端在后台运行
cmd &将命令放入后台执行
jobs查看当前 shell 的后台作业
bg将作业切换到后台继续运行
fg将后台作业切换到前台
disown使作业脱离 shell 不受挂断影响
watch -n1 cmd每 1 秒重复执行命令
lsof -p pid查看进程打开的文件
lsof -i :80查看占用 80 端口的进程
strace -p pid追踪进程的系统调用
fuser -k 80/tcp杀掉占用 80 端口的进程
timeout 10 cmd限制命令最多运行 10 秒
ps aux --sort=-%mem | head按内存占用降序列出 Top 进程

10磁盘与分区 30 条

命令说明
lsblk以树状列出块设备与挂载点
fdisk -l列出所有磁盘分区表
fdisk /dev/sda交互式分区(MBR)
parted /dev/sda交互式分区(支持 GPT)
parted -l列出分区信息
mkfs.ext4 /dev/sdX格式化为 ext4 文件系统
mkfs.xfs /dev/sdX格式化为 xfs 文件系统
mkswap /dev/sdX创建 swap 交换分区
swapon /dev/sdX启用 swap 分区
swapoff /dev/sdX关闭 swap 分区
swapon -s显示 swap 使用状态
df -h以可读方式显示磁盘使用率
df -i显示 inode 使用情况
du -sh dir统计目录总大小
du -h --max-depth=1统计一级子目录大小
mount /dev/sdX /mnt挂载设备到目录
umount /mnt卸载已挂载的文件系统
mount -a挂载 /etc/fstab 中全部项
blkid显示设备 UUID 与文件系统类型
fsck /dev/sdX检查并修复文件系统
e2fsck -f /dev/sdX强制检查 ext 文件系统
tune2fs -l /dev/sdX查看 ext 文件系统参数
dumpe2fs /dev/sdX导出 ext 文件系统详细信息
resize2fs /dev/sdX调整 ext 文件系统大小
xfs_growfs /mnt在线扩展 xfs 文件系统
wipefs /dev/sdX擦除设备上的文件系统签名
hdparm -I /dev/sda查看硬盘参数信息
smartctl -a /dev/sda读取硬盘 SMART 健康状态
dd if=/dev/zero of=f bs=1M count=100生成指定大小的零填充文件
partprobe通知内核重新读取分区表

11网络配置 30 条

命令说明
ip addr显示所有网络接口的 IP 地址
ip link显示网络接口链路状态
ip link set eth0 up启用网络接口
ip link set eth0 down禁用网络接口
ip addr add 10.0.0.10/24 dev eth0为接口添加 IP 地址
ip addr del 10.0.0.10/24 dev eth0移除接口 IP 地址
ip route显示内核路由表
ip route add default via 10.0.0.1添加默认网关
ip route add 172.16.0.0/12 via 10.0.0.1添加静态路由
ip route del 172.16.0.0/12删除静态路由
ip neigh显示 ARP 邻居表
nmcli device列出网络设备及状态
nmcli con show显示所有网络连接
nmcli con up id启用指定连接
nmcli con down id停用指定连接
nmcli con add type ethernet ifname eth0新增以太网连接
nmcli con mod eth0 ipv4.addresses 10.0.0.10/24修改连接 IP
hostnamectl set-hostname h设置系统主机名
cat /etc/hosts查看本地主机名解析
cat /etc/resolv.conf查看 DNS 服务器配置
resolvectl status显示系统解析状态
nmcli dev wifi扫描可用 WiFi 列表
nmcli dev wifi connect ssid password p连接指定 WiFi
ethtool eth0查看网卡速率与协商状态
ethtool -i eth0查看网卡驱动信息
ip -s link显示接口流量统计
ip netns list列出网络命名空间
ip netns add ns1创建网络命名空间
ip netns exec ns1 cmd在指定命名空间内执行命令
ip -br addr简洁显示各接口地址与状态

12网络诊断 30 条

命令说明
ping host测试到目标主机的连通性
ping -c 4 host发送 4 个 ICMP 包后停止
ping6 host对 IPv6 地址执行连通测试
traceroute host追踪到目标的路由路径
tracepath host显示到目标的路径与 MTU
mtr host实时综合 ping+traceroute 监控
ss -tulnp查看监听端口与对应进程
ss -tnp查看已建立的 TCP 连接
ss -l仅显示监听中的套接字
netstat -tulnp查看监听端口(传统命令)
netstat -an显示所有连接与端口
tcpdump -i eth0抓取接口上的网络数据包
tcpdump -i eth0 port 80只抓 80 端口流量
tcpdump -w cap.pcap抓包并保存到文件
tcpdump -r cap.pcap读取 pcap 抓包文件
dig example.comDNS 详细解析查询
dig +short example.com仅返回解析结果
dig -x 8.8.8.8反向 DNS 解析
nslookup example.com查询域名解析
host example.com简洁的 DNS 查询
curl -I url仅获取 HTTP 响应头
curl -v url显示详细请求/响应过程
curl -O url下载文件并保留原名
wget url下载文件
arp -n显示 ARP 缓存表
ip neigh show显示邻居(ARP)表
telnet host 80测试目标主机端口连通性
nc -zv host 80使用 ncat 探测端口
nmap host扫描主机开放端口
ss -s显示套接字连接统计摘要

13远程连接与文件传输 30 条

命令说明
ssh user@host通过 SSH 登录远程主机
ssh -p 2222 user@host指定端口登录
ssh -i key user@host使用私钥登录
ssh -X user@host启用 X11 图形转发
ssh -L 8080:localhost:80 user@host建立本地端口转发
ssh -R 8080:localhost:80 user@host建立远程端口转发
ssh -D 1080 user@host建立动态 SOCKS 代理
ssh -o StrictHostKeyChecking=no host跳过主机密钥确认
scp file user@host:/path上传文件到远程
scp user@host:/path file从远程下载文件
scp -r dir user@host:/p递归复制目录
scp -P 2222 file user@host:/p指定端口传输
scp -i key file user@host:/p用密钥安全传输
rsync -avz src/ user@host:/dst增量同步目录
rsync -avz --delete src/ dst镜像同步并删除多余文件
rsync -e ssh src user@host:/dst通过 SSH 同步
rsync -avz --exclude='*.log' s d同步时排除日志
sftp user@host进入交互式 SFTP 传输
sshfs user@host:/p /mnt将远程目录挂载到本地
fusermount -u /mnt卸载 sshfs 挂载
ssh-copy-id user@host上传公钥实现免密登录
ssh-keygen生成 SSH 密钥对
ssh-keygen -t ed25519生成 ed25519 类型密钥
ssh-add将密钥加入 ssh-agent
ssh-agent bash启动 ssh-agent 代理
ssh -tt user@host cmd分配伪终端远程执行命令
scp -C file user@host:/p传输时启用压缩
rsync -avz --partial src dst支持断点续传
ssh user@host 'cmd'在远程直接执行单条命令
rsync -avz -e "ssh -p 2222" s h:/d指定 SSH 端口同步目录

14防火墙(firewalld/iptables/nft) 30 条

命令说明
systemctl start firewalld启动 firewalld 服务
firewall-cmd --state查看防火墙运行状态
firewall-cmd --list-all显示当前区域全部规则
firewall-cmd --get-zones列出所有可用区域
firewall-cmd --get-active-zones显示激活的区域
firewall-cmd --zone=public --add-port=80/tcp临时开放 80 端口
firewall-cmd --zone=public --add-service=http按服务名开放
firewall-cmd --permanent --add-port=80/tcp永久开放 80 端口
firewall-cmd --reload重载防火墙使规则生效
firewall-cmd --remove-port=80/tcp移除已开放端口
firewall-cmd --add-rich-rule='rule'添加富规则
firewall-cmd --query-port=80/tcp查询端口是否放行
iptables -L -n列出当前 iptables 规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT允许 SSH 入站
iptables -A INPUT -j DROP拒绝其余入站流量
iptables -F清空所有规则
iptables -P INPUT DROP设置默认入站策略为丢弃
iptables -t nat -L查看 NAT 表规则
iptables -t nat -A POSTROUTING -j MASQUERADE配置 SNAT 伪装
iptables-save > rules.v4保存规则到文件
iptables-restore < rules.v4从文件恢复规则
nft list ruleset列出 nftables 全部规则
nft add table inet filter创建 nftables 表
nft add chain inet filter input创建 input 链
nft add rule inet filter input tcp dport 22 accept放行 SSH
nft delete table inet filter删除整张表
ufw enable启用 Ubuntu 简易防火墙
ufw allow 22允许 22 端口
ufw status查看 ufw 规则状态
ufw deny 80拒绝 80 端口

15日志管理 30 条

命令说明
journalctl查看 systemd 全部日志
journalctl -b仅显示本次启动以来的日志
journalctl -p err只显示错误级别日志
journalctl -u svc查看指定服务日志
journalctl -u svc -f实时跟踪服务日志
journalctl --since "2026-08-02"查看指定日期后的日志
journalctl -n 100显示最近 100 行
journalctl -f实时滚动显示新日志
journalctl -k仅显示内核日志
journalctl _PID=1234按进程 PID 过滤
journalctl --disk-usage查看日志磁盘占用
journalctl --vacuum-size=500M清理日志至 500M 以内
cat /var/log/messages查看系统消息日志(RHEL)
cat /var/log/syslog查看系统日志(Debian)
cat /var/log/dmesg查看内核启动信息
dmesg打印内核环形缓冲区消息
dmesg -T以可读时间显示内核消息
dmesg -w持续监控内核消息
less /var/log/auth.log查看认证日志
tail -f /var/log/nginx/access.log实时跟踪访问日志
logrotate --force /etc/logrotate.conf强制触发日志轮转
cat /etc/rsyslog.conf查看 rsyslog 主配置
logger "test message"向 syslog 写入测试消息
journalctl --verify校验日志文件完整性
journalctl -o json以 JSON 格式输出日志
cat /var/log/secure查看安全认证日志(RHEL)
ausearch -m avc查询 SELinux 拒绝审计
aureport生成审计摘要报告
less /var/log/kern.log查看内核日志(Debian)
journalctl --since "1 hour ago"查看最近一小时的日志

16定时任务 30 条

命令说明
crontab -e编辑当前用户的定时任务
crontab -l列出当前用户的定时任务
crontab -r删除当前用户所有任务
crontab -u user -l查看指定用户的任务
systemctl start cron启动 cron 服务(Debian)
systemctl start crond启动 crond(RHEL)
cat /etc/crontab查看系统级 crontab
ls /etc/cron.d/查看目录级 cron 任务
ls /etc/cron.daily/查看每日任务脚本
ls /etc/cron.hourly/查看每小时任务
run-parts /etc/cron.daily手动执行每日任务
cat /etc/anacrontab查看 anacron 配置
* * * * * cmd每分钟执行一次
0 * * * * cmd每小时整点执行
0 0 * * * cmd每天 0 点执行
0 0 * * 0 cmd每周日 0 点执行
0 0 1 * * cmd每月 1 号 0 点执行
*/5 * * * * cmd每 5 分钟执行一次
0 9-18 * * 1-5 cmd工作日上午 9 至 18 点
systemctl list-timers列出 systemd 定时器
systemctl start foo.timer启动指定定时器
systemctl enable foo.timer设置定时器开机启用
at now + 1 hour安排一小时后执行任务
atq查看待执行的 at 任务队列
atrm id删除指定 at 任务
sleep 60 && cmd延时 60 秒后执行
watch -n 300 cmd每 5 分钟执行命令
anacron按天错峰执行错过周期的任务
cat /var/log/cron查看 cron 执行日志
systemctl status cron查看 cron 服务状态
Linux 系统基础命令速查表

发表回复

滚动到顶部