【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. 项目部署(后续更新)

相关推荐
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈2 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
凡人叶枫2 天前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
2601_961875242 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant