news 2026/9/30 6:46:34

mall 项目 Linux 运维实战:从系统服务到软件安装的常用命令全解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
mall 项目 Linux 运维实战:从系统服务到软件安装的常用命令全解
  • 后端
  • 电商
  • 认证鉴权
  • 搜索引擎

【免费下载链接】mall

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于Spring Boot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

项目地址:https://gitcode.com/gh_mirrors/ma/mall
点击查看免费下载

本篇技术指南以 mall 电商项目(基于 Spring Boot + MyBatis,Docker 容器化部署)的 Linux 部署运维场景为主线,系统梳理 Linux 系统服务管理、文件管理、压缩解压、磁盘网络、软件安装与网络安全六大类常用命令。读完本文,你将掌握在 Linux 服务器上管理 mall-admin(8080 端口)、mall-search(8081 端口)、mall-portal(8085 端口)等应用进程与依赖服务(MySQL、Redis、Elasticsearch、RabbitMQ、MongoDB)所需的全部核心命令,并能够结合 document/sh/ 目录下的部署脚本与 document/docker/ 目录下的 Docker Compose 文件,完成从环境搭建到日常运维的完整闭环。

系统服务管理:systemctl 与 mall 项目的服务运维

mall 项目在 Linux 服务器上以 Docker 容器方式部署,依赖 MySQL、Redis、Elasticsearch、RabbitMQ、MongoDB 等基础服务。这些服务无论是直接安装为系统服务,还是以容器形式运行,其启停、状态查看与开机自启管理都离不开 systemctl。

systemctl 常用操作一览

systemctl 是 CentOS 7 / RHEL 7 及主流 systemd 发行版的核心服务管理工具,其常用子命令如下:

操作命令说明
启动服务systemctl start httpd.service立即启动,不阻塞等待结果
关闭服务systemctl stop httpd.service立即停止
重启服务systemctl restart httpd.service不管是否在运行都重新启动
重载配置systemctl reload httpd.service重新载入配置,不中断服务(服务须支持 SIGHUP 重载)
查看状态systemctl status httpd.service显示运行状态、进程号、日志片段
设置开机启动systemctl enable httpd.service创建符号链接加入开机自启
禁止开机启动systemctl disable httpd.service移除开机自启
列出系统服务systemctl list-units --type=service查看所有已加载的 service 单元

说明:systemd 单元文件(.service)可以不写完整后缀,systemctl start httpd与systemctl start httpd.service等价。

在 mall 部署场景中的应用

document/sh/run.sh 展示了 mall 项目的典型容器发布流程:停止并删除旧容器、删除旧镜像、重新构建镜像并启动新容器。对应到 Linux 层面,如果要管理 MySQL、Redis 这类以系统服务形式安装的依赖(而非容器),可使用systemctl status mysql、systemctl restart redis等命令。如果依赖以 Docker 容器运行(参见 document/docker/docker-compose-env.yml),则管理命令变为docker start/stop/restart <容器名>,两者结合即可覆盖 mall 项目在 Linux 上的全部服务运维场景。

判断服务是否健康,建议使用systemctl status结合ps -ef | grep java(见下文 ps 一节)双保险确认——前者反映 systemd 视角的服务状态,后者确认 Java 进程真实存活。

文件管理:从目录查看到权限密码的日常操作

Linux 下的一切皆文件,mall 项目的日志(/mydata/app/mall-admin/logs)、Docker 数据卷(/mydata/mysql/data等)都是运维中频繁打交道的目录。

