Linux 常用命令速查与基础运维指南
Linux 运维工作的核心并不是机械记忆命令,而是根据问题选择合适的工具。本篇按实际使用场景整理常见 Linux 命令,可作为日常操作与故障排查的速查文档。
执行
rm、mv、chmod、chown、kill等可能改变系统状态的命令前,应先确认目标路径、权限和影响范围。
系统与环境信息
查看当前目录
pwdpwd 是 print working directory 的缩写,用于输出当前工作目录的绝对路径。
查看当前用户
whoami用于确认当前 Shell 以哪个用户身份运行。排查权限问题时,应首先确认操作用户。
查看系统与内核信息
uname -a常见的补充命令:
cat /etc/os-releasehostnameuptimedate| 命令 | 作用 |
|---|---|
cat /etc/os-release | 查看 Linux 发行版与版本 |
hostname | 查看主机名 |
uptime | 查看运行时间与系统负载 |
date | 查看当前系统时间 |
文件与目录管理
查看目录内容
lsls -lls -lals -lh-l:显示权限、所有者、大小和修改时间等详细信息。-a:包含以.开头的隐藏文件。-h:以易读单位显示文件大小。
切换目录
cd /etccd ..cd ~cd -| 命令 | 作用 |
|---|---|
cd .. | 返回上一级目录 |
cd ~ | 返回当前用户的主目录 |
cd - | 返回上一次所在目录 |
创建文件和目录
touch example.txtmkdir logsmkdir -p app/configmkdir -p 可以一次创建多级目录,并在目录已存在时避免报错。
复制、移动与删除
cp source.txt backup.txtcp -r source-dir backup-dirmv old-name.txt new-name.txtrm file.txtrm -r directory删除操作通常不可恢复。使用递归删除前,建议先执行 pwd 和 ls 确认当前位置与目标内容。
查找文件
find /var/log -name "*.log"find . -type f -size +100Mfind . -type f -mtime -7上述命令分别用于:
- 查找指定扩展名的日志文件;
- 查找大于 100 MB 的文件;
- 查找最近 7 天内修改过的文件。
查看与处理文本
查看文件内容
cat file.txtless file.txthead -n 20 file.txttail -n 20 file.txttail -f app.logtail -f 会持续输出文件末尾新增的内容,适合实时观察应用日志。
搜索文本
grep "ERROR" app.loggrep -i "error" app.loggrep -R "listen" /etc/nginxgrep -n "failed" app.log-i:忽略大小写。-R:递归搜索目录。-n:显示匹配内容所在行号。
排序、统计与去重
sort access.logsort access.log | uniqsort access.log | uniq -cwc -l access.log管道符 | 会把前一个命令的输出作为后一个命令的输入,是 Shell 文本处理的基础。
使用 awk 和 sed
awk '{print $1}' access.logsed -n '1,20p' file.txtsed 's/old/new/g' file.txtawk适合按列提取和处理结构化文本。sed适合按行查看、替换和转换文本。
用户与权限
查看文件权限
ls -l file.txt权限通常由三组字符组成,分别对应所有者、所属组和其他用户:
-rwxr-xr--r:读取权限。w:写入权限。x:执行权限。
修改权限
chmod 755 script.shchmod +x script.sh数字权限中:
4代表读;2代表写;1代表执行。
因此 755 表示所有者拥有读、写、执行权限,其他用户拥有读和执行权限。
修改所有者
sudo chown user:group file.txtsudo chown -R user:group directory递归修改目录所有者前,应确认目录中所有文件都需要变更。
进程与系统资源
查看进程
ps auxps aux | grep nginxtop如果系统安装了 htop,可以获得更直观的交互式进程视图:
htop终止进程
kill PIDkill -15 PIDkill -9 PID默认的 SIGTERM(15)允许进程进行清理后退出。SIGKILL(9)会强制终止进程,应仅在普通终止无效时使用。
查看内存
free -h重点关注 available,它比单独查看 free 更能反映系统还可以使用多少内存。
磁盘与文件系统
查看磁盘使用率
df -hdf -idf -h:查看各文件系统的容量使用情况。df -i:查看 inode 使用情况。当磁盘仍有空间却无法创建文件时,需要检查 inode 是否耗尽。
查看目录大小
du -sh /var/logdu -h --max-depth=1 /var查找当前目录中占用空间较大的内容:
du -h --max-depth=1 . | sort -h查看块设备
lsblk用于查看磁盘、分区及其挂载点。
网络排查
查看网络接口和 IP
ip addrip route分别用于查看网络接口地址与路由表。
检查连通性
ping -c 4 example.comcurl -I https://example.comcurl -v https://example.comping用于测试基础网络连通性,但目标可能禁用 ICMP。curl -I只获取 HTTP 响应头。curl -v会输出连接、TLS 和请求过程,适合排查 HTTP 服务。
查看端口监听
ss -lntpss -lntp | grep 8080常用参数:
-l:只显示监听端口。-n:使用数字显示地址和端口。-t:显示 TCP。-p:显示对应进程。
DNS 查询
nslookup example.comdig example.com当域名无法访问时,应区分是 DNS 解析失败、网络不通、端口未开放,还是应用服务异常。
服务管理
使用 systemd 的 Linux 系统可以通过 systemctl 管理服务:
sudo systemctl status nginxsudo systemctl start nginxsudo systemctl stop nginxsudo systemctl restart nginxsudo systemctl reload nginxsudo systemctl enable nginx| 操作 | 说明 |
|---|---|
restart | 停止后重新启动服务,连接可能中断 |
reload | 重新加载配置,通常不会完全停止服务 |
enable | 设置服务随系统启动 |
服务启动失败时,可以先查看状态:
systemctl status nginx --no-pager日志查看
查看 systemd 日志
journalctl -u nginxjournalctl -u nginx -n 100journalctl -u nginx -fjournalctl --since "1 hour ago"常见日志位置
/var/log/syslog/var/log/messages/var/log/auth.log/var/log/nginx/access.log/var/log/nginx/error.log不同发行版和应用的日志位置可能不同,应结合服务配置与 journalctl 判断。
软件包管理
Ubuntu / Debian
sudo apt updatesudo apt install nginxsudo apt remove nginxRocky Linux / RHEL / CentOS
sudo dnf install nginxsudo dnf remove nginx较旧的系统可能使用 yum,其常用语法与 dnf 类似。
常用组合示例
查找日志中的错误
grep -i "error" /var/log/nginx/error.log | tail -n 50查找占用空间最大的目录
du -h --max-depth=1 /var | sort -h查找监听指定端口的进程
ss -lntp | grep 8080实时查看服务日志
journalctl -u nginx -f查看 CPU 占用较高的进程
ps aux --sort=-%cpu | head基础故障排查顺序
当 Linux 服务无法访问时,可以按照以下顺序缩小问题范围:
- 使用
systemctl status确认服务是否运行。 - 使用
journalctl或应用日志查找报错。 - 使用
ss -lntp确认端口是否监听。 - 使用
curl从本机测试应用接口。 - 使用
ip addr、ip route和ping检查网络。 - 检查防火墙、云安全组、反向代理和 DNS。
- 使用
top、free -h、df -h检查系统资源。
命令只是观察系统状态的工具。稳定的排查思路应当是先确认现象,再逐层验证网络、服务、日志和资源,最终定位根因。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!












