Linux 常用命令速查

发布于 2026-09-02 12:12 更新于 2026-10-13 17:14 6375 字 32 min read ... 访问量 AI 主笔 正文主要由 AI 起草,我负责挑选和改写。 AI 审阅 文章内容已由 AI 审阅过,但仍需谨慎判断。

AI 审阅 文章内容已由 AI 审阅过,但仍需谨慎判断。

本文系统整理了Linux常用命令,按日常使用场景分类,涵盖环境查看、文件操作、权限管理、进程控制、网络配置、软件包管理、系统监控与排障等内容。重点强调了命令的安全使用、操作前的确认步骤以及常见排查流程,帮助用户高效、安全地管理Linux系统。

Linux 常用命令速查

本文按日常 Linux 使用场景整理常见命令。示例中的 <file>、<directory>、<user>、<pid> 等内容需要替换为实际的文件名、目录、用户名或进程号。

部分命令需要管理员权限,可以在命令前添加 sudo。执行删除文件、修改权限、终止进程、磁盘分区等操作前,应先确认操作对象是否正确。

Linux 常用目录

目录说明
/根目录
/home普通用户家目录
/rootroot 用户家目录
/etc系统和软件配置文件
/var日志、缓存等经常变化的数据
/var/log系统和服务日志
/usr用户程序和共享资源
/usr/bin常用命令
/usr/local本地安装的软件
/opt第三方软件
/tmp临时文件
/dev设备文件
/proc进程和内核运行信息
/sys内核和硬件设备信息
/mnt临时挂载目录
/mediaU 盘、光盘等可移动设备挂载目录

查看当前环境

查看当前用户名

whoami

查看当前所在目录

pwd

查看当前登录用户

who

查看更加详细的登录信息

w

查看主机名

hostname

查看系统运行时间和负载

uptime

查看 Linux 内核版本

uname -r

查看完整系统信息

uname -a

查看发行版信息

cat /etc/os-release

查看系统时间

date

浏览目录

查看当前目录内容

ls

以详细格式查看

ls -l

显示隐藏文件

ls -a

显示隐藏文件,并以易读方式显示文件大小

ls -lah

按修改时间排序

ls -lt

按文件大小排序

ls -lhS

切换目录

进入指定目录

cd <directory>

返回上一级目录

cd ..

返回用户家目录

cd ~

也可以直接使用:

cd

返回上一次所在目录

cd -

进入根目录

cd /

创建文件和目录

创建空文件

touch <file>

同时创建多个文件

touch file1.txt file2.txt file3.txt

创建目录

mkdir <directory>

递归创建多级目录

mkdir -p path/to/directory

同时创建多个目录

mkdir dir1 dir2 dir3

复制文件和目录

复制文件

cp <source> <destination>

复制文件并重新命名

cp source.txt backup.txt

递归复制目录

cp -r <source-directory> <destination-directory>

保留权限、时间戳等属性复制

cp -a <source> <destination>

覆盖文件前进行提示

cp -i <source> <destination>

移动和重命名文件

移动文件

mv <source> <destination>

重命名文件

mv old-name.txt new-name.txt

移动目录

mv <directory> <destination>

覆盖目标文件前提示

mv -i <source> <destination>

删除文件和目录

删除文件

rm <file>

删除多个文件

rm file1.txt file2.txt

删除空目录

rmdir <directory>

递归删除目录及其内容

rm -r <directory>

删除前进行确认

rm -ri <directory>
危险操作:`rm -rf`

rm -rf 会递归并强制删除目标目录,不会进入回收站,也不会逐个询问。

例如:

rm -rf <directory>

使用变量或通配符时尤其需要谨慎。执行前可以先通过 ls 检查匹配结果:

ls <target>

确认无误后再执行删除操作。

查看文件内容

输出整个文件

cat <file>

显示行号

cat -n <file>

分页查看长文件

less <file>

在 less 中:

↑ / ↓    上下移动
Space    下一页
b        上一页
/keyword 搜索
n        下一个匹配
q        退出

查看文件前 10 行

head <file>

查看文件前 20 行

head -n 20 <file>

查看文件最后 10 行

tail <file>

