在线工具
Linux常用命令大全
现代 Linux 常用命令速查:文件、进程、systemd 服务、网络、磁盘、软件包、Docker 等,附说明。
现代 Linux 发行版(Ubuntu 22.04+/Debian 12+/RHEL 9+ 等)常用命令速查,按用途分类,附简要说明。可用页面上方的筛选框搜索命令或关键词。
文件与目录
| 命令 | 说明 |
|---|---|
| ls -lah | 列出文件详细信息(含隐藏文件,大小以 K/M/G 显示) |
| cd - | 返回上一次所在的目录 |
| pwd | 显示当前所在目录的完整路径 |
| mkdir -p a/b/c | 递归创建多级目录 |
| cp -a src dst | 复制文件或目录,保留权限、时间戳和链接 |
| mv old new | 移动或重命名文件 |
| rm -rf dir | 强制递归删除目录(不可恢复,务必确认路径) |
| touch file | 创建空文件或更新文件时间戳 |
| ln -s target link | 创建软链接 |
| find . -name '*.log' -mtime +7 | 查找当前目录下 7 天前修改的 .log 文件 |
| find / -size +500M 2>/dev/null | 查找大于 500MB 的文件 |
| tree -L 2 | 以树状结构显示两层目录(需安装 tree) |
| stat file | 查看文件的大小、权限、inode 和各项时间 |
| file file | 识别文件类型 |
| realpath file | 显示文件的绝对路径 |
查看与编辑文本
| 命令 | 说明 |
|---|---|
| cat file | 输出文件全部内容 |
| less file | 分页查看大文件,/ 搜索,q 退出 |
| head -n 20 file | 查看文件前 20 行 |
| tail -n 100 -f app.log | 查看末尾 100 行并持续跟踪新增内容 |
| grep -rn 'keyword' . | 递归搜索包含关键词的行并显示行号 |
| grep -v '^#' file | 过滤掉以 # 开头的注释行 |
| sed -i 's/old/new/g' file | 在文件中批量替换文本 |
| awk '{print $1}' file | 打印每行第一列 |
| sort file | uniq -c | sort -rn | 统计重复行出现次数并按次数倒序 |
| wc -l file | 统计文件行数 |
| cut -d: -f1 /etc/passwd | 按冒号分隔取第一列(列出系统用户名) |
| diff -u a b | 以统一格式比较两个文件的差异 |
| nano file | 简单易用的终端文本编辑器 |
| vim file | 功能强大的文本编辑器,:wq 保存退出,:q! 放弃退出 |
权限与用户
| 命令 | 说明 |
|---|---|
| chmod 644 file | 设置权限为所有者读写、其他人只读 |
| chmod +x script.sh | 给脚本添加可执行权限 |
| chown -R user:group dir | 递归修改目录的所有者和所属组 |
| sudo command | 以管理员权限执行命令 |
| sudo -i | 切换到 root 交互式环境 |
| whoami | 显示当前用户名 |
| id user | 显示用户的 UID、GID 和所属组 |
| useradd -m -s /bin/bash user | 创建用户并生成家目录 |
| passwd user | 设置或修改用户密码 |
| usermod -aG sudo user | 把用户加入 sudo 组(RHEL 系为 wheel 组) |
| userdel -r user | 删除用户及其家目录 |
| last | 查看最近登录记录 |
系统信息
| 命令 | 说明 |
|---|---|
| uname -a | 显示内核版本和系统架构 |
| cat /etc/os-release | 查看发行版名称和版本 |
| hostnamectl | 查看或修改主机名及系统信息 |
| uptime | 查看运行时长和平均负载 |
| lscpu | 查看 CPU 型号、核心数和架构 |
| free -h | 查看内存和交换分区使用情况 |
| lsblk | 列出磁盘和分区 |
| lspci / lsusb | 列出 PCI 设备 / USB 设备 |
| dmesg -T | tail | 查看内核日志(带可读时间) |
| timedatectl | 查看或设置时区和时间同步 |
| date '+%F %T' | 按“年-月-日 时:分:秒”格式显示当前时间 |
进程管理
| 命令 | 说明 |
|---|---|
| ps aux | 列出所有进程 |
| ps aux --sort=-%mem | head | 按内存占用排序查看前几个进程 |
| top | 实时查看进程和资源占用,按 q 退出 |
| htop | 更直观的交互式进程查看器(需安装) |
| pgrep -a nginx | 按名称查找进程并显示命令行 |
| kill PID | 向进程发送终止信号(SIGTERM) |
| kill -9 PID | 强制结束进程(SIGKILL) |
| pkill -f pattern | 按命令行匹配结束进程 |
| nohup cmd > out.log 2>&1 & | 让命令在后台运行,退出终端后不中断 |
| jobs / fg / bg | 查看后台任务 / 切到前台 / 切到后台继续 |
| nice -n 10 cmd | 以较低优先级运行命令 |
| lsof -p PID | 查看进程打开的文件 |
服务与日志(systemd)
| 命令 | 说明 |
|---|---|
| systemctl status nginx | 查看服务运行状态和最近日志 |
| systemctl start|stop|restart nginx | 启动 / 停止 / 重启服务 |
| systemctl reload nginx | 重新加载配置而不中断服务 |
| systemctl enable --now nginx | 设置开机自启并立即启动 |
| systemctl disable nginx | 取消开机自启 |
| systemctl list-units --type=service --state=running | 列出正在运行的服务 |
| systemctl --failed | 列出启动失败的服务 |
| systemctl daemon-reload | 修改 unit 文件后重新加载配置 |
| journalctl -u nginx -f | 实时跟踪某个服务的日志 |
| journalctl -b -p err | 查看本次开机以来的错误日志 |
| journalctl --since '1 hour ago' | 查看最近一小时的日志 |
| journalctl --vacuum-size=500M | 把日志总量清理到 500MB 以内 |
磁盘与存储
| 命令 | 说明 |
|---|---|
| df -h | 查看各分区的磁盘使用情况 |
| du -sh * | 查看当前目录下各文件和目录的大小 |
| du -h --max-depth=1 / | sort -h | 按大小排序查看根目录下一级目录占用 |
| ncdu / | 交互式查找占用空间的目录(需安装) |
| mount /dev/sdb1 /mnt | 挂载分区到 /mnt |
| umount /mnt | 卸载已挂载的分区 |
| blkid | 查看分区 UUID 和文件系统类型(用于 /etc/fstab) |
| mkfs.ext4 /dev/sdb1 | 把分区格式化为 ext4(会清空数据) |
| fdisk -l | 查看磁盘分区表 |
| smartctl -a /dev/sda | 查看硬盘健康状态(需安装 smartmontools) |
网络
| 命令 | 说明 |
|---|---|
| ip a | 查看网卡和 IP 地址(替代已过时的 ifconfig) |
| ip r | 查看路由表和默认网关 |
| ss -tlnp | 查看监听中的 TCP 端口及对应进程(替代 netstat) |
| ss -s | 查看连接数统计 |
| ping -c 4 example.com | 测试网络连通性,发送 4 个包 |
| traceroute example.com | 跟踪到目标的路由路径(或使用 mtr) |
| curl -I https://example.com | 只获取网页的响应头 |
| curl -o file URL | 下载文件并保存 |
| wget -c URL | 下载文件,支持断点续传 |
| dig example.com +short | 查询域名解析结果 |
| nslookup example.com | 查询域名解析(Windows 也可用) |
| resolvectl status | 查看当前使用的 DNS 服务器 |
| nmcli device status | 查看 NetworkManager 管理的网络设备 |
| scp file user@host:/path | 通过 SSH 复制文件到远程主机 |
| rsync -avzP src/ user@host:/dst/ | 增量同步目录,显示进度并支持断点续传 |
SSH 远程
| 命令 | 说明 |
|---|---|
| ssh user@host -p 22 | 登录远程主机 |
| ssh-keygen -t ed25519 | 生成 Ed25519 密钥对(推荐算法) |
| ssh-copy-id user@host | 把公钥复制到远程主机,实现免密登录 |
| ssh -L 8080:localhost:80 user@host | 本地端口转发:访问本机 8080 即访问远程 80 |
| ssh -J jump user@target | 通过跳板机登录目标主机 |
| tmux / tmux attach | 新建 / 恢复终端会话,断线后任务不中断 |
防火墙
| 命令 | 说明 |
|---|---|
| ufw status | 查看 UFW 防火墙状态(Ubuntu/Debian) |
| ufw allow 443/tcp | 放行 443 端口 |
| ufw enable | 启用 UFW 防火墙(先放行 SSH 端口) |
| firewall-cmd --list-all | 查看 firewalld 规则(RHEL/CentOS/Rocky) |
| firewall-cmd --permanent --add-port=443/tcp | 永久放行 443 端口 |
| firewall-cmd --reload | 重新加载 firewalld 规则 |
| nft list ruleset | 查看 nftables 全部规则 |
软件包管理
| 命令 | 说明 |
|---|---|
| apt update && apt upgrade | 更新软件源并升级已安装软件(Debian/Ubuntu) |
| apt install nginx | 安装软件包 |
| apt remove --purge nginx | 卸载软件包并删除配置 |
| apt autoremove | 清理不再需要的依赖 |
| apt search keyword | 搜索软件包 |
| dnf upgrade | 升级系统软件(RHEL 9/Rocky/Fedora) |
| dnf install nginx | 安装软件包 |
| dnf provides */bin/dig | 查找某个文件由哪个软件包提供 |
| rpm -qa | grep nginx | 查询已安装的 RPM 包 |
| dpkg -l | grep nginx | 查询已安装的 DEB 包 |
| snap list / flatpak list | 查看通过 Snap / Flatpak 安装的应用 |
压缩与解压
| 命令 | 说明 |
|---|---|
| tar -czvf a.tar.gz dir | 把目录打包并用 gzip 压缩 |
| tar -xzvf a.tar.gz -C /path | 解压 .tar.gz 到指定目录 |
| tar -cJvf a.tar.xz dir | 打包并用 xz 压缩(体积更小) |
| tar -tf a.tar.gz | 查看压缩包内的文件列表 |
| zip -r a.zip dir | 压缩为 zip 文件 |
| unzip a.zip -d dir | 解压 zip 到指定目录 |
| zstd file / unzstd file.zst | 使用 zstd 快速压缩 / 解压 |
定时任务
| 命令 | 说明 |
|---|---|
| crontab -e | 编辑当前用户的定时任务 |
| crontab -l | 列出当前用户的定时任务 |
| 0 3 * * * /path/backup.sh | crontab 示例:每天 3:00 执行备份脚本(分 时 日 月 周) |
| */5 * * * * cmd | crontab 示例:每 5 分钟执行一次 |
| systemctl list-timers | 查看 systemd 定时器 |
容器(Docker)
| 命令 | 说明 |
|---|---|
| docker ps -a | 列出所有容器 |
| docker images | 列出本地镜像 |
| docker run -d -p 80:80 --name web nginx | 后台运行容器并映射端口 |
| docker logs -f web | 实时查看容器日志 |
| docker exec -it web sh | 进入正在运行的容器 |
| docker compose up -d | 按 compose.yaml 启动所有服务 |
| docker compose down | 停止并删除 compose 启动的容器 |
| docker system prune | 清理停止的容器、无用网络和悬空镜像 |