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 最容易踩的坑,就是试图把所有命令全部背下来。

其实完全没有必要。

真正应该掌握的是几个核心能力:

  1. 会找文件
  2. 会看日志
  3. 会查进程
  4. 会查端口
  5. 会看 CPU、内存和磁盘
  6. 会管理服务
  7. 会修改文件和权限
  8. 会 SSH 登录和传输文件
  9. 会通过 grep、find、管道组合命令
  10. 出问题时知道应该先查哪里

日常开发和服务器运维,本质上就是不断组合这些基础命令。

真正熟练之后你会发现:

Linux 并不是需要背几百个命令,而是掌握二三十个核心命令,再学会组合它们。

posted @ 2026-08-31 09:44  JavaPub  阅读(37)  评论(0)    收藏  举报