第19周JavaWeb编程实战-MyBatis实现OA系统 2.Linux基础和Java环境搭建

学习笔记

1. Linux 基础入门

1.1 什么是操作系统?

  • 操作系统(Operating System, OS):是应用程序运行的基础支撑环境,负责管理和控制计算机的硬件与软件资源。
  • 用户通过操作系统提供的界面输入命令,操作系统将指令传递给硬件执行。
  • 例如,用户点击打印文档时,操作系统会向打印机发出指令。

1.2 英特尔X86架构

  • 英特尔X86架构:是PC机使用的硬件环境,提供一套标准的指令集,保证系统的兼容性。
  • 常见CPU:英特尔I5、I7和AMD速龙系列。

1.3 常见的操作系统

  • Windows:用户常用操作系统。
  • Linux:开源的多用户操作系统,主要用于服务器端。
  • Unix:较老的操作系统,Mac OS基于Unix开发。

1.4 什么是Linux?

  • Linux:开源、基于X86架构的类Unix多用户操作系统。
    • 开源:程序员可以自由修改和封装。
    • 类Unix:类似于Unix,具有多任务、多用户和高效率特点。
    • X86架构:兼容市面上大多数计算机硬件。

1.5 Linux的特点

  1. 免费使用:不需要付费使用,支持自由传播和修改源代码。
  2. 多任务、多用户、多CPU支持:适用于服务器环境,资源利用效率高。
  3. 高效灵活:比Windows Server更小巧灵活,开源允许定制功能。
  4. 兼容X86架构:能在大多数基于X86架构的计算机上运行。
  5. 强大的系统命令:通过命令可以远程管理服务器任务。
  6. 完整的应用生态:全球程序员共同为Linux开发和贡献。

1.6 Linux的Logo与创建者

  • Logo:小企鹅Tux。
  • 创建者:Linus Benedict Torvalds(莱纳斯·本纳迪克特·托瓦兹),Linux的开发者,被业界尊为“大神”。

1.7 Linux的流行原因

  • 免费、开源:自由传播和修改。
  • 高效率:特别适用于服务器端,能高效利用多任务、多用户和多CPU资源。
  • 灵活性:小巧灵活,支持定制功能。
  • X86架构兼容性:能够运行在大多数基于X86架构的计算机上。
  • 远程管理:通过系统命令实现远程操作。
  • 应用生态:开源社区不断贡献,功能丰富且完善。

2.Linux发行版本

2.1. 什么是Linux的发行版本?

  • Linux内核:Linux的核心部分,管理硬件和基础功能。
  • 发行版本:第三方厂商基于Linux内核进行扩展和封装,形成不同的操作系统版本,添加了额外功能和用户界面。

2.2. 常见的Linux发行版本

  1. Red Hat Enterprise Linux (RHEL):企业级Linux,提供技术支持,收费版本。
  2. CentOS:Red Hat的免费开源社区版本,主要用于服务器。
  3. Ubuntu:桌面级Linux操作系统,界面美观,是Windows的替代者。
  4. SUSE:企业级和服务器环境使用的Linux发行版。
  5. Debian:以稳定性著称,适合对稳定性要求高的应用场景。
  6. Fedora:最新内核特性实验场,适合发烧友,但存在安全风险。
  7. 麒麟Linux:国产Linux发行版,适合政府或银行等有国产化需求的环境。

2.3. Linux发行版本选择建议

  • 桌面系统:推荐使用Ubuntu,性能好,界面美观。
  • 服务器系统
    • CentOS:免费社区版本,适用于普通服务器环境。
    • RHEL:适用于需要技术支持的企业环境。
    • Debian:适合对系统稳定性要求高的场景。
    • Fedora:适合追求新技术的发烧友,但存在系统漏洞风险。
    • 麒麟Linux:适合有国产化需求的环境(如政府和银行)。

