news 2026/4/22 23:36:19

2026年Linux生产环境运维命令全攻略:从入门到精通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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--since"1 hour ago"# 关机/重启sync# 同步写入磁盘rebootshutdown-hnowshutdown-r+10# 10分钟后重启poweroff init0init6

二、文件系统管理

基础文件操作

# 目录/文件列表ls# 简单列表ls-l# 长格式(权限、大小、时间、属主)ls-a# 显示隐藏文件(.xxx)ls-lh# 人性化显示文件大小(KB/MB/GB)ls-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

注释llls -l的常用别名。
重要注释rm -rf删除后无法恢复,生产环境务必先备份再操作。

文件内容处理

# 全文查看catfile.txt# 正向输出全部内容cat-nfile.txt# 显示行号cat-Afile.txt# 显示不可见字符(空格、换行、Tab)tacfile.txt# 反向输出(从最后一行开始)# 分页查看morefile.txt# 向下分页,回车下一行,空格下一页lessfile.txt# 功能更强,支持上下翻页、搜索less+G file.txt# 直接跳到文件末尾# 头部/尾部查看head-n10file.txt# 前10行head-c100file.txt# 前100字节tail-n10file.txt# 最后10行tail-fcatalina.out# 实时跟踪日志(常用)tail-Fcatalina.out# 日志切割后仍能继续跟踪tail-n+10 file.txt# 从第10行开始显示到末尾# 文本搜索grep"error"log.log# 查找包含关键词的行grep-i"error"log.log# 忽略大小写grep-w"error"log.log# 全词匹配grep-c"error"log.log# 统计匹配行数grep-n"error"log.log# 显示行号grep-v"error"log.log# 反向匹配(排除)grep-r"key"/etc/# 递归目录搜索grep-E"warn|error"log.log# 多关键词匹配(扩展正则)grep--color=auto"error"log.log# 高亮显示grepAug /var/log/messages# 在文件 '/var/log/messages'中查找关键词"Aug"grep^Aug /var/log/messages# 在文件 '/var/log/messages'中查找以"Aug"开始的词汇grep[0-9]/var/log/messages# 选择 '/var/log/messages' 文件中所有包含数字的行grepAug-R/var/log/*# 在目录 '/var/log' 及随后的目录中搜索字符串"Aug"# 流编辑sed's/old/new/g'file.txt# 全局替换 old → newsed-i's/old/new/g'file.txt# 直接修改文件(in-place)sed'/^$/d'file.txt# 删除空行sed'/test/d'file.txt# 删除包含 test 的行sed-n'5,10p'file.txt# 打印 5~10 行sed's/^/prefix /'file.txt# 行首添加内容sed's/$/ 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# 指定分隔符为:awk'BEGIN{sum=0}{sum+=$1}END{print sum}'file.txt# 求和# 文本内容对比comm-1file1 file2# 比较两个文件的内容(去除'file1'所含内容)comm-2file1 file2# 比较两个文件的内容(去除'file2'所含内容)comm-3file1 file2# 比较两个文件的内容(去除两文件共有部分)pastefile1 file2# 合并两个文件或两栏的内容paste-d'+'file1 file2# 合并两个文件或两栏的内容,中间用"+"区分

搜索技巧:在 less 中输入/关键词向下搜索,?关键词向上搜索,n下一个,N上一个。

文件查找与定位

# 文件搜索find/-name"file.txt"# 全局按名称搜索find/home-name"*.log"# 通配符搜索find/-typef-size+100M# 查找大于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# 查看命令类型(内建/外部)

文件权限管理

# 权限说明# r=4 w=2 x=1# u 所有者,g 所属组,o 其他用户,a 所有# 修改权限chmod755file.sh# rwxr-xr-xchmod644file.txt# rw-r--r--chmodu+x file.sh# 给所有者加执行权限chmodg+w 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# 递归修改# 特殊权限chmodu+s /usr/bin/passwd# SUIDchmodg+s /data/share# SGIDchmodo+t /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 gz
  • j bz2
  • v 显示过程
  • f 指定文件

磁盘与挂载

