Linux基础运维指令大全

举报
yd_232225224 发表于 2026/08/25 21:30:04 2026/08/25
【摘要】 Linux 基础运维命令详解:从系统信息到进程、网络与日志排查Linux 是服务器、云计算、容器、嵌入式系统以及开发环境中最常见的操作系统之一。对于运维人员和开发人员来说,掌握一套常用的 Linux 命令,可以帮助我们快速完成文件管理、资源监控、进程排查、网络诊断以及日志分析等工作。本文整理了一套比较实用的 Linux 基础运维命令,并结合常见场景说明其用途。 1. 系统基本信息查看在接手...

Linux 基础运维命令详解:从系统信息到进程、网络与日志排查

Linux 是服务器、云计算、容器、嵌入式系统以及开发环境中最常见的操作系统之一。对于运维人员和开发人员来说,掌握一套常用的 Linux 命令,可以帮助我们快速完成文件管理、资源监控、进程排查、网络诊断以及日志分析等工作。

本文整理了一套比较实用的 Linux 基础运维命令,并结合常见场景说明其用途。


1. 系统基本信息查看

在接手一台陌生 Linux 服务器时,通常首先需要确认系统版本、内核、CPU、内存以及运行时间。

1.1 查看系统版本

cat /etc/os-release

典型输出:

NAME="Ubuntu"
VERSION="24.04 LTS"
ID=ubuntu

也可以使用:

lsb_release -a

部分系统默认没有安装 lsb_release


1.2 查看 Linux 内核版本

uname -r

例如:

6.8.0-40-generic

如果想查看更多系统信息:

uname -a

会同时显示:

  • 内核版本
  • 主机名
  • CPU 架构
  • 系统类型

1.3 查看主机名

hostname

查看更详细的信息:

hostnamectl

修改主机名:

sudo hostnamectl set-hostname server01

1.4 查看系统运行时间

uptime

例如:

21:20:13 up 15 days, 3:42, 2 users, load average: 0.12, 0.08, 0.05

其中:

load average: 0.12, 0.08, 0.05

分别表示过去:

  • 1 分钟
  • 5 分钟
  • 15 分钟

的系统平均负载。


2. 文件与目录管理

Linux 运维过程中,大量操作都围绕文件和目录展开。


2.1 查看当前目录

pwd

例如:

/home/user

2.2 查看目录内容

ls

常用组合:

ls -l

显示详细信息。

ls -a

显示隐藏文件。

ls -lh

以更容易阅读的方式显示文件大小:

-rw-r--r-- 1 user user 1.5G Aug 25 20:10 backup.tar

日常最常见的是:

ls -lah

2.3 切换目录

cd /etc

返回上一级:

cd ..

返回当前用户家目录:

cd ~

或者:

cd

返回上一次所在目录:

cd -

2.4 创建目录

mkdir test

一次创建多级目录:

mkdir -p /data/app/log

-p 非常常用,可以自动创建不存在的父目录。


2.5 创建空文件

touch test.txt

如果文件已经存在,touch 默认不会清空文件,而是更新文件时间。


2.6 复制文件

cp source.txt target.txt

复制目录:

cp -r source_dir target_dir

保留文件权限、时间等属性:

cp -a source_dir target_dir

2.7 移动或重命名

移动文件:

mv test.txt /tmp/

重命名:

mv old.txt new.txt

Linux 中移动和重命名实际上都使用 mv


2.8 删除文件

rm test.txt

删除目录:

rm -r test_dir

强制删除:

rm -rf test_dir

需要特别注意:

rm -rf

不会询问确认,一旦路径写错可能导致严重数据损失。

在生产服务器中使用前,应先通过:

ls /目标路径

确认路径是否正确。


3. 文件内容查看

运维过程中经常需要查看配置文件和日志文件。


3.1 cat:查看整个文件

cat /etc/hosts

适合查看较小文件。

如果文件很大,不建议直接使用 cat


3.2 less:分页查看文件

less /var/log/syslog

常用快捷键:

↑ ↓        上下滚动
PageUp     向上翻页
PageDown   向下翻页
/keyword   搜索
n          下一个匹配结果
N          上一个匹配结果
q          退出