2.4. CentOS介绍

  • CentOS(Community Enterprise Operating System):
    • 基于Red Hat Enterprise Linux (RHEL) 的开源产品。
    • Red Hat 承诺每个CentOS版本提供10年技术支持。
    • CentOS与RHEL保持同步更新。

2.5. CentOS与RHEL的关系

  • RHEL:收费版本,提供企业级技术支持,适合企业用户。
  • CentOS:免费开源版本,由社区提供支持。
  • 互惠互利
    • CentOS作为RHEL的开源版本,全球程序员会为其寻找漏洞,并反馈到RHEL进行修复。
    • CentOS为RHEL的改进提供了宝贵的反馈,RHEL则为CentOS提供了稳定的基础版本。

2.6. CentOS的版本

  • CentOS 5 和 6:较早期的版本,逐渐被淘汰,只有老旧项目使用。
  • CentOS 7:当前主流版本,经过多个版本迭代,稳定性高。阿里云和腾讯云的默认服务器操作系统。
  • CentOS 8:2019年底发布,基于新内核,较7版本存在不少差异。由于刚发布,可能存在安全漏洞和不稳定性,暂不推荐使用。

3.在Windows上安装CentOS 7的步骤

3.1. 硬件要求

  • CPU:至少1核,建议2核及以上。
  • 内存:大于1GB,推荐使用2GB或以上。
  • 硬盘空间:建议预留20GB硬盘空间(安装需要2-3GB)。
  • 其他:网卡、声卡等基本硬件无需特别要求。

3. 2. 使用VMware Workstation模拟器安装

  • 虚拟机软件:使用VMware Workstation Pro来虚拟安装CentOS。

4.安装CentOS 7的步骤

4. 1. 下载CentOS 7镜像文件

  1. 打开浏览器,访问CentOS官网:https://www.centos.org
  2. 点击 Get CentOS Now,进入下载页面。
  3. 页面提供了CentOS 8的下载链接,但我们选择页面底部的 Older Versions,下载CentOS 7。
  4. 选择最新的 CentOS 7.7 版本,点击 mirrors,选择国内的下载源(如阿里云)。
  5. 选择 Everything 版本(包含所有软件包),下载ISO镜像文件。

4. 2. 在VMware中创建虚拟机

  1. 打开 VMware Workstation Pro,点击“创建新的虚拟机”。
  2. 选择 典型 安装,点击“下一步”。
  3. 选择下载好的CentOS 7的ISO镜像文件。
  4. VMware会自动识别镜像文件,选择 CentOS 7 x86_64
  5. 设置虚拟机名称和虚拟机文件的保存路径(建议保存到高速SSD硬盘)。
  6. 分配虚拟磁盘大小为 20GB,选择“将虚拟磁盘存储为单个文件”。
  7. 配置虚拟机的 硬件设置
    • 内存:建议分配至少2GB。
    • CPU:建议分配2核及以上,勾选CPU虚拟化。
  8. 点击“完成”,虚拟机将启动CentOS 7的安装过程。

4. 3. 安装CentOS 7

  1. 在虚拟机中启动后,选择 Install CentOS 7 进行安装。
  2. 选择语言环境为 中文(简体),点击“继续”。
  3. 进行安装前设置:
    • 软件选择:选择 带GUI的CentOS 7(推荐新手使用图形界面)。
    • 安装位置:选择刚刚分配的20GB虚拟磁盘。
    • 网络和主机名
      • 打开左侧的以太网连接,确保网络连接正常。
      • 设置主机名为便于记忆的名称。
  4. 点击右下角的 开始安装
  5. 设置 root用户密码,为简化学习可设置为“root”(实际使用中应设置复杂密码)。

4. 4. 安装完成后的配置

  1. 安装完成后,点击 重启 系统。
  2. 在重启后的引导界面中选择第一项进入系统。
  3. 进行系统的初始设置:
    • 同意 License授权协议
    • 跳过新用户创建,点击 完成配置
  4. 完成后进入 CentOS 7桌面版本,系统提供了中文界面和图形化应用程序。

