2026年Linux生产环境运维命令全攻略:从入门到精通
2026年Linux生产环境运维命令全攻略从入门到精通在当今的云计算和容器化时代Linux系统依然是服务器领域的绝对主流。无论是传统物理服务器、虚拟机还是容器环境掌握Linux命令是每一位运维工程师、开发者和系统管理员的必备技能。本文基于2026年最新生产环境实践为您整理了一份全面且实用的Linux命令指南。一、系统基础与监控系统信息查看# 系统基本信息uname-a# 内核版本和硬件信息cat/etc/os-release# 系统发行版信息hostnamectl# 主机名系统概览uptime# 运行时长和负载情况lscpu# CPU架构和核心数mpstat-PALL# 各核心实时使用率free-h# 内存使用情况人类可读格式cat/proc/meminfo# 详细内存信息系统服务管理# systemd服务管理systemctl start nginx systemctl stop nginx systemctl restart nginx systemctl status nginx systemctlenablenginx systemctl disable nginx systemctl daemon-reload journalctl-unginx journalctl-fjournalctl-xb# 当前启动journalctl-xb-1# 上次启动journalctl-unginx--since1 hour ago# 关机/重启sync# 同步写入磁盘rebootshutdown-hnowshutdown-r10# 10分钟后重启poweroff init0init6二、文件系统管理基础文件操作# 目录/文件列表ls# 简单列表ls-l# 长格式权限、大小、时间、属主ls-a# 显示隐藏文件.xxxls-lh# 人性化显示文件大小KB/MB/GBls-lt# 按修改时间排序最新在前ls-ltr# 按修改时间倒序最旧在前ls-S# 按文件大小排序ls-R# 递归显示所有子目录ls-d*/# 只显示目录不显示文件# 创建目录mkdirtestdir# 创建单层目录mkdirdir1 dir2 dir3# 同时创建多个目录mkdir-pa/b/c/d# 递归创建多层目录父目录不存在自动创建mkdir-m755testdir# 创建时直接指定权限# 删除文件/目录rmfile.txt# 删除文件有提示rm-ffile.txt# 强制删除不提示rm-rfdirname# 递归删除目录及所有内容高危rm-rf/*# 极端高危会删除系统根目录严禁执行rmdirdirname# 仅删除空目录# 复制文件/目录cpfile.txt /tmp/# 复制文件到目录cp-ifile.txt /tmp/# 覆盖前提示确认cp-rdir1 /tmp/# 递归复制目录cp-adir1 /tmp/# 归档复制保留权限、时间戳、软链接cp-pfile.txt /tmp/# 保留文件属性cp-ufile.txt /tmp/# 仅源文件更新时复制# 移动/重命名mvoldname newname# 文件/目录重命名mvfile.txt /tmp/# 移动文件mv-ffile.txt /tmp/# 强制覆盖不提示mv-ifile.txt /tmp/# 覆盖前提示# 创建空文件/更新时间戳touchtest.txt# 不存在则创建存在则更新时间touch-t202501011200file.txt# 指定修改时间为 2025-01-01 12:00注释ll是ls -l的常用别名。重要注释rm -rf删除后无法恢复生产环境务必先备份再操作。文件内容处理# 全文查看catfile.txt# 正向输出全部内容cat-nfile.txt# 显示行号cat-Afile.txt# 显示不可见字符空格、换行、Tabtacfile.txt# 反向输出从最后一行开始# 分页查看morefile.txt# 向下分页回车下一行空格下一页lessfile.txt# 功能更强支持上下翻页、搜索lessG file.txt# 直接跳到文件末尾# 头部/尾部查看head-n10file.txt# 前10行head-c100file.txt# 前100字节tail-n10file.txt# 最后10行tail-fcatalina.out# 实时跟踪日志常用tail-Fcatalina.out# 日志切割后仍能继续跟踪tail-n10 file.txt# 从第10行开始显示到末尾# 文本搜索greperrorlog.log# 查找包含关键词的行grep-ierrorlog.log# 忽略大小写grep-werrorlog.log# 全词匹配grep-cerrorlog.log# 统计匹配行数grep-nerrorlog.log# 显示行号grep-verrorlog.log# 反向匹配排除grep-rkey/etc/# 递归目录搜索grep-Ewarn|errorlog.log# 多关键词匹配扩展正则grep--colorautoerrorlog.log# 高亮显示grepAug /var/log/messages# 在文件 /var/log/messages中查找关键词Auggrep^Aug /var/log/messages# 在文件 /var/log/messages中查找以Aug开始的词汇grep[0-9]/var/log/messages# 选择 /var/log/messages 文件中所有包含数字的行grepAug-R/var/log/*# 在目录 /var/log 及随后的目录中搜索字符串Aug# 流编辑seds/old/new/gfile.txt# 全局替换 old → newsed-is/old/new/gfile.txt# 直接修改文件in-placesed/^$/dfile.txt# 删除空行sed/test/dfile.txt# 删除包含 test 的行sed-n5,10pfile.txt# 打印 5~10 行seds/^/prefix /file.txt# 行首添加内容seds/$/ suffix/file.txt# 行尾添加内容# 文本去重与排序sortfile.txt# 按字典序排序sort-nfile.txt# 按数字排序sort-rfile.txt# 倒序sort-ufile.txt# 排序并去重sortfile.txt|uniq# 去重sortfile.txt|uniq-c# 统计重复次数# 按列截取awk{print $1}file.txt# 打印第一列awk{print $NF}file.txt# 打印最后一列awk/error/{print $0}file.txt# 匹配行并打印awk-F:{print $1,$3}/etc/passwd# 指定分隔符为:awkBEGIN{sum0}{sum$1}END{print sum}file.txt# 求和# 文本内容对比comm-1file1 file2# 比较两个文件的内容(去除file1所含内容)comm-2file1 file2# 比较两个文件的内容(去除file2所含内容)comm-3file1 file2# 比较两个文件的内容(去除两文件共有部分)pastefile1 file2# 合并两个文件或两栏的内容paste-dfile1 file2# 合并两个文件或两栏的内容中间用区分搜索技巧在 less 中输入/关键词向下搜索?关键词向上搜索n下一个N上一个。文件查找与定位# 文件搜索find/-namefile.txt# 全局按名称搜索find/home-name*.log# 通配符搜索find/-typef-size100M# 查找大于100M的文件find/-typef-mtime-7# 7天内修改过的文件find/-typef-atime-1# 1天内访问过的文件find/-typef-ctime-1# 1天内状态改变的文件find/-userroot# 属主为rootfind/-perm755# 权限为755find/-name*.log-delete# 找到后直接删除find/-name*.log-execcp{}/tmp\;# 找到后执行命令locate*.mp4# 寻找 .mp4结尾的文件# 快速索引updatedb# 更新索引库locatefile.txt# 快速查找# 命令查找whichnginx# 查找命令可执行路径whereisnginx# 查找二进制、配置、man 路径typecd# 查看命令类型内建/外部文件权限管理# 权限说明# r4 w2 x1# u 所有者g 所属组o 其他用户a 所有# 修改权限chmod755file.sh# rwxr-xr-xchmod644file.txt# rw-r--r--chmodux file.sh# 给所有者加执行权限chmodgw file.txt# 给组加写权限chmodo-r file.txt# 撤销其他用户读权限chmod-R755/data# 递归修改目录权限chgrpgroup1 file1# 改变文件的群组# 修改所有者/组chownuser1 file.txt# 修改所有者chown:group1 file.txt# 修改组chownuser1:group1 file.txt# 同时修改chown-Ruser1:group1 /data# 递归修改# 特殊权限chmodus /usr/bin/passwd# SUIDchmodgs /data/share# SGIDchmodot /tmp# 粘滞位 Sticky Bit压缩与解压# tar 打包解压# gz 压缩tar-zcvfarchive.tar.gz dir/# bz2 压缩tar-jcvfarchive.tar.bz2 dir/# xz 压缩tar-Jcvfarchive.tar.xz dir/# 解压tar-zxvfarchive.tar.gztar-jxvfarchive.tar.bz2tar-Jxvfarchive.tar.xztar-xvfarchive.tar# 自动识别格式tar-zxvfarchive.tar.gz-C/tmp/# 解压到指定目录# zip / unzipzip-rdir.zip dir/unzipdir.zipunzipdir.zip-d/tmp/# gzip / bzip2gzipfile.txt gunzip file.txt.gzbzip2file.txt bunzip2 file.txt.bz2参数解析c 创建x 解压z gzj bz2v 显示过程f 指定文件磁盘与挂载fdisk-l# 磁盘分区lsblk# 块设备信息blkid# 查看 UUIDmount/dev/sdb1 /mnt# 挂载umount/mnt# 卸载umount-l/mnt# 强制懒卸载df-h# 挂载查看du-shdirname# 查看目录总大小du-sh*# 查看当前目录所有文件/目录大小du-h--max-depth1/# 查看根目录一级目录占用df-i# 查看 inode 使用情况iostat# 查看io读写/cpu使用情况sar-u110# 查看 cpu 使用情况1秒1次共10次sar-d110# 查询磁盘性能mount/dev/hda2 /mnt/hda2# 挂在hda2盘mount-tntfs /dev/sdc1 /mnt/usbhd1# 指定文件系统类型挂载如ntfsmount-oloop xxx.iso /mnt/cdrom# 挂载iso文件mount/dev/sda1 /mnt/usbdisk# 挂载usb盘/闪存设备umount-v/dev/sda1# 通过设备名卸载umount-v/mnt/mymnt# 通过挂载点卸载fuser-km/mnt/hda1# 强制卸载(慎用)echo/dev/sdb1 /mnt ext4 defaults 0 0/etc/fstab# 开机挂载Vim 高效操作x,X: 在一行中x为向后删除一个字符相当于del键X为向前删除一个字符相当于backspace键dd: 删除光标所在的那一整行ndd: n 为数字。从光标开始删除向下n列yy: 复制光标所在的那一行nyy: n为数字。复制光标所在的向下n行p,P: p 为将已复制的数据粘贴到光标的下一行P则为贴在光标的上一行u: 复原前一个操作CTRL r: 重做上一个操作小数点 .重复前一个动作:set number:在每一行设置行标号:n1,n2 m n3移动n1-n2行(包括n1,n2)到n3行之下:n1,n2 co n3复制n1-n2行(包括n1,n2)到n3行之下:n1,n2 d删除n1-n2行(包括n1,n2)行三、进程与网络管理进程管理# 查看进程ps-ef# 标准格式全进程psaux# BSD 格式ps-ef|grepnginx# 查找指定进程pstree# 进程树pstree-p# 显示 PIDtop# 实时进程监控htop# 增强版 topuptime# 系统负载ps-auxf|sort-nr-k4|head-10# 找出占用内存资源最多的前 10 个进程ps-auxf|sort-nr-k3|head-10# 找出占用 CPU 资源最多的前 10 个进程ps-eopid,ppid,cmd,%cpu,%mem--sort-%cpu|head查看 cpu# 内存占用情况# 杀死进程killPID# 温和终止kill-9PID# 强制杀死kill-15PID# 正常终止pkillnginx# 按进程名杀死killallnginx# 杀死所有同名进程# 后台运行command# 后台运行nohupcommand# 退出终端继续运行jobs# 查看后台任务fg%1# 切回前台bg%1# 后台继续运行网络与端口ifconfig# 网卡信息ipaddr# 替代 ifconfigiproute# 路由pingip# 测试连通性ping-c3ip# 只发3个包telnetipport# 测试端口连通nc-vzipport# 端口探测netstat-lntp# 监听端口ss-lntp# 更快的 netstatss-s# 套接字统计nslookupdomain# DNS 解析digdomain# DNS 详细信息hostname# 主机名hostnamectl set-hostname new-host# 修改主机名四、用户与安全管理# 用户管理useradduser1# 创建用户useradd-muser1# 创建家目录userdel-ruser1# 删除用户及家目录passwduser1# 设置密码usermod-Ggroup1 user1# 附加组groupaddgroup1# 创建组groupdelgroup1# 删除组iduser1# 用户信息who# 当前登录用户w# 详细登录信息last# 登录历史# sudo配置visudo# 编辑sudo配置文件# 添加username ALL(ALL) NOPASSWD:ALL # 免密码sudo生产环境慎用五、系统维护日志管理# 系统日志查看tail-f/var/log/messagestail-f/var/log/securetail-f/var/log/cron# systemd日志现代系统journalctl-xe# 查看所有日志出问题第一时间运行journalctl-unginx# 查看特定服务日志journalctl--since1 hour ago# 只看最近一小时日志# 传统日志文件tail-f/var/log/messages# 实时跟踪系统日志RHEL系tail-f/var/log/syslog# 实时跟踪系统日志Debian系tail-n100/var/log/nginx/access.log# 查看最后100行# 日志过滤greperror/var/log/*.log# 全局搜索错误日志tail-f/var/log/syslog|grepsshd# 实时过滤特定内容定时任务crontab-e# 编辑当前用户定时任务crontab-l# 查看定时任务**crontab 时间格式**|字段|含义|示例||------|------|------||*/5 * * * *|每5分钟|监控脚本||02* * *|每天凌晨2点|数据备份||00* *0|每周日零点|周报生成||031* *|每月1号3点|月度清理|软件包管理# RHEL/CentOS系2026年推荐使用dnfdnfinstallnginx# 安装软件包dnf remove nginx# 卸载软件包dnf list installed# 查看已安装包dnf provides */netstat# 查找命令所属包# Ubuntu/Debian系aptupdate# 更新软件源安装前必做aptinstallnginx# 安装软件包aptremove nginx# 卸载软件包aptlist--installed# 查看已安装包六、高级技巧与最佳实践常用 Shell 技巧history# 历史命令!100# 执行第100条历史!!# 执行上一条ctrl r# 搜索历史ctrl c# 终止命令ctrl z# 挂起ctrl d# 退出终端命令组合与高效使用# 查找大文件并排序find/-typef-size100M-execls-lh{}\;|sort-k5-hr# 监控系统资源变化watch-n1df -h; echo; free -h; echo; uptime# 批量杀进程psaux|greppattern|awk{print $2}|xargskill# 实时监控多个日志文件tail-f/var/log/nginx/access.log /var/log/nginx/error.log# 高频监控与排查命令集# 1. 实时连接状态TCP层ss-lntsport:80 or sport:443# 监听状态ss-antsport:80|awk{print $6}|sort|uniq-c# 按状态统计连接数# 2. 进程与工作模式psaux--sort-%cpu|grepnginx# CPU占用排序pstree-p$(pgrep nginx|head-1)# 查看主从进程结构# 3. 日志实时分析关键tail-f/var/log/nginx/access.log|awk{print $9}|sort|uniq-c# 实时统计HTTP状态码tail-f/var/log/nginx/access.log|grep-E5[0-9]{2}# 实时抓取5xx错误# 4. 性能与瓶颈定位timecurl-o/dev/null-s-wHTTP状态码:%{http_code}\n总耗时:%{time_total}s\nhttp://localhost/healthstrace-p$(pgrep nginx|head-1)-c# 系统调用统计需谨慎场景化检查清单网站变慢时先ss -s看连接溢出再tail -f日志看响应时间。大量5xx错误grep错误日志定位后端服务用curl测试上游健康。CPU飙升strace抓取进程系统调用或perf top看热点函数。2026年生产环境最佳实践容器化环境适配随着Kubernetes和容器技术的普及掌握cgroups v2资源控制成为必备技能# cgroups v2资源限制mkdir-p/sys/fs/cgroup/limitedecho4G/sys/fs/cgroup/limited/memory.maxecho2/sys/fs/cgroup/limited/pids.max现代化工具替代用ss替代netstat更快更现代用ip替代ifconfig和route用journalctl替代部分/var/log/日志查看安全加固生产环境谨慎使用sudo免密配置遇到权限问题不要轻易setenforce 0要查明SELinux拒绝原因定期使用firewall-cmd或iptables检查防火墙规则脚本化运维将常用操作封装成脚本提高效率并减少人为错误。七、特定服务管理数据库以MySQL为例核心关注点查询性能、锁、连接数、缓冲池、磁盘IO。# 连接与会话mysqladmin processlist# 或登录后执行 SHOW FULL PROCESSLIST;ss-lntsport:3306# 数据库端口连接状态# 性能与资源# 查看InnoDB状态关键mysql-eSHOW ENGINE INNODB STATUS\G|grep-A10LATEST DETECTED DEADLOCK# 死锁信息mysql-eSHOW GLOBAL STATUS LIKE Innodb_buffer_pool%;# 缓冲池命中率# 慢查询与锁# 实时抓取慢查询日志若开启tail-f/var/log/mysql/slow.log|grep-EQuery_time: ([5-9]|\d\d)# 5秒以上查询mysql-eSELECT * FROM information_schema.INNODB_LOCKS;# 当前锁信息# 系统层资源iostat-x1|grep-EDevice:|sda# 数据库磁盘IO通常数据盘独立pidstat-d-p$(pgrep mysqld)13# 进程磁盘IO详细统计场景化检查清单数据库响应慢先查processlist看有无长查询再查InnoDB状态看锁竞争。连接数打满ss验证连接数调整max_connections或杀空闲连接。磁盘IO高iostat确认优化慢查询或考虑缓冲池扩容。消息队列以Redis为例核心关注点内存使用、连接数、持久化、键空间。# 内存与键空间redis-cli info memory|grep-Eused_memory:|mem_fragmentation_ratio# 内存使用和碎片率redis-cli info keyspace# 各数据库键数量# 连接与客户端redis-cli info clients|grep-Econnected_clients|blocked_clients# 连接和阻塞客户端redis-cli client list# 详细客户端信息# 持久化状态redis-cli info persistence|grep-Erdb_last_save_time|aof_rewrite_in_progress# RDB/AOF状态# 性能监控redis-cli --latency-history-i5# 每5秒输出一次延迟采样