小柘小筑站

Linux 常用命令

2025/11/06
8
0

Ubuntu系统文件配置与常用命令(含实战场景)

Ubuntu作为最流行的Linux发行版之一,以易用性和稳定性著称。以下从文件系统结构、核心配置文件、常用命令(按场景分类)、实战技巧四个维度展开,覆盖日常运维、开发部署全场景需求。

一、Ubuntu文件系统结构(核心必懂)

Ubuntu遵循FHS(Filesystem Hierarchy Standard)文件系统标准,目录功能清晰,核心目录如下:

1. 顶层目录及功能

目录

核心功能

关键文件/子目录

/

根目录,所有文件的起点

包含所有顶层子目录

/bin

存放系统必备可执行命令(普通用户可执行)

ls、cp、mv、cat等基础命令

/sbin

系统管理命令(需root权限)

reboot、shutdown、ifconfig等

/usr

应用程序安装目录(核心)

/usr/bin(用户命令)、/usr/lib(库文件)、/usr/share(共享资源)

/etc

系统及应用配置文件目录(最常用)

服务配置、网络配置、用户配置等

/home

普通用户家目录

每个用户对应 /home/用户名,存放个人文件/配置

/root

root用户家目录

仅root可访问,存放管理员个人文件

/var

可变数据目录

/var/log(日志)、/var/www(网页根目录)、/var/cache(缓存)

/tmp

临时文件目录

系统重启后清空,所有用户可读写

/dev

设备文件目录

/dev/sda(硬盘)、/dev/tty(终端)、/dev/null(黑洞设备)

/proc

虚拟文件系统(内存映射)

反映系统运行状态,如 /proc/cpuinfo(CPU信息)、/proc/meminfo(内存信息)

/mnt

临时挂载目录

手动挂载U盘、硬盘分区等外部设备

/media

自动挂载目录

系统自动挂载U盘、光盘等设备(如 /media/用户名/U盘名称

2. 关键目录使用原则

  • 配置文件优先存放在 /etc,避免修改 /bin//sbin 下的系统命令;

  • 个人文件放在 /home/用户名,避免直接在 //root 下存放文件;

  • 日志文件统一在 /var/log 查看,无需手动创建;

  • 临时文件放在 /tmp,无需手动清理(系统自动管理)。

二、核心配置文件详解(运维高频操作)

1. 系统基础配置

/etc/profile~/.bashrc(环境变量配置)

  • /etc/profile:系统级环境变量配置,对所有用户生效,登录时加载;

  • 常用操作:添加全局环境变量(如 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64);

  • ~/.bashrc:用户级环境变量配置,仅对当前用户生效,每次打开终端加载;

  • 常用操作:添加别名(如 alias ll='ls -l')、用户专属环境变量;

  • 生效命令:source ~/.bashrc(立即生效)或重启终端。

/etc/passwd/etc/shadow(用户配置)

  • /etc/passwd:用户信息文件(所有用户可读);

  • 格式:用户名:密码占位符:UID:GID:用户描述:家目录:默认shell

  • 示例:ubuntu:x:1000:1000:Ubuntu User:/home/ubuntu:/bin/bash

  • /etc/shadow:用户密码文件(仅root可读,加密存储);

  • 格式:用户名:加密密码:密码过期时间:最小密码长度:警告时间:禁用时间:失效时间

  • 注意:禁止直接修改,需通过 passwd 用户名 命令修改密码。

/etc/group(用户组配置)

  • 存储用户组信息,格式:组名:组密码占位符:GID:组内用户

  • 常用命令:groupadd 组名(创建组)、usermod -aG 组名 用户名(添加用户到组)。

2. 网络配置

/etc/network/interfaces(传统网络配置)

  • 配置静态IP、网卡信息(Ubuntu 18.04+默认用Netplan,需手动启用);

  • 示例(静态IP配置):

auto ens33  # 开机自动激活网卡
iface ens33 inet static
address 192.168.1.100  # IP地址
netmask 255.255.255.0  # 子网掩码
gateway 192.168.1.1    # 网关
dns-nameservers 8.8.8.8 114.114.114.114  # DNS
  • 生效命令:sudo systemctl restart networking

/etc/netplan/00-installer-config.yaml(Ubuntu 18.04+默认网络配置)

  • YAML格式,配置动态/静态IP,示例(静态IP):

network:
  ethernets:
    ens33:
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]
  version: 2
  • 生效命令:sudo netplan apply(立即生效)或 sudo netplan try(测试配置,错误自动回滚)。