4. 5. 系统初始配置

  1. 选择中文输入法。
  2. 时区选择 上海
  3. 跳过在线账号设置。
  4. 创建一个基本用户(如“imoc”)并设置密码(英文+数字组合)。
  5. 完成后进入CentOS 7桌面环境,安装完成。

5.Linux系统目录学习笔记

5. 1. Linux的目录结构

  • 倒挂树形结构:根目录(/)为顶点,所有目录都在此目录下延展。
  • 根目录:顶点路径为斜杠“/”。
  • 目录特点
    • 所有目录都是以文件夹形式表示,不同数据可存放在不同的磁盘上。
    • 绝对路径:以斜杠开头,表示从根目录开始的完整路径。
    • 相对路径:相对于当前目录的路径,不以斜杠开头。

5. 2. 关键系统目录

目录说明
/bin存放系统常用的二进制命令,如 ls, cp, mkdir 等。
/boot存放Linux内核和系统引导程序的目录,操作不慎可能导致系统崩溃。
/dev存放设备文件的目录,如声卡、磁盘、光驱等设备的接口文件。
/etc存放系统的配置文件,常见应用程序安装时的默认配置路径。
/home存放用户的私人数据,类似于Windows中的“我的文档”。
/var存放系统与应用程序的日志文件。
/lib存放系统启动和运行时需要的共享库文件,类似于程序依赖的包。
/proc存放系统运行时的进程和内核信息,可查阅系统资源使用情况。
/root系统超级管理员的主目录,类似于Windows的“Administrator”用户目录。
/sbin存放系统管理命令,只有超级用户 root 可以执行。
/usr用户安装应用程序的目录,包含两个重要子目录:
- /usr/local:用户自行编译安装的程序存放目录。
- /usr/src:存放源代码文件的目录,常用于编译安装的软件。

5. 3. 常用目录总结

  • /bin:存放常用二进制命令。
  • /etc:存放应用程序的配置文件。
  • /usr/local:用户自行编译安装的应用程序默认存放目录。
  • /usr/src:存放源代码文件的目录。

记住这些核心目录的功能,可以帮助你快速熟悉Linux系统。


6. Linux系统远程管理学习笔记

6. 1. 为什么要远程管理Linux?

  • 服务器环境要求高:需要托管在IDC机房,无法随时直接访问。
  • 远程管理的必要性:IDC机房的服务器无法直接操作,因此需要远程控制,避免实际到现场操作服务器的复杂性。

6. 2. 什么是SSH?

  • SSH协议:用于远程登录和其他网络服务的安全协议,确保网络传输的安全性和可靠性。
  • 主流SSH工具
    • Xshell:功能强大、易于上手,支持中文。
    • SecureCRT:另一款常用的Linux远程连接工具。

6. 3. Xshell与Xftp介绍

  • Xshell:用于远程管理Linux服务器,主要处理远程数据操作。
  • Xftp:与Xshell配套的工具,用于上传和下载文件。

6. 4. 下载与安装Xshell和Xftp

  1. 搜索 Xshell个人版,选择免费下载。
  2. 填写姓名和邮箱地址,收到Xshell和Xftp的下载链接,下载并安装。
  3. 安装过程:
    • Xshell:依次点击“下一步”,默认安装路径即可。
    • Xftp:同样按照默认安装路径安装。

6. 5. 使用Xshell连接Linux服务器

  1. 启动虚拟机并获取IP地址:
    • 打开虚拟机,使用 ifconfig 命令查看虚拟机的IP地址。
  2. 在Xshell中新建会话:
    • 设置会话名称,如“CentOS 7”。
    • 输入主机的IP地址(如:192.168.163.128)。
    • 端口号保持默认的 22(SSH默认端口)。
  3. 测试连接:
    • 输入用户名 root,记住用户名和密码,确认连接。
    • 看到命令提示符即表示成功连接服务器。