查看文件最后 50 行

tail -n 50 <file>

实时查看文件新增内容

tail -f <file>

常用于查看日志:

tail -f /var/log/syslog

编辑文件

使用 Nano 编辑文件

nano <file>

常见快捷键:

Ctrl + O    保存
Ctrl + X    退出
Ctrl + W    搜索

使用 Vim 编辑文件

vim <file>

常用操作:

i        进入插入模式
Esc      返回普通模式
:w       保存
:q       退出
:wq      保存并退出
:q!      放弃修改并退出
/word    搜索
dd       删除当前行
yy       复制当前行
p        粘贴
u        撤销

文件查找

按文件名查找

find <directory> -name "<filename>"

例如:

find /etc -name "nginx.conf"

忽略大小写查找

find <directory> -iname "<filename>"

查找指定扩展名文件

find . -name "*.log"

查找目录

find . -type d -name "<directory-name>"

查找文件

find . -type f -name "<filename>"

查找最近 1 天修改过的文件

find . -type f -mtime -1

查找大于 100 MB 的文件

find . -type f -size +100M

查找命令位置

which <command>

例如:

which python3

查找命令、源码和手册位置

whereis <command>

搜索文本

在文件中搜索字符串

grep "<keyword>" <file>

忽略大小写

grep -i "<keyword>" <file>

显示匹配行号

grep -n "<keyword>" <file>

递归搜索目录

grep -r "<keyword>" <directory>

递归搜索并显示行号

grep -rn "<keyword>" <directory>

排除匹配内容

grep -v "<keyword>" <file>

使用扩展正则表达式

grep -E "<pattern>" <file>

搜索正在运行的进程

ps aux | grep <process-name>

使用 grep 搜索进程时,结果中通常还会出现 grep 命令自身。可以使用 pgrep 简化进程查找。

文件压缩与解压

创建 tar 归档

tar -cvf archive.tar <directory>

解压 tar 归档

tar -xvf archive.tar

创建 gzip 压缩包

tar -czvf archive.tar.gz <directory>

解压 tar.gz

tar -xzvf archive.tar.gz

创建 xz 压缩包

tar -cJvf archive.tar.xz <directory>

解压 tar.xz

tar -xJvf archive.tar.xz

查看压缩包内容但不解压

tar -tvf archive.tar.gz

解压到指定目录

tar -xzvf archive.tar.gz -C <directory>

创建 ZIP 压缩包

zip -r archive.zip <directory>

解压 ZIP

unzip archive.zip

解压 ZIP 到指定目录

unzip archive.zip -d <directory>

文件权限

Linux 文件权限分为:

r = read    读取
w = write   写入
x = execute 执行

权限对象分为:

u = user    文件所有者
g = group   所属用户组
o = others  其他用户
a = all     所有用户

查看文件权限

ls -l <file>

例如:

-rwxr-xr-- 1 qzh qzh 1024 Sep 2 12:00 script.sh

其中:

rwx    所有者权限
r-x    用户组权限
r--    其他用户权限

为所有者增加执行权限

chmod u+x <file>

移除其他用户的写权限

chmod o-w <file>

为所有用户添加执行权限

chmod a+x <file>

使用数字设置权限

chmod 755 <file>

数字权限对应关系:

数字权限
0---
1--x
2-w-
3-wx
4r--
5r-x
6rw-
7rwx

常见权限:

chmod 644 <file>
chmod 755 <file>
chmod 600 <file>

其中:

644    普通文本文件常见权限
755    可执行程序或目录常见权限
600    私钥等敏感文件常见权限

递归修改目录权限

chmod -R 755 <directory>

修改文件所有者

修改文件所有者

sudo chown <user> <file>

同时修改所有者和用户组

sudo chown <user>:<group> <file>

递归修改目录所有者

sudo chown -R <user>:<group> <directory>

修改文件所属用户组

sudo chgrp <group> <file>

用户管理

查看当前用户 UID 和用户组

id

查看指定用户信息

id <user>

创建用户

sudo adduser <user>

删除用户

sudo deluser <user>

删除用户及其家目录

sudo deluser --remove-home <user>

修改当前用户密码