对于大型日志,less 通常比 cat 更合适。


3.3 head:查看文件开头

head test.log

默认显示前 10 行。

显示前 50 行:

head -n 50 test.log

3.4 tail:查看文件末尾

tail test.log

显示最后 100 行:

tail -n 100 test.log

实时查看日志:

tail -f app.log

这是服务器排查问题时非常常见的命令。

例如:

tail -f /var/log/nginx/access.log

可以实时查看 Nginx 请求。


4. grep:文本搜索

grep 是 Linux 运维中最重要的工具之一。

基本用法:

grep "error" app.log

忽略大小写:

grep -i "error" app.log

显示行号:

grep -n "error" app.log

递归搜索整个目录:

grep -r "database" /etc/

排除某些结果:

grep -v "DEBUG" app.log

例如只查看错误日志:

grep -i "error" app.log

结合管道:

ps aux | grep nginx

表示从所有进程中筛选包含 nginx 的行。


5. find:查找文件

按照文件名查找:

find / -name "nginx.conf"

忽略大小写:

find / -iname "README.md"

查找 .log 文件:

find /var/log -name "*.log"

查找大于 1 GB 的文件:

find / -type f -size +1G

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

find /var/log -type f -mtime -1

查找后执行命令:

find /tmp -name "*.tmp" -delete

生产环境下使用 -delete 前,最好先只执行:

find /tmp -name "*.tmp"

确认匹配结果。


6. 磁盘空间管理

磁盘空间不足是 Linux 服务器非常常见的问题。


6.1 df:查看磁盘空间

df -h

例如:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       100G   72G   28G  73% /

重点关注:

Use%

如果达到 90% 甚至 100%,通常需要尽快清理。

查看文件系统类型:

df -Th

6.2 du:查看目录占用

查看当前目录总大小:

du -sh .

查看当前目录下每个文件夹大小:

du -sh *

例如:

