【学习日记2023.6.4】之 Linux入门

1. Linux简介

1.1 主流操作系统

不同领域的主流操作系统,主要分为以下这么几类: 桌面操作系统、服务器操作系统、移动设备操作系统、嵌入式操作系统。这几个领域中,代表性的操作系统如下:

1). 桌面操作系统

操作系统特点
Windows用户数量最多
MacOS操作体验好,办公人士首选
Linux用户数量少(桌面操作系统,Linux使用较少)

2). 服务器操作系统

操作系统特点
Unix安全、稳定、付费
Linux安全、稳定、免费、占有率高
Windows Server付费、占有率低

3). 移动设备操作系统

操作系统特点
Android基于 Linux 、开源,主要用于智能手机、平板电脑和智能电视
IOS苹果公司开发、不开源,用于苹果公司的产品,例如:iPhone、 iPad

4). 嵌入式操作系统

操作系统特点
Linux机顶盒、路由器、交换机

1.2 Linux发展历史

请添加图片描述

时间:1991年

地点:芬兰赫尔辛基大学

人物:Linus Torvalds(21岁)

语言:C语言、汇编语言

logo:企鹅

特点:免费、开源(源代码开放)、多用户(同时允许多个用户操作同一个Linux系统)、多任务(同时允许多个任务执行)

1.3 Linux系统版本

Linux系统的版本分为两种,分别是: 内核版 和 发行版。

1). 内核版

  • 由Linus Torvalds及其团队开发、维护

  • 免费、开源

  • 负责控制硬件

2). 发行版

  • 基于Linux内核版进行扩展

  • 由各个Linux厂商开发、维护

  • 有收费版本和免费版本

使用Linux操作系统,实际上选择的是Linux的发行版本。在linux系统中,有各种各样的发行版本,具体如下:
请添加图片描述

除了上述罗列出来的发行版,还有很多Linux发行版。

2. Linux安装

2.1 安装方式介绍

Linux系统的安装方式,主要包含以下两种:

方式概述场景
物理机安装直接将操作系统安装到服务器硬件上企业开发中,使用的服务器基本都是采用这种方式
虚拟机安装通过虚拟机软件安装学习阶段,没有自己服务器,而我们又需要学Linux,就可以安装在虚拟机上

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。常用虚拟机软件:

  • VMWare

  • VirtualBox

  • VMLite WorkStation

  • Qemu

  • HopeddotVOS

这里选择的虚拟机软件是VMware。

2.2 安装VMware

默认下一步,路径建议选择C盘外的其他盘符。注:给VMware和虚拟机位置单独配置文件,不要直接放在盘符根目录下面。

2.3 安装Linux

1). 选择创建新的虚拟机

2). 选择"典型"配置

3). 选择"稍后安装操作系统(S)"

4). 选择"Linux"操作系统,"CentOS7 64位"版本

5). 设置虚拟机的名称及系统文件存放路径

6). 设置磁盘容量

7). 自定义硬件信息

8). 启动上述创建的新虚拟机

9). 选择"Install CentOS7"

10). 选择语言为 “简体中文”

11). 选择"自动配置分区"

12). 选择"最小安装"(根据自己需求来,可选择图形化界面)

13). 设置"root"用户密码

14). 登录系统

注意 : 在Linux系统中,在命令行中输入密码信息,为了保证安全性,密码是不显示的(看似没有输入,实际已经输入了);

2.4 网卡设置

服务器重启完成之后,可以通过linux的指令 ip addr 来查询Linux系统的IP地址,具体信息如下:
请添加图片描述

从图中可以看到,并没有获取到linux系统的IP地址,这是由于启动服务器时未加载网卡,导致IP地址初始化失败而造成的。需设定网卡在系统启动时初始化。

具体操作步骤如下:

1). 修改网卡的配置项

cd /				进入根目录
cd etc				进入etc目录
cd sysconfig		进入sysconfig目录
cd network-scripts	进入network-scripts
vi ifcfg-ens33		编辑ifcfg-ens33文件


进入文件后执行如下操作:. 按 i 键 		 进入编辑状态
②. 按↑↓键来移动光标, 删除no,输入yes 
③. 按 ESC 键
④. 输入 :wq
⑤. 按 ENTER	保存退出

请添加图片描述

把文件的配置项ONBOOT的值有no改为yes即可。

2). 重新启动虚拟机
请添加图片描述

重启之后, 再次输入root的用户名密码,登录到Linux系统之后,可以通过指令 ip addr 来查看IP地址。
请添加图片描述

也通过ifconfig命令来查看ip相关信息,通过yum安装ifconfig。

  • yum install ifconfig

通过命令:yum search ifconfig,来搜索可用或者匹配的安装包程序。

  • yum search ifconfig

通过yum install -y net-tools.x86_64命令来安装ifconfig命令组件

  • yum install -y net-tools.x86_64

2.5 安装SSH连接工具

