Linux
1、初始Linux
1.1、什么是Linux
Linux,全称GNU(自由软件)/Linux,其内核最初是由芬兰人林纳斯·托瓦兹于1991年10月5日首次发布
Linux是一个开源、免费的操作系统,是一个基于POSIX(可移植操作系统接口)和多用户、多任务、支持多线程和多CPU的操作系统
Linux能运行主要的UNIX工具软件应用程序和网络协议(它支持32位和64位硬件)。Linux 继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统
Linux优点:
- 开源、免费
- 安全、高效、稳定
- 处理高并发十分强悍
Linux吉祥物
1.2、Linux主要发行版本
Linux 的发行版本可以大体分为两类:
- 商业公司维护的发行版本,以著名的 Red Hat(红帽) 为代表;
- 社区组织维护的发行版本,以 Debian(蝶变) 为代表。
较为知名的发行版有:
- Ubuntu:以桌面应用为主
- RedHat:应用最广泛,收费
- CentOS:RedHat的社区版,免费
- Fedora:功能完备、更新快速,免费
- openSUSE、对个人完全免费、图形界面华丽
- 红旗 Linux(国内):北京中科红旗软件技术有限公司开发
Linux应用领域
-
企业级服务器的应用
- Linux在服务器领域的应用是最强的。随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。此外,Linux免费、稳定、高效等特点在这里得到了很好的体现,近些年来Linux服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛
-
嵌入式应用领域
- Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目前Linux广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上的。目前,Android已经成为全球最流行的智能手机操作系统,据2015年权威部门最新统计,Android操作系统的全球市场份额已达84.6%
-
个人桌面应用领域
- 近年来,特别在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗Linux、深度Linux等系统软件厂商都推出的Linux桌面操作系统,目前已经在政府、企业、OEM等领域得到了广泛应用。另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已经积累了大量社区用户。但是,从系统的整体功能、性能来看,Linux桌面系统与Windows系列相比还有一定的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面
1.3、Linux和Unix的关系
1.4、伟大的GNU计划
自由软件运动
在自由的时代,用户应该免费享有对软件源代码阅读、修改的权利
软件公司可以靠提供服务和训练获得盈利
GUN计划
GNU全拼为“GNU is Not Unix”的缩写,是一名大神搞的一个操作系统开源项目,原本是因为Unix付费,想搞出一个类似Unix的系统,但这位大神精力有限,一直没有搞出合适的,在此开源项目下成立了FSF自由软件基金会,然后就有了最流行的一个协议GPL。
但越来越多的开源软件项目使用GPL协议,使整个GNU项目逐渐丰富,但就差一个关键部分,即系统内核。
Linus的Linux操作系统(响应GNU计划)
GNU项目于1983年发起,耗费近十年时间,才有了合适的系统内核,就在此时,Linux创始人Linus使用GPL协议发布Linux系统,这无疑也让GNU项目真正完整。
GNU/Linux
在GNU项目完整后,也就有了我们今天所了解、使用的Linux系统,全称其实为GNU/Linux,但Linux只是系统内核,GNU这个开源软件才是让Linux风靡世界的背后英雄,所以一定要记住,Linux并不只是Linus开发的类似Unix的系统内核,而是包括了大量GNU开源软件的一个集合体
1.5、Linux和window的对比
2、环境搭建
2.1、安装方式
- 物理机安装:直接将操作系统安装到服务器硬件上
- 虚拟机安装:通过虚拟机软件安装
虚拟机(Virtual Machine) 指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统
安装CentOS
-
安装虚拟机(使用VMware Workstation)
-
安装完成打开软件,显示如下界面:
-
在虚拟机上安装CentOS7。需要到阿里云镜像站下载Centos7.iso镜像
-
点击屏幕进入虚拟机,
Ctrl+Alt
可以将聚焦退出虚拟机 -
开机显示界面
-
至此,Linux环境搭建完毕!
2.2、配置指定IP
ifconfig
命令查看网络配置
作用:指定远程服务器静态(固定)IP
直接修改配置文件来指定IP,并可以连接到外网,编辑 vim /etc/sysconfig/network-scripts/ifcfg-ens33
将ip地址配置为静态的,ip地址为192.168.223.110
可到虚拟机编辑菜单栏中的虚拟网络编辑器NAT设置中查看自己具体IP
# 设置ip为静态的
BOOTPROTO="static"
#IP地址
IPADDR=192.168.200.110
#网关
GATEWAY=192.168.200.2
#域名解析器
DNS1=192.168.200.2
重启网络服务或者重启系统生效!(一定不要忘记)
systemctl restart network
、reboot
2.3、配置主机名
查看主机名:cat /etc/hostname
修改主机名:hostnamectl set-hostname 主机名称
配置IP地址和主机名映射关系
vim /etc/hosts
# 配置映射关系(可配置多个)
192.168.223.110 hadoop110
# 同时还要修改window中的host文件
C:\Windows\System32\drivers\etc\hosts
192.168.223.110 hadoop110
2.4、购买云服务器
云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务,可以理解为是一个远程电脑
- 购买完成之后,获取服务器的ip地址,重置服务器密码,就可以远程登录了
- 下载xShell(22端口)工具,进行远程连接使用,xftp(21端口),进行文件上传
注:需要开启端口映射,在阿里云安全组面板开启对应出入规则,否则会被拦截
2.5、安装SSH连接工具
SSH (Secure Shell) ,建立在应用层基础上的安全协议
常用的SSH连接工具有:putty、xshell、finalshell等
通过SSH连接工具就可以实现从本地连接到远程的Linux服务器
输入自己对应的用户名密码,登录成功出现以下界面即可
终端里面Ctrl+鼠标滚轮
,放大或缩小字体
上传文件使用xFtp
如果需要将本地文件、jar包等一些文件放到linux下,只需要从本地窗口拖拽过去即可
至此,远程环境安装完毕!
3、Linux入门
3.1、基础常识
开机会启动许多程序。它们在Windows叫做"服务" ( service ) ,在Linux就叫做"守护进程" ( daemon )
注:最高权限账户为root
,可以操作一切
关机
linux的应用领域大多用在服务器上,一般很少进行关机操作,特殊情况下会进行关机操作
关机指令为:shutdown
sync # 将数据由内存同步到硬盘中
shutdown # 关机指令
shutdown -h now # 立刻关机
shutdown -h 06:06 # 系统会在今天06:06关机
shutdown -r now # 系统立刻重启
shutdown -r +10 # 系统十分钟后重启
reboot # 重启,等同于 shutdow -r now
halt # 关闭系统,等同于shutdown -h now 和poweroff
注:在linux中没有消息就是最好的消息
系统目录结构
一句经典的话:在Linux世界里,一切皆文件
,文件是按名存取
相关信息的集合
文件:读写操作(查看、创建、删除、移动、复制、编辑)。权限:用户、用户组。系统:磁盘、进程
3.2、目录结构
根目录 /
,所有的文件都挂载在这个节点下,目录结构像一颗倒挂的树
树桩目录结构:
以下是对这些目录的解释:
-
bin:存放二进制可执行文件
-
boot:存放系统引导时使用的各种文件
-
dev:存放设备文件
-
etc:存放系统配置文件
-
home:存放系统用户的文件
-
lib:存放程序运行所需的共享库和内核模块
-
opt:额外安装的可选应用程序包所放置的位置
-
root:超级用户的目录
-
sbin:存放二进制可执行文件,只有root用户才可访问
-
tmp:存放临时文件
-
usr:存放系统应用程序
-
var:存放运行时需要改变数据的文件,例如日志文件
4、常用命令
4.1、目录管理
- 绝对路径:路径的写法,由根目录 / 写起,例如: /usr/local 这个目录
- 相对路径:路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd …/man 这就是相对路径的写法
cd # 切换目录命令
cd .. # 返回上一级目录
pwd # 显示当前所在的目录
~
:表示用户的home目录.
:表示当前所在目录..
:表示当前目录的上一层目录
注:在执行Linux命令时,提示信息如果显示为乱码,这是由于编码问题导致,只需要修改Linux的编码即可,命令如下:
echo 'LANG="en_US.UTF-8"' >> /etc/profile
source /etc/profile
文件目录命令
- ls(list files):显示指定目录下的内容
- cd(change directory):切换目录
- pwd(print work directory):显示当前所在目录
- mkdir(make directory):创建目录,添加
-p
参数可创建多级目录 - rmdir(remove directory):删除空目录
- rm(remove):删除文件或目录,添加
-rf
参数递归删除且不提示- -f :就是
force
的意思,忽略不存在的文件,不会出现警告信息; - -r :递归删除目录!这是非常危险的选项!!!
- -f :就是
rm -rf / # 自杀操作,系统所有文件均被删除
ls 显示指定目录下的内容
-a参数:all,查看全部的文件及目录,(以.开头的隐藏文件也会列出)
-l参数:列出所有文件,包含文件的属性和权限及详细信息,不包括隐藏文件
mkdir 创建目录
mkdir lesson # 创建目录
mkdir -p lesson/web/chapter01/html # 创建多级目录
mkdir -p /tmp/course/{Java/{j01,j02},Web/{wb01,wb02}} # 一次性创建多个多级目录
rmdir 删除目录
rmdir 只能删除空的目录,如果下面存在文件,需要先删除文件,递归删除多个目录添加 -p
参数即可
文件查看命令
- cat:从第一行开始显示文件所有内容(一般用来读文本内容较小的文件或者配置文件),添加
-n
参数显示行号 - tac:从最后一行开始显示文件所有内容
- more:以分页的形式显示文件内容(空格代表下一屏,enter代表向下看一行,b键代表上一屏,q或者ctrl+c退出more)
- less 与 more 类似,但是比 more 功能更强大(空格代表翻页,上下键代表翻动页面,退出
q
命名,查找字符串/
要查询的字符向下查询,?
要查询的字符向上查询,n
继续搜寻下一个,N
继续搜寻上一个) - head:查看文件开头的内容,通过
-n
参数控制显示几行 - tail:查看文件末尾的内容,加上
-f
参数动态读取文件末尾内容并显示,通常用于查看日志
拷贝移动命令
- cp(copy file):复制文件或目录,添加
-r
参数,如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件 - mv(move file):移动文件与目录,或修改文件与目录的名称
cp -r /tmp/course/Java/ /usr/local/
mv /usr/local/Java/ /opt/environment/java
注:如果第二个参数的目录或文件不存在,则执行重命名操作,反之则执行对应操作
打包压缩命令
作用:对文件进行打包、解包、压缩、解压
语法:tar [-zx/cvf] fileName [files]
- 包文件后缀为
.tar
表示只是完成了打包,并没有压缩 - 包文件后缀为
.tar.gz
表示打包的同时还进行了压缩
# 打包
tar -cvf poem.tar poems/
# 解包
tar -xvf poem.tar
# 打包并压缩
tar -zcvf study.tar.gz articles/
# 解压缩并存放指定位置
tar -zxvf study.tar.gz -C /tmp/
选项说明:
- -z:z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
- -c:c代表的是create,即创建新的包文件
- -x:x代表的是extract,实现从包文件中还原文件
- -v:v代表的是verbose,显示命令的执行过程
- -f:f代表的是file,用于指定包文件的名称
文本编辑命令vi/vim
作用:vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本
语法:vi fileName
vim是从vi发展来的一个功能更加强大的文本编辑工具,在编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用
要使用vim命令,需要我们自己完成安装。可以使用下面的命令来完成安装:yum install vim
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。这三种模式之间可以相互切换。我们在使用vim时一定要注意我们当前所处的模式
- 命令模式:通过vim命令打开文件,默认进入命令模式
- 命令模式下可以查看文件内容、移动光标(上下左右箭头、gg:开头、G:末尾、dd:删除光标所在行数据、ndd:删除指定行、u撤销操作)
- 插入模式:此模式下可以对文件内容进行编辑
- 在命令模式下按下
[i,a,o]
任意一个,可以进入插入模式。进入插入模式后,下方会出现[insert] 字样
- 在命令模式下按下
- 在插入模式下按下ESC键,回到命令模式
- 底行模式:底行模式下可以通过命令对文件内容进行查找
- 在命令模式下按下
[:,/]
任意一个,可以进入底行模式。 - 通过
:
方式进入底行模式后,可以输入wq (保存并退出)、q! (不保存退出) 、set nu (显示行号)、set nonu(取消显示行号)、n(定位到第n行)
重定向符号
覆盖重定向:>
追加重定向:>>
echo '111111' > a.txt
echo '222222' >> a.txt
echo '333333' >> a.txt
查找命令
- find:在指定目录中查找文件
- 语法:find dirName -option fileName
- grep:在指定文件中查找指定文本内容
- 语法:grep word fileName
find . -name "*.log" # 查找当前目录下以.log结尾的文件
grep "望尽天涯路" a.txt
grep -B 1 -A 2 "望尽天涯路" a.txt # 查询符合条件的文本前1行数据和后2行数据
4.2、基本属性
Linux 系统是一种典型的多用户操作系统,不同的用户处于不同的地位,拥有不同的权限,为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限:
- chown (change owner) : 修改所属用户与组
- chmod (change mode) : 修改用户的权限
在 Linux 中第一个字符代表这个文件是目录 || 文件 || 链接文件
- 当为 d 则是目录
- 当为 - 则是文件
- 若是 l 则表示为链接文档(link file)
接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已
每个文件的属性由左边第一部分的 10 个字符来确定(如下图)
从左至右用 0-9 这些数字来表示
第 0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所属的用户组)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限
只有文件的所有者和超级用户可以修改文件或目录的权限
其中:
第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限
第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限
第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限
修改文件属性
1、chown:更改文件属主,也可以同时更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
2、chmod:更改文件9个属性
Linux文件属性有两种设置方法,一种是数字(较为常用),一种是符号。
Linux 文件的基本权限就有九个,分别是 user/group/others(拥有者/所属组/其他人) 三种身份各有自己的 read/write/execute 权限
先复习一下刚刚上面提到的数据:文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限
- r:4
- w:2
- x:1
chmod 777 # 给该文件赋予所有用户可读可写可执行
4、账号管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
- 用户账号的添加、删除与修改
- 用户口令的管理
- 用户组的管理
用户账号的管理
用户账号的管理工作主要涉及到用户账号的添加、修改和删除
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源
- -c comment 指定一段注释性描述
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
- -g 用户组 指定用户所属的用户组
- -G 用户组,用户组 指定用户所属的附加组
- -s Shell文件 指定用户的登录Shell
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
useradd
添加用户useradd -选项 用户名
-m:自动创建这个用户的主目录/home/lin
useradd -m lin # 创建一个用户
userdel
删除用户userdel 选项 用户名
userdel -r lin # 删除用户的时候将它的目录页一起删除
-r,它的作用是把用户的主目录一起删除
usermod
修改用户usermod 选项 用户名
usermod -d /home/user lin
修改完成之后查看配置文件
cat /etc/passwd
cat /etc/passwd | grep lin # 查看指定用户
切换用户
root用户
切换用户命令:su username
从普通用户切换到root用户,命令:sudo su
在终端输入exit
或logout
或使用快捷方式ctrl+d
,可以退回到原来用户,其实ctrl+d也是执行的exit命令
#
代表超级用户,也就是root用户
$
代表普通用户
修改主机名,临时的
设置用户密码
一般通过root创建用户的时候,配置密码
如果是超级用户的话:
passwd username:
New password:
Retype new password:
注:Linux中输入密码是不会显示的,正常输入即可
锁定账户
passwd -l zhao # 锁定之后该用户就不能登录了
passwd -u zhao # 解除账户锁定
5、用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新
创建一个用户组
groupadd
groupadd xiaozhang
cat /etc/group
创建完用户组可以得到一个组的id,该id可以指定!-g 521
,如果不指定就是自增1
删除一个用户组
groupdel
groupdel xiaolin
cat /etc/group # 查看全部用户组
cat /etc/group | grep xiaozhang # 查看指定的用户组
修改用户组的权限信息和名称
groupmod
groupmod -g 666 -n xiaolin xiaozhang
/etc/passwd
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
这个文件中的每一行都代表一个用户,可以从这里看出这个用户的主目录在那里,属于哪一个组
登录口令:把真正的加密后的用户口令存放到/etc/shadow
文件中,以此来保证密码的安全性
用户组的所有信息存放在/etc/group
文件中
6、磁盘管理
Linux 磁盘管理好坏直接关系到整个系统的性能问题
Linux 磁盘管理常用三个命令为 df、du
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息,相当于window中的此电脑界面显示的信息
Linux du 命令也是查看使用空间的,但是与 df
命令不同的是 Linux du
命令是对文件和目录磁盘使用的空间的查看
7、软件环境安装
7.1、软件安装方式
在Linux系统中,安装软件的方式主要有四种,该四种安装方式的特点如下:
- 二进制发布包安装:软件已经针对具体平台编译打包发布,只要解压,修改配置即可
- rpm安装:软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
- yum安装:一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题
- 源码编译安装:软件以源码工程的形式发布,需要自己编译打包
7.2、JDK 安装
JDK
是开发Java程序的必要环境
清理环境
先删除系统自带的JDK环境,检查一下系统中的jdk版本
java -version
显示:
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
检测jdk安装包
rpm -qa | grep java
显示:
java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2016g-2.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
卸载openjdk
yum -y remove *openjdk*
之后再次输入rpm -qa | grep java
查看卸载情况:
[root@Hadoop110 environment]# rpm -qa | grep java
python-javapackages-3.4.1-11.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
安装
-
首先到oracle官网上下载你需要的jdk版本,下载完成之后将需要安装的jdk安装包放到Linux系统指定的文件夹下
-
解压安装包,命令为
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local
-
配置环境变量,使用vim命令修改
/etc/profile
文件,在文件末尾加入如下配置,在阅读模式按大写G进入最末行export JAVA_HOME=/usr/local/jdk-1.8 export PATH=$PATH:$JAVA_HOME/bin
-
重新加载profile文件,使更改的配置立即生效,命令为
source /etc/profile
-
检查安装是否成功,命令为
java -version
至此,整个安装过程完毕!
7.3、Tomcat 安装
-
下载Tomcat,官网下载即可 tomcat9,使用FinalShell自带的上传工具将Tomcat的二进制发布包上传到Linux
-
解压安装包,命令为
tar -zxvf apache-tomcat-9.0.55.tar.gz -C /usr/local
-
进入Tomcat的bin目录启动服务,命令为
sh startup.sh
或者./startup.sh
# 执行 ./startup.sh # 停止 ./shutdown.sh
验证Tomcat启动是否成功,有多种方式:
-
查看启动日志
- more /use/local/apache-tomcat-9.0.55/logs/catalina.out
- tail -50 /use/local/apache-tomcat-9.0.55/logs/catalina.out
-
查看进程:ps -ef | grep tomcat
- ps命令是linux下非常强大的进程查看命令,通过ps -ef可以查看当前运行的所有进程的详细信息,"|”在Linux中称为管道符,可以将前一个命令的结果输出给后一个命令作为输入
- 使用ps命令查看进程时,经常配合管道符和查找命令grep一起使用,来查看特定进程
停止Tomcat服务的方式:
- 运行Tomcat的bin目录中提供的停止服务的脚本文件:
sh shutdown.sh
或者./shutdown.sh
- 结束Tomcat进程,查看Tomcat进程,从而获得进程id,
ps -ef | grep tomcat
- 执行命令结束进程:
kill -9 进程id
- kill命令是Linux提供的用于结束进程的命令,-9表示强制结束
注:也可以在/etc/profile
文件中配置Tomcat环境变量,这样就不需要每次进入到bin目录去执行命令了!
防火墙相关操作
- 查看防火墙状态(systemctl status firewalld、firewall-cmd --state)
- 暂时关闭防火墙(systemctl stop firewalld)
- 永久关闭防火墙(systemctl disable firewalld)
- 开启防火墙(systemctl start firewalld)
- 开放指定端口(firewall-cmd --add-port=8080/tcp --permanent)
- 关闭指定端口(firewall-cmd --remove-port=8080/tcp --permanent)
- 立即生效(firewall-cmd --reload)
- 查看开放的端口(firewall-cmd --list-ports)
开启Tomcat8080端口:firewall-cmd --add-port=8080/tcp --permanent
使开放的端口立即生效:firewall-cmd --reload
查看已经开放的端口:firewall-cmd --list-ports
在windows通过浏览器访问下我们的Tomcat服务器
# 开启防火墙端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent
# 重启防火墙
systemctl restart firewalld
# 查看所有开启的端口
firewall-cmd --list-ports
# 命令含义:
--zone # 作用域
-add-port=8081/tcp # 添加端口,格式为:端口/通讯协议
--permanent # 永久生效,没有此参数重启后失效
注:
- systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作
- firewall-cmd是Linux中专门用于控制防火墙的命令
- 为了保证系统的安全性,生产服务器的防火墙不建议关闭
7.4、MySQL 安装
清理环境
准备工作:卸载Linux系统中自带的mysql/mariadb
安装包,否则MYSQL会安装失败!
rpm -qa | grep -i mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
从根目录查找所有关于MySQL的目录,并使用rm -rf 文件夹名
删除
find / -name mysql
删除my.cnf
rm -rf /etc/my.cnf
安装
获取安装包,官网访问地址:MySQL官网
-
将下载好的安装包上传到Linux服务器中,
mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
-
解压安装包到指定目录,并且改名为:mysql-5.7.43
tar -zxvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ cd /usr/local/ mv mysql-5.7.43-linux-glibc2.12-x86_64/ mysql-5.7.43
-
配置环境变量。(编辑/etc/profile,追加其内容),编辑完不要忘记执行:
source /etc/profile
export MYSQL_HOME=/usr/local/mysql-5.7.43 export PATH=$PATH:$MYSQL_HOME/bin
-
创建MySQL用户和用户组
# 查看mysql用户和组是否存在,没有则创建 cat /etc/group|grep mysql # 创建一个用户组,组名为mysql groupadd mysql # 创建一个系统用户mysql,并归属于用户组 mysql useradd -r -g mysql mysql
安装数据库,并编写配置文件
首先进入到mysql-5.7目录下,创建data目录,将mysql-5.7目录的所有者及所属组改为mysql,此处目录修改为自己的
cd /usr/local/mysql-5.7.43/
mkdir data
chown -R mysql.mysql /usr/local/mysql-5.7.43/
进入到support-files目录下创建my_default.cnf
配置文件并进行配置
cd support-files/
vim my_default.cnf
此处只进行了简单的配置,目录一定记得要改成自己的
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql-5.7.43
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
datadir=/usr/local/mysql-5.7.43/data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 日志存放目录
log-error=/usr/local/mysql-5.7.43/data/mysqld.log
pid-file=/usr/local/mysql-5.7.43/mysqld.pid
将此文件拷贝到 /etc/my.cnf
cp my_default.cnf /etc/my.cnf
在mysql-5.7目录下:初始化MySQL(目录还是要修改为自己的)
mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.43/ --datadir=/usr/local/mysql-5.7.43/data/
这里可能会报错,如果报错,执行以下命令
yum install libaio
再次执行初始化命令
mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.43/ --datadir=/usr/local/mysql-5.7.43/data/
查看日志,获取初始密码(改成自己的目录),root@localhost:
后面的是默认初始密码
cat /usr/local/mysql-5.7.43/data/mysqld.log
把启动脚本放到开机目录下
cp support-files/mysql.server /etc/init.d/mysql
启动MySQL
service mysql start
# 重启
service mysql restart
配置完环境变量以后,可以在任意位置进入mysql
mysql -u root -p
输入刚才日志文件的临时密码
配置MYSQL的root用户和密码,授权远程访问
# 修改root账户密码
alter user 'root'@'localhost' identified with mysql_native_password by 'admin';
# 创建一个账号,并给予权限
create user 'root'@'%' identified by 'admin';
grant all privileges on *.* to root@'%';
flush privileges;
开放防火墙端口3306,可以让外部连接访问
firewall-cmd --zone=public --add-port=3306/tcp --permanent
刷新
firewall-cmd --reload
远程连接测试!访问成功
7.5、Redis 安装
- 上传redis的源码包:
redis-6.2.6.tar.gz
- 安装C语言的编译环境,gcc指令,执行命令:
yum install -y gcc-c++
- 解压源码包到当前目录:
tar -zxvf /opt/software/redis-6.2.6.tar.gz
- 进入到redis解压目录之后,执行编译C语言源码指令:
make
- 执行安装redis的指令:
make install PREFIX=/usr/local/redis-6.2.6
,如果不指定PREFIX,默认的安装路径是在/usr/local/bin
目录下 - 拷贝redis的配置文件
redis.conf
到redis的安装目录/usr/local/redis-6.2.6
中:cp /opt/software/redis-6.2.6/redis.conf /usr/local/redis-6.2.6/
- 进入到redis的安装目录,启动redis:
./bin/redis-server redis.conf
,在redis安装目录下创建一个数据目录,mkdir data
Redis的常见配置
配置文件:redis.conf
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0 (75行)
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行 (258行)
daemonize yes
# 密码,设置后访问Redis必须输入密码 (902行)
requirepass admin
# 运行的端口(99行)
port 6389
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录 (455行)
# 一定要注意redis的安装目录
dir /usr/local/redis-6.2.6/data
# 数据库数量,设置为6,代表只使用6个库,默认有16个库,编号0~15 (327行)
databases 6
# 设置redis能够使用的最大内存 (993行)
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名 (302行)
logfile "redis.log"
启动Redis:
# 在redis的bin下启动redis
bin/redis-server redis.conf
# 查看redis文件,过滤掉 # 和空格
cat redis.conf | grep -v '#' | grep -v '^$'
停止服务:
# 查看redis进程
ps -ef | grep redis
kill -9 进程号
开机自启
通过配置来实现开机自启
首先,新建一个系统服务文件:
vim /etc/systemd/system/redis.service
# 编写内容如下:
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
# 一定要注意redis安装目录
ExecStart=/usr/local/redis-7.0.5/bin/redis-server /usr/local/redis-7.0.5/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
然后重载系统服务:
systemctl daemon-reload
现在,我们可以用下面这组命令来操作redis了:
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
执行下面的命令,可以让redis开机自启:
systemctl enable redis
7.6、Nginx 安装
- 安装nginx运行时需要的依赖:
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
- 去Nginx官网下载并上传nginx源码包,并解压到当前目录:
tar -zxvf nginx-1.22.1.tar.gz
- 进入到nginx解压目录之后,执行指令,以生成Makefille文件:
./configure --prefix=/usr/local/nginx-1.22.1
- 执行编译nginx的指令:
make
- 执行安装nginx的指令,安装到上述指定的
/usr/local/nginx-1.22.1
目录:make install
- 进入到nginx安装目录
/usr/local/nginx-1.22.1
,启动nginx服务:./sbin/nginx
- 修改nginx配置文件,需要进行重启才能生效,如果不想要进行重启,执行该指令重新加载nginx配置文件:
./sbin/nginx -s reload
7.7、安装Git
使用yum在线安装方式安装Git
yum list git
yum install -y git
安装完成之后,通过查看git的版本,验证是否安装成功:git --version
7.8、安装Maven
-
去Maven官网下载并上传nginx源码包,并解压到指定目录:
tar -zxvf apache-maven-3.8.6-bin.tar.gz -C /usr/local/
-
配置环境变量(/etc/profile)
export MAVEN_HOME=/usr/local/apache-maven-3.8.6 export PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/bin:$MAVEN_HOME/bin # 保存并退出不要忘记 source /etc/profile 使配置生效 # 查看maven版本号 mvn -v
-
配置本地仓库地址及阿里云私服(conf/settings.xml),并在Maven安装目录创建一个文件夹用于存放本地仓库的jar包:
mkdir mvn_repo
<!-- maven本地仓库地址 --> <localRepository>/usr/local/apache-maven-3.8.6/mvn_repo</localRepository> <mirrors> <!-- 阿里云(私服)远程仓库 --> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>https://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> </mirrors>