【JavaWeb】----- Linux基础入门

1. 核心概念

1.1 什么是Linux?

Linux是一套免费使用和自由传播的操作系统。作为JavaEE开发工程师,企业在开发时会涉及大量数据库、中间件技术(如MySQL、Redis、MQ等),而这些软件大多需要安装在Linux系统中。

为什么Java开发者必须掌握Linux?

  • 企业服务器大多运行在Linux系统上
  • 需要通过远程工具连接Linux操作各类软件
  • 小公司可能需要开发人员自行在服务器上安装软件
  • 无论是企业用人需求还是个人发展,Linux基本使用都是必不可少的技能

1.2 主流操作系统分类

领域 操作系统 特点
桌面操作系统 Windows 用户数量最多
MacOS 操作体验好,办公人士首选
Linux 桌面领域使用较少
服务器操作系统 Unix 安全、稳定、付费
Linux 安全、稳定、免费、占有率高
Windows Server 付费、占有率低
移动设备操作系统 Android 基于Linux、开源,用于智能手机/平板/智能电视
IOS 苹果公司开发、不开源
HarmonyOS 华为公司开发、开源

1.3 Linux系统版本

Linux系统的版本分为两种:

版本类型 说明
内核版 由Linus Torvalds及其团队开发维护,免费开源,负责控制硬件
发行版 基于内核版扩展,由各厂商开发维护,有收费和免费版本

常见的发行版包括:Ubuntu、CentOS、RedHat、Debian、Fedora、Kali Linux等。我们实际使用的是发行版


2. 环境搭建

2.1 安装方式

Linux系统主要有两种安装方式:

  • 虚拟机安装:通过软件模拟完整硬件系统功能,运行在完全隔离环境中。常用软件:VMWare、VirtualBox、Qemu等。
  • 物理机安装 :直接在物理计算机上安装Linux作为唯一的操作系统,会完全替换掉硬盘上原有的系统。
    • 注意:此方法会清空硬盘所有数据,风险极高,请勿使用。

本文选择 :使用 VMware 虚拟机软件安装CentOS 7。