6. 6. Xftp的使用

  • 在Xshell中可以点击工具栏中的“新建文件传输”按钮,启动Xftp。
  • 在Xftp中可以通过拖拽方式将本地文件上传到远程服务器。
  • 文件传输完成后,使用命令(如 ls)查看服务器上的文件。

7. Vim 文本编辑器学习笔记

7. 1. Vim 简介

  • Vim:Linux 系统中常用的文本编辑器,是 VI 的升级版。
  • 主要用途:远程环境下在线编辑文本文件,尤其适用于服务器运维。

7. 2. Vim 的三种模式

  1. 普通模式:默认模式,无法直接编辑文本,用于执行命令。
  2. 编辑模式:按 i 进入,可编辑文本内容;按 Esc 退出回到普通模式。
  3. 命令模式:按 : 进入,用于保存、退出、搜索等操作。

7. 3. Vim 常用命令和快捷键

  • x / Delete:删除单个字符
  • dd:删除整行
  • u:撤销最近一次操作
  • /str:查找字符串 str
  • %s/旧字符串/新字符串/g:全文替换
  • :wq:保存并退出
  • :q!:不保存强制退出
  • :wq!:强制保存并退出(用于只读文件)

7. 4. Vim 操作实例:修改 Tomcat 配置文件中的端口

  1. 进入 Vim 编辑文件vim server.xml
  2. 进入编辑模式:按 i 开始编辑文本。
  3. 查找关键字:按 /8080 查找端口号 8080,按 n 定位到下一个匹配,按 N 定位到上一个匹配。
  4. 修改文本
    • 进入编辑模式后,使用键盘或鼠标进行编辑。
    • Esc 退出编辑模式。
  5. 全局替换
    • 全局替换 8080 为 8900:: %s/8080/8900/g
  6. 撤销修改:按 u 撤销操作。
  7. 保存并退出 :wq 保存并退出。

7. 5. 特殊情况处理

  • 只读文件强制保存:wq! 强制保存文件。
  • 放弃保存并退出:q! 不保存强制退出。

7. 6. 其他实用技巧

  • 快速删除整行:按 dd 删除当前行。
  • 快速查找并定位:按 / 输入查找内容,按 n 查找下一个匹配项,按 N 查找上一个匹配项。

8. Linux 常用文本编辑工具总结

在本节课中,学习了 Linux 系统中的几个常用文本处理工具。以下是课程的主要内容和常见命令总结。

8. 1. echo 命令

  • 功能: 在屏幕上打印指定字符,或向文件输出字符。

  • 基础用法:

    • echo "Hello World": 在屏幕上打印 “Hello World”。
    • echo "Hello" > hello.txt: 将字符串 “Hello” 输出到 hello.txt 文件,若文件存在会覆盖原内容。
    • echo "Hello" >> hello.txt: 将字符串 “Hello” 追加到 hello.txt 文件。
  • 注意:

    • 单个 > 表示覆盖写入,双 >> 表示追加写入。

8. 2. cat 命令

  • 功能: 连接文件内容并显示或输出,可以用于查看文件、合并文件、以及在命令行输入文件内容。

  • 常见用法:

    • cat filename: 显示指定文件的内容。
    • cat file1 file2 > output.txt: 合并 file1file2 的内容,并将结果输出到 output.txt 中。
    • cat > text.txt <<EOF: 创建一个输入流,输入内容后,使用 EOF 结束输入,保存到 text.txt 文件。
  • 常用参数:

    • cat -n filename: 显示文件内容并加上行号。
    • cat -n -E filename: 在显示每行末尾加上 $ 符号,显示空行。