2.5.1 SSH连接工具介绍

SSH(Secure Shell),建立在应用层基础上的安全协议。常用的SSH连接工具:
请添加图片描述

点击运行即用:
请添加图片描述

2.5.2 连接Linux

请添加图片描述

2.6 Linux目录结构

在Linux系统中,也是存在目录的概念的,但是Linux的目录结构和Windows的目录结构是存在比较多的差异的 在Windows目录下,是一个一个的盘符(C盘、D盘、E盘),目录是归属于某一个盘符的。Linux系统中的目录有以下特点:

A. / 是所有目录的顶点

B. 目录结构像一颗倒挂的树

Linux 和 Windows的目录结构对比:
请添加图片描述

Linux的目录结构,如下:
请添加图片描述

根目录/ 下各个目录的作用及含义说明:

编号目录含义
1/bin存放二进制可执行文件
2/boot存放系统引导时使用的各种文件
3/dev存放设备文件
4/etc存放系统配置文件
5/home存放系统用户的文件
6/lib存放程序运行所需的共享库和内核模块
7/opt额外安装的可选应用程序包所放置的位置
8/root超级用户目录
9/sbin存放二进制可执行文件,只有root用户才能访问
10/tmp存放临时文件
11/usr/local存放系统应用程序
12/var存放运行时需要改变数据的文件,例如日志文件

3. Linux常用命令

3.1 Linux命令初体验

3.1.1 常用命令演示

Linux指令的操作方式。主要包含以下几个指令:

序号命令对应英文作用
1ls [目录名]list查看当前目录下的内容
2pwdprint work directory查看当前所在目录
3cd [目录名]change directory切换目录
4touch [文件名]touch如果文件不存在,创建文件
5mkdir [目录名]make directory创建目录
6rm [文件名]remove删除指定文件

1). ls 查看当前目录下的内容

  • ls 查看当前目录下的内容(文件及目录)

  • ls / 查看指定目录(/)下的内容

2). pwd 查看当前所在目录

  • pwd 查看当前所在目录

3). cd 切换目录

  • cd / 切换到根目录

  • cd /root 切换到/root目录

4). touch 如果文件不存在,创建文件

​ touch 1.txt 创建文件1.txt

​ touch 2.txt 3.txt 4.txt 一次性创建文件2.txt,3.txt,3.txt

5). mkdir 创建目录

​ mkdir yishooo 创建文件夹 yishooo

6). rm 删除指定文件

​ rm 4.txt 删除文件 (删除文件时,需要确认,输入y, 代表确定)

请添加图片描述

注意:在执行Linux命令时,提示信息如果显示为乱码,如上图所示。这是由于编码问题导致,只需要修改Linux的编码即可,命令如下:

echo 'LANG="en_US.UTF-8"' >> /etc/profile

source /etc/profile

3.1.2 Linux命令使用技巧

使用Linux系统命令时,可以使用以下几个技巧:

1). Tab键自动补全

2). 连续两次Tab键,给出操作提示

3). 使用上下箭头快速调出曾经使用过的命令

4). 使用clear命令或者Ctrl+l快捷键实现清屏

3.1.3 Linux命令格式
command [-options] [parameter]
	
说明: 
	command: 	 命令名
	[-options]:  选项,可用来对命令进行控制,也可以省略
	[parameter]: 传给命令的参数,可以是零个、一个或者多个
	
注意: 
	[] 	 代表可选
	命令名、选项、参数之间有空格进行分隔

3.2 文件目录操作命令

3.2.1 ls
#作用: 显示指定目录下的内容
#语法: 
	ls [-al] [dir]