passwd

修改指定用户密码

sudo passwd <user>

切换用户

su - <user>

切换到 root 用户

sudo -i

使用 root 权限执行单条命令

sudo <command>

用户组管理

查看当前用户所属用户组

groups

查看指定用户所属用户组

groups <user>

创建用户组

sudo groupadd <group>

将用户加入用户组

sudo usermod -aG <group> <user>

例如将用户加入 docker 用户组:

sudo usermod -aG docker <user>

使用 usermod -aG 修改用户组后,通常需要重新登录才能完全生效。

从用户组中删除用户

sudo gpasswd -d <user> <group>

进程管理

查看当前终端进程

ps

查看系统所有进程

ps aux

以树形结构查看进程

ps auxf

动态查看系统进程

top

如果安装了 htop:

htop

根据进程名称查找 PID

pgrep <process-name>

同时显示进程名称和 PID

pgrep -a <process-name>

终止指定进程

kill <pid>

强制终止指定进程

kill -9 <pid>

根据名称终止进程

pkill <process-name>

根据名称强制终止进程

pkill -9 <process-name>

kill -9 会直接发送 SIGKILL,进程没有机会执行清理工作。通常应先尝试普通 kill <pid>,只有进程无法正常退出时再考虑使用 kill -9。

后台运行任务

将命令放入后台运行

<command> &

查看当前 Shell 的后台任务

jobs

将后台任务切换到前台

fg %1

将暂停的任务继续放到后台运行

bg %1

让程序退出终端后继续运行

nohup <command> &

例如:

nohup python3 app.py > app.log 2>&1 &

查看后台程序 PID

echo $!

systemd 服务管理

现代 Ubuntu、Debian、Rocky Linux、CentOS 等发行版通常使用 systemd 管理系统服务。

查看服务状态

systemctl status <service>

例如:

systemctl status ssh

启动服务

sudo systemctl start <service>

停止服务

sudo systemctl stop <service>

重启服务

sudo systemctl restart <service>

重新加载服务配置

sudo systemctl reload <service>

设置服务开机启动

sudo systemctl enable <service>

立即启动并设置开机启动

sudo systemctl enable --now <service>

取消开机启动

sudo systemctl disable <service>

查看服务是否开机启动

systemctl is-enabled <service>

查看服务是否正在运行

systemctl is-active <service>

查看失败的服务

systemctl --failed

查看 systemd 日志

查看系统日志

journalctl

查看指定服务日志

journalctl -u <service>

实时查看服务日志

journalctl -u <service> -f

查看最近 100 行日志

journalctl -u <service> -n 100

查看本次启动以来的日志

journalctl -b

查看上一次启动的日志

journalctl -b -1

查看最近一小时日志

journalctl --since "1 hour ago"

查看 CPU 和内存

查看 CPU 信息

lscpu

查看 CPU 核心数量

nproc

查看内存使用情况

free -h

实时观察内存变化

watch -n 1 free -h

查看系统负载

uptime

也可以使用:

cat /proc/loadavg

查看磁盘空间

查看文件系统磁盘使用情况

df -h

同时显示文件系统类型

df -Th

查看指定目录所在文件系统空间

df -h <directory>

查看当前目录大小

du -sh .

查看指定目录大小

du -sh <directory>

查看当前目录下各文件和目录大小

du -sh *

按大小排序

du -sh * | sort -h

查看当前目录中最大的 20 个项目

du -ah . | sort -rh | head -n 20

查看磁盘和分区

查看块设备

lsblk

显示文件系统类型和 UUID

lsblk -f

查看磁盘分区信息

sudo fdisk -l

查看文件系统 UUID

sudo blkid

查看当前挂载情况

findmnt

挂载文件系统

创建挂载目录

sudo mkdir -p /mnt/data

挂载分区

sudo mount <device> /mnt/data

例如:

sudo mount /dev/sdb1 /mnt/data

卸载文件系统

sudo umount /mnt/data

也可以通过设备卸载:

sudo umount /dev/sdb1

查看永久挂载配置

cat /etc/fstab

修改 /etc/fstab 前建议先备份:

sudo cp /etc/fstab /etc/fstab.bak

