javaEE初阶---linux

一 : 什么是Linux?

Linux 是一个操作系统. 和 Windows 是 "并列" 的关系.

背景

linux是基于Unix发展而来的(Unix是上古时期一个非常牛逼的操作系统) .

1). 1969-1970 年, 贝尔实验室的 Dennis Ritchie (左图) 和 Ken Tompson (右图) 开发了 Unix 操作系统.

javaEE初阶---linux_第1张图片
2). Unix 火了之后, 衍生出很多的分支. 其中有一只为 “Minix”. 由荷兰的Andrew S. Tanenbaum 教授开发. MINIX 含义为 “小型的UNIX”, 源代码开放给大学教学和研究工作.

javaEE初阶---linux_第2张图片

1991 年, 还在读大学的 芬兰人 Linus Benedict Torvalds (1969年12月28日出生, 当时 22 岁) 基于 Minix 的启发, 开发出了 Linux 的第一个版本 .

javaEE初阶---linux_第3张图片
值的一提的是, Linus 在开发 Linux 的时候, 觉得现有的 版本管理工具 并不太方便. 于是开发了一个新的版本管理工具. 也就是现在最广泛使用的 git .

果然这牛逼的大佬就是不一样 ! 同时搞出了Linux和git .

Linus 佬现在 50 多岁了, 但是仍然在互联网上非常活跃. 经常会拍一些视频. 在 油管 或者 B站上就可以找到.

经过这么多年的发展, Linux 已经成为 世界第一大操作系统 , 是全世界市场份额最高的操作系统 ! 主要应用于 :

1.服务器 , 绝大部分服务器是Linux ;
2.嵌入式设备 , 路由器 , 交换机 , 冰箱 , 电视 … 大部分系统都是Linux ;
3.移动端 , 智能手机 , Android就是Linux .

Linux发行版

Linux是一个操作系统内核 , 完整的操作系统 = 内核 + 配套的应用程序 . 在Linux内核的基础上 , 搭配不同的应用程序 , 就构成了不同的"发行版" . 由于Linux是开源的 , 就有很多公司和组织 , 针对Linux构造发行版 , 以下都是Linux对应的发行版 :

javaEE初阶---linux_第4张图片
我们主要学习Centos7这个版本 , 因为实际工作中 , 公司主要使用的Linux发行版是Redhat , 而Redhat是收费的 , 为方便大家"白嫖" , 涨一波人气 , 就有专门的大佬 , 把Redhat的源代码改个logo , 重新编译了一下 , 就得到了Centos !!!

Centos和Redhat就类似于双胞胎的关系 .
javaEE初阶---linux_第5张图片
RedHat一直都提供源代码的发行方式,CentOS就是将RedHat发行的源代码去掉 RedHat 的 logo商标, 重新编译一次.

RedHat对这种发行版的态度是:“我们其实并不反对这种发行版,真正向我们付费的用户,他们重视的并不是系统本身,而是我们所提供的商业服务 .”

所以,CentOS可以得到RedHat的所有功能,甚至是更好的软件 . 但CentOS并不向用户提供商业支持,当然也不负任何商业责任 .

最近Centos官方宣布不再对Centos进行维护了 , 也就是它凉了 , 但是目前还可以继续使用 , 所以我们还是让它贡献一点最后的余热 .

二 : 学习目标

1.基础命令
2.系统编程 & 网络编程
3.部署 JavaWeb 项目

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

三 : Linux环境搭建

主要有四种方式 :

  1. 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好, 最牛逼的Linux桌面环境 , 大概也就相当于WIndows15年前的水平 . [不推荐].

  2. 使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一些 bug , 会导致环境上出现各种莫名其妙的问题, 比较折腾. [非常不推荐]

  3. 使用 WSL (Windows Subsystem for Linux). 这个是 Windows 近几年开发的新功能, 在 Windows系统内集成了一个 Linux. 但是目前这个技术还不够成熟. [暂时不推荐].

  4. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器. 不仅方便 , 还有外网IP .[墙裂推荐]

如何买 ?

云服务器的提供商是很多的 , 阿里云 , 腾讯云 … 哪个便宜买那个就行 . 唯一需要注意的是 , 镜像选择Centos7.6 .

javaEE初阶---linux_第6张图片
买完之后 , 在控制台处 , 就可以看到云服务器所对应的信息 .