du -sh /var/*

可以快速判断 /var 下面哪个目录占用最大。

进一步排序:

du -sh /var/* | sort -h

6.3 快速寻找大目录

du -xh / | sort -h | tail -n 20

不过根目录很大时执行可能比较慢。

更常见的做法是逐层排查:

du -sh /*

发现 /var 最大后:

du -sh /var/*

继续向下定位。


7. 内存查看

7.1 free

free -h

例如:

               total        used        free      shared  buff/cache   available
Mem:            31Gi        8Gi        3Gi        500Mi       20Gi        22Gi
Swap:           8Gi        0Gi        8Gi

很多 Linux 新手看到 free 很小就认为内存不足,这通常是不准确的。

Linux 会尽量利用空闲内存作为缓存。

因此重点应该关注:

available

而不是单纯看:

free

8. CPU 和系统负载

8.1 top

top

可以实时查看:

  • CPU 占用
  • 内存占用
  • 系统负载
  • 进程列表

常见字段:

PID
USER
%CPU
%MEM
TIME+
COMMAND

其中:

%CPU

表示 CPU 使用率,

%MEM

表示内存使用率。


8.2 htop

如果安装了 htop

htop

相比 top,界面更加直观。

Ubuntu/Debian:

sudo apt install htop

Arch Linux:

sudo pacman -S htop

CentOS/RHEL 系:

sudo dnf install htop

8.3 查看 CPU 信息

lscpu

可以查看:

  • CPU 型号
  • CPU 核数
  • 线程数
  • 架构
  • NUMA
  • 虚拟化支持

例如:

lscpu | grep "Model name"

9. 进程管理

Linux 中每个进程都有对应的 PID。


9.1 ps

查看所有进程:

ps aux

查找某个程序:

ps aux | grep nginx

例如:

root      1024  0.0  0.1 nginx: master process
www-data  1025  0.1  0.2 nginx: worker process

第一列通常是用户,第二列是 PID。


9.2 pgrep

相比:

ps aux | grep nginx

更简洁的方法是:

pgrep nginx

同时显示进程名:

pgrep -a nginx

9.3 kill

终止指定 PID:

kill 1234

默认发送:

SIGTERM

相当于请求进程正常退出。

强制结束:

kill -9 1234

即:

SIGKILL

通常不建议一上来就使用 kill -9

推荐顺序:

kill PID

如果进程无法退出,再考虑:

kill -9 PID

9.4 pkill

按照进程名结束:

pkill nginx

强制结束:

pkill -9 nginx

执行前应确认不会误杀同名进程。


10. systemd 服务管理

现在大多数 Linux 发行版都使用 systemd 管理服务。

例如查看 SSH 服务:

systemctl status ssh

部分系统服务名可能是:

systemctl status sshd

启动服务:

sudo systemctl start nginx

停止服务:

sudo systemctl stop nginx

重启:

sudo systemctl restart nginx

重新加载配置:

sudo systemctl reload nginx

设置开机启动:

sudo systemctl enable nginx

取消开机启动:

sudo systemctl disable nginx

立即启动并设置开机启动:

sudo systemctl enable --now nginx

11. journalctl:systemd 日志查看

对于使用 systemd 的系统:

journalctl

可以查看系统日志。

查看某个服务:

journalctl -u nginx

查看最近 100 行:

journalctl -u nginx -n 100

实时查看:

journalctl -u nginx -f

查看本次启动日志:

journalctl -b

查看最近错误:

journalctl -p err

排查服务启动失败时,常见组合是:

systemctl status nginx
journalctl -u nginx -n 100

12. 网络接口与 IP 地址

12.1 ip addr

现代 Linux 推荐使用:

ip addr

简写:

ip a

例如:

2: eth0:
    inet 192.168.1.100/24

其中:

192.168.1.100

就是网卡的 IPv4 地址。


12.2 查看路由

ip route

简写:

ip r

例如:

default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0

其中:

default via 192.168.1.1

表示默认网关。


13. ping:网络连通性检查

例如:

ping 8.8.8.8

如果 IP 可以通,但是:

ping google.com

无法正常解析,则问题很可能与 DNS 有关。

因此可以通过:

ping 8.8.8.8

和:

ping google.com

进行简单对比。

限制发送 4 个包:

ping -c 4 8.8.8.8

14. DNS 排查

14.1 查看域名解析

getent hosts example.com

也可以使用:

nslookup example.com

或者:

dig example.com

例如:

dig google.com

指定 DNS:

dig @8.8.8.8 google.com

这在排查本机 DNS 问题时非常有用。


15. ss:查看端口和连接

现代 Linux 一般推荐使用:

ss

代替老旧的:

netstat

查看所有监听端口:

ss -lntup

参数含义:

-l    只显示监听状态
-n    不解析主机名和服务名
-t    TCP
-u    UDP
-p    显示进程信息

例如查找 8080:

ss -lntp | grep 8080

可能看到:

LISTEN 0 128 0.0.0.0:8080 users:(("java",pid=1234,fd=20))

这说明 PID 1234 的 Java 进程监听了 8080 端口。


16. curl:测试 HTTP 服务

查看网页:

curl https://example.com

只查看 HTTP 响应头:

curl -I https://example.com

显示详细请求过程:

curl -v https://example.com

测试本机服务:

curl http://127.0.0.1:8080

如果服务器本地:

curl http://127.0.0.1:8080

正常,但外部机器访问失败,那么问题很可能位于:

  • 防火墙
  • 安全组
  • NAT
  • 路由
  • 服务监听地址

而不是应用本身。


17. wget:下载文件

wget https://example.com/file.zip

指定文件名:

wget -O software.zip https://example.com/file.zip

断点续传:

wget -c https://example.com/large-file.iso

18. 文件权限

通过:

ls -l

可以看到类似:

-rwxr-xr-- 1 user user 1234 Aug 25 20:10 test.sh

前面的:

rwxr-xr--

表示权限。

其中:

r = read
w = write
x = execute

权限分别针对:

user
group
other

18.1 chmod

增加执行权限:

chmod +x script.sh

设置:

chmod 755 script.sh

其中:

7 = rwx
5 = r-x
5 = r-x

因此:

755

对应:

rwxr-xr-x

18.2 chown

修改文件所有者:

sudo chown user file.txt

修改用户和用户组:

sudo chown user:group file.txt

递归修改目录:

sudo chown -R user:group /data/app

19. 用户和身份信息

查看当前用户:

whoami

查看 UID 和所属用户组:

id

查看当前登录用户:

who

查看用户登录情况:

w

20. sudo 与 root

普通用户临时以 root 权限执行命令:

sudo command

例如:

sudo systemctl restart nginx

进入 root shell:

sudo -i

生产环境通常不推荐长期直接使用 root 用户操作,而是通过 sudo 控制权限。


21. 压缩与解压

tar

打包目录:

tar -cvf backup.tar /data

打包并使用 gzip 压缩:

tar -czvf backup.tar.gz /data

解压:

tar -xzvf backup.tar.gz

实际运维时可以去掉 v

tar -czf backup.tar.gz /data

因为 v 会打印所有文件,在文件数量很多时输出会非常多。


zip

压缩:

zip -r backup.zip data/

解压:

unzip backup.zip

22. 重定向

Linux 中:

>

表示覆盖写入。

例如:

echo "hello" > test.txt

如果 test.txt 已存在,原内容会被覆盖。

追加写入:

echo "hello" >> test.txt

标准输出和标准错误

Linux 中常见三个文件描述符:

0    stdin
1    stdout
2    stderr

例如:

command > output.log

相当于:

command 1> output.log

只重定向标准错误:

command 2> error.log

同时记录标准输出和标准错误:

command > output.log 2>&1

也可以在 Bash 中写:

command &> output.log

23. 管道 |

管道的作用是:

将前一个命令的标准输出,作为后一个命令的标准输入。

例如:

ps aux | grep nginx

执行流程可以理解为:

ps aux
   |
   v
grep nginx

再例如:

du -sh * | sort -h

首先统计文件大小,然后按照容量排序。


24. sort、uniq 和 wc

排序:

sort file.txt

数字排序:

sort -n file.txt

容量排序:

sort -h

去除相邻重复行:

uniq

统计行数:

wc -l file.txt

统计文件:

wc file.txt

例如统计访问日志中出现次数最多的 IP:

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head

这也是 Linux 运维中非常典型的命令组合。


25. awk:按列处理文本

假设:

ps aux

输出类似:

USER PID %CPU %MEM COMMAND
root 123 10.2 1.5 python

获取第二列:

ps aux | awk '{print $2}'

同时显示第一列和第二列:

ps aux | awk '{print $1, $2}'

例如查找 CPU 占用较高的进程时,awk 经常和其他命令配合使用。


26. sed:简单文本处理

替换文本:

sed 's/old/new/' file.txt

全部替换:

sed 's/old/new/g' file.txt

直接修改文件:

sed -i 's/old/new/g' file.txt

使用 -i 时需要特别小心,因为它会直接修改原文件。

建议重要配置先备份:

cp nginx.conf nginx.conf.bak

然后再:

sed -i 's/old/new/g' nginx.conf

27. 查看磁盘和块设备

查看块设备:

lsblk

例如:

NAME   SIZE TYPE MOUNTPOINT
sda    500G disk
├─sda1   1G part /boot
└─sda2 499G part /
sdb      4T disk /data

查看 UUID 和文件系统:

lsblk -f

或者:

blkid

28. 挂载文件系统

临时挂载:

sudo mount /dev/sdb1 /mnt/data

卸载:

sudo umount /mnt/data

注意是:

umount

而不是:

unmount

永久挂载通常通过:

/etc/fstab

配置。


29. 查看打开的文件

lsof 可以查看进程打开的文件和网络连接。

例如:

lsof /var/log/app.log

查看哪个进程占用 8080:

sudo lsof -i :8080

查看某个 PID:

lsof -p 1234

在排查“文件为什么无法删除”“端口被谁占用”等问题时非常实用。


30. 网络抓包 tcpdump

基础抓包:

sudo tcpdump

指定网卡:

sudo tcpdump -i eth0

抓取 DNS:

sudo tcpdump -i any port 53

抓取目标 IP:

sudo tcpdump -i any host 192.168.1.100

抓取 TCP 443:

sudo tcpdump -i any tcp port 443

保存为文件:

sudo tcpdump -i eth0 -w capture.pcap

之后可以使用 Wireshark 分析。


31. 一套典型服务器故障排查思路

单独记住命令并不够,更重要的是形成排查思路。

假设用户反馈:

服务器上的 Web 服务访问不了。

可以按照下面的顺序处理。


第一步:确认服务器是否正常运行

uptime
free -h
df -h
top

排除:

  • CPU 满载
  • 内存耗尽
  • 磁盘写满

第二步:检查服务

systemctl status nginx

如果异常:

journalctl -u nginx -n 100

第三步:检查端口

ss -lntp

例如:

ss -lntp | grep :80

确认服务有没有监听 80 端口。


第四步:本机访问

curl http://127.0.0.1

如果正常,说明应用本身大概率没有问题。


第五步:检查监听地址

假如发现:

127.0.0.1:8080

那么服务只允许本机访问。

如果需要外部访问,一般应根据实际需求监听:

0.0.0.0:8080

或者指定服务器某个接口地址。


第六步:检查 IP 和路由

ip a
ip r

确认服务器 IP、接口以及默认路由是否正常。


第七步:检查网络

ping 网关IP
ping 8.8.8.8
ping example.com

逐步区分:

接口问题
    ↓
网关问题
    ↓
互联网问题
    ↓
DNS 问题

32. 常见命令速查表

目的 命令
查看当前目录 pwd
查看文件 ls -lah
切换目录 cd
创建目录 mkdir -p
复制文件 cp
移动文件 mv
删除文件 rm
查看文件 cat
分页查看 less
查看最后几行 tail
实时日志 tail -f
搜索文本 grep
查找文件 find
查看磁盘 df -h
查看目录大小 du -sh
查看内存 free -h
查看系统负载 top
查看进程 ps aux
查找 PID pgrep
结束进程 kill
查看服务 systemctl status
查看系统日志 journalctl
查看 IP ip a
查看路由 ip r
测试网络 ping
测试 HTTP curl
查看端口 ss -lntup
查看磁盘设备 lsblk
查看文件占用 lsof
修改权限 chmod
修改所有者 chown
压缩 tar
网络抓包 tcpdump

33. 推荐掌握的几个命令组合

相比死记每一个命令,更推荐掌握一些实际工作中经常使用的组合。

查看进程

ps aux | grep nginx

查看端口

ss -lntp | grep :8080

实时查看日志

tail -f app.log

从日志中寻找错误

grep -i "error" app.log

查看服务日志

journalctl -u nginx -f

查看磁盘使用率

df -h

找出最大的目录

du -sh * | sort -h

找出最大的 20 个文件

find . -type f -printf '%s %p\n' | sort -nr | head -n 20

查看 CPU 和内存占用

top

查看网络监听情况

ss -lntup

这些命令已经能够覆盖很大一部分基础 Linux 运维场景。


34. 总结

Linux 运维并不是简单地背命令,而是需要理解:

系统
├── CPU
├── 内存
├── 磁盘
├── 进程
├── 服务
├── 日志
└── 网络

出现问题时,可以按照:

系统资源
    ↓
进程状态
    ↓
服务状态
    ↓
日志信息
    ↓
端口监听
    ↓
网络连接

这样的顺序逐步排查。

对于 Linux 初学者来说,可以优先熟练掌握以下命令:

ls
cd
cp
mv
rm
cat
less
grep
find
df
du
free
top
ps
kill
systemctl
journalctl
ip
ping
ss
curl

当这些命令可以熟练组合使用之后,就已经具备了比较扎实的 Linux 基础运维能力。

后续还可以继续深入学习:

  • Shell 脚本
  • cron 定时任务
  • systemd 服务编写
  • SSH 与密钥认证
  • Linux 防火墙
  • iptables / nftables
  • 日志轮转 logrotate
  • RAID 与 LVM
  • Docker
  • Nginx
  • MySQL
  • 性能监控
  • TCP/IP 与网络抓包

Linux 命令真正的价值,不在于记住多少参数,而在于面对故障时能够将这些工具组合起来,逐层缩小问题范围,最终找到真正的故障点。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。