学习笔记
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的特点
- 免费使用:不需要付费使用,支持自由传播和修改源代码。
- 多任务、多用户、多CPU支持:适用于服务器环境,资源利用效率高。
- 高效灵活:比Windows Server更小巧灵活,开源允许定制功能。
- 兼容X86架构:能在大多数基于X86架构的计算机上运行。
- 强大的系统命令:通过命令可以远程管理服务器任务。
- 完整的应用生态:全球程序员共同为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发行版本
- Red Hat Enterprise Linux (RHEL):企业级Linux,提供技术支持,收费版本。
- CentOS:Red Hat的免费开源社区版本,主要用于服务器。
- Ubuntu:桌面级Linux操作系统,界面美观,是Windows的替代者。
- SUSE:企业级和服务器环境使用的Linux发行版。
- Debian:以稳定性著称,适合对稳定性要求高的应用场景。
- Fedora:最新内核特性实验场,适合发烧友,但存在安全风险。
- 麒麟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镜像文件
- 打开浏览器,访问CentOS官网:https://www.centos.org。
- 点击 Get CentOS Now,进入下载页面。
- 页面提供了CentOS 8的下载链接,但我们选择页面底部的 Older Versions,下载CentOS 7。
- 选择最新的 CentOS 7.7 版本,点击 mirrors,选择国内的下载源(如阿里云)。
- 选择 Everything 版本(包含所有软件包),下载ISO镜像文件。
4. 2. 在VMware中创建虚拟机
- 打开 VMware Workstation Pro,点击“创建新的虚拟机”。
- 选择 典型 安装,点击“下一步”。
- 选择下载好的CentOS 7的ISO镜像文件。
- VMware会自动识别镜像文件,选择 CentOS 7 x86_64。
- 设置虚拟机名称和虚拟机文件的保存路径(建议保存到高速SSD硬盘)。
- 分配虚拟磁盘大小为 20GB,选择“将虚拟磁盘存储为单个文件”。
- 配置虚拟机的 硬件设置:
- 内存:建议分配至少2GB。
- CPU:建议分配2核及以上,勾选CPU虚拟化。
- 点击“完成”,虚拟机将启动CentOS 7的安装过程。
4. 3. 安装CentOS 7
- 在虚拟机中启动后,选择 Install CentOS 7 进行安装。
- 选择语言环境为 中文(简体),点击“继续”。
- 进行安装前设置:
- 软件选择:选择 带GUI的CentOS 7(推荐新手使用图形界面)。
- 安装位置:选择刚刚分配的20GB虚拟磁盘。
- 网络和主机名:
- 打开左侧的以太网连接,确保网络连接正常。
- 设置主机名为便于记忆的名称。
- 点击右下角的 开始安装。
- 设置 root用户密码,为简化学习可设置为“root”(实际使用中应设置复杂密码)。
4. 4. 安装完成后的配置
- 安装完成后,点击 重启 系统。
- 在重启后的引导界面中选择第一项进入系统。
- 进行系统的初始设置:
- 同意 License授权协议。
- 跳过新用户创建,点击 完成配置。
- 完成后进入 CentOS 7桌面版本,系统提供了中文界面和图形化应用程序。
4. 5. 系统初始配置
- 选择中文输入法。
- 时区选择 上海。
- 跳过在线账号设置。
- 创建一个基本用户(如“imoc”)并设置密码(英文+数字组合)。
- 完成后进入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
- 搜索 Xshell个人版,选择免费下载。
- 填写姓名和邮箱地址,收到Xshell和Xftp的下载链接,下载并安装。
- 安装过程:
- Xshell:依次点击“下一步”,默认安装路径即可。
- Xftp:同样按照默认安装路径安装。
6. 5. 使用Xshell连接Linux服务器
- 启动虚拟机并获取IP地址:
- 打开虚拟机,使用
ifconfig命令查看虚拟机的IP地址。
- 打开虚拟机,使用
- 在Xshell中新建会话:
- 设置会话名称,如“CentOS 7”。
- 输入主机的IP地址(如:192.168.163.128)。
- 端口号保持默认的 22(SSH默认端口)。
- 测试连接:
- 输入用户名
root,记住用户名和密码,确认连接。 - 看到命令提示符即表示成功连接服务器。
- 输入用户名
6. 6. Xftp的使用
- 在Xshell中可以点击工具栏中的“新建文件传输”按钮,启动Xftp。
- 在Xftp中可以通过拖拽方式将本地文件上传到远程服务器。
- 文件传输完成后,使用命令(如
ls)查看服务器上的文件。
7. Vim 文本编辑器学习笔记
7. 1. Vim 简介
- Vim:Linux 系统中常用的文本编辑器,是 VI 的升级版。
- 主要用途:远程环境下在线编辑文本文件,尤其适用于服务器运维。
7. 2. Vim 的三种模式
- 普通模式:默认模式,无法直接编辑文本,用于执行命令。
- 编辑模式:按
i进入,可编辑文本内容;按Esc退出回到普通模式。 - 命令模式:按
:进入,用于保存、退出、搜索等操作。
7. 3. Vim 常用命令和快捷键
- x / Delete:删除单个字符
- dd:删除整行
- u:撤销最近一次操作
- /str:查找字符串
str - %s/旧字符串/新字符串/g:全文替换
- :wq:保存并退出
- :q!:不保存强制退出
- :wq!:强制保存并退出(用于只读文件)
7. 4. Vim 操作实例:修改 Tomcat 配置文件中的端口
- 进入 Vim 编辑文件:
vim server.xml - 进入编辑模式:按
i开始编辑文本。 - 查找关键字:按
/8080查找端口号 8080,按n定位到下一个匹配,按N定位到上一个匹配。 - 修改文本:
- 进入编辑模式后,使用键盘或鼠标进行编辑。
- 按
Esc退出编辑模式。
- 全局替换:
- 全局替换 8080 为 8900:
: %s/8080/8900/g
- 全局替换 8080 为 8900:
- 撤销修改:按
u撤销操作。 - 保存并退出:
: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: 合并file1和file2的内容,并将结果输出到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. gzip 与 tar 的区别
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 创建用户
- 步骤:
- 使用
adduser命令创建研发人员和测试人员账户:useradd d1 # 第一个研发人员 useradd d2 # 第二个研发人员 useradd t1 # 测试人员 - 为每个用户设置初始密码:
passwd d1 passwd d2 passwd t1
- 使用
11. 3.2 创建用户组
- 步骤:
-
创建研发组和测试组:
groupadd developer # 创建研发组 groupadd tester # 创建测试组 -
将用户分配到对应的用户组:
usermod -g developer d1 # 将 d1 分配到研发组 usermod -g developer d2 # 将 d2 分配到研发组 usermod -g tester t1 # 将 t1 分配到测试组
-
11. 3.3 验证用户组设置
- 步骤:
-
使用
groups命令查看当前用户隶属的用户组:groups d1 # 查看 d1 隶属的用户组 groups d2 # 查看 d2 隶属的用户组 groups t1 # 查看 t1 隶属的用户组 -
结果验证:
d1和d2隶属developer组。t1隶属tester组。
-
11. 3.4 设置用户权限
- 为研发人员和测试人员创建独立的目录,并分配不同的权限,使他们只能访问各自的文件,互不干扰。
11. 4. 总结
- 用户和用户组管理: Linux 是一个多用户多任务系统,通过用户和用户组进行权限管理,保障系统安全。
- 核心命令:
useradd用于创建用户,groupadd用于创建用户组。usermod将用户分配到指定的用户组。passwd用于为用户设置密码。chown和chmod用于修改文件的属主、属组和权限。
- 通过分组管理,系统管理员可以有效减少管理工作量,提高系统的安全性和可维护性。
11.Linux 用户权限管理之 sudo 命令
本节课围绕用户权限管理中的 sudo 命令展开,讲解了如何赋予普通用户超级管理员权限,并通过实例演示了授权过程及 sudo 命令的具体使用方式。
11. 1. 什么是 sudo 命令?
sudo: 是一个 Linux 命令,允许普通用户以超级管理员(root)身份执行命令。- 为什么需要
sudo命令:root用户是系统的最高权限用户,为避免频繁暴露root密码或滥用权限,可以为特定普通用户赋予临时的超级管理员权限,通过sudo命令完成关键操作。
11. 2. 授权普通用户使用 sudo 的步骤
-
使用
visudo命令进行授权:-
visudo是vi编辑器和sudo的结合,用于编辑/etc/sudoers文件,进行权限授权。 -
授权示例:
visudo -
在编辑模式下定位到100行,添加如下配置:
d1 ALL=(ALL) ALLd1: 普通用户的用户名。ALL: 允许从任何主机执行命令。(ALL): 允许切换为任意用户执行命令。ALL: 允许执行所有命令。
-
保存配置:
- 使用
:wq保存退出。
- 使用
-
检查配置文件:
- 在编辑完
sudoers文件后,使用visudo -c命令进行格式检查:
visudo -c- 该命令用于检查
sudoers文件的正确性,避免文件格式错误导致系统问题。
- 在编辑完
-
-
测试
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的应用层防火墙,能更细粒度地控制应用层的网络访问权限。
- CentOS 6: 基于
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
-
上传并解压 Tomcat:
tar zxvf apache-tomcat-9.0.34.tar.gz -
启动 Tomcat:
cd apache-tomcat-9.0.34/bin ./startup.sh -
验证 Tomcat 启动:
netstat -tulnp | grep 8080如果看到 8080 端口被占用,说明 Tomcat 已成功启动。
3.2 放行 8080 端口
-
查看防火墙状态:
firewall-cmd --state -
查看已开放端口:
firewall-cmd --list-ports -
放行 8080 端口:
firewall-cmd --zone=public --add-port=8080/tcp --permanent -
重新加载防火墙:
firewall-cmd --reload -
再次验证 8080 端口是否已放行:
firewall-cmd --list-ports
3.3 移除 8080 端口
-
移除 8080 端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent -
重新加载防火墙:
firewall-cmd --reload -
验证端口是否已移除:
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 类型
- Bourne Shell (sh): 早期的 Linux Shell 解释器,较为基础。
- Bash (Bourne Again Shell): Linux 发行版中最常用的 Shell 解释器,路径为
/bin/bash。相较于 Bourne Shell,Bash 提供了更多特性如自动补全等。 - 其他 Shell: 包括 C Shell、K Shell 等,日常使用较少。
13. 3. 编写和执行 Shell 脚本
3.1 创建 Shell 脚本
-
创建脚本文件:
使用vim创建并编辑一个名为deploy_tomcat.sh的脚本:vim deploy_tomcat.sh -
编写脚本内容:
#!/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 脚本
-
添加执行权限:
chmod 755 deploy_tomcat.sh -
运行脚本:
./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 具有编程语言的能力。
2万+

被折叠的 条评论
为什么被折叠?