javaEE初阶---linux_第7张图片

这个密码搞复杂点 , 不然容易被攻破 .

javaEE初阶---linux_第8张图片

什么是终端工具 ?

终端软件是一类工具软件, 可以和远程的主机建立网络连接, 从而对主机进行一些操作.

javaEE初阶---linux_第9张图片

准备好XSehll后 , 就可以进行登录了 .

首次登录后 , 后续可以使用这种方式直接打开 :

javaEE初阶---linux_第10张图片

javaEE初阶---linux_第11张图片

四 :基础命令

4.1 ls

语法: ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件.对于文件,将列出文件名以及其他信息.

常用选项 :
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-r 对目录反向排序。
-t 以时间排序。
-R 列出所有子目录下的文件。(递归)

示例 :

ls /

运行结果 :

在这里插入图片描述
/是Linux的特殊目录 , 叫做"根目录" , 相当于Windows上的"此电脑" .

ls -a

运行结果 :

在这里插入图片描述

ll /

这是以列表的形式来展示结果 .

javaEE初阶---linux_第12张图片

4.2 cd

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件 .
javaEE初阶---linux_第13张图片

语法: cd 目录名.
功能: 改变工作目录.将当前工作目录改变到指定的目录下.

常用选项 :
cd . . : 返回上级目录
cd ~:进入用户家目
cd -:返回最近访问目录

认识Linux目录结构 :

javaEE初阶---linux_第14张图片
几个特殊的目录:

/ 称为根目录
. 称为当前目录
. . 称为当前目录的上级目录

绝对路径 vs 相对路径

  • 形如: /usr/share/tomcat/logs/ 以根目录开头的, 称为绝对路径.
  • 形如: ./logs 以 . 或者 … 开头的, 称为相对路径.

使用 tab 键补全

我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率.

  • 按一下tab : 把符合条件的结果补全出来 .(若有多个符合条件的 , 则无法补全) .
  • 按两下tab : 把符合条件的结果都列出来 .

使用 ctrl + c 重新输入

如果命令或者目录敲错了, 可以 ctrl + c 取消当前的命令.

实例 :

javaEE初阶---linux_第15张图片

4.3 pwd

语法: pwd
功能:显示用户当前所在的目录

实例 :

在这里插入图片描述

接下来看几个操作文件的命令 .

4.4 touch

语法: touch [选项]... 文件...
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件.

实例 :

javaEE初阶---linux_第16张图片

4.5 cat

语法:cat [选项] [文件]
功能: 查看目标文件的内容

实例 :

在这里插入图片描述

4.6 echo

语法: echo 内容
功能 : 写文件

javaEE初阶---linux_第17张图片

使用cat和echo可以读写文件 , 但效率较低 , 后面会介绍更方便的方式 .

4.7 mkdir

语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录

实例 :

mkdir : 创建一个名为"java1"的目录 ;
在这里插入图片描述
cd : 进入java1目录下 ;

pwd : 显示当前所在的目录 ;
在这里插入图片描述

一次性创建出多个层次目录 : (使用-p可一次性创建出多个层级目录)
在这里插入图片描述

javaEE初阶---linux_第18张图片

4.8 rm

语法:rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录

常用选项:
-f 即使文件属性为只读(即写保护),亦直接删除 ;
-i 删除前逐一询问确认 ;
-r 删除目录及其下所有文件 .

Linux上没有回收站的概念 , 文件删除 , 就真的没了 .

实例 :

javaEE初阶---linux_第19张图片

javaEE初阶---linux_第20张图片

javaEE初阶---linux_第21张图片

XShell的控制台上的复制与粘贴 :

  1. ctrl + insert , 表示复制 ;
  2. shift + insert , 表示粘贴 .

使用上下方向键 , 可以找到之前输入过的命令 .

在这里插入图片描述
重要注意事项:

千万不要运行 rm -rf / , 尤其是在公司的生产服务器上.

错误示范 :

javaEE初阶---linux_第22张图片

4.9 mv

语法: mv [选项] 源文件或目录 目标文件或目录
功能: 用来为文件或目录改名、或将文件或目录移入其它位置。
  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

javaEE初阶---linux_第23张图片

4.10 cp

语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录

javaEE初阶---linux_第24张图片
在这里插入图片描述