修改完成后可以使用以下命令测试配置:

sudo mount -a

如果命令没有报错,再考虑重启系统。

LVM 常用命令

查看物理卷

sudo pvs

查看卷组

sudo vgs

查看逻辑卷

sudo lvs

查看详细逻辑卷信息

sudo lvdisplay

将卷组中全部空闲空间分配给逻辑卷

sudo lvextend -l +100%FREE <logical-volume>

例如:

sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

扩容 ext4 文件系统

sudo resize2fs <logical-volume>

扩容 XFS 文件系统

sudo xfs_growfs <mount-point>

缩小逻辑卷和文件系统的风险明显高于扩容。执行 LVM 修改前,应先确认设备路径、文件系统类型和备份情况。

网络信息

查看网卡和 IP 地址

ip addr

简写:

ip a

只查看 IPv4 地址

ip -4 addr

查看路由表

ip route

简写:

ip r

查看默认网关

ip route | grep default

查看邻居和 ARP 信息

ip neigh

查看 DNS 配置

cat /etc/resolv.conf

在使用 systemd-resolved 的系统中也可以使用:

resolvectl status

网络连通性测试

测试目标主机是否可达

ping <host>

发送 4 个数据包后停止

ping -c 4 <host>

查看访问目标主机经过的路由

traceroute <host>

如果没有安装 traceroute,部分系统可以使用:

tracepath <host>

查询域名解析

nslookup <domain>

也可以使用:

dig <domain>

查询指定记录

dig <domain> A
dig <domain> AAAA
dig <domain> MX

查看端口

查看正在监听的 TCP 和 UDP 端口

ss -tuln

同时显示对应进程

sudo ss -tulpn

查看指定端口

sudo ss -tulpn | grep :<port>

例如查看 8080 端口:

sudo ss -tulpn | grep :8080

查看占用指定端口的进程

sudo lsof -i :<port>

例如:

sudo lsof -i :8080

HTTP 请求

获取网页内容

curl <url>

只查看响应头

curl -I <url>

跟随 HTTP 重定向

curl -L <url>

下载文件并保留原文件名

curl -O <url>

下载文件并指定文件名

curl -o <filename> <url>

发送 GET 请求并显示详细信息

curl -v <url>

发送 POST 请求

curl -X POST <url>

发送 JSON 数据

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"name":"test"}' \
  <url>

使用 wget 下载文件

下载文件

wget <url>

指定保存文件名

wget -O <filename> <url>

断点续传

wget -c <url>

后台下载

wget -b <url>

SSH 远程登录

登录远程服务器

ssh <user>@<host>

指定 SSH 端口

ssh -p <port> <user>@<host>

指定私钥

ssh -i <private-key> <user>@<host>

执行远程命令

ssh <user>@<host> "<command>"

例如:

ssh qzh@192.168.1.10 "hostname"

SSH 密钥

创建 Ed25519 密钥

ssh-keygen -t ed25519 -C "you@example.com"

创建 RSA 密钥

ssh-keygen -t rsa -b 4096 -C "you@example.com"

将公钥复制到远程服务器

ssh-copy-id <user>@<host>

查看公钥

cat ~/.ssh/id_ed25519.pub

测试 SSH 配置

ssh -v <user>@<host>

SCP 文件传输

上传本地文件到远程服务器

scp <file> <user>@<host>:<remote-path>

从远程服务器下载文件

scp <user>@<host>:<remote-file> <local-path>

递归上传目录

scp -r <directory> <user>@<host>:<remote-path>

指定 SSH 端口

scp -P <port> <file> <user>@<host>:<remote-path>

ssh 使用小写 -p 指定端口,而 scp 使用大写 -P。

rsync 文件同步

同步目录

rsync -av <source>/ <destination>/

显示同步进度

rsync -av --progress <source>/ <destination>/

通过 SSH 同步到远程服务器

rsync -av <source>/ <user>@<host>:<destination>/

从远程服务器同步到本地

rsync -av <user>@<host>:<source>/ <destination>/

删除目标端多余文件,使两端完全一致

rsync -av --delete <source>/ <destination>/