8. 3. tail 命令

  • 功能: 显示文件的最后几行,常用于查看日志文件的最新内容。

  • 常见用法:

    • tail filename: 显示文件的最后 10 行内容。
    • tail -n 2 filename: 显示文件的最后 2 行内容。
    • tail -f filename: 动态监控文件末尾的变化,常用于日志文件监控。
  • 动态监控日志:

    • 使用 tail -f 命令实时监控日志文件更新,当程序运行时,文件产生新内容,该命令会自动输出到屏幕。

8. 4. grep 命令

  • 功能: 文本筛选工具,可以按照正则表达式匹配文件内容,并输出符合条件的行。

  • 常见用法:

    • grep "pattern" filename: 查找 filename 文件中包含 “pattern” 的行。
    • grep -v "pattern" filename: 排除包含 “pattern” 的行,输出不包含 “pattern” 的行。
    • grep "pattern" file1 file2 > output.txt: 在多个文件中查找符合条件的行并输出到 output.txt
  • 正则表达式使用:

    • grep "I.*c" filename: 匹配以 I 开头、c 结尾、中间任意字符的单词。
  • 结合其他命令:

    • ll | grep "log": 查找当前目录下包含 “log” 的文件名。

8.5 通道(管道)操作

  • 使用 | 符号可以将前一个命令的输出作为下一个命令的输入。
  • 示例:
    • ll | grep "log": 列出当前目录下所有文件,并通过 grep 筛选包含 “log” 的文件。

8.6 总结

  • echo: 用于输出字符串到屏幕或文件。
  • cat: 用于查看文件、合并文件、创建输入流。
  • tail: 用于查看文件最后几行,常用于日志文件监控。
  • grep: 用于根据正则表达式筛选文件内容,配合通道命令使用效果更好。

9.Linux 文件打包与压缩总结

本节课主要讲解了在 Linux 系统中如何实现文件的打包与压缩,并介绍了相关的命令和用法。以下是课程的主要内容和常见命令总结。

9. 1. 文件打包与压缩的概念

  • 打包: 将多个文件合并成一个大的文件,便于数据传输和存储。
  • 压缩: 针对单个文件进行数据压缩,减少文件大小以节省存储空间和提高传输效率。

打包与压缩的区别:

  • 打包: 文件的组织(不压缩文件内容)。
  • 压缩: 磁盘空间的节省(减少文件体积)。

9. 2. gziptar 的区别

  • gzip: Linux 中的文件压缩工具,压缩后文件扩展名为 .gz
  • tar: 打包工具,用于将多个文件合并成一个大文件,扩展名为 .tar。可以结合 gzip 进行打包压缩,生成 .tar.gz 格式的文件。

9. 3. tar 命令的使用

3.1 压缩文件

  • 压缩命令:
    tar zcvf 压缩文件名.tar.gz 目录名\
    

``


10.Linux 应用服务化总结

本节课主要讲解了在 CentOS 系统中如何实现应用服务化,重点介绍了 systemctl 命令的使用,并通过 Redis 的服务化进行演示。

10. 1. 什么是应用服务化?

  • 应用服务化: 指让应用程序以系统服务的方式在系统后台运行,类似于 Windows 中的服务。
  • 优势:
    • 统一管理系统中的服务,使用统一的命令管理服务的启动、停止、状态检查等。
    • 服务可以随系统启动,避免系统重启后手动启动应用。

10. 2. systemctl 常用命令

  • systemctl start <服务名>: 启动服务。
  • systemctl stop <服务名>: 停止服务。
  • systemctl restart <服务名>: 重启服务。
  • systemctl enable <服务名>: 设置服务随系统启动。
  • systemctl disable <服务名>: 禁止服务随系统启动。
  • systemctl status <服务名>: 查看服务状态。
  • systemctl daemon-reload: 重新加载服务配置文件。
  • systemctl list-unit-files: 列出系统中所有服务及其状态。

11.Linux 用户与权限管理总结

本节课主要讲解了在 Linux 系统中如何进行用户和用户组的管理,重点介绍了如何为用户分配权限以及相关的常用命令。