fdisk-l# 磁盘分区lsblk# 块设备信息blkid# 查看 UUIDmount/dev/sdb1 /mnt# 挂载umount/mnt# 卸载umount-l/mnt# 强制懒卸载df-h# 挂载查看du-shdirname# 查看目录总大小du-sh*# 查看当前目录所有文件/目录大小du-h--max-depth=1/# 查看根目录一级目录占用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# 指定文件系统类型挂载(如ntfs)mount-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--since"1 hour ago"# 只看最近一小时日志# 传统日志文件tail-f/var/log/messages# 实时跟踪系统日志(RHEL系)tail-f/var/log/syslog# 实时跟踪系统日志(Debian系)tail-n100/var/log/nginx/access.log# 查看最后100行# 日志过滤grep"error"/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年推荐使用dnf)dnfinstallnginx# 安装软件包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-size+100M-execls-lh{}\;|sort-k5-hr# 监控系统资源变化watch-n1'df -h; echo; free -h; echo; uptime'# 批量杀进程psaux|grep'pattern'|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-E"5[0-9]{2}"# 实时抓取5xx错误# 4. 性能与瓶颈定位timecurl-o/dev/null-s-w"HTTP状态码:%{http_code}\n总耗时:%{time_total}s\n"http://localhost/healthstrace-p$(pgrep nginx|head-1)-c# 系统调用统计(需谨慎)

场景化检查清单

  • 网站变慢时:先ss -s看连接溢出,再tail -f日志看响应时间。
  • 大量5xx错误:grep错误日志定位后端服务,用curl测试上游健康。
  • CPU飙升:strace抓取进程系统调用,或perf top看热点函数。

2026年生产环境最佳实践

  1. 容器化环境适配:随着Kubernetes和容器技术的普及,掌握cgroups v2资源控制成为必备技能:

    # cgroups v2资源限制mkdir-p/sys/fs/cgroup/limitedecho"4G">/sys/fs/cgroup/limited/memory.maxecho"2">/sys/fs/cgroup/limited/pids.max
  2. 现代化工具替代

    • ss替代netstat(更快更现代)
    • ip替代ifconfigroute
    • journalctl替代部分/var/log/日志查看
  3. 安全加固

    • 生产环境谨慎使用sudo免密配置
    • 遇到权限问题不要轻易setenforce 0,要查明SELinux拒绝原因
    • 定期使用firewall-cmdiptables检查防火墙规则
  4. 脚本化运维:将常用操作封装成脚本,提高效率并减少人为错误。

七、特定服务管理

数据库(以MySQL为例)

核心关注点:查询性能、锁、连接数、缓冲池、磁盘IO。

# 连接与会话mysqladmin processlist# 或登录后执行 SHOW FULL PROCESSLIST;ss-lntsport=:3306# 数据库端口连接状态# 性能与资源# 查看InnoDB状态(关键!)mysql-e"SHOW ENGINE INNODB STATUS\G"|grep-A10"LATEST DETECTED DEADLOCK"# 死锁信息mysql-e"SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%';"# 缓冲池命中率# 慢查询与锁# 实时抓取慢查询日志(若开启)tail-f/var/log/mysql/slow.log|grep-E"Query_time: ([5-9]|\d\d+)"# 5秒以上查询mysql-e"SELECT * FROM information_schema.INNODB_LOCKS;"# 当前锁信息# 系统层资源iostat-x1|grep-E"Device:|sda"# 数据库磁盘IO(通常数据盘独立)pidstat-d-p$(pgrep mysqld)13# 进程磁盘IO详细统计

场景化检查清单

  • 数据库响应慢:先查processlist看有无长查询,再查InnoDB状态看锁竞争。
  • 连接数打满:ss验证连接数,调整max_connections或杀空闲连接。
  • 磁盘IO高:iostat确认,优化慢查询或考虑缓冲池扩容。

消息队列(以Redis为例)

核心关注点:内存使用、连接数、持久化、键空间。

# 内存与键空间redis-cli info memory|grep-E"used_memory:|mem_fragmentation_ratio"# 内存使用和碎片率redis-cli info keyspace# 各数据库键数量# 连接与客户端redis-cli info clients|grep-E"connected_clients|blocked_clients"# 连接和阻塞客户端redis-cli client list# 详细客户端信息# 持久化状态redis-cli info persistence|grep-E"rdb_last_save_time|aof_rewrite_in_progress"# RDB/AOF状态# 性能监控redis-cli --latency-history-i5# 每5秒输出一次延迟采样
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 23:30:16

哈希表记录

啥是哈希表&#xff1f;我自己这么跟自己讲的&#xff0c;把目标物品们放入各自的不同箱子中记录了不同种箱子里的物品数量第一道题我写的代码&#xff08;一开始用的容器储存&#xff09;#include <string> using namespace std;class Solution { public:bool isAnagram…

作者头像 李华
网站建设 2026/4/22 23:29:16

如何在 Firebase Storage 中批量获取所有媒体文件的下载链接

本文详解 2023 年 firebase sdk v9 中正确列出并批量获取 storage 中所有媒体文件&#xff08;如图片&#xff09;下载 url 的标准方法&#xff0c;涵盖完整代码示例、常见错误分析及生产环境注意事项。 本文详解 2023 年 firebase sdk v9 中正确列出并批量获取 storage 中…

作者头像 李华