上述命令的关键是得熟练 , 像咱们这敲半天 , 就很不熟练 , 上炕都费劲 . 所以得多敲 !

如果记不住选项的用法 , 可以使用man命令 , 查询某个命令的具体用法 , 也可以直接百度 .

4.11 grep

语法:grep [参数]... [文件]...
功能:用于查找文件中是否包含指定字符串, 并显示对应的行.

常用选项 :
-n<行数> 显示的行数
-w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分.
-r 递归查找. 可以搜索多级目录下的所有文件.
–color 高亮查找到的结果
–include 指定查找某些文件
–exclude 指定排除某些文件

javaEE初阶---linux_第25张图片

4.12 ps

语法:ps [参数]...
功能:用于查看当前系统上运行的进程

a 显示一个终端的所有进程
u 以用户为主的格式来显示程序状况
x 显示所有程序,不以终端机来区分

javaEE初阶---linux_第26张图片

由于ps内容比较多 , 经常会搭配grep来针对查询结果进行筛选 !

javaEE初阶---linux_第27张图片

4.13 netstat

语法:netstat [参数]...
功能:查看系统上的网络状态.

常用选项:
-a 显示所有正在或不在侦听的套接字
-n 显示数字形式地址而不是去解析主机、端口或用户名
-p 显示套接字所属进程的PID和名称

javaEE初阶---linux_第28张图片

五 : vim

使用vim可以进行文件的编辑,vim有大量的快捷键,通过这些快捷键可以完成各种各样的编辑操作,我们只介绍最基本的操作: 

5.1 如何打开文件 ?

vim 文件名 .

5.2 如何编辑文件 ?

javaEE初阶---linux_第29张图片

5.3 如何保存/退出?

javaEE初阶---linux_第30张图片

六 : 搭建Java Web运行环境

当前就可以初步操作linux了,在linux上搭建java Web运行环境

javaEE初阶---linux_第31张图片

6.1 安装jdk

推荐使用yum,即linux里的"应用商店" .

javaEE初阶---linux_第32张图片
javaEE初阶---linux_第33张图片

下载好的东西 , 可执行程序会被放到bin目录中 , 其中动态库会放到lib和lib64中 , 配置文件会放到etc中 , 数据文件放到var目录中 … 储存在云服务器的硬盘上 !

javaEE初阶---linux_第34张图片
javaEE初阶---linux_第35张图片
直接输入javac不报错 , 而是显示出一些提示项 , 说明安装成功了 !

6.2 安装tomcat

tomcat是运行在java上的,java和tomcat都是跨平台的,只要把之前从官网上下载好的tomcat拷贝到linux上,解压缩即可使用 !!!

javaEE初阶---linux_第36张图片
javaEE初阶---linux_第37张图片
javaEE初阶---linux_第38张图片
javaEE初阶---linux_第39张图片

javaEE初阶---linux_第40张图片
javaEE初阶---linux_第41张图片

6.3 安装MySQL

我们的方法任然是使用yum

javaEE初阶---linux_第42张图片

依次执行下列命令 :

//安装mariadb服务
yum install -y mariadb-server
//安装mariadb命令行客户端
yum install -y mariadb
//安装mariadb C library
yum install -y mariadb-libs
//安装mariadb开发包
yum install -y mariadb-devel
//启动服务
systemctl start mariadb
//设置服务开机自启动
systemctl enable mariadb
//查看服务状态
systemctl status mariadb

javaEE初阶---linux_第43张图片
绿色说明执行成功 !

如何进行使用 ? 通过命令行的方式来连接数据库 ! 默认情况下 , 没有密码 .

在这里插入图片描述

初始安装时 , mysql的字符集是拉丁文 , 为了能支持中文 , 可以手动修改配置文件(不推荐) , 也可以在创建数据库时 , 手动指定字符集(推荐) .

6.4 部署过程

javaEE初阶---linux_第44张图片
javaEE初阶---linux_第45张图片
javaEE初阶---linux_第46张图片
javaEE初阶---linux_第47张图片

javaEE初阶---linux_第48张图片

以下是如何找到webapps目录 :
javaEE初阶---linux_第49张图片

javaEE初阶---linux_第50张图片

以上就是我们要介绍的全部内容 !

javaEE初阶---linux_第51张图片

你可能感兴趣的:(JavaEE初阶,linux,unix,服务器)