--delete 会删除目标目录中源目录不存在的文件。正式执行前可以添加 --dry-run 预览操作:

rsync -av --delete --dry-run <source>/ <destination>/

APT 软件包管理

适用于 Ubuntu、Debian 等发行版。

更新软件包索引

sudo apt update

升级已安装软件包

sudo apt upgrade

安装软件

sudo apt install <package>

删除软件但保留配置

sudo apt remove <package>

删除软件及其配置

sudo apt purge <package>

清理不再需要的依赖

sudo apt autoremove

搜索软件包

apt search <keyword>

查看软件包信息

apt show <package>

查看已经安装的软件包

apt list --installed

DNF 软件包管理

适用于 Fedora、Rocky Linux、AlmaLinux 等发行版。

更新软件包

sudo dnf upgrade

安装软件

sudo dnf install <package>

删除软件

sudo dnf remove <package>

搜索软件包

dnf search <keyword>

查看软件包信息

dnf info <package>

环境变量

查看所有环境变量

env

查看指定环境变量

echo $PATH

临时设置环境变量

export NAME=value

例如:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

在 PATH 中增加目录

export PATH="$PATH:/opt/example/bin"

查看当前 Shell

echo $SHELL

重新加载 Bash 配置

source ~/.bashrc

也可以写成:

. ~/.bashrc

Shell 重定向

将标准输出写入文件并覆盖原内容

<command> > output.txt

将标准输出追加到文件

<command> >> output.txt

将标准错误写入文件

<command> 2> error.log

同时保存标准输出和标准错误

<command> > output.log 2>&1

Bash 中也可以使用:

<command> &> output.log

丢弃标准输出

<command> > /dev/null

丢弃标准输出和错误输出

<command> > /dev/null 2>&1

管道

管道 | 会将前一个命令的标准输出作为后一个命令的标准输入。

搜索命令输出

<command> | grep "<keyword>"

分页查看命令输出

<command> | less

统计输出行数

<command> | wc -l

排序后去重

<command> | sort | uniq

按数字排序

<command> | sort -n

逆序排列

<command> | sort -r

文本处理

统计文件行数

wc -l <file>

统计单词数量

wc -w <file>

统计字节数量

wc -c <file>

排序文件内容

sort <file>

去除相邻重复行

uniq <file>

通常配合 sort 使用:

sort <file> | uniq

统计重复行出现次数

sort <file> | uniq -c

提取指定列

cut -d '<delimiter>' -f <field> <file>

例如读取 /etc/passwd 中的用户名:

cut -d ':' -f 1 /etc/passwd

awk 常用操作

输出第一列

awk '{print $1}' <file>

输出第一列和第三列

awk '{print $1, $3}' <file>

指定分隔符

awk -F ':' '{print $1}' /etc/passwd

按条件过滤

awk '$3 > 100 {print $1, $3}' <file>

sed 常用操作

将第一个匹配内容替换

sed 's/old/new/' <file>

替换一行中所有匹配内容

sed 's/old/new/g' <file>

直接修改文件

sed -i 's/old/new/g' <file>

删除空行

sed '/^$/d' <file>

sed -i 会直接修改原文件。重要文件建议先备份,或者先去掉 -i 查看替换结果。

命令历史

查看历史命令

history

查看最近 20 条命令

history 20

搜索历史命令

history | grep "<keyword>"

执行上一条命令

!!

执行指定编号的历史命令

!<number>

清空当前 Shell 历史记录

history -c

反向搜索历史命令

在终端中按:

Ctrl + R

输入关键词即可搜索之前执行过的命令。

命令帮助

查看命令手册

man <command>

例如:

man ls

查看命令帮助

<command> --help

例如:

ls --help

查看 Shell 内置命令帮助

help <command>

例如:

help cd

查看命令类型

type <command>

alias 命令别名

查看当前别名

alias

临时创建别名

alias ll='ls -lah'

删除别名

unalias ll

永久添加别名

将别名写入:

~/.bashrc

例如:

alias ll='ls -lah'
alias gs='git status'

然后重新加载:

source ~/.bashrc

定时任务 Cron

编辑当前用户的定时任务

crontab -e

