【JavaEE初阶】——Linux 基本使用和 web 程序部署(上)

文章目录

  • 前言
  • 一、Linux 背景知识
  •       1.1 Linux 是什么
  •       1.2 Linux发行版
  • 二、关于 Linux 我们学习什么
  • 三、Linux 环境搭建
  •       3.1 环境搭建方式
  •       3.2 使用云服务器
  • 四、使用终端软件连接到 Linux
  •       4.1 什么是终端软件
  •       4.2 下载安装 XShell
  •       4.3 使用 XShell 登陆主机
  • 总结


前言

一、Linux 背景知识

1.1 Linux 是什么

定义:Linux 是一个操作系统. Windows "并列" 的关系.


1) 1969-1970 年, 贝尔实验室的 Dennis Ritchie (左图) 和 Ken Tompson (右图) 开发了 Unix 操作系统.
2) Unix 火了之后, 衍生出很多的分支. 其中有一只为 "Minix". 由荷兰的Andrew S. Tanenbaum 教授开发. MINIX 含义为 "小型的UNIX", 源代码开放给大学教学和研究工作.
3) 1991 年, 还在读大学的 芬兰人 Linus Benedict Torvalds (1969年12月28日出生, 当时 22 岁) 基于Minix 的启发, 开发出了 Linux 的第一个版本.

经过这么多年的发展, Linux 已经成为 世界第一大操作系统。
有的同学可能表示, Linux 都是世界第一大操作系统了, 我咋还没听说过? 不, 其实你听说过. 安卓系 统本质上就是 Linux.
服务器领域
嵌入式设备
移动端

1.2 Linux发行版

Linux 严格意义来说只是一个 "操作系统内核".
一个完整的操作系统 = 操作系统内核 + 配套的应用程序.

由于 Linux 是一个完全开源免费的内核, 因此有些公司/开源组织又基于 Linux 内核, 提供了不同的配套 程序. 这就构成了不同的 "发行版".
企业中最主要使用的发行版是 RedHat (红帽). 但是 RedHat 是一个收费的系统.
因此我们课堂上使用的是基 于 红帽系统的的社区免费版本 CentOS.

二、关于 Linux 我们学习什么

1) 基础命令

Linux 虽然也有图形化界面, 但是在 服务器 / 嵌入式设备上往往都是通过命令行的方式操作的. 因此学习 Linux 命令就是使用 Linux 的重要基础.

使用命令相比于使用图形界面主要有以下好处:
  • 节省系统资源: 运行图形界面需要让系统付出一些额外的资源开销. 尤其是对于配置比较低的 嵌入式设备, 这一点至关重要.
  • 节省网络带宽: 如果通过网络访问服务器, 使用图形界面需要传输一帧一帧的图像, 而使用命 令只需要传输简单的字符串.
  • 便于批量执行任务: 可以通过一些 "脚本" 代码 (比如 Linux Shell) 来批量执行一些任务, 完成 一些简单的编程工作. (比如定时备份文件, 删除文件等).
  • Windows 也有命令(也就是 cmd), 只是对于普通用户来说很少使用.

2) 系统编程 & 网络编程
Linux 自身提供了一些 API, 供程序猿调用来完成一些更复杂的编程任务(比如文件操作, 多线程编程, socket 编程等).
但是由于 Java 跨平台的特性, 这部分功能已经被 Java 自身封装好了 (流对象, Thread 对象, Socket 对象 等). 所以这部分内容我们不必再学习了。

3) 部署 JavaWeb 项目
我们自己写的 web 程序, 要想让其他的用户能够访问, 就需要发布到服务器上. 这是我们接下里重点学习 的内容.
小结: 对于 Java 程序猿, 关于 Linux 重点学习 基础命令 和 项目部署 即可.

三、Linux 环境搭建

3.1 环境搭建方式

要想学习 Linux , 需要先有一个 Linux 的环境.
环境搭建方式 主要有四种:
  • 1. 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好. [不推荐].
  • 2. 使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一些 bug , 会导致环境上出现各种莫名其妙的问题, 比较折腾. [非常不推荐]
  • 3. 使用 WSL (Windows Subsystem for Linux). 这个是 Windows 近几年开发的新功能, 在 Windows系统内集成了一个 Linux. 但是目前这个技术还不够成熟. [暂时不推荐].
  • 4. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器. [墙裂推荐]