2.2 挂载Linux系统步骤

  1. 打开VMware → 编辑虚拟网络编辑器

  1. 选择 NAT模式更改设置

  1. 设置子网IP为 192.168.100.0应用确定

  1. 解压 CentOS7-1.zip 到较大磁盘(无中文目录

  1. 双击 .vmx 文件,以VMware Workstation打开

  1. 启动虚拟机,出现提示时选择 我已移动该虚拟机


  1. 登录:用户名 root,密码 1234(输入密码不显示,回车即可)

2.3 SSH远程连接

企业开发中,Linux服务器通常在远程机房,我们通过SSH连接工具远程操作。


2.3.1 FinalShell连接步骤

  1. 新建连接配置
    打开FinalShell客户端,点击左上角的"文件"菜单,选择"新建连接"。在弹出的窗口中,选择"SSH连接"类型:

  1. 在配置面板中填写以下信息

连接配置详情表

配置项 说明
名称 自定义 (如: CentOS-Node) 用于标识该连接的名称
主机 192.168.100.128 虚拟机中Linux系统的IP地址
端口 22 SSH默认端口
用户 root 登录用户名
密码 1234 对应用户的登录密码

注意: 请确保虚拟机已开启网络通畅登陆成功,若IP地址发生变动,请以虚拟机内实际IP为准。

填写完上述信息后,界面应如下图所示:


  1. 建立连接
    点击窗口下方的"确定"按钮保存配置,随后在连接列表中双击该连接图标。
    连接成功后,FinalShell会自动打开终端窗口。

  1. 其他配置选项
    FinalShell还支持丰富的个性化设置,如主题颜色、字体大小及传输协议等,用户可根据个人习惯在"选项"菜单中进行调整。


3. Linux目录结构

3.1 与Windows的对比

系统 目录结构特点
Windows 以盘符为根(C盘、D盘、E盘),目录归属于盘符
Linux / 是所有目录的顶点,结构像一颗倒挂的树

3.2 根目录 / 下各目录含义

目录 含义
/bin 存放二进制可执行文件
/boot 存放系统引导时使用的各种文件
/dev 存放设备文件
/etc 存放系统配置文件
/home 存放系统用户的文件
/lib 存放程序运行所需的共享库和内核模块
/opt 额外安装的可选应用程序包位置
/root 超级用户目录
/sbin 存放二进制可执行文件,仅root可访问
/tmp 存放临时文件
/usr 存放系统应用程序
/var 存放运行时需改变的文件(如日志)

3.3 绝对路径与相对路径

在Linux系统中定位文件或目录时,路径的写法决定了系统查找的起点。路径主要分为绝对路径相对路径两种。

  • 绝对路径

    • 定义 :从根目录 / 开始写起,完整描述文件位置的路径。
    • 特点 :路径以 / 开头,无论当前在哪个目录下,都能准确找到目标。
    • 示例/root 指的是根目录 / 下的 root 目录。
  • 相对路径

    • 定义:相对于当前工作目录的路径。
    • 特点 :路径不以 / 开头,系统会从"当前所在的目录"开始寻找。
    • 示例root 指的是当前目录下的 root 子目录。

区别总结:

  • /root:绝对路径,代表根目录下的 root
  • root:相对路径,代表当前目录下的 root

4. Linux常用命令

4.1 命令格式与使用技巧

命令格式command [-options] [parameter]

  • command命令名
  • [-options]选项,可选
  • [parameter]参数,零个或多个

使用技巧

  • Tab 键自动补全
  • 连续两次 Tab 键给出操作提示
  • 上下箭头快速调出历史命令
  • clearCtrl+L 清屏

示例:


4.2 目录操作命令

4.2.1 ls ------ 显示目录内容

ls 是 Linux 中最基础且最常用的命令之一,用于列出指定目录下的文件和子目录信息。

4.2.1.1 命令语法
bash 复制代码
ls [选项] [目录路径]
4.2.1.2 常用选项
选项 说明
-a All :显示所有文件,包含以 . 开头的隐藏文件
-l Long :长格式显示,列出文件类型权限拥有者大小修改时间等详细信息

简写技巧:

由于 ls -l 使用频率极高,Linux 系统通常为其提供了一个快捷别名 ll

  • 输入 ll 等同于输入 ls -l
4.2.1.3 常见用法示例:
bash 复制代码
# 1. 查看当前目录的所有文件(含隐藏文件)及详细信息
ls -al

bash 复制代码
# 2. 查看指定目录(如 /root)下的所有文件及详细信息
ls -al /root

bash 复制代码
# 3. 查看当前目录的详细信息(使用简写命令)
ll

4.2.1.4 输出字段详解

使用 -l 选项后,输出结果从左到右依次包含 7 列信息:

列序 名称 详细说明
1 权限 第1位 :文件类型(d=目录, -=普通文件, l=链接)。 后9位 :每3位一组,分别代表所有者所属组其他人 的权限。 r=读, w=写, x=执行, -=无权限。
2 链接数 文件的硬链接数;若是目录,则表示其下的子目录数量 + 2 (包含 ...)。
3 所有者 文件归属的用户名(如 root)。
4 所属组 文件归属的用户组名。
5 大小 文件大小(单位:字节)。 注意:目录的大小通常显示为 4096 等固定值,仅代表目录元数据大小,而非其内文件总和。
6 时间 文件最后一次被修改的日期和时间。
7 文件名 . 代表当前目录,.. 代表上级目录,. 开头代表隐藏文件。

4.2.2 cd ------ 切换目录

cd (Change Directory) 是 Linux 中最常用的导航命令,用于切换当前工作目录。

4.2.2.1 命令语法
bash 复制代码
cd [目录路径]
4.2.2.2 常用特殊符号
符号 含义 示例
~ 用户家目录 (root 为 /root,普通用户为 /home/xxx cd ~ 或仅输入 cd
. 当前目录 cd . (通常无意义,用于脚本中)
.. 上级目录 cd .. (返回上一级)
- 上一次所在的目录 cd - (在两个目录间快速切换)
4.2.2.3 常见用法示例
bash 复制代码
# 1. 切换到绝对路径指定的目录
cd /usr/local

bash 复制代码
# 2. 回到上一次所在的目录 (非常实用)
cd -

bash 复制代码
# 3. 切换到上级目录
cd ..

bash 复制代码
# 4. 切换到用户的 home 目录 (等价于 cd ~)
cd

bash 复制代码
# 5. 切换到上上级目录
cd ../..

4.2.3 mkdir ------ 创建目录

mkdir (Make Directory) 用于创建一个新的空目录。

4.2.3.1 命令语法
bash 复制代码
mkdir [选项] 目录名
4.2.3.2 常用选项
选项 说明
-p Parents:递归创建多层目录。若父目录不存在,则一并创建,且不会报错。
-v Verbose:显示命令执行过程(创建成功会提示)。
4.2.3.3 常见用法示例
bash 复制代码
# 1. 在当前目录创建名为 itcast 的子目录
mkdir itcast

bash 复制代码
# 2. 递归创建多层目录 (如 itcast/test/java)
# 若 itcast 或 test 不存在,系统会自动创建它们
mkdir -p itcast/test/java

bash 复制代码
# 3. 一次创建多个同级目录
mkdir dir1 dir2 dir3

4.2.4 rm ------ 删除文件或目录

rm (Remove) 用于删除文件或目录。注意:Linux 中没有回收站,删除后难以恢复,请务必谨慎!

4.2.4.1 命令语法
bash 复制代码
rm [选项] 文件/目录
4.2.4.2 常用选项
选项 说明
-r Recursive :递归删除。删除目录时必须加此选项,会删除目录下的所有内容。
-f Force :强制删除。忽略不存在的文件,不提示确认(危险!)。
-i Interactive:交互模式。删除前逐个询问确认(系统默认别名通常包含此选项)。
4.2.4.3 常见用法示例
bash 复制代码
# 1. 删除目录及内容 (删除前需按 y 确认)
rm -r java/

bash 复制代码
# 2. 强制删除目录及内容 (无需确认,直接删除,极度危险)
rm -rf java/

bash 复制代码
# 3. 强制删除文件 (无需确认)
rm -f hello.txt

⚠️ 高危警告:

  1. rm -rf /:切勿尝试执行此命令,它会清空系统根目录下所有文件,导致系统崩溃!
  2. 使用 rm -rf 前,请务必二次确认当前路径和文件名,避免误删生产数据。

4.3 文件查看命令

4.3.1 cat ------ 显示文件内容

cat (Concatenate) 用于查看、创建或合并文件内容,适合查看较小的文件。

4.3.1.1 命令语法
bash 复制代码
cat [选项] [文件路径]
4.3.1.2 常用选项
选项 说明
-n Number:显示行号(包括空行)
-b 显示行号(不包括空行)
-E 在每行末尾显示 $ 符号(标记行尾)
-A 显示所有字符(包括不可见字符)
4.3.1.3 常见用法示例
bash 复制代码
# 1. 查看文件全部内容
cat jdk-21.0.10/release

bash 复制代码
# 2. 查看文件内容并显示行号
cat -n jdk-21.0.10/release

⚠️ 注意事项:

  • cat一次性显示全部内容,文件较大时会导致屏幕快速滚动,不便查看
  • 查看大文件建议使用 more 命令进行分页浏览

4.3.2 more ------ 分页显示文件内容

more 用于分页查看文件内容,适合浏览较大的文本文件。

4.3.2.1 命令语法
bash 复制代码
more [选项] 文件路径
4.3.2.2 常用操作键
按键 说明
空格键 向下滚动一屏(最常用)
回车键 向下滚动一行
b 返回上一屏(Back)
/关键词 搜索 关键词(如 /error
q 退出查看(Quit)
Ctrl+C 强制退出
4.3.2.3 常见用法示例
bash 复制代码
# 1. 分页查看文件内容
more release

bash 复制代码
# 2. 指定每屏显示的行数(如每屏20行)
more -20 release 

4.3.3 head ------ 查看文件开头

head 用于查看文件的头部内容 ,默认显示前 10 行

4.3.3.1 命令语法
bash 复制代码
head [选项] [文件路径]
4.3.3.2 常用选项
选项 说明
-n 数字 显示指定的行数(如 -n 20 显示前 20 行)
-c 数字 显示指定的字节数 (如 -c 100 显示前 100 字节)
4.3.3.3 常见用法示例
bash 复制代码
# 1. 默认显示文件开头 10 行
head LICENSE

bash 复制代码
# 2. 显示文件开头 20 行
head -20 LICENSE

实用场景:

  • 快速查看配置文件的前几行,确认格式是否正确
  • 检查 CSV/日志文件的表头结构

4.3.4 tail ------ 查看文件末尾

tail 用于查看文件的尾部内容 ,默认显示最后 10 行 ,常用于日志监控

4.3.4.1 命令语法
bash 复制代码
tail [选项] [文件路径]
4.3.4.2 常用选项
选项 说明
-n 数字 显示指定的行数(如 -n 20 显示最后 20 行)
-f Follow:动态跟踪文件变化,实时显示新增内容(最常用)
-F 类似 -f,但文件被重命名或删除后仍会继续跟踪
4.3.4.3 常见用法示例
bash 复制代码
# 1. 默认显示文件末尾 10 行
tail LICENSE

bash 复制代码
# 2. 显示文件末尾 20 行
tail -20 LICENSE

bash 复制代码
# 3. 动态实时监控日志文件(按 Ctrl+C 退出)
tail -f notes.txt

💡动态日志监控场景:

窗口1 :执行 tail -f notes.txt 动态查看文件

bash 复制代码
tail -f notes.txt

窗口2 :执行 echo 追加内容

bash 复制代码
echo "新日志内容" >> notes.txt

效果 :窗口1会实时显示 窗口2追加的新数据,按 Ctrl+C 结束监控。


4.3.5 命令对比总结

命令 适用场景 特点
cat 查看小文件 一次性显示全部内容
more 查看大文件 分页显示,只能向下翻
head 查看文件开头 默认显示前 10 行
tail 查看文件末尾 默认显示后 10 行,支持实时监控

📌 选择建议:

  • 文件 < 100 行 → 用 cat
  • 查看配置/表头 → 用 head
  • 查看日志/监控 → 用 tail -f

4.4 拷贝与移动命令

4.4.1 cp ------ 复制文件或目录

cp (Copy) 用于复制文件或目录,是日常操作中最常用的命令之一。

4.4.1.1 命令语法
bash 复制代码
cp [选项] 源文件/目录 目标路径
4.4.1.2 常用选项
选项 说明
-r Recursive :递归复制。复制目录时必须加此选项,会复制目录下的所有内容
-p Preserve:保留原文件的属性(权限、时间戳、所有者等)
-i Interactive:交互模式,覆盖前询问确认(避免误覆盖)
-u Update:仅当源文件比目标文件新,或目标不存在时才复制
-a Archive :归档模式,等价于 -rdp,常用于备份
4.4.1.3 常见用法示例
bash 复制代码
# 1. 复制文件到当前目录并重命名
cp Ragdoll.txt ./Dragon_Li.txt

bash 复制代码
# 2. 复制文件到指定目录(保持原文件名)
cp Ragdoll.txt /root/itcats/

bash 复制代码
# 3. 递归复制目录(⚠️ 目录必加 -r):将 cats 整体放入 itcats 中
cp -r cats/ ./itcats/

bash 复制代码
# 4. 仅复制目录下的文件(不包含子目录)
cp -r cats/* ./itcats/

⚠️ 注意事项:

  1. 复制目录必须加 -r :否则会提示 omitting directory 错误
  2. 覆盖风险 :默认情况下,cp静默覆盖 同名文件,重要文件建议加 -i 或先备份
  3. 权限保留 :普通 cp 可能丢失原文件权限,系统文件备份建议用 cp -pcp -a

4.4.2 mv ------ 移动或重命名

mv (Move) 用于移动文件/目录重命名 ,本质是将文件从一个路径"剪切"到另一个路径。

4.4.2.1 命令语法
bash 复制代码
mv [选项] 源文件/目录 目标路径
4.4.2.2 常用选项
选项 说明
-i Interactive:覆盖前询问确认(避免误覆盖)
-f Force:强制覆盖,不提示(危险!)
-u Update:仅当源文件比目标文件新时才移动
-n No-clobber:不覆盖已存在的文件
4.4.2.3 核心判定规则

mv 的行为取决于第二个参数的类型:

第二个参数 执行操作 示例
已存在的目录 移动:将源文件放入该目录 mv file.txt /tmp/
不存在的路径 ✏️ 重命名:将源文件改名为该路径 mv file.txt newname.txt
4.4.2.4 常见用法示例
bash 复制代码
# 1. 重命名文件(目标路径不存在 → 改名)
mv Ragdoll.txt Goods.txt

bash 复制代码
# 2. 移动文件到目录(目标路径是目录 → 移动)
mv Goods.txt /root/itcats/

bash 复制代码
# 3. 移动并改名(目标路径是目录+新文件名)
mv Dragon_Li.txt /root/itcats/hello.txt

bash 复制代码
# 4. 移动/重命名目录(规则同文件)
# 若 itheima/ 不存在 → 将 itcast/ 改名为 itheima/
# 若 itheima/ 已存在 → 将 itcast/ 移动到 itheima/ 内部
mv itcast/ itheima/

⚠️ 高危警告:

  1. mv 覆盖不可逆 :被覆盖的文件无法恢复,重要操作前务必备份
  2. 跨设备移动 :若源和目标在不同磁盘分区,mv 实际是"复制+删除",大文件耗时较长
  3. 权限问题 :确保对源文件有读+写 权限,对目标目录有权限

4.4.3 cp vs mv 对比总结

特性 cp(复制) mv(移动/改名)
原文件 ✅ 保留 ❌ 消失(被剪切)
复制目录 必须加 -r 无需额外参数
磁盘占用 增加(多一份副本) 不变(仅改变路径)
执行速度 较慢(需读取+写入) 同分区极快(仅改元数据)
典型场景 备份、分发、模板复制 整理文件、重命名、归档

4.5 打包与压缩命令

4.5.1 tar ------ 打包与归档

tar (Tape Archive) 是 Linux 中最核心的归档工具。注意tar 本身只负责打包 (将多个文件/目录合并为一个文件),需配合压缩算法(如 gzip)才能实现压缩

4.5.1.1 命令语法
bash 复制代码
tar [选项] [打包/压缩后的文件名] [源文件/目录]
4.5.1.2 核心参数详解
选项 含义 关键说明
-c Create 创建新的归档文件(打包操作)
-x Extract 从归档文件中释放文件(解包操作)
-f File 必须放在参数组合的最后,紧跟指定的文件名
-z Gzip 调用 gzip 算法进行压缩/解压(最常用)
-v Verbose 显示详细执行过程(可选,方便排查)
-C Directory 指定解压的目标目录(仅解压时有效)
4.5.1.3 常见用法示例

避坑指南:

  1. -f 参数位置-f 必须紧跟文件名,且通常放在参数组合的最后面 。错误示例:tar -zcvf backup.tar.gz ✅ vs tar -fzcv backup.tar.gz
  2. 覆盖风险 :打包/压缩时若目标文件名已存在,会静默覆盖 ,操作前建议先 ls 检查。
  3. 解压路径混乱 :不解压到指定目录(-C)时,压缩包内的文件会直接散落在当前目录,极易造成混乱。建议养成加 -C 的习惯。
  4. 权限保留 :普通用户解压可能丢失原文件权限,系统文件建议使用 sudo tar ... 或加 --no-same-owner 参数调整。

4.5.1.4 常用压缩格式对比
后缀格式 对应参数 特点 适用场景
.tar -cvf / -xvf 仅打包,不压缩,体积大但速度极快 局域网传输、快速归档备份
.tar.gz -zcvf / -zxvf 打包+gzip压缩,速度与体积平衡 最常用,软件包、日志、源码
.tar.bz2 -jcvf / -jxvf 压缩率较高,CPU占用略高 对存储空间敏感的场景
.tar.xz -Jcvf / -Jxvf 压缩率极高,但最耗时 系统镜像、超大型数据集

📌 常用命令速记口诀:

  • 打包压缩-zcvf(zip create verbose file)
  • 解压缩-zxvf(zip extract verbose file)
  • 指定位置 :末尾加 -C /目标路径

4.6 文本编辑命令(vim)

vim 是 Linux 系统中最强大的终端文本编辑器。

4.6.1 安装与启动

bash 复制代码
# 检查是否已安装(通常系统已自带)
vim --version

# 若未安装,使用 yum 安装(CentOS/RHEL)
yum install vim -y

# 启动 vim(文件不存在则自动创建,存在则打开编辑)
vim filename.txt

注意vim 启动后默认进入命令模式,此时键盘输入会被识别为指令而非文本。


4.6.2 三种工作模式

vim 的核心在于模式分离,操作前务必确认当前所处模式:

模式 触发方式 主要用途 状态提示
命令模式 启动时默认进入,或按 ESC 返回 光标移动、复制粘贴、删除行、进入其他模式 无提示
插入模式 命令模式下按 i / a / o 正常输入或修改文件内容 左下角显示 -- INSERT --
底行模式 命令模式下按 :/ 保存、退出、查找、替换、设置选项 光标跳至最下方 :

4.6.3 核心指令速查

4.6.3.1 命令模式(移动与编辑)
指令 分类 含义
gg 光标移动 跳转到文件首行
G 光标移动 跳转到文件末行
:n 光标移动 跳转到第 n 行(如 :10 跳至第10行)
i / a / o 进入插入 i:光标前插入;a:光标后插入;o:下一行新建插入
dd 删除行 删除光标所在行
ndd 删除行 删除光标所在行及下方共 n
yy 复制行 复制光标所在行(nyy 复制 n 行)
p / P 粘贴 p:粘贴到光标下方;P:粘贴到光标上方
u / Ctrl+r 撤销恢复 u:撤销上一步;Ctrl+r:重做
x / dw 删除字符 x:删除光标处字符;dw:删除光标处单词
4.6.3.2 底行模式(文件操作与配置)
指令 分类 含义
:w 保存退出 仅保存,不退出
:q 保存退出 仅退出(未修改时可用)
:wq / :x 保存退出 保存并退出(最常用)
:q! 强制操作 不保存强制退出(丢弃修改)
:wq! 强制操作 强制保存并退出(需 root 权限覆盖只读文件)
:set nu / :set nonu 显示设置 显示/取消行号
:set paste 显示设置 开启粘贴模式(防止粘贴代码时自动缩进错乱)
:/关键词 查找 向下搜索关键词(按 n 下一个,N 上一个)
:%s/旧/新/g 全局替换 将全文中的"旧"替换为"新"

📌 记忆口诀:

  • 编辑先按 i,保存退出 :wq,不保存跑 :q!
  • 移动用 gg/G,删除复制 dd/yy,粘贴靠 p
  • 不确定当前模式?连按两次 ESC 保底回命令模式

4.7 查找命令

4.7.1 find ------ 按文件名/属性查找

find 是 Linux 中最强大的文件搜索工具,支持按名称、类型、大小、时间、权限等多种条件进行递归搜索。

4.7.1.1 命令语法
bash 复制代码
find [搜索路径] [选项] [表达式]
4.7.1.2 常用选项与表达式
选项/表达式 说明 示例
-name 文件名 查找(支持通配符 * ? -name "*.log"
-iname 文件名 查找,忽略大小写 -iname "ReadMe"
-type 按文件类型查找 f=普通文件, d=目录, l=链接 -type f (只找文件)
-size 按文件大小查找 +n=大于, -n=小于, n=等于 单位:c(字节), k, M, G -size +100M (大于100M)
-mtime 按修改时间查找(天) +n=n天前, -n=n天内 -mtime -7 (最近7天修改)
-perm 按权限查找 -perm 755
-exec 对查找结果执行后续命令 -exec rm {} \;
4.7.1.3 常见用法示例
bash 复制代码
# 1. 在当前目录及子目录查找所有 .log 文件
find . -name "*.log"

bash 复制代码
# 2. 在指定目录查找特定文件(忽略大小写)
find /root -iname "start-ens33.sh"

"注:以下内容属于进阶用法,了解其功能与应用场景即可,无需刻意背诵。"

bash 复制代码
# 3. 查找当前目录下所有"目录"
find . -type d

bash 复制代码
# 4. 查找大于 100MB 的文件(清理磁盘空间常用)
find /var/log -size +100M

bash 复制代码
# 5. 查找最近 7 天内修改过的 .log 文件
find . -name "*.log" -mtime -7

bash 复制代码
# 6. 查找并删除所有 .tmp 临时文件(⚠️ 危险操作,建议先不加 -exec 确认)
find . -name "*.tmp" -exec rm -f {} \;

💡 技巧提示:

  • {} 代表 find 找到的每一个文件路径。
  • \;-exec 的固定结束符,必须保留。
  • 生产环境删除前,建议先用 lsecho 替换 rm 进行预演。

4.7.2 grep ------ 按文本内容查找

grep (Global Regular Expression Print) 用于在文件中搜索包含特定字符串或正则表达式的行,是日志分析和代码检索的神器。

4.7.2.1 命令语法
bash 复制代码
grep [选项] [匹配模式] [文件...]
4.7.2.2 常用选项
选项 全称 说明
-i ignore-case 忽略大小写
-n line-number 显示匹配行的行号
-v invert-match 反向选择 ,显示包含匹配内容的行
-c count 仅显示匹配的行数统计
-A n After 显示匹配行及其后 n 行(查看上下文)
-B n Before 显示匹配行及其前 n 行
-C n Context 显示匹配行及其前后各 n 行
-r recursive 递归搜索目录下的所有文件
-E extended-regexp 使用扩展正则表达式
4.7.2.3 常见用法示例
bash 复制代码
# 1. 在单个文件中查找关键词
grep "Hello" hello.java

bash 复制代码
# 2. 在所有 .java 文件中查找关键词(忽略大小写 + 显示行号)
grep -in "hello" *.java

"注:以下内容属于进阶用法,了解其功能与应用场景即可,无需刻意背诵。"

bash 复制代码
# 3. 查看日志中报错信息及前后上下文(排查问题最常用)
# 显示包含 "ERROR" 的行,以及其前后各 5 行
grep -C 5 "ERROR" app.log

bash 复制代码
# 4. 递归搜索整个项目目录中的关键词
# 在 /project/src 目录下查找所有包含 "main" 的文件
grep -rn "main" /project/src

bash 复制代码
# 5. 过滤掉注释行和空行(查看纯净配置)
grep -v "^#" config.txt | grep -v "^$"

4.7.3 find vs grep 对比总结

特性 find grep
搜索对象 文件名、属性(大小、时间、权限) 文件内容(文本字符串、正则)
典型场景 找"哪个文件叫 xxx?" 找"哪些文件超过 1GB?" 找"哪行代码写了 xxx?" 找"日志里哪里报错了?"
组合使用 find . -name "*.log" -exec grep "Error" {} \; find 定位文件,再 xargs grep 搜内容

4.8 文件创建命令

在 Linux 中,创建文件有多种方式。除文本编辑器(如 vim)外,命令行提供了更快捷的非交互式创建方法,适合脚本编写、批量初始化和自动化运维。


4.8.1 touch ------ 创建空文件或更新时间戳

touch 是最安全的文件创建命令,专为生成空文件刷新文件时间属性设计。

4.8.1.1 命令语法
bash 复制代码
touch [选项] 文件名
4.8.1.2 常用选项
选项 说明
-a 仅更新访问时间(Access Time)
-m 仅更新修改时间(Modify Time)
-c 不创建新文件。若文件不存在则不报错,仅更新已存在文件的时间
-t 指定时间戳创建/修改(格式:[[CC]YY]MMDDhhmm[.ss]
4.8.1.3 常见用法示例
bash 复制代码
# 1. 创建单个空文件
touch hello.txt

bash 复制代码
# 2. 同时创建多个文件
touch index.html style.css app.js

bash 复制代码
# 3. 文件已存在时,仅刷新修改时间(不覆盖内容)
touch style.txt

💡 核心特性:

  • touch 绝不会覆盖已有文件内容,安全性极高。
  • 常用于脚本中初始化日志文件、占位文件,或更新缓存时间戳。

4.8.2 echo + 重定向 ------ 创建文件并写入内容

echo 本身用于输出文本,结合重定向符号可快速创建含初始内容的文件,是 Shell 脚本的标配。

4.8.2.1 命令语法
bash 复制代码
echo [选项] "内容" > 文件名   # 覆盖写入
echo [选项] "内容" >> 文件名  # 追加写入
4.8.2.2 常用选项与符号
选项/符号 说明
> 覆盖重定向:清空原文件内容后写入(⚠️ 谨慎使用)
>> 追加重定向:在文件末尾追加新内容
-n 输出时不自动换行
-e 启用转义字符(如 \n 换行、\t 制表符)
4.8.2.3 常见用法示例
bash 复制代码
# 1. 创建文件并写入单行内容
echo "Hello Linux" > greeting.txt

bash 复制代码
# 2. 追加内容到文件末尾(保留原有数据)
echo "Second line" >> greeting.txt

bash 复制代码
# 3. 追加多行内容(结合换行符)
echo -e "Line 1\nLine 2\nLine 3" >> greeting.txt

bash 复制代码
# 4. 创建空文件(等价于 touch)
> empty.txt

⚠️ 避坑指南:

  1. >瞬间清空目标文件,对重要文件操作前务必确认路径。
  2. 变量展开差异
    • echo "Today is $(date)" > log.txt写入当前时间(双引号支持变量/命令替换)
    • echo 'Today is $(date)' > log.txt原样输出字符串(单引号屏蔽解析)

4.8.3 命令对比与选型建议

命令 适用场景 是否覆盖原文件 是否显示终端
touch 创建空文件、更新时间戳 ❌ 仅刷新时间
echo > 快速写入单行/简单配置 ✅ 覆盖
echo >> 日志追加、配置文件增量修改 ❌ 追加

📌 选型口诀:

  • 只要空文件 → touch
  • 写配置/日志 → echo >>
  • 不确定用哪个?echo 最灵活,touch 最安全。

5. 软件安装实战

5.1 软件安装方式概览

方式 说明 适用场景
二进制发布包 已编译好的包,解压配置即可 JDK、Tomcat等
RPM包 Red-Hat Package Manager,类似Windows安装包 有现成RPM包的软件
YUM安装 在线安装,自动解决依赖 常用工具、依赖库
源码编译 下载源码,自行编译安装 Nginx等需要定制的组件

5.2 安装 JDK(二进制发布包方式)

📦 前置准备

请确保已下载好 JDK 安装包(例如:jdk-21_linux-x64_bin.tar.gz)。


5.2.1 上传安装包

使用 FinalShell ,将本地的 JDK 压缩包上传至 Linux 服务器的 /root 目录。

  1. 操作 :打开 FinalShell 的文件管理面板,将本地下载好的 jdk-21_linux-x64_bin.tar.gz 文件直接拖拽 到左侧文件列表区域(即 /root 目录)。


  1. 验证:上传完成后,在终端切换到上传目录查看文件是否存在。
bash 复制代码
# 切换到 /root 目录
cd /root

# 查看上传的文件(确认文件已存在)
ll

5.2.2 解压安装包

使用 tar 命令将压缩包解压到指定的系统软件目录 /usr/local 下。

bash 复制代码
# 解压命令:tar -zxvf [文件名] -C [目标目录]
tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/local/

💡 参数解析:

  • -z:调用 gzip 解压
  • -x:解压(extract)
  • -v:显示过程(verbose)
  • -f:指定文件(file)
  • -C(大写)指定解压目录(必须使用绝对路径,且目录需已存在)



5.2.3 配置环境变量

为了让系统全局识别 java 命令,需要将 JDK 路径配置到环境变量文件中。

核心配置内容

bash 复制代码
export JAVA_HOME=/usr/local/jdk-21.0.10
export PATH=$JAVA_HOME/bin:$PATH

具体操作步骤(vim 编辑器)

  1. 编辑文件 :进入命令模式

    bash 复制代码
    vim /etc/profile
  2. 跳转末尾 :在命令模式下,按 G 键快速跳转到文件最后一行。

  3. 进入编辑 :按 i 键(或 o)进入插入模式,在文件末尾空一行,粘贴上述配置。

    bash 复制代码
    # 粘贴内容
    export JAVA_HOME=/usr/local/jdk-21.0.10
    export PATH=$JAVA_HOME/bin:$PATH
  4. 保存退出

    • ESC 键退出编辑模式。
    • : 进入底行模式,输入 wq 并回车保存。

5.2.4 重新加载配置

修改 /etc/profile 后,配置不会立即在当前终端生效,需要执行 source 命令重新加载。

bash 复制代码
# 使环境变量立即生效
source /etc/profile

🔄 补充 :如果 source 无效,可尝试断开当前终端连接并重新登录。


5.2.5 验证安装

执行 java -version 检查是否安装成功。如果输出如下 JDK 版本信息,则说明安装配置完成。

bash 复制代码
java -version

5.3 安装 MySQL(二进制发布包方式)

📦 前置准备

请确保已下载好 MySQL 安装包(例如:mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz)。

⚠️ 重要提示

安装前需检查并卸载系统中可能存在的 MySQL 或 MariaDB 冲突组件,否则会导致安装失败。


5.3.1 卸载冲突组件

CentOS 7 系统默认安装了 MariaDB(MySQL 的分支),与 MySQL 存在冲突,必须先卸载。

5.3.1.1 检查已安装的数据库组件
bash 复制代码
# 检查是否存在 MySQL 相关组件
rpm -qa | grep mysql

# 检查是否存在 MariaDB 相关组件(CentOS 7 默认自带)
rpm -qa | grep mariadb

输出示例

text 复制代码
mariadb-libs-5.5.60-1.el7_5.x86_64

💡 参数解析

  • rpm -qa:查询系统所有已安装的 RPM 包(query all)
  • | grep xxx:通过管道过滤,只显示包含关键词的行

5.3.1.2 卸载冲突的 MariaDB

如果上一步查询到 mariadb-libs,必须执行卸载:

bash 复制代码
# 强制卸载 mariadb-libs(--nodeps 表示不检查依赖关系)
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

验证卸载结果

bash 复制代码
# 再次查询,若无输出则表示卸载成功
rpm -qa | grep mariadb

⚠️ 注意事项

  • --nodeps 参数会强制卸载,不检查其他软件是否依赖该包
  • 卸载后建议重启终端或执行 source /etc/profile 刷新环境

5.3.2 上传并解压安装包

5.3.2.1 上传安装包

使用 FinalShell拖拽上传 功能,将 MySQL 压缩包上传至 /root 目录。

bash 复制代码
# 切换到上传目录并验证
cd /root
ls -lh mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

5.3.2.2 解压安装包

MySQL 安装包为 .tar.xz 格式,使用 tar -xvf 命令解压(无需 -z 参数)。

bash 复制代码
# 解压到当前目录
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

💡 参数解析

  • -x:解压(extract)
  • -v:显示过程(verbose)
  • -f:指定文件(file)
  • 注意.xz 格式不需要 -z 参数,tar 会自动识别

5.3.2.3 移动并重命名

将解压后的目录移动到 /usr/local 下,并重命名为 mysql(方便后续管理)。

bash 复制代码
# 移动到 /usr/local 并重命名为 mysql
mv mysql-8.0.30-linux-glibc2.12-x86_64 /usr/local/mysql

# 切换到 MySQL 安装目录
cd /usr/local/mysql

5.3.3 配置环境变量与系统服务

5.3.3.1 配置环境变量

编辑 /etc/profile 文件,添加 MySQL 的环境变量。

bash 复制代码
# 使用 vim 编辑文件
vim /etc/profile

在文件末尾追加以下内容

bash 复制代码
# MySQL 环境变量配置
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH

使配置立即生效

bash 复制代码
source /etc/profile

5.3.3.2 注册为系统服务

将 MySQL 注册为系统服务,方便使用 systemctl 管理。

bash 复制代码
# 复制 MySQL 服务脚本到 /etc/init.d 并命名为 mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

# 添加服务到系统(chkconfig)
chkconfig --add mysql

💡 说明

  • /etc/init.d/mysql:系统服务脚本位置
  • chkconfig --add mysql:将 mysql 添加到系统服务列表,支持开机启动

5.3.4 初始化数据库

5.3.4.1 创建 MySQL 用户和组

出于安全考虑,MySQL 不应使用 root 用户运行,需创建专用的 mysql 用户。

bash 复制代码
# 创建 mysql 用户组
groupadd mysql

# 创建 mysql 用户并加入 mysql 组
# -r:创建系统用户
# -g:指定所属组
# -s /bin/false:禁止登录 shell
useradd -r -g mysql -s /bin/false mysql

💡 参数解析

  • useradd -r:创建系统账号(UID < 1000,无法登录系统)
  • -s /bin/false:禁止该用户通过 shell 登录,增强安全性

5.3.4.2 初始化数据库

执行初始化命令,生成系统表、默认用户等基础数据。

bash 复制代码
# 初始化数据库(⚠️ 务必复制输出的临时密码)
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

输出示例(重点看最后一行):

text 复制代码
2024-01-15T10:30:45.123456Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: abc123!@#xyz

⚠️ 关键提示

  • 务必复制临时密码 (如 abc123!@#xyz),首次登录必须使用
  • --basedir:MySQL 安装目录
  • --datadir:数据存储目录(会自动创建)
  • --user=mysql:指定运行用户

5.3.4.3 设置目录权限

初始化完成后,必须将数据目录的所有权授予 mysql 用户,否则 MySQL 服务将无法启动。

bash 复制代码
# 设置 MySQL 数据目录所有权(⚠️ 必须执行)
chown -R mysql:mysql /usr/local/mysql/data

# 验证权限设置
ls -l /usr/local/mysql/

💡 说明

  • chown -R:递归修改目录及其子文件的所有者
  • mysql:mysql:格式为 用户:用户组
  • 若不执行此步骤,systemctl start mysql 会因权限不足而失败

5.3.5 启动服务与配置

5.3.5.1 启动 MySQL 服务
bash 复制代码
# 启动 MySQL 服务
systemctl start mysql

# 查看服务状态(可选)
systemctl status mysql

5.3.5.2 登录 MySQL

使用初始化时生成的临时密码登录。

bash 复制代码
# 登录命令(提示密码时输入临时密码)
mysql -uroot -p

5.3.5.3 修改 root 密码

首次登录必须修改 root 密码,否则无法执行其他操作。

sql 复制代码
-- 修改 root@localhost 的密码为 '159357258'
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '159357258';

💡 说明

  • mysql_native_password:使用 MySQL 原生密码认证插件(兼容性好)
  • 密码 159357258 仅为示例,生产环境请使用强密码

5.3.5.4 创建远程访问账号

默认 root 用户只能从 localhost 登录,若需从 Windows 或其他服务器连接,需创建远程账号。

sql 复制代码
-- 创建 root@'%' 用户(% 表示允许任意 IP 连接)
CREATE USER 'root'@'%' IDENTIFIED BY '159357258';

-- 授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

-- 刷新权限使配置生效
FLUSH PRIVILEGES;

⚠️ 安全警告

  • root@'%' 允许任意 IP 连接,生产环境不建议使用
  • 建议创建专用账号并限制特定 IP 段访问
  • 示例:CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY 'strong_password';

5.4 防火墙操作

Linux 系统的防火墙(firewalld)默认拦截所有入站连接 。若需从 Windows 或其他服务器访问 MySQL,必须开放 3306 端口。


5.4.1 防火墙常用指令

操作 指令
查看防火墙状态 systemctl status firewalldfirewall-cmd --state
暂时关闭防火墙 systemctl stop firewalld
永久关闭防火墙 systemctl disable firewalld
开放指定端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent
关闭指定端口 firewall-cmd --zone=public --remove-port=3306/tcp --permanent
重新加载配置 firewall-cmd --reload
查看开放端口 firewall-cmd --zone=public --list-ports

💡 参数解析

  • --zone=public:指定作用区域(public 为公共区域)
  • --permanent:永久生效(重启后仍保留),需配合 --reload 使用
  • --add-port=3306/tcp:添加 TCP 协议的 3306 端口

5.4.2 推荐做法:开放 3306 端口

不建议完全关闭防火墙,应仅开放必要端口。

bash 复制代码
# 1. 开放 3306 端口(永久生效)
firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 2. 重新加载防火墙配置
firewall-cmd --reload

# 3. 验证端口是否已开放
firewall-cmd --zone=public --list-ports

5.4.3 备选方案:关闭防火墙(仅测试环境)

若为本地测试环境,可直接关闭防火墙简化操作。

bash 复制代码
# 1. 停止防火墙服务
systemctl stop firewalld

# 2. 禁止防火墙开机自启
systemctl disable firewalld

# 3. 验证状态(应显示 inactive)
systemctl status firewalld

⚠️ 生产环境警告

  • 严禁关闭防火墙!应仅开放必要端口(3306、80、443 等)
  • 关闭防火墙会导致服务器暴露在所有网络攻击下
  • 建议使用安全组、iptables 等多层防护

5.4.4 连接测试

完成防火墙配置后,可从 Windows 使用 MySQL 客户端或 DataGrip 工具连接。

5.4.4.1 客户端连接
bash 复制代码
# Windows 命令行测试(需安装 MySQL 客户端)
mysql -h192.168.100.128 -p3306 -uroot -p159357258

🔍 排查指南

  1. 若连接超时 → 检查防火墙是否开放 3306
  2. 若提示 Access denied → 检查 MySQL 用户权限(SELECT user, host FROM mysql.user;
  3. 若提示 Can't connect → 检查 MySQL 服务是否启动(systemctl status mysql
5.4.4.2 DataGrip 图形化工具连接

使用命令行虽然通用,但在日常开发中,使用 DataGrip 等图形化工具管理数据库更加直观高效。以下是连接 Linux 中 MySQL 并初始化数据的完整流程。

5.4.4.2.1 新建数据源

打开 DataGrip,在左侧 数据库(Database) 面板中,点击 + 号,依次选择 Data Source -> MySQL

💡 提示

如果是首次连接,DataGrip 可能会提示下载 MySQL 驱动程序,点击 Download 自动下载即可。


5.4.4.2.2 配置连接信息

在弹出的配置窗口中,填写 Linux 服务器的连接信息:

配置项 填写内容 说明
名称 (Name) Linux-MySQL 自定义连接名称,方便识别
主机 (Host) 192.168.100.128 Linux 虚拟机的 IP 地址(需确保网络互通)
端口 (Port) 3306 MySQL 默认端口
用户 (User) root 之前创建的远程访问账号
密码 (Password) 159357258 之前设置的 root 密码

关键操作

  • 填写完毕后,点击左下角的 测试连接 (Test Connection)
  • 若显示绿色对勾及 "MySQL" 字样,表示连接成功。
  • 点击右下角的 应用 (Apply)确定 (OK) 保存配置。

⚠️ 常见报错排查

  • Connection refused:检查 Linux 防火墙是否开放 3306 端口,或 MySQL 服务是否启动。
  • Access denied :检查用户名密码是否正确,或是否创建了 root@'%' 远程用户。

5.4.4.2.3 运行 SQL 脚本(初始化数据)

连接成功后,需要执行课程提供的 SQL 脚本来创建数据库和表。

  • 在左侧面板右键点击新建的 Linux-MySQL 数据源。
  • 选择 SQL 脚本 -> 运行 SQL 脚本... (Run SQL Script...)
  • 在文件选择框中,找到并选中课程资料提供的 tlias.sql 文件。
  • 点击 OK 执行。

5.4.4.2.4 验证结果

脚本执行完毕后,观察左侧数据库列表和右侧数据预览:

  • 查看库表结构 :左侧列表应出现 tlias 数据库,展开后包含 clazz(班级)、dept(部门)、emp(员工)等表。
  • 查看数据 :双击任意表(如 clazz),右侧窗口应显示表中的测试数据。
  • 查看日志 :底部控制台应显示绿色的执行成功日志(如 4 行受到影响)。

结论

此时,你的开发工具已成功连接到 Linux 中的 MySQL,且项目所需的基础数据已准备就绪,可以开始后续的 Java 开发了!


5.5 安装 Nginx(源码编译方式)

与 JDK、MySQL 的二进制安装不同,Nginx 通常采用源码编译方式安装。这种方式可以自定义功能模块,灵活适配不同场景需求。

📦 前置准备

  • 已下载 Nginx 源码包(例如:nginx-1.20.2.tar.gz
  • 服务器具备网络连接(需下载编译依赖)
  • 具备 root 权限

5.5.1 安装编译依赖

源码编译前,需安装 Nginx 运行所需的依赖库及 C++ 编译环境。

5.5.1.1 安装 Nginx 依赖库
bash 复制代码
# 安装 PCRE(正则表达式库,用于 rewrite 模块)
# 安装 zlib(压缩库,用于 gzip 压缩)
# 安装 OpenSSL(加密库,用于 HTTPS 支持)
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel

💡 依赖说明

  • pcre / pcre-devel:支持 URL 重写(rewrite)功能
  • zlib / zlib-devel:支持 HTTP 响应压缩(gzip)
  • openssl / openssl-devel:支持 HTTPS/SSL 加密传输

5.5.1.2 安装 C++ 编译器

Nginx 使用 C 语言编写,需安装 GCC 编译环境。

bash 复制代码
# 安装 GCC C++ 编译器
yum install gcc-c++ -y

验证编译器是否安装成功

bash 复制代码
# 查看 GCC 版本
gcc --version

5.5.2 上传并解压源码包

5.5.2.1 上传源码包

使用 FinalShell 拖拽上传 nginx-1.20.2.tar.gz/root 目录。

bash 复制代码
# 切换到上传目录并验证
cd /root
ls -lh nginx-1.20.2.tar.gz

5.5.2.2 解压源码包
bash 复制代码
# 解压源码包到当前目录
tar -zxvf nginx-1.20.2.tar.gz

# 进入解压后的源码目录
cd nginx-1.20.2

# 查看源码目录结构
ll

📂 关键文件说明

  • configure:配置脚本,用于生成 Makefile
  • src/:Nginx 核心源码
  • html/:默认网页文件(欢迎页面)

5.5.3 配置编译选项

执行 ./configure 脚本,检查系统环境并生成 Makefile 文件。

bash 复制代码
# 配置编译选项(指定安装目录)
./configure --prefix=/usr/local/nginx

💡 参数解析

  • --prefix=/usr/local/nginx:指定 Nginx 安装目录(后续所有文件将安装至此)

常用编译选项(可选):

  • --with-http_ssl_module:启用 HTTPS 支持
  • --with-http_gzip_static_module:启用 gzip 静态压缩
  • --with-stream:启用 TCP/UDP 代理支持
  • --with-http_stub_status_module:启用状态监控模块

⚠️ 若配置报错

  • 提示 PCRE library not found → 检查是否安装 pcre-devel
  • 提示 SSL library not found → 检查是否安装 openssl-devel
  • 提示 zlib library not found → 检查是否安装 zlib-devel

5.5.4 编译与安装

5.5.4.1 编译源码
bash 复制代码
# 编译源码(生成可执行文件)
make

编译过程

  • 耗时约 1-3 分钟(取决于服务器性能)
  • 无错误输出表示编译成功
  • 最后显示 make[1]: Leaving directory 表示完成

5.5.4.2 安装到指定目录
bash 复制代码
# 将编译好的文件安装到 --prefix 指定的目录
make install

验证安装结果

bash 复制代码
# 查看 Nginx 安装目录结构
cd /usr/local/nginx/
ll

📂 关键目录说明

  • conf/:主配置文件(修改端口、虚拟主机等)
  • html/:默认网站根目录(放置网页文件)
  • logs/:访问日志和错误日志
  • sbin/:Nginx 可执行文件

5.5.5 启动 Nginx 与验证

5.5.5.1 启动服务

进入安装目录并执行启动命令:

bash 复制代码
# 1. 切换到 Nginx 安装目录
cd /usr/local/nginx/

# 2. 启动 Nginx 服务
sbin/nginx

💡 提示:若命令执行后无任何提示直接返回命令行,通常表示启动成功。


5.5.5.2 配置防火墙(开放 80 端口)

Nginx 默认使用 80 端口,需配置防火墙允许外部访问,否则浏览器无法连接。

bash 复制代码
# 1. 开放 80 端口(--permanent 表示永久生效)
firewall-cmd --zone=public --add-port=80/tcp --permanent

# 2. 重新加载防火墙配置(使永久配置立即生效)
firewall-cmd --reload

# 3. 验证端口是否已开放(应看到 80/tcp)
firewall-cmd --zone=public --list-ports

5.5.5.3 验证安装结果

打开浏览器,访问服务器 IP 地址:

text 复制代码
http://192.168.100.128

成功标志:看到 "Welcome to nginx!" 欢迎页面:

此时 Nginx 已成功安装并运行,可以进行后续的 Web 服务配置了。


5.5.6 Nginx 常用管理命令

操作 命令 说明
启动 /usr/local/nginx/sbin/nginx 启动 Nginx 服务
停止 /usr/local/nginx/sbin/nginx -s stop 立即停止(不等待请求完成)
优雅停止 /usr/local/nginx/sbin/nginx -s quit 等待当前请求完成后停止(推荐)
重载配置 /usr/local/nginx/sbin/nginx -s reload 修改配置后无需重启,平滑重载
测试配置 /usr/local/nginx/sbin/nginx -t 检查配置文件语法是否正确
查看版本 /usr/local/nginx/sbin/nginx -v 显示 Nginx 版本信息

💡 最佳实践

  • 修改配置后务必 先执行 nginx -t 测试语法
  • 使用 reload 而非 stop + start,避免服务中断
  • 生产环境建议配置开机自启(systemd 服务)

6. 项目部署(后续更新)

相关推荐
卢傢蕊2 小时前
LVS+Keepalived 高可用群集
linux·运维·lvs·keepalived
艾莉丝努力练剑2 小时前
【Linux线程】Linux系统多线程(六):<线程同步与互斥>线程同步(上)
java·linux·运维·服务器·c++·学习·线程
i建模2 小时前
在 Ubuntu 上安装 pnpm
linux·运维·ubuntu
江公望2 小时前
Linux kernel kfifo用法,10分钟讲清楚
linux
共享家95272 小时前
C++ 日志类设计
linux·c++·后端
Ops菜鸟(Xu JieHao)2 小时前
Linux快速生成测试日志flog
linux·运维·服务器·日志·log
云栖梦泽2 小时前
Linux内核与驱动:12.设备树实例分析
linux·c++·单片机
Edward111111112 小时前
TS安装
linux·运维·服务器
ZzzZZzzzZZZzzzz…2 小时前
Docker 数据持久化:4种挂载方式 + 备份还原实战
linux·运维·docker·云原生·容器·数据持久化