11. 1. 用户与用户组的概念

  • 用户: 系统中访问者的账号,负责对文件的创建、读写等操作。每个用户可以设置不同的权限,保护个人数据安全。
  • 用户组: 按照用户特性进行分组管理,不同用户组有不同的权限。一个用户可以属于多个组,但在同一时间只能有一个当前组。用户组简化了权限管理,尤其适用于大规模系统中的权限设置。

11. 2. 常用用户与权限管理命令

  • useradd <用户名>: 创建新用户。
  • passwd <用户名>: 设置或修改用户密码。
  • usermod -g <用户组名> <用户名>: 修改用户信息并分配用户组。
  • groupadd <用户组名>: 创建新的用户组。
  • chown <用户>:<用户组> <文件>: 更改文件的属主和属组。
  • chmod <权限> <文件>: 修改文件的访问权限。
  • newgrp <用户组名>: 切换用户当前组。

11. 3. 实例演示:创建研发组与测试组

11. 3.1 创建用户
  • 步骤:
    1. 使用 adduser 命令创建研发人员和测试人员账户:
      useradd d1  # 第一个研发人员
      useradd d2  # 第二个研发人员
      useradd t1  # 测试人员
      
    2. 为每个用户设置初始密码:
      passwd d1
      passwd d2
      passwd t1
      
11. 3.2 创建用户组
  • 步骤:
    1. 创建研发组和测试组:

      groupadd developer  # 创建研发组
      groupadd tester     # 创建测试组
      
    2. 将用户分配到对应的用户组:

      usermod -g developer d1  # 将 d1 分配到研发组
      usermod -g developer d2  # 将 d2 分配到研发组
      usermod -g tester t1     # 将 t1 分配到测试组
      
11. 3.3 验证用户组设置
  • 步骤:
    1. 使用 groups 命令查看当前用户隶属的用户组:

      groups d1  # 查看 d1 隶属的用户组
      groups d2  # 查看 d2 隶属的用户组
      groups t1  # 查看 t1 隶属的用户组
      
    2. 结果验证:

      • d1d2 隶属 developer 组。
      • t1 隶属 tester 组。
11. 3.4 设置用户权限
  • 为研发人员和测试人员创建独立的目录,并分配不同的权限,使他们只能访问各自的文件,互不干扰。

11. 4. 总结

  • 用户和用户组管理: Linux 是一个多用户多任务系统,通过用户和用户组进行权限管理,保障系统安全。
  • 核心命令:
    • useradd 用于创建用户,groupadd 用于创建用户组。
    • usermod 将用户分配到指定的用户组。
    • passwd 用于为用户设置密码。
    • chownchmod 用于修改文件的属主、属组和权限。
  • 通过分组管理,系统管理员可以有效减少管理工作量,提高系统的安全性和可维护性。

11.Linux 用户权限管理之 sudo 命令

本节课围绕用户权限管理中的 sudo 命令展开,讲解了如何赋予普通用户超级管理员权限,并通过实例演示了授权过程及 sudo 命令的具体使用方式。

11. 1. 什么是 sudo 命令?

  • sudo: 是一个 Linux 命令,允许普通用户以超级管理员(root)身份执行命令。
  • 为什么需要 sudo 命令: root 用户是系统的最高权限用户,为避免频繁暴露 root 密码或滥用权限,可以为特定普通用户赋予临时的超级管理员权限,通过 sudo 命令完成关键操作。

