Linux 常用命令大全:从入门到日常运维,一篇搞定
Linux 命令很多,但真正日常高频使用的,其实就那么几十个。
无论你是开发、运维、部署服务,还是平时使用 Docker、Nginx、MySQL、服务器,只要掌握下面这些命令,基本就能完成绝大多数操作。
这篇文章整理一份比较完整的 Linux 常用命令速查手册。

一、查看当前系统信息
1. 查看系统版本
cat /etc/os-release
常见输出:
NAME="Ubuntu"
VERSION="24.04 LTS"
ID=ubuntu
也可以:
uname -a
查看 Linux 内核信息:
uname -r
2. 查看主机名
hostname
查看更详细信息:
hostnamectl
修改主机名:
sudo hostnamectl set-hostname server01
3. 查看当前时间
date
例如:
Mon Aug 31 08:30:00 CST 2026
查看时区:
timedatectl
4. 查看系统运行时间
uptime
例如:
08:30:01 up 15 days, 3:12, 2 users, load average: 0.15, 0.10, 0.05
这里可以看到:
- 系统运行了多久
- 当前登录用户数量
- 系统负载
二、目录操作
Linux 中最基础的几个命令:
pwd
ls
cd
mkdir
rm
1. pwd:查看当前目录
pwd
例如:
/home/ubuntu
2. ls:查看目录内容
ls
查看详细信息:
ls -l
显示隐藏文件:
ls -a
最常用:
ls -lah
参数解释:
-l 详细信息
-a 显示隐藏文件
-h 自动转换文件大小
例如:
drwxr-xr-x 5 root root 4.0K Aug 31 app
-rw-r--r-- 1 root root 2.1M Aug 31 app.log
3. cd:切换目录
进入某个目录:
cd /var/log
进入当前用户目录:
cd ~
返回上一级:
cd ..
返回上一次所在目录:
cd -
进入根目录:
cd /
4. mkdir:创建目录
创建目录:
mkdir test
递归创建:
mkdir -p /data/app/logs
这是非常常用的写法。
5. rmdir:删除空目录
rmdir test
只能删除空目录。
实际工作中更多使用:
rm -rf test
三、文件操作
1. touch:创建文件
touch test.txt
也可以用来更新时间戳:
touch app.log
2. cp:复制文件
复制文件:
cp a.txt b.txt
复制到目录:
cp a.txt /tmp/
复制整个目录:
cp -r source target
保留文件权限和时间:
cp -a source target
3. mv:移动或者重命名
重命名:
mv old.txt new.txt
移动文件:
mv app.log /var/log/
移动目录:
mv project /data/
4. rm:删除文件
删除文件:
rm test.txt
强制删除:
rm -f test.txt
删除目录:
rm -r test
最常见:
rm -rf test
但是需要特别注意:
rm -rf
是 Linux 中风险非常高的操作。
例如千万不要执行:
rm -rf /
也不要在不确定变量值的情况下写:
rm -rf $DIR/*
删除前最好先执行:
echo "$DIR"
确认变量内容。
四、查看文件内容
1. cat
直接查看文件:
cat config.yaml
显示行号:
cat -n config.yaml
适合查看小文件。
2. less
查看大文件:
less app.log
常用操作:
↑ ↓ 上下移动
PageUp 向上翻页
PageDown 向下翻页
/关键字 搜索
n 下一个结果
q 退出
3. more
more app.log
功能类似 less,不过现在一般更推荐:
less
4. head
查看文件前 10 行:
head app.log
查看前 100 行:
head -n 100 app.log
5. tail
查看最后 10 行:
tail app.log
查看最后 100 行:
tail -n 100 app.log
实时查看日志:
tail -f app.log
这是服务器排查问题时最常用的命令之一。
例如:
tail -f /var/log/nginx/access.log
五、搜索文件和内容
1. find:查找文件
从当前目录搜索:
find . -name "app.log"
搜索 .log 文件:
find . -name "*.log"
从整个系统查找:
find / -name nginx.conf
忽略大小写:
find . -iname "readme.md"
查找目录:
find . -type d -name logs
查找文件:
find . -type f -name "*.txt"
查找大于 100MB 的文件:
find / -type f -size +100M
这个非常适合服务器磁盘爆满时排查。
2. grep:搜索文件内容
搜索:
grep "error" app.log
忽略大小写:
grep -i "error" app.log
显示行号:
grep -n "error" app.log
递归搜索整个目录:
grep -r "database" .
最常用组合:
grep -rin "error" .
解释:
-r 递归
-i 忽略大小写
-n 显示行号
3. 配合管道使用
例如查看进程:
ps aux | grep nginx
查看日志:
cat app.log | grep error
不过这种情况可以直接写:
grep error app.log
六、文件编辑
Linux 常见文本编辑器:
vim
vi
nano
1. Vim
打开文件:
vim nginx.conf
常用操作:
i 进入编辑模式
Esc 退出编辑模式
:w 保存
:q 退出
:wq 保存并退出
:q! 强制退出不保存
搜索:
/error
删除一行:
dd
复制一行:
yy
粘贴:
p
2. nano
如果不习惯 Vim,可以使用:
nano nginx.conf
对于 Linux 新手来说,nano 更容易上手。
七、权限管理
Linux 文件权限非常重要。
查看权限:
ls -l
例如:
-rwxr-xr-x
分别对应:
用户权限
用户组权限
其他用户权限
1. chmod:修改权限
给文件增加执行权限:
chmod +x install.sh
设置权限:
chmod 755 install.sh
常见权限:
777 所有人可读写执行
755 所有者可写,其他人可读执行
644 所有者可读写,其他人只读
600 只有所有者可读写
例如:
chmod 600 id_rsa
SSH 私钥通常使用:
600
2. chown:修改所有者
chown ubuntu app.txt
修改用户和用户组:
chown ubuntu:ubuntu app.txt
递归修改:
chown -R ubuntu:ubuntu /data/app
八、用户管理
1. 查看当前用户
whoami
2. 查看用户 ID
id
3. 查看登录用户
who
或者:
w
4. 创建用户
Ubuntu / Debian:
sudo adduser test
或者:
sudo useradd test
5. 修改密码
passwd
修改其他用户密码:
sudo passwd test
6. 删除用户
sudo userdel test
同时删除用户目录:
sudo userdel -r test
九、sudo 和 root
以管理员权限运行:
sudo command
例如:
sudo apt update
进入 root:
sudo -i
或者:
su -
退出:
exit
日常使用不建议一直使用 root。
十、进程管理
1. ps:查看进程
ps
查看所有进程:
ps aux
搜索某个进程:
ps aux | grep nginx
例如:
ps aux | grep java
2. top:实时查看进程
top
可以查看:
- CPU
- 内存
- 系统负载
- 进程
- PID
3. htop
更现代的进程监控工具:
htop
如果没有安装:
Ubuntu:
sudo apt install htop
CentOS:
sudo yum install htop
4. kill:结束进程
kill PID
例如:
kill 12345
强制结束:
kill -9 12345
通常不要一上来就:
kill -9
优先尝试普通:
kill PID
5. pkill
按照进程名结束:
pkill nginx
6. killall
killall nginx
十一、后台运行
1. &
后台运行:
python app.py &
2. nohup
关闭 SSH 后继续运行:
nohup python app.py > app.log 2>&1 &
这是非常经典的 Linux 后台启动方式。
解释:
> app.log
标准输出写入 app.log
2>&1
错误输出也写入 app.log
&
后台运行
查看:
ps aux | grep app.py
实时查看日志:
tail -f app.log
3. jobs
查看当前 Shell 后台任务:
jobs
4. fg
把后台任务切换到前台:
fg
5. bg
让暂停的任务继续在后台运行:
bg
十二、systemctl 服务管理
现代 Linux 基本都使用 systemd。
查看服务:
systemctl status nginx
启动:
sudo systemctl start nginx
停止:
sudo systemctl stop nginx
重启:
sudo systemctl restart nginx
重新加载配置:
sudo systemctl reload nginx
设置开机启动:
sudo systemctl enable nginx
取消开机启动:
sudo systemctl disable nginx
查看服务是否开机启动:
systemctl is-enabled nginx
十三、journalctl 日志
systemd 服务日志可以使用:
journalctl
查看某个服务:
journalctl -u nginx
实时查看:
journalctl -u nginx -f
查看最近 100 行:
journalctl -u nginx -n 100
查看今天:
journalctl --since today
十四、网络相关命令
1. ip
查看 IP:
ip addr
简写:
ip a
查看路由:
ip route
2. ping
测试网络:
ping google.com
只测试 4 次:
ping -c 4 google.com
3. curl
访问网页:
curl https://example.com
查看响应头:
curl -I https://example.com
显示详细连接信息:
curl -v https://example.com
发送 POST:
curl -X POST https://api.example.com/users
发送 JSON:
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{
"name": "test"
}'
下载文件:
curl -O https://example.com/file.zip
4. wget
下载文件:
wget https://example.com/file.zip
指定文件名:
wget -O app.zip https://example.com/file.zip
十五、端口查看
1. ss
查看监听端口:
ss -lntp
其中:
-l LISTEN
-n 不解析域名
-t TCP
-p 显示进程
例如查 8080:
ss -lntp | grep 8080
2. netstat
老系统可能使用:
netstat -lntp
现在推荐:
ss
3. lsof
查看某个端口被谁占用:
lsof -i :8080
例如:
COMMAND PID USER FD TYPE DEVICE NODE NAME
java 123 root 20u IPv6 12345 TCP *:8080
结束:
kill 123
十六、DNS 排查
查看 DNS:
cat /etc/resolv.conf
查询域名:
nslookup google.com
或者:
dig google.com
十七、磁盘管理
1. df:查看磁盘使用量
df -h
例如:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 100G 60G 40G 60% /
重点关注:
Use%
2. du:查看目录大小
查看当前目录:
du -sh .
查看每个文件:
du -sh *
按照大小排序:
du -sh * | sort -h
找出 /var 最大目录:
du -h /var --max-depth=1 | sort -h
服务器磁盘满的时候非常好用。
3. lsblk
查看磁盘:
lsblk
例如:
NAME SIZE TYPE MOUNTPOINT
sda 100G disk
└─sda1 100G part /
4. fdisk
查看磁盘分区:
sudo fdisk -l
十八、内存查看
查看内存:
free
更容易阅读:
free -h
例如:
total used free
Mem: 16Gi 6Gi 4Gi
Swap: 2Gi 0Gi 2Gi
十九、CPU 查看
查看 CPU:
lscpu
查看 CPU 核数:
nproc
例如:
8
二十、压缩和解压
Linux 服务器经常会遇到:
.tar
.tar.gz
.zip
.gz
1. tar.gz 解压
tar -zxvf app.tar.gz
2. tar.gz 压缩
tar -zcvf app.tar.gz app/
3. tar 解压
tar -xvf app.tar
4. zip
压缩:
zip app.zip app.txt
压缩目录:
zip -r app.zip app/
5. unzip
解压:
unzip app.zip
解压到指定目录:
unzip app.zip -d /data/app
二十一、软件安装
不同 Linux 发行版的软件安装命令不同。
Ubuntu / Debian
更新软件源:
sudo apt update
更新软件:
sudo apt upgrade
安装:
sudo apt install nginx
删除:
sudo apt remove nginx
搜索:
apt search nginx
CentOS / Rocky Linux / AlmaLinux
安装:
sudo yum install nginx
新版本也经常使用:
sudo dnf install nginx
更新:
sudo dnf update
删除:
sudo dnf remove nginx
二十二、SSH
连接服务器:
ssh root@192.168.1.100
指定端口:
ssh -p 2222 root@192.168.1.100
使用密钥:
ssh -i ~/.ssh/id_rsa root@192.168.1.100
SSH 密钥生成
ssh-keygen
推荐:
ssh-keygen -t ed25519
查看公钥:
cat ~/.ssh/id_ed25519.pub
二十三、scp 文件传输
本地上传到服务器:
scp app.zip root@192.168.1.100:/data/
服务器下载到本地:
scp root@192.168.1.100:/data/app.zip .
上传目录:
scp -r project root@192.168.1.100:/data/
指定 SSH 端口:
scp -P 2222 app.zip root@192.168.1.100:/data/
注意:
SSH 使用:
-p
scp 指定端口使用:
-P
大小写不同。
二十四、rsync 文件同步
rsync 比 scp 更适合大量文件同步。
例如:
rsync -av project/ root@192.168.1.100:/data/project/
显示进度:
rsync -av --progress project/ root@192.168.1.100:/data/project/
远程目录同步到本地:
rsync -av root@192.168.1.100:/data/project/ ./project/
二十五、环境变量
查看所有环境变量:
env
查看 PATH:
echo $PATH
临时添加:
export API_KEY="123456"
查看:
echo $API_KEY
只对当前终端有效。
永久配置通常放在:
~/.bashrc
或者:
~/.zshrc
例如:
export JAVA_HOME=/usr/lib/jvm/java-17
然后执行:
source ~/.bashrc
二十六、命令历史
查看历史:
history
例如:
history | grep docker
执行上一条命令:
!!
例如:
apt update
发现没有权限,可以:
sudo !!
相当于:
sudo apt update
二十七、which 和 whereis
查看命令在哪里:
which python
例如:
/usr/bin/python
查看更多路径:
whereis python
二十八、查看命令帮助
几乎所有 Linux 命令都可以:
command --help
例如:
ls --help
也可以查看详细手册:
man ls
退出:
q
二十九、管道 |
Linux 中非常重要的概念就是:
|
它可以把前一个命令的输出交给下一个命令。
例如:
ps aux | grep nginx
意思是:
查看所有进程
↓
过滤出包含 nginx 的内容
再比如:
docker ps | grep mysql
三十、输出重定向
> 覆盖写入
echo hello > test.txt
再次执行:
echo world > test.txt
原来的内容会被覆盖。
>> 追加写入
echo hello >> test.txt
不会覆盖原来的内容。
2> 错误输出
command 2> error.log
2>&1
把错误输出和标准输出放到一起:
command > app.log 2>&1
非常常见。
三十一、排序和文本处理
sort
排序:
sort file.txt
数字排序:
sort -n file.txt
倒序:
sort -r file.txt
uniq
去重:
uniq file.txt
通常配合:
sort file.txt | uniq
统计重复次数:
sort file.txt | uniq -c
wc
统计:
wc file.txt
统计行数:
wc -l file.txt
例如:
cat access.log | wc -l
三十二、awk
awk 非常适合处理结构化文本。
例如:
ps aux
输出中第二列是 PID。
只输出 PID:
ps aux | awk '{print $2}'
输出第一列和第二列:
awk '{print $1,$2}' file.txt
三十三、sed
文本替换:
sed 's/old/new/g' file.txt
直接修改文件:
sed -i 's/old/new/g' file.txt
注意:
macOS 和 Linux 的 sed -i 行为有一些区别。
三十四、xargs
例如查找日志并删除:
find . -name "*.log" | xargs rm
更安全的方式:
find . -name "*.log" -print0 | xargs -0 rm
不过如果只是删除文件,也可以:
find . -name "*.log" -delete
三十五、查看开放文件
lsof
查看某个进程:
lsof -p 12345
查看端口:
lsof -i :8080
三十六、定时任务 crontab
查看:
crontab -l
编辑:
crontab -e
Cron 格式:
分 时 日 月 星期 命令
例如:
每天凌晨 2 点执行:
0 2 * * * /data/backup.sh
每 5 分钟:
*/5 * * * * /data/check.sh
每天 00:00:
0 0 * * * /data/task.sh
三十七、Docker 常用命令
现在服务器部署基本绕不开 Docker。
查看容器:
docker ps
查看所有容器:
docker ps -a
查看镜像:
docker images
启动:
docker start nginx
停止:
docker stop nginx
重启:
docker restart nginx
查看日志:
docker logs nginx
实时日志:
docker logs -f nginx
最近 100 行:
docker logs --tail 100 nginx
进入容器:
docker exec -it nginx bash
如果没有 bash:
docker exec -it nginx sh
删除容器:
docker rm nginx
删除镜像:
docker rmi nginx
查看 Docker 空间:
docker system df
清理:
docker system prune
注意:
执行清理命令前,一定要确认清理对象。
三十八、Docker Compose
启动:
docker compose up -d
停止并删除容器:
docker compose down
查看:
docker compose ps
查看日志:
docker compose logs
实时日志:
docker compose logs -f
重新创建:
docker compose up -d --force-recreate
拉取最新镜像:
docker compose pull
然后:
docker compose up -d
三十九、Nginx 常用命令
检查配置:
nginx -t
重新加载:
sudo nginx -s reload
或者:
sudo systemctl reload nginx
重启:
sudo systemctl restart nginx
查看状态:
systemctl status nginx
日志一般在:
/var/log/nginx/access.log
/var/log/nginx/error.log
实时查看:
tail -f /var/log/nginx/error.log
四十、常见排障组合
真正使用 Linux 的时候,很少只执行一个命令。
一般都是组合起来排查。
1. 服务打不开
首先:
systemctl status nginx
然后:
journalctl -u nginx -n 100
检查配置:
nginx -t
2. 端口访问不了
查看端口:
ss -lntp
查某个端口:
ss -lntp | grep 8080
或者:
lsof -i :8080
3. CPU 太高
top
或者:
htop
然后根据 PID:
ps -fp PID
4. 内存不够
free -h
然后:
ps aux --sort=-%mem | head
可以查看最占内存的进程。
5. 磁盘满了
首先:
df -h
找到爆满的磁盘。
然后:
du -h /var --max-depth=1 | sort -h
进一步排查:
du -h /var/log --max-depth=1 | sort -h
查找大文件:
find /var -type f -size +1G
6. Docker 占磁盘太大
查看:
docker system df
查看容器日志:
du -sh /var/lib/docker/containers/*
再根据实际情况决定是否清理。
7. 接口访问异常
curl -v https://example.com
DNS:
nslookup example.com
Ping:
ping example.com
检查端口:
ss -lntp
查看 Nginx:
tail -f /var/log/nginx/error.log
四十一、最值得记住的 Linux 命令
如果你完全是 Linux 新手,不需要一次性记住所有命令。
先把下面这些掌握:
pwd
ls -lah
cd
mkdir
cp
mv
rm
cat
less
head
tail
grep
find
vim
chmod
chown
ps
top
kill
systemctl
journalctl
df
du
free
ip
ping
curl
wget
ss
lsof
tar
zip
unzip
ssh
scp
history
如果使用 Docker,再掌握:
docker ps
docker images
docker logs
docker exec
docker restart
docker stop
docker rm
docker compose up -d
docker compose down
docker compose logs -f
四十二、Linux 常用命令速查表
| 场景 | 命令 |
|---|---|
| 查看当前目录 | pwd |
| 查看文件 | ls -lah |
| 切换目录 | cd |
| 创建目录 | mkdir -p |
| 创建文件 | touch |
| 复制 | cp |
| 移动 | mv |
| 删除 | rm |
| 查看文件 | cat |
| 查看大文件 | less |
| 查看头部 | head |
| 查看尾部 | tail |
| 实时日志 | tail -f |
| 搜索文本 | grep |
| 查找文件 | find |
| 编辑文件 | vim |
| 修改权限 | chmod |
| 修改所有者 | chown |
| 查看进程 | ps aux |
| 实时监控 | top |
| 结束进程 | kill |
| 查看端口 | ss -lntp |
| 查看端口进程 | lsof -i :8080 |
| 查看磁盘 | df -h |
| 查看目录大小 | du -sh |
| 查看内存 | free -h |
| 查看 CPU | lscpu |
| 网络测试 | ping |
| 请求接口 | curl |
| 下载文件 | wget |
| SSH 登录 | ssh |
| 上传下载 | scp |
| 压缩解压 | tar |
| 服务管理 | systemctl |
| 服务日志 | journalctl |
| 查看历史 | history |
四十三、几个非常实用的命令组合
最后分享几个服务器上经常直接使用的组合。
查看最占 CPU 的进程
ps aux --sort=-%cpu | head
查看最占内存的进程
ps aux --sort=-%mem | head
查看最大的文件
find / -type f -printf "%s %p\n" 2>/dev/null | sort -nr | head
查看当前监听端口
ss -lntp
查看 8080 端口
lsof -i :8080
实时筛选错误日志
tail -f app.log | grep -i error
查看 Docker 最近 200 行日志
docker logs --tail 200 容器名
实时查看 Docker 错误
docker logs -f 容器名 2>&1 | grep -i error
查找占用大量磁盘的目录
du -h --max-depth=1 / | sort -h
查看服务器 IP
ip addr
查看公网 IP
curl ifconfig.me
总结
学习 Linux 最容易踩的坑,就是试图把所有命令全部背下来。
其实完全没有必要。
真正应该掌握的是几个核心能力:
- 会找文件
- 会看日志
- 会查进程
- 会查端口
- 会看 CPU、内存和磁盘
- 会管理服务
- 会修改文件和权限
- 会 SSH 登录和传输文件
- 会通过
grep、find、管道组合命令 - 出问题时知道应该先查哪里
日常开发和服务器运维,本质上就是不断组合这些基础命令。
真正熟练之后你会发现:
Linux 并不是需要背几百个命令,而是掌握二三十个核心命令,再学会组合它们。

浙公网安备 33010602011771号