/etc/resolv.conf(DNS配置)

  • 存储DNS服务器地址,示例:nameserver 8.8.8.8

  • 注意:Ubuntu 18.04+ 中,该文件由Netplan自动生成,直接修改会被覆盖,需通过Netplan配置。

3. 服务配置(systemd 管理)

Ubuntu 16.04+ 采用 systemd 作为服务管理工具,核心配置文件在 /etc/systemd/system/(自定义服务)和 /lib/systemd/system/(系统默认服务)。

自定义服务配置示例(如之前的 jsherp.service

[Unit]
Description=jshERP Backend Service  # 服务描述
After=mysql.service redis-server.service  # 依赖服务(先启动依赖再启动当前服务)

[Service]
User=root  # 运行用户
WorkingDirectory=/opt/erp/erp-admin/jshERP/lib  # 工作目录
ExecStart=/usr/bin/java -jar jshERP.jar  # 启动命令
Restart=always  # 崩溃自动重启
RestartSec=5  # 重启间隔5秒
LimitNOFILE=65535  # 提高文件句柄限制

[Install]
WantedBy=multi-user.target  # 开机自启目标(多用户模式)
  • 核心操作:sudo systemctl daemon-reload(重新加载配置)、sudo systemctl enable/start/stop/restart 服务名

4. 软件源配置(/etc/apt/sources.list

  • 存储Ubuntu软件包下载源地址,决定软件安装速度和版本;

  • 常用操作:

  • 备份默认源:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

  • 替换为国内源(如阿里云、清华源),示例(阿里云源,Ubuntu 20.04):

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
  • 生效命令:sudo apt update(更新源缓存)。

三、常用命令分类汇总(按场景高频排序)

1. 系统基础操作(必记)

命令

功能

示例

sudo

以root权限执行命令

sudo apt install nginx(安装Nginx)

su

切换用户

su root(切换到root,需输入root密码)

exit

退出当前用户/终端

退出sudo或su切换的用户

reboot

重启系统

sudo reboot(需root权限)

shutdown

关闭系统

sudo shutdown -h now(立即关机)、sudo shutdown -h 22:00(22点关机)

uname

查看系统信息

uname -a(查看内核版本、主机名等完整信息)

hostname

查看/修改主机名

hostname(查看)、sudo hostname 新主机名(临时修改)

date

查看/设置系统时间

date(查看)、sudo date -s "2025-11-10 10:00:00"(设置时间)

timedatectl

时间同步配置

sudo timedatectl set-ntp true(启用网络时间同步)

2. 目录与文件操作(最常用)

目录操作

命令

功能

示例

pwd

查看当前所在目录

pwd(输出如 /home/ubuntu

cd

切换目录

cd /etc(切换到/etc)、cd ~(切换到家目录)、cd ..(返回上一级)

ls

列出目录内容

ls(简单列出)、ls -l(详细列表,别名ll)、ls -a(显示隐藏文件)、ls -lh(人性化显示文件大小)

mkdir

创建目录

mkdir test(创建单个目录)、mkdir -p /opt/erp/log(递归创建多级目录)

rmdir

删除空目录

rmdir test(仅删除空目录)

tree

以树形结构显示目录

tree /etc(需先安装:sudo apt install tree

文件操作

命令

功能

示例

touch

创建空文件

touch test.txt(创建单个文件)、touch a.txt b.txt(创建多个文件)

cat

查看文件内容(适合小文件)

cat /etc/passwd(查看用户信息)

more/less

分页查看文件(适合大文件)

more /var/log/syslog(按空格翻页)、less /var/log/syslog(按上下键滚动,q退出)

head/tail

查看文件头尾内容

head -n 10 /etc/sources.list(查看前10行)、tail -f /var/log/jsherp.log(实时跟踪日志,Ctrl+C退出)

cp

复制文件/目录

cp test.txt /home/ubuntu(复制文件)、cp -r /opt/erp /backup(递归复制目录)

mv

移动/重命名文件/目录

mv test.txt test_new.txt(重命名)、mv test.txt /home/ubuntu(移动文件)

rm

删除文件/目录(谨慎使用)

rm test.txt(删除文件)、rm -rf /opt/old_erp(强制递归删除目录及内容,不可恢复)

find

查找文件/目录

find / -name "jshERP.jar"(全局查找文件)、find /opt -type d -name "log"(查找/opt下名为log的目录)

grep

搜索文件内容

grep "ERROR" /var/log/jsherp.log(搜索错误日志)、grep -n "ERROR" test.txt(显示错误行号)、grep -r "password" /etc(递归搜索/etc下含password的文件)

sed

文本替换(批量修改)

sed -i 's/old/new/g' test.txt(将test.txt中所有old替换为new)、sed -i '/^#/d' /etc/sources.list(删除注释行)

awk

文本处理(按列提取)

awk -F: '{print $1,$3}' /etc/passwd(提取用户名和UID,以:为分隔符)

chmod

修改文件/目录权限

chmod 755 test.sh(所有者读/写/执行,其他读/执行)、chmod -R 777 /var/log/jsherp(递归修改目录权限)

chown

修改文件/目录所有者

sudo chown ubuntu:ubuntu test.txt(将文件所有者改为ubuntu用户和组)、sudo chown -R www-data:www-data /var/www(递归修改网页目录权限)

ln

创建软链接/硬链接

ln -s /opt/erp/jshERP.jar /usr/bin/jsherp(创建软链接,类似Windows快捷方式)、ln test.txt test_link.txt(创建硬链接)

3. 用户与权限管理

命令

功能

示例

useradd

创建用户

sudo useradd -m test(创建test用户并自动创建家目录)、sudo useradd -m -s /bin/bash test(指定默认shell)

userdel

删除用户

sudo userdel test(仅删除用户)、sudo userdel -r test(删除用户及家目录)

passwd

修改用户密码

passwd(修改当前用户密码)、sudo passwd test(修改test用户密码)

usermod

修改用户属性

sudo usermod -aG sudo test(将test用户添加到sudo组,获取root权限)、sudo usermod -d /home/new_test test(修改家目录)

groupadd

创建用户组

sudo groupadd erp(创建erp组)

groupdel

删除用户组

sudo groupdel erp(删除erp组)

id

查看用户ID和组ID

id test(查看test用户的UID、GID等)

whoami

查看当前登录用户

whoami(输出当前用户名)

w

查看当前在线用户

w(显示所有登录用户及操作)

4. 软件包管理(APT命令,核心)

Ubuntu默认使用APT(Advanced Package Tool)管理软件包,无需手动下载依赖,核心命令如下:

命令

功能

示例

apt update

更新软件源缓存

sudo apt update(必须先执行,否则无法获取最新软件版本)

apt upgrade

升级已安装软件

sudo apt upgrade -y(-y自动确认升级,无需手动输入y)

apt install

安装软件

sudo apt install nginx(安装Nginx)、sudo apt install openjdk-8-jdk redis-server(同时安装多个软件)

apt remove

卸载软件(保留配置)

sudo apt remove nginx(卸载Nginx,但保留/etc/nginx配置文件)

apt purge

彻底卸载软件(删除配置)

sudo apt purge nginx(卸载Nginx并删除所有配置文件)

apt autoremove

自动删除无用依赖

sudo apt autoremove -y(卸载软件后执行,清理残留依赖)

apt search

搜索软件包

apt search redis(搜索与redis相关的软件包)

apt show

查看软件包详情

apt show nginx(查看Nginx版本、依赖、描述等)

apt clean

清理软件包缓存

sudo apt clean(删除/var/cache/apt/archives下的下载缓存)

5. 网络操作

命令

功能

示例

ifconfig

查看网卡信息(传统命令)

ifconfig(需安装:sudo apt install net-tools

ip

查看/配置网络(推荐,替代ifconfig)

ip addr(查看网卡IP)、ip route(查看路由表,网关信息)

ping

测试网络连通性

ping 8.8.8.8(测试与谷歌DNS连通性)、ping -c 4 baidu.com(发送4个数据包后停止)

curl/wget

下载文件/测试接口

curl http://baidu.com(访问网页)、wget https://nginx.org/download/nginx-1.24.0.tar.gz(下载文件)、curl -I http://127.0.0.1:9999(查看接口状态码)

netstat

查看端口占用(传统命令)

`sudo netstat -tulpn

ss

查看端口占用(推荐,替代netstat)

`sudo ss -tulpn

telnet

测试端口连通性

telnet 127.0.0.1 9999(测试9999端口是否开放,需安装:sudo apt install telnet

traceroute

跟踪网络路由

traceroute baidu.com(查看数据包到达百度的路由路径,需安装:sudo apt install traceroute

ufw

防火墙配置(Ubuntu默认防火墙)

sudo ufw enable(启用防火墙)、sudo ufw allow 80/tcp(开放80端口)、sudo ufw deny 3306(禁止3306端口)、sudo ufw status(查看防火墙状态)

6. 服务管理(systemd 命令)

Ubuntu 16.04+ 统一用 systemctl 管理服务,替代传统的 service 命令,核心操作如下:

命令

功能

示例

systemctl status 服务名

查看服务状态

sudo systemctl status nginx(查看Nginx状态,active=运行中)

systemctl start 服务名

启动服务

sudo systemctl start mysql(启动MySQL)

systemctl stop 服务名

停止服务

sudo systemctl stop redis(停止Redis)

systemctl restart 服务名

重启服务

sudo systemctl restart openresty(重启OpenResty)

systemctl reload 服务名

重载配置(不停止服务)

sudo systemctl reload nginx(修改Nginx配置后重载)

systemctl enable 服务名

开机自启

sudo systemctl enable jsherp(设置后端服务开机自启)

systemctl disable 服务名

关闭开机自启

sudo systemctl disable mysql(禁止MySQL开机自启)

systemctl list-unit-files --type=service

查看所有服务状态

`sudo systemctl list-unit-files --type=service

journalctl -u 服务名

查看服务日志

journalctl -u jsherp -f(实时跟踪后端服务日志)

7. 日志查看(运维排错核心)

Ubuntu日志统一存放在 /var/log,常用日志文件及查看命令:

日志文件

功能

查看命令

/var/log/syslog

系统核心日志(最常用)

tail -f /var/log/syslog(实时查看系统事件)

/var/log/auth.log

认证日志(登录、sudo操作等)

grep "sudo" /var/log/auth.log(查看sudo操作记录)

/var/log/apt/history.log

APT软件安装/升级日志

cat /var/log/apt/history.log(查看软件安装记录)

/var/log/nginx/access.log

Nginx访问日志

tail -n 100 /var/log/nginx/access.log(查看最近100条访问记录)

/var/log/nginx/error.log

Nginx错误日志

grep "ERROR" /var/log/nginx/error.log(查找Nginx错误)

/var/log/mysql/error.log

MySQL错误日志

sudo tail -f /var/log/mysql/error.log(实时查看MySQL错误)

自定义应用日志

如jsherp.log

按应用配置的路径查看(如 /opt/erp/erp-admin/jshERP/lib/jsherp.log

8. 磁盘与存储操作

命令

功能

示例

df

查看磁盘空间使用情况

df -h(人性化显示,单位GB/MB)、df -T(显示文件系统类型)

du

查看目录/文件占用空间

du -sh /var/log(查看日志目录总大小)、du -lh --max-depth=1 /home(查看家目录下一级目录大小)

fdisk

磁盘分区管理(需root)

sudo fdisk -l(查看所有磁盘及分区信息)、sudo fdisk /dev/sda(对sda磁盘进行分区操作)

mkfs

格式化分区

sudo mkfs.ext4 /dev/sda3(将sda3分区格式化为ext4文件系统)

mount

挂载磁盘/分区

sudo mount /dev/sda3 /mnt/data(将sda3挂载到/mnt/data)

umount

卸载磁盘/分区

sudo umount /mnt/data(卸载挂载点)、sudo umount /dev/sda3(按设备卸载)

blkid

查看磁盘UUID(用于永久挂载)

blkid(输出所有磁盘分区的UUID和文件系统类型)

永久挂载配置(/etc/fstab

  • 编辑 /etc/fstab,添加分区信息(UUID方式,避免设备名变动导致挂载失败):

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/data ext4 defaults 0 2
  • 字段说明:UUID(磁盘唯一标识)、挂载点、文件系统类型、挂载参数、dump备份标记、fsck检查顺序;

  • 生效命令:sudo mount -a(测试配置是否正确,无报错则永久生效)。

9. 压缩与解压操作

Ubuntu默认支持 .tar.tar.gz.zip 等格式,核心命令:

压缩格式

解压命令

压缩命令

.tar

tar -xvf file.tar

tar -cvf file.tar 目录/文件

.tar.gz(常用)

tar -zxvf file.tar.gz

tar -zcvf file.tar.gz 目录/文件

.tar.bz2

tar -jxvf file.tar.bz2

tar -jcvf file.tar.bz2 目录/文件

.zip

unzip file.zip(需安装:sudo apt install unzip

zip file.zip 目录/文件(需安装:sudo apt install zip

.rar

unrar x file.rar(需安装:sudo apt install unrar

rar a file.rar 目录/文件(需安装:sudo apt install rar

  • 选项说明:x(解压到指定目录)、v(显示详细过程)、f(指定文件)、c(压缩)、z(gzip压缩)、j(bzip2压缩)。

10. 定时任务(crontab

用于周期性执行命令(如备份、日志清理),核心命令:

命令

功能

示例

crontab -l

查看当前用户定时任务

crontab -l(列出所有定时任务)

crontab -e

编辑定时任务

crontab -e(打开编辑器添加任务,首次使用需选择编辑器,推荐nano)

crontab -r

删除所有定时任务

crontab -r(谨慎使用,不可恢复)

定时任务格式(5个字段+命令)

* * * * * 命令
分 时 日 月 周 (取值范围:分0-59、时0-23、日1-31、月1-12、周0-7,0/7=周日)
  • 特殊符号:*(所有值)、/(步长,如 */5 表示每5个单位)、-(范围,如 1-5 表示1到5)、,(多个值,如 1,3,5 表示1、3、5);

  • 示例:

  • 0 3 * * * /opt/erp/backup.sh(每天凌晨3点执行备份脚本);

  • */5 * * * * /opt/erp/monitor_services.sh(每5分钟执行服务监控脚本);

  • 0 0 * * 0 /opt/erp/clean_log.sh(每周日0点执行日志清理脚本)。

四、实战技巧与避坑指南

1. 权限问题(最常见坑)

  • 普通用户无法执行某些命令:在命令前加 sudo(需用户在sudo组);

  • 无法写入文件:用 chmod 调整权限(如 chmod 644 test.txt)或 chown 更改所有者;

  • 执行脚本提示“权限不够”:先给脚本添加执行权限(chmod +x script.sh),再执行(./script.sh)。

2. 网络问题排查步骤

  1. 测试网络连通性:ping 8.8.8.8(通则网络正常,不通则检查网关/网卡);

  2. 检查IP配置:ip addr(确认IP、子网掩码是否正确);

  3. 检查DNS:nslookup baidu.com(解析失败则修改 /etc/resolv.conf 或Netplan配置);

  4. 检查防火墙:sudo ufw status(如需开放端口,执行 sudo ufw allow 端口号)。

3. 服务启动失败排查

  1. 查看服务状态:sudo systemctl status 服务名(看报错信息);

  2. 查看详细日志:journalctl -u 服务名 -n 100(定位失败原因);

  3. 常见原因:端口占用(sudo ss -tulpn | grep 端口号 查找并 kill -9 PID 终止)、配置文件错误(检查 /etc/服务名 下的配置)、依赖服务未启动(先启动依赖,如MySQL/Redis)。

4. 系统优化建议

  • 启用SSH登录(远程管理):sudo apt install openssh-server,配置 /etc/ssh/sshd_config(如禁止root登录、修改端口),重启服务:sudo systemctl restart sshd

  • 关闭无用服务:sudo systemctl disable 服务名(如 cups 打印机服务、avahi-daemon 零配置服务,根据需求关闭);

  • 定期更新系统:sudo apt update && sudo apt upgrade -y(每月执行一次,修复安全漏洞);

  • 日志轮转:配置 logrotate(Ubuntu默认已启用,可在 /etc/logrotate.d/ 下调整日志保留时间)。

5. 常用快捷键(提高效率)

  • 终端快捷键:Ctrl+C(终止当前命令)、Ctrl+D(退出终端)、Ctrl+L(清屏)、Tab(命令/文件名补全);

  • 系统快捷键:Ctrl+Alt+T(打开终端)、Ctrl+Alt+Del(注销/重启)、Win键(打开应用列表)。

五、总结

Ubuntu文件系统核心是“目录功能分区明确、配置文件集中管理”,重点掌握 /etc(配置)、/var/log(日志)、/home(个人文件)的使用;常用命令围绕“目录文件操作、服务管理、网络配置、日志排查”展开,无需死记硬背,结合实战场景多练习即可熟练。

对于开发部署(如之前的jshERP系统),核心流程是:环境依赖安装(apt install)→ 配置文件修改(/etc)→ 服务注册(systemd)→ 日志监控(tail/journalctl)→ 定时任务(crontab),按此流程可解决大部分部署需求。

如果需要针对特定场景(如Web服务器配置、数据库部署、容器化环境)展开更详细的命令和配置,可随时告知,我会补充专项内容。

Linux 防火墙(firewalld)核心命令总结

核心结论:日常操作以 firewalld 命令为主,涵盖「查看状态、开放端口、重载生效、删除规则」四大核心场景,简单直接好记。

一、基础状态管理

  • 查看防火墙运行状态(关键,先确认是否启动):

sudo systemctl status firewalld
  • 启动防火墙:

sudo systemctl start firewalld
  • 停止防火墙(临时关闭,重启后恢复):

sudo systemctl stop firewalld
  • 设置开机自启防火墙:

sudo systemctl enable firewalld
  • 禁止开机自启防火墙:

sudo systemctl disable firewalld

二、端口放行/删除(最常用)

1. 临时开放端口(重启防火墙后失效)

# 格式:sudo firewall-cmd --add-port=端口号/协议(tcp/udp)
sudo firewall-cmd --add-port=80/tcp  # 临时开放80(HTTP)
sudo firewall-cmd --add-port=443/tcp # 临时开放443(HTTPS)
sudo firewall-cmd --add-port=7000/tcp # 临时开放frps连接端口
sudo firewall-cmd --add-port=20081/tcp # 临时开放TCP穿透端口

2. 永久开放端口(重启后仍生效,推荐)

# 格式:sudo firewall-cmd --add-port=端口号/协议 --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --add-port=443/tcp --permanent
sudo firewall-cmd --add-port=7000/tcp --permanent
sudo firewall-cmd --add-port=20081/tcp --permanent

3. 永久删除已开放端口

# 格式:sudo firewall-cmd --remove-port=端口号/协议 --permanent
sudo firewall-cmd --remove-port=20081/tcp --permanent # 删除20081端口

4. 重载防火墙(使永久配置生效)

sudo firewall-cmd --reload

注意:所有带 --permanent 的命令,必须执行重载才能生效。

三、查看已开放端口

  • 查看当前生效的开放端口(临时+永久重载后):

sudo firewall-cmd --list-ports
  • 查看永久配置的开放端口(未重载的也会显示):

sudo firewall-cmd --list-ports --permanent
  • 查看所有防火墙配置(含端口、服务、规则):

sudo firewall-cmd --list-all

四、常用组合操作(实际部署用)

  1. 永久开放80/443/7000/20081端口 + 重载生效:

sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --add-port=443/tcp --permanent
sudo firewall-cmd --add-port=7000/tcp --permanent
sudo firewall-cmd --add-port=20081/tcp --permanent
sudo firewall-cmd --reload
  1. 验证端口是否开放成功:

sudo firewall-cmd --list-ports

输出含 80/tcp 443/tcp 7000/tcp 20081/tcp 即成功。

要不要我帮你生成一份「防火墙配置快速参考表」,打印出来方便日常查阅?

网站系统部署与维护全量Linux命令总结

按功能分类整理,涵盖所有涉及的命令,方便日常直接复制使用:

一、系统环境与依赖安装

# 更新系统包
apt update && apt upgrade -y

# 安装JDK 8
apt install -y openjdk-8-jdk
java -version  # 验证JDK版本

# 安装MySQL
apt install -y mysql-server
systemctl enable mysql && systemctl start mysql  # 开机自启+启动

# 安装Redis
apt install -y redis-server
systemctl enable redis && systemctl start redis  # 开机自启+启动

# 安装OpenResty
wget -qO - https://openresty.org/package/pubkey.gpg | apt-key add -
apt-add-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main"
apt update && apt install -y openresty
systemctl enable openresty && systemctl start openresty  # 开机自启+启动

二、数据库相关命令

# 登录MySQL(首次无密码直接回车)
mysql -u root -p

# MySQL内部命令(创建数据库/用户/授权)
CREATE DATABASE jsh_erp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'jshuser'@'localhost' IDENTIFIED BY 'jsh123456';
GRANT ALL PRIVILEGES ON jsh_erp.* TO 'jshuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

# 导入SQL脚本(假设脚本路径为/opt/erp/init.sql)
mysql -u jshuser -p'jsh123456' jsh_erp < /opt/erp/init.sql

# MySQL服务管理
systemctl start/stop/restart/status mysql  # 启动/停止/重启/查看状态

三、Redis相关命令

# 设置Redis密码(临时生效,需配置文件持久化)
redis-cli CONFIG SET requirepass 123456

# Redis密码认证
redis-cli -h localhost -p 6379 AUTH 123456

# Redis服务管理
systemctl start/stop/restart/status redis  # 启动/停止/重启/查看状态

# 验证Redis连接
redis-cli -h localhost -p 6379 AUTH 123456  # 输出OK则正常

四、后端服务(jshERP.jar)管理

# 进入后端目录(核心前提)
cd /opt/erp/erp-admin/jshERP/lib

# 手动启动(带日志持久化)
nohup java -jar jshERP.jar > jsherp.log 2>&1 &

# 终止后端进程(按PID)
sudo kill -9 [PID]  # 替换[PID]为实际进程ID

# 终止后端进程(按进程名)
sudo pkill -f jshERP.jar

# 系统服务管理(推荐)
sudo systemctl start jsherp  # 启动
sudo systemctl stop jsherp   # 停止
sudo systemctl restart jsherp  # 重启
sudo systemctl status jsherp  # 查看状态
sudo systemctl enable jsherp  # 开机自启
sudo systemctl daemon-reload  # 重新加载服务配置

# 查看后端进程
ps aux | grep jshERP.jar

# 查看后端系统日志
journalctl -u jsherp -f  # 实时跟踪
journalctl -u jsherp -n 100  # 查看最近100行

五、日志查看命令(后端)

# 进入后端目录(核心前提)
cd /opt/erp/erp-admin/jshERP/lib

# 实时跟踪日志
tail -f jsherp.log

# 查看最近N行日志(替换100为任意数字)
tail -n 100 jsherp.log

# 搜索日志中的错误信息
grep "ERROR" jsherp.log

# 搜索错误并显示行号
grep -n "ERROR" jsherp.log

# 实时跟踪特定关键词日志(如“登录”)
tail -f jsherp.log | grep "登录"

# 查看完整日志(大文件推荐搭配less)
cat jsherp.log
cat jsherp.log | less  # 按q退出

六、端口与进程相关命令

# 查看指定端口占用(后端9999端口)
sudo netstat -tulpn | grep 9999

# 查看所有端口占用
sudo netstat -tulpn

# 查找进程(按进程名)
ps aux | grep [进程名]  # 如 grep java、grep jshERP.jar

# 强制终止进程(按PID)
sudo kill -9 [PID]

# 强制终止进程(按进程名)
sudo pkill -f [进程名]  # 如 pkill -f java

七、OpenResty(Nginx)相关命令

# 服务管理
systemctl start/stop/restart/status openresty  # 启动/停止/重启/查看状态

# 验证配置文件
/usr/local/openresty/nginx/sbin/nginx -t

# 重启OpenResty(配置修改后)
/usr/local/openresty/nginx/sbin/nginx -s reload

# 查看OpenResty日志(自定义日志目录)
tail -f /var/log/jsherp/error.log  # 错误日志
tail -f /var/log/jsherp/access.log  # 访问日志

八、定时任务(crontab)相关

# 编辑定时任务
crontab -e

# 查看当前用户定时任务
crontab -l

# 添加定时任务(示例:每5分钟执行监控脚本)
(crontab -l 2>/dev/null; echo "*/5 * * * * /path/to/monitor_services.sh") | crontab -

# 添加MySQL备份定时任务(每天凌晨3点)
(crontab -l 2>/dev/null; echo "0 3 * * * /opt/erp/backup.sh") | crontab -

# 删除所有定时任务(谨慎使用)
crontab -r

九、文件与权限相关命令

# 创建目录
mkdir -p /opt/erp/backend /opt/erp/dist /opt/erp/backup /var/log/jsherp

# 设置目录/文件权限(读写执行)
chmod -R 755 /opt/erp
chmod +x /opt/erp/backup.sh  # 给脚本添加执行权限
chmod -R 777 /var/log/jsherp  # 日志目录全权限

# 创建文件(如服务配置文件、脚本文件)
sudo vi /etc/systemd/system/jsherp.service
sudo vi /opt/erp/monitor_services.sh

# 查看目录下文件
ls
ls | grep jsherp.service  # 过滤特定文件

# 清空日志文件(需进入对应目录)
rm jsherp.log && touch jsherp.log

十、系统资源与状态监控

# 查看系统内存使用
free -h

# 查看系统CPU使用
top

# 查看磁盘使用情况
df -h

# 查看指定目录磁盘占用
du -sh /opt/erp

# 搜索系统日志
grep -i "jshERP.jar" /var/log/syslog

十一、其他常用命令

# 查看Java安装路径
which java

# 系统重启(谨慎使用)
sudo reboot

# 系统关机(谨慎使用)
sudo shutdown -h now

# 查看系统时间
date

资源下载

提示:如遇链接失效,请在评论区留言反馈