11. 2. 授权普通用户使用 sudo 的步骤

  1. 使用 visudo 命令进行授权:

    • visudovi 编辑器和 sudo 的结合,用于编辑 /etc/sudoers 文件,进行权限授权。

    • 授权示例:

      visudo
      
    • 在编辑模式下定位到100行,添加如下配置:

      d1 ALL=(ALL) ALL
      
      • d1: 普通用户的用户名。
      • ALL: 允许从任何主机执行命令。
      • (ALL): 允许切换为任意用户执行命令。
      • ALL: 允许执行所有命令。
    • 保存配置:

      • 使用 :wq 保存退出。
    • 检查配置文件:

      • 在编辑完 sudoers 文件后,使用 visudo -c 命令进行格式检查:
      visudo -c
      
      • 该命令用于检查 sudoers 文件的正确性,避免文件格式错误导致系统问题。
  2. 测试 sudo 命令:

    • 在已授权的用户下测试 sudo 命令,例如创建新用户:
      sudo useradd d3
      
    • 系统会提示输入当前用户的密码以确认身份。输入正确后,用户将拥有临时的超级管理员权限,可以执行创建用户等命令。

11. 3. 为 sudo 命令配置无密码执行

  • 有时我们希望用户执行 sudo 命令时不需要每次输入密码。
  • 配置方法:
    • 使用 visudo 进入编辑模式,在用户配置行末尾添加 NOPASSWD 选项:
      d1 ALL=(ALL) NOPASSWD: ALL
      
    • 这样用户 d1 在使用 sudo 命令时将不再需要输入密码。

11. 4. 使用 sudo 命令的注意事项

  • 虽然 sudo 命令非常方便,但赋予普通用户超级管理员权限后存在一定风险。建议尽量减少使用 sudo 权限,以免误操作导致系统崩溃或数据丢失。

12. CentOS 防火墙设置课程笔记

本节课介绍了在 CentOS 系统中防火墙的设置和使用,重点讲解了防火墙的基本概念及 firewall-cmd 命令的使用方法,并通过开放 Tomcat 端口进行实例演示。

12. 1. 什么是防火墙?

  • 防火墙: 一种通过硬件或软件技术保护内外部网络的安全措施。

    • 主动防御: 防止来自外部网络的攻击。
    • 访问控制: 控制内部服务器对外暴露的网络资源。
  • CentOS 6 vs CentOS 7 防火墙:

    • CentOS 6: 基于 IPTables 的网络层防火墙。
    • CentOS 7: 基于 firewalld 的应用层防火墙,能更细粒度地控制应用层的网络访问权限。

12. 2. firewall-cmd 命令

firewall-cmd 是 CentOS 7 中控制防火墙的核心命令。

常用命令:

  • 查看防火墙状态:

    firewall-cmd --state
    

    返回 running 代表防火墙正在运行。

  • 查看开放的端口:

    firewall-cmd --list-ports
    

    返回当前防火墙放行的端口列表。

  • 开放指定端口:

    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    
    • --zone=public: 区域,默认使用 public 区域。
    • --add-port=8080/tcp: 添加开放的端口(TCP 方式)。
    • --permanent: 持久化该设置。
  • 重新加载防火墙配置:

    firewall-cmd --reload
    

    使永久性变更生效。

  • 删除开放的端口:

    firewall-cmd --zone=public --remove-port=8080/tcp --permanent
    
  • 开放端口范围:

    firewall-cmd --zone=public --add-port=8000-9000/tcp --permanent
    

    该命令放行 8000 到 9000 范围内的所有端口。

12. 3. 实例:开放 Tomcat 8080 端口

3.1 安装并启动 Tomcat

  1. 上传并解压 Tomcat:

    tar zxvf apache-tomcat-9.0.34.tar.gz
    
  2. 启动 Tomcat:

    cd apache-tomcat-9.0.34/bin
    ./startup.sh
    
  3. 验证 Tomcat 启动:

    netstat -tulnp | grep 8080
    

    如果看到 8080 端口被占用,说明 Tomcat 已成功启动。

3.2 放行 8080 端口

  1. 查看防火墙状态:

    firewall-cmd --state
    
  2. 查看已开放端口:

    firewall-cmd --list-ports
    
  3. 放行 8080 端口:

    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    
  4. 重新加载防火墙:

    firewall-cmd --reload
    
  5. 再次验证 8080 端口是否已放行:

    firewall-cmd --list-ports
    