#说明: 
	-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
	-l 除文件名称外,同时将文件型态(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出
	
#注意: 
	由于使用ls命令时经常需要加入-l选项,所以Linux为ls -l命令提供了一种简写方式,即ll
	
#常见用法: 
	ls -al 	#查看当前目录的所有文件及目录详细信息
	ls -al /etc   #查看/etc目录下所有文件及目录详细信息
	ll  	#查看当前目录文件及目录的详细信息 

请添加图片描述

3.2.2 cd
#作用: 用于切换当前工作目录,即进入指定目录
#语法: 
	cd [dirName]
	
#特殊说明: 
	~	表示用户的home目录
	. 	表示目前所在的目录
	.. 	表示目前目录位置的上级目录
	
#举例: 
	cd 	..		#切换到当前目录的上级目录
	cd 	~		#切换到用户的home目录
	cd 	/usr/local	#切换到/usr/local目录
	cd - #切换到上一次所在目录
备注: 
	用户的home目录 
	root用户	/root
	其他用户	/home/xxx

通过 cd …/… 来切换到上级目录的上级目录。

3.2.3 cat
#作用: 用于显示文件内容
#语法: 
	cat [-n] fileName

#说明:
	-n: 由1开始对所有输出的行数编号

#举例:
	cat /etc/profile		#查看/etc目录下的profile文件内容

cat 指令会一次性查看文件的所有内容,如果文件内容比较多,这个时候查看起来就不是很方便了,这个时候可以通过一个新的指令more。

3.2.4 more less
#作用: 以分页的形式显示文件内容
#语法: 
	more fileName
	
#操作说明:
    回车键 	向下滚动一行
    空格键 	向下滚动一屏
    b 		返回上一屏
    q或者Ctrl+C	退出more
	
#举例:
	more /etc/profile		#以分页方式显示/etc目录下的profile文件内容

查看一些比较大的文件时,可能需要经常查询文件尾部的数据信息,可以借助于tail指令。

3.2.5 tail
#作用: 查看文件末尾的内容
#语法: 
	tail [-f] fileName

#说明:
	-f : 动态读取文件末尾内容并显示,通常用于日志文件的内容输出
	
#举例: 
tail /etc/profile		#显示/etc目录下的profile文件末尾10行的内容
tail -20 /etc/profile	#显示/etc目录下的profile文件末尾20行的内容
tail -f /itcast/my.log	#动态读取/itcast目录下的my.log文件末尾内容并显示

请添加图片描述

在窗口1中执行指令 tail -f test.txt 动态查看文件尾部的数据。然后在顶部的标签中右键选择 “复制标签”,打开新的窗口2 , 此时再新打开的窗口2中执行指令 echo "今天是下雨天" >> test.txt , 往test.txt文件尾部追加内容,然后我们就可以在窗口1中看到最新的文件尾部的数据。

如果不想查看文件尾部的数据了,可以直接使用快捷键 Ctrl+C , 结束当前进程。

3.2.6 mkdir
#作用: 创建目录
#语法: 
	mkdir [-p] dirName

#说明: 
	-p: 确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建

#举例: 
    mkdir yishooo  #在当前目录下,建立一个名为yishooo的子目录
    mkdir -p yishooo/test   #在工作目录下的itcast目录中建立一个名为test的子目录,若yishooo目录不存在,则建立一个
3.2.7 rmdir
#作用: 删除空目录
#语法: 
	rmdir [-p] dirName

#说明:
	-p: 当子目录被删除后使父目录为空目录的话,则一并删除

#举例:
    rmdir yishooo   #删除名为yishooo的空目录
    rmdir -p yishooo/test   #删除yishooo目录中名为test的子目录,若test目录删除后yishooo目录变为空目录,则也被删除
    rmdir yishooo*   #删除名称以yishooo开始的空目录
*: 是一个通配符,代表任意字符; 
rmdir  yishooo* : 删除以yishooo开头的目录
rmdir  *yishooo : 删除以yishooo结尾的目录
3.2.8 rm
#作用: 删除文件或者目录
#语法: 
	rm [-rf] name

#说明: 
    -r: 将目录及目录中所有文件(目录)逐一删除,即递归删除
    -f: 无需确认,直接删除
	
#举例: 
    rm -r yishooo/     #删除名为yishooo的目录和目录中所有文件,删除前需确认
    rm -rf yishooo/    #无需确认,直接删除名为yishooo的目录和目录中所有文件
    rm -f hello.txt   #无需确认,直接删除hello.txt文件
#注意:
	rm -rf /*          #自杀的命令,慎用
	rm -rf ./*         #删除当前目录中的所有内容,慎用

注意: 对于 rm -rf xxx 这样的指令,在执行的时候,一定要慎重,确认无误后再进行删除,避免误删。

3.3 拷贝移动命令

3.3.1 cp
#作用: 用于复制文件或目录
#语法: 
	cp [-r] source dest

#说明: 
	-r: 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件

#举例: 
    cp hello.txt yishooo/            #将hello.txt复制到yishooo目录中
    cp hello.txt ./hi.txt           #将hello.txt复制到当前目录,并改名为hi.txt
    cp -r yishooo/ ./zhangsan/    	#将yishooo目录和目录下所有文件复制到zhangsan目录下
    cp -r yishooo/* ./zhangsan/ 	 	#将yishooo目录下所有文件复制到zhangsan目录下

如果拷贝的内容是目录,需要加上参数 -r

3.3.2 mv
#作用: 为文件或目录改名、或将文件或目录移动到其它位置
#语法: 
	mv source dest

#举例: 
    mv hello.txt hi.txt                 #将hello.txt改名为hi.txt
    mv hi.txt yishooo/                  #将文件hi.txt移动到yishooo目录中
    mv hi.txt yishooo/hello.txt   		#将hi.txt移动到yishooo目录中,并改名为hello.txt
    mv zhangsan/ yishooo/                 #如果yishooo目录不存在,将zhangsan目录改名为yishooo;如果yishooo目录存在,将zhangsan目录移动到yishooo目录中

操作示例:

mv 命令既能够改名,又可以移动,具体是改名还是移动,系统会根据输入的参数进行判定(如果第二个参数dest是一个已存在的目录,将执行移动操作,其他情况都是改名)

3.4 打包压缩命令

#作用: 对文件进行打包、解包、压缩、解压
#语法: 
	tar  [-zcxvf]  fileName  [files]
    #包文件后缀为.tar表示只是完成了打包,并没有压缩
    #包文件后缀为.tar.gz表示打包的同时还进行了压缩

#说明:
    -z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
    -c: c代表的是create,即创建新的包文件
    -x: x代表的是extract,实现从包文件中还原文件
    -v: v代表的是verbose,显示命令的执行过程
    -f: f代表的是file,用于指定包文件的名称
	-t: t代表列出包文件或者压缩包文件中的内容
#举例:
    #打包
        tar -cvf hello.tar ./*		  		#将当前目录下所有文件打包,打包后的文件名为hello.tar
        tar -zcvf hello.tar.gz ./*		  	#将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz
		
    #解包
        tar -xvf hello.tar		  			#将hello.tar文件进行解包,并将解包后的文件放在当前目录
        tar -zxvf hello.tar.gz		  		#将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
        tar -zxvf hello.tar.gz -C /usr/local     #将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录(-C指定解包路径)
	#查看包文件中的内容
		tar -tvf xxx.tar|xxx.tar.gz

3.5 文本编辑命令

文本编辑的命令,主要包含两个: vi 和 vim,两个命令的用法类似

3.5.1 vi&vim介绍

作用: vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本

语法: vi fileName

说明:
1). vim是从vi发展来的一个功能更加强大的文本编辑工具,编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用。
2). 要使用vim命令,需要自己完成安装。可以使用下面的命令来完成安装:yum install -y vim

3.5.2 vim使用

作用: 对文件内容进行编辑,vim其实就是一个文本编辑器
语法: vim fileName
说明:
1). 在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。
2). vim在进行文本编辑时共分为三种模式,分别是 命令模式(Command mode),插入模式(Insert mode)和底行模式(Last line mode)。这三种模式之间可以相互切换。在使用vim时一定要注意当前所处的是哪种模式。

三种模式:

  • 命令模式
    A. 命令模式下可以查看文件内容、移动光标(上下左右箭头、gg、G)
    B. 通过vim命令打开文件后,默认进入命令模式
    C. 另外两种模式需要首先进入命令模式,才能进入彼此

    命令模式指令含义
    gg定位到文本内容的第一行
    G定位到文本内容的最后一行
    dd删除光标所在行的数据
    ndd删除当前光标所在行及之后的n行数据
    u撤销操作
    shift+zz保存并退出
    i 或 a 或 o进入插入模式(i-光标前,a-光标后,I-行首,A-行尾)
  • 插入模式
    A. 插入模式下可以对文件内容进行编辑
    B. 在命令模式下按下[i,a,o]任意一个,可以进入插入模式。进入插入模式后,下方会出现【insert】字样
    C. 在插入模式下按下ESC键,回到命令模式

  • 底行模式
    A. 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
    B. 在命令模式下按下[:,/]任意一个,可以进入底行模式
    C. 通过/方式进入底行模式后,可以对文件内容进行查找
    D. 通过:方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)

    底行模式命令含义
    :wq保存并退出
    :q!不保存退出
    :set nu显示行号
    :set nonu取消行号显示
    :n定位到第n行, 如 :10 就是定位到第10行

请添加图片描述

3.6 查找命令

3.6.1 find
#作用: 在指定目录下查找文件
#语法: 
	find dirName -option fileName
#举例:
    find  .  –name "*.java"			#在当前目录及其子目录下查找.java结尾文件
    find  /itcast  -name "*.java"	#在/itcast目录及其子目录下查找.java结尾的文件
3.6.2 grep
#作用: 从指定文件中查找指定的文本内容
#语法: 
	grep word fileName
#举例: 
    grep Hello HelloWorld.java	#查找HelloWorld.java文件中出现的Hello字符串的位置
    grep hello *.java			#查找当前目录中所有.java结尾的文件中包含hello字符串的位置

3.7 查看系统进程

ps -ef #用于查看Linux系统的进程信息

3.8 管道机制

  • 语法
命令1 | 命令2 | ...
ps -ef | grep ssh #从ps -ef 的命令的执行结果中搜索包含ssh关键字的行
ps -ef | grep ssh | grep -v grep #从ps -ef 的命令的执行结果中搜索包含ssh关键字的行,不包含grep命令本身的信息

3.9 将内容输出到Linux终端

echo 文本

3.10 重定向输出

  • 作用

    将命令的执行结果输出到某个文件中

  • 语法

    • 命令 > 文件

      将命令的执行结果输出到某个文件中,会覆盖文件中原有内容

    • 命令 >> 文件

      将命令的执行结果输出到某个文件中,不会覆盖文件中原有内容,而是追加

4. 软件安装

4.1 软件安装方式

在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下:

安装方式特点
二进制发布包安装软件已经针对具体平台编译打包发布,只要解压,修改配置即可
rpm安装软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
yum安装一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题(安装过程需要联网)
源码编译安装软件以源码工程的形式发布,需要自己编译打包

4.2 安装JDK

通过第一种(二进制发布包)形式来安装JDK。

具体安装步骤如下:

1). 上传安装包

使用MobaXterm自带的上传工具将jdk的二进制发布包上传到Linux
请添加图片描述

由于上述在进行文件上传时,选择的上传目录为根目录 /,上传完毕后,执行指令 cd / 切换到根目录下,查看上传的安装包。

2). 解压安装包

执行如下指令,将上传上来的压缩包进行解压,并通过-C参数指定解压文件存放目录为 /usr/local。

tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local

3). 配置环境变量

使用vim命令修改/etc/profile文件,在文件末尾加入如下配置( $ 拼接变量名,Windows中以 “;” 分隔环境变量的各个路径, Linux中以 “:” 分隔)

export JAVA_HOME=/usr/local/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:$PATH

具体操作指令如下:

1). 编辑/etc/profile文件,进入命令模式
	vim /etc/profile

2). 在命令模式中,输入指令 G , 切换到文件最后
	G

3). 在命令模式中输入 i/a/o 进入插入模式,然后切换到文件最后一行
	i

4). 将上述的配置拷贝到文件中
	export JAVA_HOME=/usr/local/jdk1.8.0_171
	export PATH=$JAVA_HOME/bin:$PATH
	
5). 从插入模式,切换到指令模式
	ESC
	
6). 按:进入底行模式,然后输入wq,回车保存
	:wq

4). 重新加载profile文件

为了使更改的配置立即生效,需要重新加载profile文件,执行命令:

source /etc/profile

5). 检查安装是否成功

java -version

请添加图片描述

4.3 安装Tomcat

4.3.1 Tomcat安装

Tomcat的安装和上述JDK的安装采用相同的方式,都是使用二进制发布包的形式进行安装具体安装步骤如下:

1). 上传安装包

使用MobaXterm自带的上传工具将Tomcat的二进制发布包上传到Linux(与前面上传JDK安装包步骤一致)。

2). 解压安装包

将上传上来的安装包解压到指定目录/usr/local下,执行命令为

tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local

3). 启动Tomcat

进入Tomcat的bin目录启动服务。执行命令为:

cd /usr/local/apache-tomcat-7.0.57/

cd bin

sh startup.sh或者./startup.sh
4.3.2 Tomcat进程查看

将Tomcat启动完成之后,并不能知道Tomcat是否正常运行,验证Tomcat启动是否成功,有多种方式,常见的两种方式如下:

1). 查看启动日志

Tomcat的启动日志输出在Tomcat的安装目录下的logs目录中,Tomcat的启动及运行日志文件名为 catalina.out,所以查看Tomcat启动日志,主要可以通过两条指令,如下:

#1). 分页查询Tomcat的日志信息
more /usr/local/apache-tomcat-7.0.57/logs/catalina.out

#2). 查询日志文件尾部的50行记录
tail -50 /usr/local/apache-tomcat-7.0.57/logs/catalina.out

只要Tomcat在启动的过程中,日志输出没有报错,基本可以判定Tomcat启动成功了。

2). 查询系统进程

也可以通过Linux系统的查看系统进程的指令,来判定Tomcat进程是否存在,从而判定Tomcat是否启动。执行如下指令:

ps -ef|grep tomcat

请添加图片描述

说明:

  • ps命令是linux下非常强大的进程查看命令,通过ps -ef可以查看当前运行的所有进程的详细信息

  • “|” 在Linux中称为管道符,可以将前一个命令的结果输出给后一个命令作为输入

  • 使用ps命令查看进程时,经常配合管道符和查找命令 grep 一起使用,来查看特定进程

1.3.3 防火墙操作

前面已经通过日志的方式及查看系统进程的方式,验证了Tomcat服务已经正常启动,访问地址:http://172.25.77.222 :8080,发现是访问不到的。原因在于Linux系统的防火墙,系统安装完毕后,系统启动时,防火墙自动启动,防火墙拦截了所有端口的访问。

如何操作防火墙,具体指令如下:

操作指令备注
查看防火墙状态systemctl status firewalld / firewall-cmd --state
暂时关闭防火墙systemctl stop firewalld
永久关闭防火墙(禁用开机自启)systemctl disable firewalld下次启动,才生效
暂时开启防火墙systemctl start firewalld
永久开启防火墙(启用开机自启)systemctl enable firewalld下次启动,才生效
开放指定端口firewall-cmd --zone=public --add-port=8080/tcp --permanent需要重新加载生效
关闭指定端口firewall-cmd --zone=public --remove-port=8080/tcp --permanent需要重新加载生效
立即生效(重新加载)firewall-cmd --reload
查看开放端口firewall-cmd --zone=public --list-ports

注意:

​ A. systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作

​ B. firewall-cmd是Linux中专门 用于控制防火墙的命令

​ C. 为了保证系统安全,服务器的防火墙不建议关闭

要想访问到Tomcat,就可以采取两种类型的操作:

A. 关闭防火墙

执行指令 :

systemctl stop firewalld

关闭之后,再次访问Tomcat,就可以访问到了(已将JDK换为11,tomcat换为10版本)。
请添加图片描述

注意: 上面我们也提到了,直接关闭系统的防火墙,是不建议的,因为这样会造成系统不安全。

B. 开放Tomcat的端口号8080

执行指令:

①. 先开启系统防火墙
systemctl start firewalld

②. 再开放8080端口号
firewall-cmd --zone=public --add-port=8080/tcp --permanent

③. 重新加载防火墙
firewall-cmd --reload

执行上述的操作之后,就开放了当前系统中的8080端口号,再次访问Tomcat。
请添加图片描述

4.3.4 停止Tomcat

在Linux系统中,停止Tomcat服务的方式主要有两种:

1). 运行Tomcat提供的脚本文件

切换到bin目录,并执行如下指令,来停止Tomcat服务:

sh shutdown.sh
#or ./shutdown.sh

2). 结束Tomcat进程

可以先通过 ps -ef|grep tomcat 指令查看tomcat进程的信息,从进程信息中获取tomcat服务的进程号。然后通过kill -9 的形式,来杀死系统进程。

注意:kill命令是Linux提供的用于结束进程的命令,-9表示强制结束。

虽然上述讲解的两种方式,都可以停止Tomcat服务,但是推荐使用第一种方式(./shutdown.sh)执行脚本来关闭tomcat服务,如果通过第一种方式停止不了tomcat了,这个时候,我们可以考虑使用第二种方式,强制杀死进程。

4.4 安装MySQL

4.4.1 MySQL安装

对于MySQL数据库的安装,将要使用前面讲解的第二种安装方式rpm进行安装。

**RPM:**全称为 Red-Hat Package Manager,RPM软件包管理器,是红帽Linux用于管理和安装软件的工具。

通过rpm,进行MySQL数据库的安装,主要的步骤如下:

1). 检测当前系统是否安装过MySQL相关数据库

需要通过rpm相关指令,来查询当前系统中是否存在已安装的mysql软件包,执行指令如下:

rpm -qa							查询当前系统中安装的所有软件
rpm -qa | grep mysql			查询当前系统中安装的名称带mysql的软件
rpm -qa | grep mariadb			查询当前系统中安装的名称带mariadb的软件

通过rpm -qa 查询到系统通过rpm安装的所有软件,太多了,不方便查看,所以我们可以通过管道符 | 配合着grep进行过滤查询。

当前系统中存在mariadb数据库,是CentOS7中自带的,而这个数据库和MySQL数据库是冲突的,所以要想保证MySQL成功安装,需要卸载mariadb数据库。
请添加图片描述

2). 卸载现有的MySQL数据库

在rpm中,卸载软件的语法为:

rpm -e --nodeps  软件名称

可以通过如下指令,卸载 mariadb,具体指令为:

rpm -e --nodeps  mariadb-libs-5.5.60-1.el7_5.x86_64

请添加图片描述

3). 将资料中提供的MySQL安装包上传到Linux并解压

A. 上传MySQL安装包

B. 解压到/usr/local/mysql

执行如下指令:

mkdir /usr/local/mysql
tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql

4). 安装顺序安装rpm安装包

rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm

说明:

  • 因为rpm安装方式,是不会自动处理依赖关系的,需要我们自己处理,所以对于上面的rpm包的安装顺序不能随意修改。
  • 安装过程中提示缺少net-tools依赖,使用yum安装(yum是一种在线安装方式,需要保证联网)
  • 可以通过指令(yum update)升级现有软件及系统内核
4.4.2 MySQL启动

MySQL安装完成之后,会自动注册为系统的服务,服务名为mysqld。可以通过systemctl指令来查看mysql的状态、启动mysql、停止mysql。

systemctl status mysqld		查看mysql服务状态
systemctl start mysqld		启动mysql服务
systemctl stop mysqld		停止mysql服务

说明:

  • 可以设置开机时启动mysql服务,避免每次开机启动mysql。
  • 执行如下指令:
    • systemctl enable mysqld

可以通过如下两种方式,来判定mysql是否启动:

netstat -tunlp					查看已经启动的服务
netstat -tunlp | grep mysql		查看mysql的服务信息

ps –ef | grep mysql				查看mysql进程

请添加图片描述

备注:

A. netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

​ 参数说明:

​ -l或–listening:显示监控中的服务器的Socket;
​ -n或–numeric:直接使用ip地址,而不通过域名服务器;
​ -p或–programs:显示正在使用Socket的程序识别码和程序名称;
​ -t或–tcp:显示TCP传输协议的连线状况;
​ -u或–udp:显示UDP传输协议的连线状况;

B. ps命令用于查看Linux中的进程数据。

4.4.3 MySQL登录
4.4.3.1 查阅临时密码

MySQL启动起来之后,可以测试一下登录操作,但是要想登录MySQL,需要一个访问密码,而刚才在安装MySQL的过程中,并没有看到让我们设置访问密码,对于rpm安装的mysql,在mysql第一次启动时,会自动生成root用户的访问密码,并且输出在mysql的日志文件 /var/log/mysqld.log中,可以查看这份日志文件,从而获取到访问密码。

可以执行如下指令:

cat /var/log/mysqld.log | grep password

请添加图片描述

4.4.3.2 登录MySQL

获取到root用户的临时密码之后,就可以登录mysql数据库,修改root的密码,为root设置一个新的密码。并且还需要开启root用户远程访问该数据库的权限,这样就可以在windows上来访问这台MySQL数据库。

执行如下指令:

①. 登录mysql(复制日志中的临时密码登录)
	mysql -uroot -p								

②. 修改密码
    set global validate_password_length=4;			设置密码长度最低位数
    set global validate_password_policy=LOW;		设置密码安全等级低,便于密码可以修改成root
    set password = password('root');				设置密码为root
    
③. 开启访问权限
grant all on *.* to 'root'@'%' identified by 'root';
flush privileges;

操作完上述的指令之后,数据库root用户的密码以及远程访问就配置好了,可以执行exit退出mysql,再次通过新的密码进行登录。

想用windows系统的工具连接linux虚拟机的mysql需要先开放3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

请添加图片描述

linux中mysql可以登录,而windows远程连接却被拒绝,查询linux中user的host为localhost和%的身份认证经编码后的值并不相同,修改%对应的值为localhost的值,并重启mysql服务,则可连接。

service mysqld restart;

4.5 安装lrzsz

lrzsz 是用于在Linux系统中文件上传下载的软件。Linux的远程连接工具有很多,还有很多的远程连接工具并没有上传下载的功能,这个时候就需要依赖于lrzsz这个软件了。

对于lrzsz的安装,需要通过第三种软件安装方式yum来进行安装。这里,先对yum做一个简单介绍。

Yum: (Yellow dog Updater,Modified),是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

安装lrzsz的步骤如下:

1). 搜索lrzsz安装包

yum list lrzsz

2). 在线安装lrzsz

yum install lrzsz.x86_64

3). 测试

在命令行中输入 rz , 就会自动打开一个文件选择的窗口,然后选择要上传的文件。

4.6 yum拓展知识:

​ 1). 如果在不更改软件来源的情况下,是需要联网才能使用yum的,那么安装的软件是从哪儿下载的呢,这里就涉及到一个概念: yum源。

​ 2). 可以通过一个指令,来检查当前的yum源

yum repolist

请添加图片描述

3). 网络 yum 源配置文件位于 /etc/yum.repos.d/ 目录下,文件扩展名为"*.repo"
请添加图片描述

可以看到,该目录下有 7 个 yum 配置文件,通常情况下 CentOS-Base.repo 文件生效。

4). 如果不是阿里云的源可以按如下操作添加阿里云yum源

​ A. 先通过 yum install wget ,安装wget命令

​ B. 备份默认的其他yum源,执行指令 :

​ 切换目录: cd /etc/yum.repos.d/

​ 创建备份目录: mkdir bak

​ 移动现有的yum源文件到bak: mv *.repo bak/

​ C. 下载阿里云的yum源

​ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

​ D. 执行命令,重新生成cache

​ yum clean all

​ yum makecache

​ E. 再次查看yum源

4.7 wget使用

wget是Linux中的下载工具。安装命令如下:

yum install -y wget

使用方式:wget 下载地址

wget www.baidu.com #将百度的首页界面下载下来,即index.html

下载后会以原始文件进行保存,保存到当前目录。也可将文件下载到指定目录,以指定的名称进行存储。

wget -O 存储的目录/文件名 下载地址
wget -O yishooo/baidu.html www.baidu.com

4.8 redis安装

  • redis是c语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc 需要输入以下命令

    • yum -y install gcc
      
  • 创建redis安装目录,并进入

    • mkdir /usr/local/redis
      cd /usr/local/redis
      
  • 访问 redis 查看版本,用wget下载

    • wget http://download.redis.io/releases/redis-7.0.11.tar.gz 
      
  • 解压下载包并删除下载包

    • tar -zvxf redis-7.0.11.tar.gz 
      rm -rf redis-7.0.11.tar.gz 
      
  • 进入解压文件夹

    • cd redis-7.0.11
      
  • 编译(在redis-7.0.11目录下执行编译,控制台会输出各种编译过程中输出的内容)

    • make
      

      编译和安装成功之后会均会出现“It’s a good idea to run ‘make test’”的提示。

  • 安装(关键字 PREFIX= 这个关键字的作用是编译的时候用于指定程序存放的路径。)

    • make PREFIX=/usr/local/redis install
      

      不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis 即可删除redis。

  • 启动redis

    • 在目录/usr/local/redis-7.0.11输入如下命名(后台进程方式)

      • ./bin/redis-server& ./redis.conf
        
    • 显示启动方式(配置文件设置了daemonize属性为yes则跟后台进程方式启动其实一样)

      • ./bin/redis-server ./redis.conf
        
    • 配置redis.conf文件拷贝备份

      • cp redis.conf redis.conf.bak
        
    • 修改配置文件(重要的配置项如下图)
      请添加图片描述

      • vim redis.conf
        
      • 将 bind 127.0.0.1 -::1 替换为 bind 0.0.0.0

      • 将 daemonize on 替换成 daemonize yes

      • 设置数据库密码 requirepass 123456

  • 查看redis是否正在运行方式

    • 采取查看进程方式

      • ps -aux | grep redis
        ps -ef | grep redis
        
      • 详细属性
        请添加图片描述
        请添加图片描述

    • 采取端口监听查看方式

      • netstat -lanp | grep 6379
        
  • 设置外部连接

    • 防火墙查看firewall状态

      • firewall-cmd --state
        
    • 添加开放端口

      • firewall-cmd --zone=public --add-port=6379/tcp --permanent
        
    • 查看防火墙开放端口

      • firewall-cmd --zone=public --list-ports
        
    • 重启防火墙(修改配置后要重启防火墙)

      • firewall-cmd --reload
        
    • 外部访问
      请添加图片描述
      请添加图片描述

  • 设置开机自启

    • 创建开机自启脚本

      • cd /etc/systemd/system #进入系统路径
        vim redis.service #新建文件,并填充以下内容
        
      • [Unit]
        Description=redis-server
        After=network.target
        
        [Service]
        Type=forking
        ExecStart=/usr/local/bin/redis-server /usr/local/redis/redis-7.0.11/redis.conf  #注意启动路径与make install是否设置路径有关
        PrivateTmp=true
        
        [Install]
        WantedBy=multi-user.target
        
    • 设置开机自启动

      • systemctl enable reids
        
    • 查看服务当前状态

      • systemctl status reids.service
        
    • 启动nginx

      • systemctl start reids.service
        
    • 重启服务

      • systemctl restart reids.service
        
    • 停止开机自启

      • systemctl disable redis.service
        

4.9 nginx安装

  • 安装依赖包

    • yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
      
  • 创建nginx安装目录,并进入

    • mkdir /usr/local/nginx
      cd /usr/local/nginx
      
  • 访问 nginx 查看版本,用wget下载

    • wget http://nginx.org/download/nginx-1.23.2.tar.gz  
      
  • 解压下载包

    • tar -xvf nginx-1.23.2.tar.gz  
      
  • 删除下载包

    • rm -rf nginx-1.23.2.tar.gz  
      
  • 进入解压文件夹

    • cd nginx-1.23.2
      
  • 如果后期需安装ssl证书 需添加两个模块

    • ./configure --with-http_stub_status_module --with-http_ssl_module
      
  • 执行make和make install命令

    • make & make install
      
  • 修改配置

    • vim /usr/local/nginx/conf/nginx.conf
      

请添加图片描述

  • 启动nginx

    • cd /usr/local/nginx/sbin
      ./nginx
      
  • 查询运行状态

    • ps -ef | grep nginx
      

    请添加图片描述

  • 设置外部访问

    • 防火墙查看firewall状态

      • firewall-cmd --state
        
    • 添加开放端口

      • firewall-cmd --zone=public --add-port=80/tcp --permanent
        
    • 查看防火墙开放端口

      • firewall-cmd --zone=public --list-ports
        
    • 重启防火墙(修改配置后要重启防火墙)

      • firewall-cmd --reload
        
    • 外部访问
      请添加图片描述

  • 设置开机自启

    • 创建开机自启脚本

      • cd /etc/systemd/system
        
      • vim nginx.service
        
      • [Unit]
        Description=nginx service
        After=network.target
         
        [Service]
        Type=forking
        ExecStart=/usr/local/nginx/sbin/nginx
        ExecReload=/usr/local/nginx/sbin/nginx -s reload
        ExecStop=/usr/local/nginx/sbin/nginx -s quit
        PrivateTmp=true
         
        [Install]
        WantedBy=multi-user.target
        
    • 设置开机自启动

      • systemctl enable nginx
        
    • 查看服务当前状态

      • systemctl status nginx.service
        
    • 启动nginx

      • systemctl start nginx.service
        
    • 重启服务

      • systemctl restart nginx.service
        
    • 停止开机自启

      • systemctl disable nginx.service
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值