目录与文件操作命令

  • ls:列出目录内容
    • ls -l /home:以长格式列出 /home 下的子目录(含权限、属主、大小、修改时间)
    • ls -lht:以长格式按修改时间倒序(-t)列出当前目录文件及大小(-h人性化显示)
    • 排查磁盘占用时,可配合du -sh /mydata/*定位大目录
  • pwd:显示当前工作目录
  • cd:切换目录,如cd /usr/local
  • mkdir:创建目录,如mkdir -p /mydata/app/mall-admin/logs(-p递归创建)

时间、密码与身份切换

  • date:以指定格式显示日期,date '+date:%x time:%X'输出形如date:09/29/26 time:00:43:33的本地化日期时间
  • passwd:修改密码,passwd root修改 root 用户密码
  • su:切换用户,su -从普通用户切换到超级用户(-表示加载目标用户的完整登录环境,环境变量会重置)
  • clear:清除屏幕信息
  • man:查看命令帮助手册,如man ls,是学习命令参数的权威途径

系统状态查看:who / free / ps / top

  • who:
    • who -r:查看当前运行级别(runlevel)
    • who -buT:显示用户登录详情(-b显示上次启动时间,-u显示登录用户,-T显示终端状态)
  • free:以 MB 显示内存使用状态,free -m。mall 的 Elasticsearch 容器默认分配-Xms512m -Xmx1024m(见 document/docker/docker-compose-env.yml),可用free -m确认服务器内存是否充足
  • ps:查看进程
    • ps -ef:查看系统所有进程(-e显示所有进程,-f全格式输出)
    • ps -ef | grep java:过滤出 java 进程,是确认 mall 各应用是否运行的经典用法
    • 结合 mall-admin.sh、mall-portal.sh、mall-search.sh 中定义的端口(8080 / 8085 / 8081),可用ps -ef | grep 8080反向定位占用端口的进程
  • top:动态查看系统当前活跃进程,按M按内存排序、按P按 CPU 排序,top -p <PID>查看指定进程

查看与编辑文件:more / cat

  • more:分页查看文件,more -c -10表示每 10 行显示一屏(-c显示前清屏)
  • cat:查看文件内容,cat -Ab config中-A显示所有不可见字符(等价于-vET),-b给非空行加行号。mall 项目中查看 application.yml 等配置即可使用cat -n带行号查看

文件操作:rm / touch / cp / mv

  • rm:删除文件rm a.txt;递归强制删除文件夹rm -rf a/。注意该命令不可逆,删除 Docker 数据卷目录前务必三思(部署脚本中docker rmi删除的是镜像,与rm -rf删除宿主机文件不同)
  • touch:创建空文件,touch a.txt
  • cp:复制,cp -r /home/a /home/b递归复制目录 a 到目录 b
  • mv:移动或重命名,mv a.txt b.txt将 a.txt 重命名为 b.txt

压缩与解压:tar 打包与发布包分发

mall 项目的日志备份、源码归档、以及从服务器间迁移数据卷时,tar 是最常用的工具。tar 命令的格式为tar <参数> <目标文件> <源路径>,核心参数:c创建、x解压、v显示过程、f指定文件、z使用 gzip、j使用 bzip2、t查看内容。

场景命令
打包文件夹(不压缩)tar -cvf /opt/etc.tar /etc
打包并 gzip 压缩tar -zcvf /opt/etc.tar.gz /etc
打包并 bzip2 压缩tar -jcvf /opt/etc.tar.bz2 /etc
查看压缩包内容(不解压)tar -ztvf /opt/etc.tar.gz
解压 gzip 包到当前目录tar -zxvf /opt/etc.tar.gz

提示:tar -ztvf /opt/etc.tar.gz末尾的/etc参数在此仅为示意,实际查看内容时只需tar -ztvf /opt/etc.tar.gz;解压时若不指定-C目标目录,默认解压到当前目录,建议配合-C /mydata/backup将内容解压到指定位置。

磁盘与网络管理:df / ifconfig / netstat / wget

mall 项目运行会持续产生日志与数据,磁盘与网络状态监控是日常巡检的必修课。

df 磁盘占用查看

df -hT:-h人性化显示大小(G/M),-T显示文件系统类型。当 docker-compose-env.yml 中的数据卷(/mydata/mysql/data、/mydata/elasticsearch/data等)不断增长时,可用df -h /mydata确认挂载分区剩余空间。

ifconfig 与 netstat 网络查看

  • ifconfig:查看当前网络接口状态(IP、掩码、收发字节数)。部分新版系统需yum install net-tools安装
  • netstat:网络连接与端口监听查看
    • netstat -rn:查看路由信息(-r路由表,-n不解析域名)
    • netstat -an:查看所有有效 TCP 连接
    • netstat -tulnp:查看系统中启动的监听服务(-tTCP、-uUDP、-l监听、-n数字显示、-p显示进程)——排查 8080/8081/8085 端口是否被监听的首选
    • netstat -atunp:查看处于连接状态的系统资源信息

mall 端口速查:mall-admin 监听 8080,mall-search 监听 8081,mall-portal 监听 8085(对应 application.yml 中server.port: 8081等配置)。用netstat -tulnp | grep 8081即可确认 mall-search 是否就绪。

wget 下载

wget从网络上下载软件或文件,例如下载 JDK、Maven 安装包到服务器,或下载 Dockerfile 中需要用到的依赖包。常用变体:wget -c断点续传、wget -O指定输出文件名。

软件的安装与管理:rpm 与 yum

Linux 环境准备(安装 JDK、MySQL 客户端、Elasticsearch 等)依赖软件包管理。mall 项目在 Linux 上部署的依赖栈可参考 docker-compose-env.yml:mysql:5.7、redis:7、elasticsearch:7.17.3、rabbitmq:3.9.11-management、mongo:4 等。

rpm:底层 RPM 包管理

rpm 直接操作.rpm包文件,以 nginx 为例:

操作命令
安装软件包rpm -ivh nginx-1.12.2-2.el7.x86_64.rpm
模糊搜索已装包rpm -qa \| grep nginx
精确查找已装包rpm -qa nginx
查询安装路径rpm -ql nginx-1.12.2-2.el7.x86_64
查看包概要信息rpm -qi nginx-1.12.2-2.el7.x86_64
验证包内容一致性rpm -V nginx-1.12.2-2.el7.x86_64
更新软件包rpm -Uvh nginx-1.12.2-2.el7.x86_64
删除软件包rpm -e nginx-1.12.2-2.el7.x86_64

参数说明:-i安装、-v显示过程、-h显示进度条、-U升级、-e卸载、-q查询、-a所有、-l列出文件、-V校验。rpm 不会自动解决依赖,实际运维中更常用 yum。

yum:依赖自动解决的软件管理

yum 基于仓库(repository)工作,自动解决依赖,是 CentOS 下安装软件的首选方式:

操作命令
安装软件包yum install nginx
检查可更新包yum check-update
更新指定包yum update nginx
在仓库中查找包信息yum info nginx*
列出所有已安装包yum info installed
列出指定名称的包yum list redis*
模糊搜索软件包yum search redis

在 mall 部署场景中,可用yum install -y net-tools补齐 ifconfig/netstat,用yum install -y lrzsz安装 lrzsz 便于文件上传。注意yum install加-y可跳过交互确认,适合脚本化执行。

网络安全:iptables 防火墙管理

iptables 是 Linux 内核防火墙的经典管理工具(新版系统也提供 firewalld 封装)。mall 服务对外暴露 8080/8081/8085 等端口时,需要确保防火墙放行相应端口。

防火墙服务开关(以 iptables.service 为例)

操作命令
开启防火墙systemctl start iptables.service
关闭防火墙systemctl stop iptables.service
查看防火墙状态systemctl status iptables.service
设置开机启动systemctl enable iptables.service
禁用开机启动systemctl disable iptables.service

说明:iptables.service作为 systemd 单元管理的前提是已安装 iptables-services 包;若使用 firewalld,则对应systemctl start/stop firewalld。

iptables 规则管理

操作命令
查看 filter 表链信息iptables -L -n
查看 NAT 表链信息iptables -t nat -L -n
清空所有规则iptables -F; iptables -X; iptables -Z;(-F清空链规则、-X删除自定义链、-Z计数器归零)
放行 80 端口iptables -I INPUT -p tcp --dport 80 -j ACCEPT(-I插入到链首,-p协议,--dport目标端口,-j ACCEPT接受)
查找规则行号iptables -L INPUT --line-numbers -n
按行号删除规则iptables -D INPUT 1(删除 INPUT 链第 1 行规则)

在 mall 部署场景中,若采用 Docker 部署(参考 docker-compose-app.yml 的端口映射 8080/8081/8085),需注意 Docker 会向 iptables 注入自定义链,放行规则通常只需作用于宿主机的对外网卡;排查"端口通但连不上"的问题时,先iptables -L -n --line-numbers确认是否被 DROP,再检查netstat -tulnp确认进程监听。

注意:iptables 规则默认不持久化,重启后失效。需要持久化时,CentOS 可用service iptables save保存规则到/etc/sysconfig/iptables(依赖 iptables-services),确保重启后仍生效。

结合 mall 部署脚本的 Linux 运维实践

上述命令并非孤立存在,mall 项目的实际部署正是这些命令的组合运用。以 run.sh 为例,其执行流程依次对应:

  1. docker stop mall-admin/docker rm mall-admin/docker rmi mall/mall-admin:1.0-SNAPSHOT—— 清理旧容器与旧镜像(对应 Linux 进程与镜像管理);
  2. docker build -t mall/mall-admin:1.0-SNAPSHOT .—— 依据 Dockerfile 构建新镜像;
  3. docker run -p 8080:8080 --link mysql:db --link redis:redis -e 'spring.profiles.active=prod' -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime -v /mydata/app/mall-admin/logs:/var/logs -d mall/mall-admin:1.0-SNAPSHOT—— 启动容器。

其中的-v /etc/localtime:/etc/localtime正是将宿主机时区文件挂载进容器,与本文date、cp /etc/localtime的时区同步思路一脉相承;日志目录/mydata/app/mall-admin/logs的查看则对应本文ls -lht与tail(tail -f跟踪日志输出)的组合使用。

结语

本文以 mall 项目 Linux 部署运维为主线,覆盖了 systemctl 服务管理、文件与进程管理、tar 压缩解压、df/netstat 磁盘网络排查、rpm/yum 软件安装以及 iptables 防火墙配置六类高频命令。掌握这些命令后,再结合 document/sh/ 的部署脚本、document/docker/ 的 Docker Compose 编排文件以及 document/sql/mall.sql 的数据库初始化脚本,即可独立完成 mall 前台商城与后台管理系统在 Linux 服务器上的环境搭建、部署发布与日常巡检运维。若需在 Windows 本机先行联调,可进一步参考 document/reference/deploy-windows.md 的环境搭建指南,与本文的 Linux 方案互为补充。

  • 后端
  • 电商
  • 认证鉴权
  • 搜索引擎

【免费下载链接】mall

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于Spring Boot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

项目地址:https://gitcode.com/gh_mirrors/ma/mall
点击查看免费下载

相关推荐

上一篇:CodexGuide账号订阅攻略:最稳定的苹果礼品卡购买方法
下一篇:nopecha-extension动态配置更新:无需重启扩展的参数调整

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 6:38:48

ST7282彩屏驱动移植实战:从解压白屏到DMA刷屏避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/30 6:37:09

AI生成的道路模块看着接上了,车辆一过却弹跳?先查这5处碰撞接缝

把 AI 生成的道路、坡道或桥梁模块导入 Unity、Unreal 后&#xff0c;车辆经过接缝时突然抬头、侧跳、短暂离地&#xff0c;甚至无故减速&#xff0c;并不一定是悬挂参数有问题。 更常见的原因是&#xff1a;相邻碰撞体之间存在缝隙或重叠&#xff0c;视觉网格与碰撞网格轮廓不…

作者头像 李华
网站建设 2026/9/30 6:37:06

齿条轨道选供应商,这三个标准帮你避坑

在工业自动化与精密机械领域&#xff0c;齿条导轨作为核心传动部件&#xff0c;其质量直接影响设备运行精度与使用寿命。然而&#xff0c;市场上供应商水平参差不齐&#xff0c;选错厂家轻则增加维护成本&#xff0c;重则导致生产线停摆。本文基于行业实践&#xff0c;梳理三个…

作者头像 李华
网站建设 2026/9/30 6:33:51

诚信为本的自动化焊接产线工厂赢得市场信赖

随着制造业向智能化迈进&#xff0c;自动化焊接产线已成为企业提质增效的重要选择。然而&#xff0c;面对供应商的各类承诺&#xff0c;不少企业发现&#xff0c;真正影响合作质量的往往是“诚信”二字。从方案设计到交付服务&#xff0c;一个工厂是否可靠&#xff0c;直接决定…

作者头像 李华