3.3 移除 8080 端口

  1. 移除 8080 端口:

    firewall-cmd --zone=public --remove-port=8080/tcp --permanent
    
  2. 重新加载防火墙:

    firewall-cmd --reload
    
  3. 验证端口是否已移除:

    firewall-cmd --list-ports
    

12. 4. 总结

  • 防火墙的重要性: 防火墙是网络安全的重要一环,保护系统免受外部攻击,并控制对外暴露的端口。
  • firewall-cmd 命令: 是 CentOS 7 管理防火墙的核心工具,可以控制端口的开放和关闭。
  • 应用场景: 当在 CentOS 系统中部署如 Tomcat、Redis、MySQL 等网络应用时,除了配置应用本身外,还需要放行相应的端口,否则无法进行远程访问。

13. Linux Bash Shell 脚本学习笔记

本节课介绍了 Linux 系统中的 Bash Shell 脚本,重点讲解了 Shell 脚本的基本概念、类型及如何编写一个简单的 Shell 脚本。

13. 1. 什么是 Shell?

  • Shell: 是一个用 C 语言编写的 Linux 脚本解释器,用户通过它可以向 Linux 系统发送命令。
  • Shell 脚本: 与 Windows 中的 .bat 脚本类似,用于批量执行 Linux 系统命令的脚本文件,通常以 .sh 作为扩展名。

# 13. 2. 常用 Shell 类型

  1. Bourne Shell (sh): 早期的 Linux Shell 解释器,较为基础。
  2. Bash (Bourne Again Shell): Linux 发行版中最常用的 Shell 解释器,路径为 /bin/bash。相较于 Bourne Shell,Bash 提供了更多特性如自动补全等。
  3. 其他 Shell: 包括 C Shell、K Shell 等,日常使用较少。

13. 3. 编写和执行 Shell 脚本

3.1 创建 Shell 脚本

  1. 创建脚本文件:
    使用 vim 创建并编辑一个名为 deploy_tomcat.sh 的脚本:

    vim deploy_tomcat.sh
    
  2. 编写脚本内容:

    #!/bin/bash
    echo "准备下载 Tomcat 9"
    wget <Tomcat 下载地址>
    echo "正在解压缩 Tomcat 9"
    tar -zxf apache-tomcat-9.0.34.tar.gz
    echo "防火墙开放 8080 端口"
    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    firewall-cmd --reload
    echo "启动 Tomcat"
    cd apache-tomcat-9.0.34/bin
    ./startup.sh
    

3.2 执行 Shell 脚本

  1. 添加执行权限:

    chmod 755 deploy_tomcat.sh
    
  2. 运行脚本:

    ./deploy_tomcat.sh
    

13. 4. Shell 脚本的权限问题

  • 权限不足: 如果提示没有执行权限,需要为脚本文件添加可执行权限 (chmod +x).
  • 权限说明:
    • 755: 文件所有者拥有读、写、执行权限,其他用户具有读和执行权限。

13. 5. Tomcat 安装过程自动化

通过 Shell 脚本,自动完成 Tomcat 下载、解压、配置防火墙并启动服务的流程,可以极大地提高服务器配置的效率。

5.1 常见命令解释

  • wget: 下载指定 URL 的文件。
  • tar -zxf: 解压缩 .tar.gz 文件。
  • firewall-cmd --add-port: 开放指定端口,--permanent 表示永久生效,--reload 用于重载防火墙配置。

13. 6. Shell 脚本的强大功能

  • Shell 脚本不仅可以按顺序执行命令,还可以使用条件判断、循环、变量等更复杂的编程结构。
  • 示例:在 Tomcat 的 startup.sh 文件中,使用了 while 循环、if 判断等编程语法,说明 Shell 具有编程语言的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值