使用云服务器不仅环境搭建简单, 避免折腾, 同时还有一个最大的好处, 部署在云服务器上的项目可以直 接被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别. 也就能让我们自己写的程序真的去给别人去使用。
能够在外网被访问是非常有意义的. 这样我们以后面试的时候就可以提前部署好项目, 现场给面试官演示了.

3.2 使用云服务器

我们以腾讯云为例, 其他的服务器厂商也是类似.
注意: 由于腾讯云官网一直在改版, 同学们实际看到的页面可能和课件上略有差别. 如果遇到某个环 节搞不定, 随时可以咨询腾讯云的客服小姐姐. (腾讯云的客服是非常热情的, 尤其是在你付钱之前 ).

步骤:
1. 进入官方网站 https://cloud.tencent.com/act/campus (直接在百度上搜 "腾讯云校园计划")
2. 登陆网站(可以使用 qq 或者 微信 登陆)
【JavaEE初阶】——Linux 基本使用和 web 程序部署(上)_第1张图片
3. 右侧的操作系统选择 CentOS 7.6 64. 购买时长根据需要选择(建议1), 点击立即购买即可. 这个 步骤需要实名认证, 否则会提示。
【JavaEE初阶】——Linux 基本使用和 web 程序部署(上)_第2张图片
点击立即认证, 按照系统提示, 完成实名认证即可(认证速度很快).
4. 购买完成后, 可以在控制台中找到自己买的服务器. 点进去能够看到服务器的 IP 地址.
【JavaEE初阶】——Linux 基本使用和 web 程序部署(上)_第3张图片
【JavaEE初阶】——Linux 基本使用和 web 程序部署(上)_第4张图片
【JavaEE初阶】——Linux 基本使用和 web 程序部署(上)_第5张图片
蓝色方框为公网 ip 地址, 稍后我们就会使用这个 ip 登陆服务器.
5. 设置 root 密码: 勾选服务器, 点击重置密码(这个环节可能需要手机短信验证). root 密码建议设置的 稍微复杂一些, 否则容易被黑客入侵.

【JavaEE初阶】——Linux 基本使用和 web 程序部署(上)_第6张图片


小结:
在这个环节我们最重要的是得到三个信息:
1. 服务器的外网 IP
2. 服务器的管理员账户 (固定为 root)
3. 管理员账户密码(在腾讯云网站上设置的)
这三个信息是我们登陆到 Linux 上的必要条件.

四、使用终端软件连接到 Linux

4.1 什么是终端软件

终端软件是一类工具软件, 可以和远程的主机建立网络连接, 从而对主机进行一些操作.
常见的终端软件:
XShell
Putty
MobaXTerm
Iterm2
SecureCRT
......
我们课堂上使用的是 XShell.

4.2 下载安装 XShell

下载地址 : https://www.netsarang.com/en/free-for-home-school/
【JavaEE初阶】——Linux 基本使用和 web 程序部署(上)_第7张图片
XShell 提供了两种授权方式.
企业版: 收费.
家庭/教育版: 免费.
我们选择 家庭/教育 版即可. 下载的时候需要填一下名字和邮箱. 下载链接会被发送到填写的邮箱中.
【JavaEE初阶】——Linux 基本使用和 web 程序部署(上)_第8张图片
邮箱中收到的内容形如:
点击邮箱中的下载链接即可完成下载.

4.3 使用 XShell 登陆主机

XShell 终端下输入

ssh 服务器外网ip地址
ip 为腾讯云后台页面中看到的 外网 IP.
如果网络畅通, 将会提示输入用户名密码. 输入即可正确登陆.
备注: 这里的用户名为 root, 密码是在最初购买服务器的时候设置的密码.
个别同学可能会出现无法输入密码的情况,
解决方案参考 https://www.cnblogs.com/lemon-le/p/11168609.html

关于XShell 下的复制粘贴
复制: ctrl + insert (有些同学的 insert 需要配合 fn 来按)
粘贴: shift + insert
ctrl + c / ctrl + v 是不行的.

总结

【JavaEE初阶】——Linux 基本使用和 web 程序部署(上)_第9张图片

你可能感兴趣的:(JavaEE初阶,linux,算法,java-ee)