查看当前用户的定时任务

crontab -l

删除当前用户所有 Cron 任务

crontab -r

Cron 基本格式:

分 时 日 月 周 命令
*  *  *  *  *
│  │  │  │  │
│  │  │  │  └── 星期:0-7,0 和 7 都表示星期日
│  │  │  └───── 月份:1-12
│  │  └──────── 日期:1-31
│  └─────────── 小时:0-23
└────────────── 分钟:0-59

每天凌晨 2 点执行脚本

0 2 * * * /path/to/script.sh

每 5 分钟执行一次

*/5 * * * * /path/to/script.sh

每周一上午 8 点执行

0 8 * * 1 /path/to/script.sh

查看最近登录记录

查看用户登录历史

last

查看登录失败记录

sudo lastb

查看用户最后登录时间

lastlog

查看打开的文件

查看系统打开的文件

sudo lsof

查看指定进程打开的文件

sudo lsof -p <pid>

查看指定文件被哪些进程使用

sudo lsof <file>

查看指定端口使用情况

sudo lsof -i :<port>

查看硬件信息

查看 PCI 设备

lspci

查看 USB 设备

lsusb

查看块设备

lsblk

查看内存硬件信息

sudo dmidecode --type memory

查看 BIOS 信息

sudo dmidecode --type bios

查看系统硬件概况

sudo lshw -short

关机与重启

立即关机

sudo shutdown -h now

也可以使用:

sudo poweroff

立即重启

sudo reboot

10 分钟后关机

sudo shutdown -h +10

指定时间关机

sudo shutdown -h 23:30

取消计划中的关机

sudo shutdown -c

常用快捷键

快捷键作用
Ctrl + C终止当前命令
Ctrl + Z暂停当前进程
Ctrl + D退出当前 Shell 或发送 EOF
Ctrl + L清屏
Ctrl + A移动到行首
Ctrl + E移动到行尾
Ctrl + U删除光标前全部内容
Ctrl + K删除光标后全部内容
Ctrl + W删除光标前一个单词
Ctrl + R搜索历史命令
Tab自动补全
↑ / ↓浏览历史命令

常用命令组合

查看磁盘空间

df -Th

查看各目录占用空间并排序

du -sh * | sort -h

查找大文件

find / -type f -size +1G 2>/dev/null

查看内存占用最高的进程

ps aux --sort=-%mem | head

查看 CPU 占用最高的进程

ps aux --sort=-%cpu | head

查看指定端口是否被占用

sudo ss -tulpn | grep :<port>

查看指定程序是否正在运行

pgrep -a <process-name>

实时查看日志

tail -f <log-file>

查看服务最近 100 行日志

journalctl -u <service> -n 100

实时查看服务日志

journalctl -u <service> -f

查找包含指定文本的文件

grep -rn "<keyword>" <directory>

查看当前服务器 IP 地址

ip -br addr

查看默认网关

ip route | grep default

查看 CPU、内存和磁盘基本情况

lscpu
free -h
df -Th

查看磁盘、分区和 LVM 状态

lsblk
sudo pvs
sudo vgs
sudo lvs
df -Th

常见排障流程

当服务器上的服务无法正常访问时,可以按照以下顺序快速排查:

flowchart TD
    A[服务无法访问] --> B[检查服务状态]
    B --> C[检查服务日志]
    C --> D[检查进程]
    D --> E[检查监听端口]
    E --> F[检查本机网络]
    F --> G[检查远程连通性]
    G --> H[检查磁盘和内存]

1. 检查服务状态

systemctl status <service>

2. 查看服务日志

journalctl -u <service> -n 100

3. 查看进程

pgrep -a <process-name>

4. 查看监听端口

sudo ss -tulpn

5. 检查本机 IP 和路由

ip addr
ip route

6. 测试网络连通性

ping -c 4 <host>

7. 检查系统资源

free -h
df -Th
uptime

实际排障时,通常应先确认“服务是否运行”,再确认“端口是否监听”,最后检查防火墙、网络、DNS 和系统资源。这样比直接修改配置更容易定位问题。

执笔 AI 主笔

喜欢的话,留下你的评论吧~

加载中...