正文
! Z- S/ @9 Y$ x9 Q- 引言
, O6 S h* J4 P- 本文来自个人学习笔记,希望有帮助到你,未经授权,禁止复制修改
/ z w/ G. Z' ~# z
Linux介绍- Windows的不足& e) R' ^) ~: o0 H2 A% K! y1 w
- Windows是收费的
- 系统长时间运行,安装多了,系统越来越慢,越来越不稳定。
- 病毒和流氓软件很多
4 d) a1 w. l( r* R' u& Z5 L x/ @; O
- Linux的优势
1 _* P7 F& h' G6 t5 k- Linux系统是免费,很多还是开源的。
- 长时间运行,很稳定的
- 几乎没有病毒和流氓软件8 g8 n1 Q Q! G) i' }# Z
学习Linux的好处学会对Linux的基本操作是后端JavaEE程序员的必修课。做为一个后端JavaEE程序员,通常在Windows中开发完程序后,需要部署到一个相对比较安全,稳定的服务器中运行,这台服务器上安装的往往不是Windows操作系统,而是Linux操作系统。 windows默认安装完成软件就可以连外网,linux默认安装完软件是不可以连外网,必须防火墙放过才可以 linux的概述Linux(linux is not unix)是基于Unix的开源、免费、多用户、多任务的操作系统,由于系统的稳定性和安全性。几乎成为程序代码运行的最佳系统环境。 linux的分类按照市场的需求不同
1 U+ ^3 Y1 d( d6 Q- A3 Z5 S' s- 图形界面
- 字符界面(推荐),特点:性能最优
9 V7 |( d0 H j; A1 l, O
按照原生程度不同 5 B% Q/ v2 O6 m' X/ W. O( }+ v
Linux安装两种安装方式 - 在PC电脑上进行安装
- 使用虚拟机安装# {! W9 q9 S$ D) ^1 R. }
常见虚拟机软件 - VMWare 软件,威睿公司,收费的(推荐使用,可以试用)
- VirtualBox软件,免费的, 最开始是sun公司,由于被oracle收购了,所以目前属于oracle: E$ [* s9 V8 X9 K# o* P) p9 ?+ w
windows主机连接linux虚拟机与虚拟机网卡介绍[td]命令 | 含义 | ifconfig | linux系统用于查看ip地址信息 | ip addr | linux系统用于查看ip地址信息 |
在windows主机上使用dos命令ping进行拼通linux系统 ping www.mobaijun.com% v- o. E& z1 e( Y! U! {
使用客户端工具连接linux系统常见的客户端软件SecureCRT(操作客户端命令),SecureFx(用于传输文件) XShell(操作客户端命令),XFtp(用于传输文件) 目录操作1—目录结构linux系统没有盘符,一切从根目录/开始,如下图
根目录下所有子目录
image-20200525150911453
+ G0 T6 R2 \: N) e. J; s常见的目录配置[td]- u* ^" v# G4 a3 G1 u. C# `/ m! z
目录 | 含义 | bin目录 | 存放着所有linux系统的命令 | root目录 | 超级管理员root用户的主目录 | home目录 | 存放所有普通用户主目录的位置 | usr目录 | (unix shared resources)资源共享目录,所有用户都可以操作的目录,以后我们安装软件就安装到这里usr/local,这样所有用户都可以使用软件 | etc目录 | 存储配置文件的目录,以后网卡配置文件,权限配置文件都在这里 | 目录操作—切换—创建—查看[td]作用 | 改变目录/CD和目录名直接需要空格 | / | 切换到根目录 | . | 当前目录 | .. | 上一级目录 | ~ | 返回当前用户主目录 | - | 返回上一次目录 | 创建目录[td]mkdir 目录名称 | 创建一个目录 | mkdir -p | 创建多级目录 | mkdir -p /父目录名称/子目录名称
Q* }/ M0 c+ X3 j$ t# [-p,如果父目录不存在会先创建父目录再创建子目录 查看目录内容[td]ls参数 | 显示当前目录下的文件和目录 | -l | 以详细的方式显示当前目录下的文件和目录 | -a | 显示当前目录下的所有文件和目录,包含隐藏目录,.XXX开头的文件和目录是隐藏的 | 目录操作搜索—重命名—复制—删除—帮助[td]find | [目录名称] [-name'查询字符串'] | 无参数 | 搜索当前目录和它的子目录所有文件和目录 | 目录名称 | 搜索指定目录下和他的子目录所有的文件和目录 | -name '查询字符串' | 指定具体查询字符串 | # _% J" [" d# b, z
| *匹配多个字符串 | , Y6 d$ @& Y% L8 U6 t; D) C
| ?匹配一个字符 | 重命名与移动- 重命名
, P+ z. E& ~# \' m2 U- b3 u [td]move=mv | | mv 旧名称 新名称 |
4 v1 D# g! s! H7 A7 |9 e& X | mv既可以改文件也可以改目录 |
7 ^# {0 v' a) f+ R0 P/ W | [td]mv 源目录 目标目录 | | mv将源目录移动到目标目录下 |
! K D/ Y7 j. |- T | [td]cp [参数] 源文件或目录 目标目录 将源文件或整个目录复制到目标目录下 | | -r recursion连同子目录下所有文件全部复制 |
8 C/ h: q6 H2 Q Q' o$ R+ f | [td]rm | 参数 文件或目录1 文件或目录2可以同时指定多个文件或目录 | -r | recursion 连同子目录一起删除,只用来删除目录 | -f | 强制删除,删除之前会确认,需要回答yes/no |
注意:千万不要rm -rf /* 会导致删除所有的文件或目录,导致系统崩溃
- 查看帮助文档- O ^- A j$ i9 p
- 命令 --help 查看英文文档手册,使用q退出
- man 命令 查看中文文档手册【推荐方式】,使用q退出) ^( K. |6 J# H8 W: H
创建文件与查看文件内容[td]touch 文件1 文件2 | 创建一个或多个文件0字节大小 | cat 文件名 | 查看文件所有内容 | more 文件名 | 查看文件所有的内容,可以分屏显示 | head 文件名 | 查看文件前10行 | had -n 行数 文件名 | 查看前面指定的行数 | tail 文件名 | 查看文件后10行 | tail -n 行数 文件名 | 查看文件后指定的行数 | less 文件名 | 查看文件所有内容
$ `; U# Q6 B" ], s: Q-n 显示行号; H/ i* t9 \& r
PageUp 向前翻页
3 J* T; i8 p MPageDown 向后翻页
. n8 y- w( [6 g* |q:退出 | 编辑文件内容
. N# I' B1 e9 i: T G+ X9 n/ R
+ O4 T: e+ s/ p! q8 U9 D
( B8 R h% r; [( M" |
image-20200525154146121+ }, I: f7 j- R+ ]
- 命令模式下命令" k" h' }# @. O5 `6 @* w9 \1 B; q
[td]命令 | 描述 | i | 在当前光标的前面插入字符 | a | 在当前光标的后面插入字符 | o | 在当前光标的下一行插入字符 | 命令或底行模式下常用的编辑命令 | " e9 R( L! F$ h/ L
| yy | 复制当前行 | p | 如果前面已经复制了,在当前下面复制 | dd | 删除当前行 | u | 撤销 | /字符串 | 搜索文本内容
) }( E6 [. j& A1 in:向后搜索* }0 H: v4 _) I, h: ]; @
N:向前搜索 | wp | 保存并退出 | q! | 不保存强制退出 | wp! | 强制保存退出(只读文件使用) | 压缩与解压[td]拓展名称 | 分类 | .zip/.rar | Windows系统压缩包 | .tar | 在Linux下的打包文件 | .gz | 在Linux下的压缩文件 | .tar.gz | 在Linux下的打包压缩文件 |
- 压缩文件8 b8 m5 i' T9 { c/ o) \9 }2 \
[td]tar | 参数 压缩包名 一个或多个文件{对一个或多个文件进行打包并压缩} | -c | 创建一个打包的文件 | -v | 显示打包的详细过程 | -z | 压缩文件 | -f<压缩文件名称> | 只当压缩包的文件名称,f后面跟着压缩的文件名,一般放在参数最后面 |
- 解压文件
( ?9 F, v! f* }0 ?3 z% l2 B* Q( W [td]tar 参数 压缩文件名称 | 解压文件到当前目录 | -x | 解压指定的文件 | -v | 显示解压的详细过程 | -f<压缩文件> | 指定要解压的文件 | -C | 解压到指定的目录下 | 查看工作目录位置—查看进程—内存耗用—杀死进程[td]pwd | 查看当前工作目录 | ps | 显示当前用户通过终端启动的进程 | -a | 显示所有用户通过终端启动的进程 | -u | 显示所有用户通过终端启动的进程详细信息 | -x | 显示所有用户的所有进程 | [td]kill 参数 进程号 | 通过ps可以查看到进程号 | -9 | 强制终止进程 |
- 查看系统内存整体耗用
5 Z9 f& H6 { a [td]搜索文件内容grep是一种强大的文本搜索工具,它能使用字符串搜索文本,并把匹配的行和行号打印出来。 [td]grep 参数 字符串 文件名 | 搜索指定文件中字符串内容 | -n | 搜索结果中显示行号 | -v | 显示不匹配的行 | -i | 忽略大小写搜索 | 管道管道就是“|”
- 命令
+ g" R, M2 T$ ]& l6 A! e, z& N [td]语法 | 命令1 | 命令2 | 解释 | 管道命令|,必须要有两条以上的命令参与运算 | 关机与重启- Linux/Windows
# J. t: F4 b7 N. z" @7 v" Z9 |/ m [td]Linux | 释义 | shutdown now | 关闭服务器 | -h +参数 | 指定**时间后关机 | shutdown -n 16:05 | 指定时间关机 | shutdown -c | 清除定时命令 | reboot | 重启Linux | Windows命令 | 释义 | shutdown -s | 立刻关机 | shutdown -s -t 秒 | 指定多少秒后关机 | shutdown -a | 清除定时计划 | shutdown -r | 系统重启 | 文件权限( ?" ?0 C, _ ^6 j. \
1 H# ~7 S2 z8 O, X% L+ q5 K- \9 C/ B5 B! q' T( D- Q6 A- `4 Q
image-202005251605500451 i/ n# H! z0 q" o; u3 M
- 每一类用户都有3个权限
4 j+ m+ J+ [/ f% f4 u* e1 J3 E- r:读取权限, 只读
- w: 写入权限 , 可以编辑文件
- x: 执行权限, 由于某些文件是可以执行的,如有有执行权限才可以执行
/ d: p$ K, d! \, v1 q
- 操作权限
+ D% N; c: W! _5 _9 K- I2 u9 @- 添加权限:chmod 用户或组+权限 资源文件或目录
- 删除权限:chmod 用户或组-权限 资源文件或目录
- 修改权限:chmod 用户或组=权限 资源文件或目录
# C. q- G& J; S. l7 s5 @, [1 N
crontab定时任务[td]命令 | 含义 | crontab -l | 查看当前用户的定时任务列表 | crontab -e | 进入编辑当前用户定时任务编辑器 | crontab -r | 删除当前用户的定时任务 | * * * * * 命令 | 每分钟执行一次命令 | 服务管理—自启动服务管理
7 ^6 g+ x8 s9 y7 ^# A/ M# ~2 \8 u2 b
% |* |) V; t# Q8 N. L* {
9 R; C" u' ]- s! H5 n& Y, s4 Z0 o% F6 fimage-20200525161016493
6 ^1 Q0 P1 t! {; j6 R, I服务管理的命令:systemctl start/stop/restart/status 服务名 操作服务启动/停止/重启/查看状态 设置服务开机启动:systemctl enable 服务名.service 设置服务开机不启动:systemctl disable 服务名.service : m* c# I9 y' A/ }) U ]
网络管理1-主机名管理# 查看主机名/ X- F5 D7 Q. R, V, P
$ hostname. j! d# V2 a \' K( ^
# 修改主机名称 永久修改计算机名字,需要重启或使用bash刷新
' ^. V2 x: U1 j$ p; g$ hostnamectl set-hostname [args]% B7 L; t; f7 u, e
# 刷新
$ V" `: z% j+ I6 c$ bash3 m1 c8 G; E4 W
网络管理2-网络服务管理# 启动网络6 ^& ]; N" M! H. U
$ systemctl start network
( x! `1 h+ a& I$ i3 i7 U# 停止5 G/ @& Y5 z& g6 y( I- N
$ systemctl stop network
2 y7 F( i m2 d3 h: R# 重启 f0 W k$ V% Y& [
$ systemctl restart network
( L! _' i* `8 t1 L% _- W4 f1 m# 查看状态 V7 O, d* h; A' j) U h
$ systemctl status network2 W9 Q# _5 t' M/ b
如果linux系统不能上网(内网和外网),需要检查网络服务 网络管理3-网卡激活管理- 关闭网卡激活实现步骤% u1 S% `- ]. d/ ]7 [: s- Y
# 找到网卡配置文件ens32- `* O2 b% k4 F7 \# b
$ cd /etc/sysconfig/network-scripts/ # 网卡配置文件目录8 e6 G( ]- v3 p: x
# 查看目录文件0 \4 A' L N4 |' E
$ ls
+ \$ N" ~2 L& `9 m# 修改配置文件
0 t7 y: H f4 R! v! G$ vim ifcfg-ens32
1 \$ [6 H9 {. V! j, m# 修改配置,关闭网卡0 B9 L; x! D0 A4 O2 j! `
ONBOOT=no
5 y1 B3 [$ S2 b% h X, e# 重启网络服务1 R( D! Q1 ~6 |
$ systemctl restart network0 @" J3 K2 @( Z$ M; \
# 测试是否可以联网
: ^* {) z5 j$ @$ ping www.mobaijun.com6 c0 `* K8 ]* C. E
# 修改配置/激活网卡 修片配置文件ifcfg-ens33,开启网卡! I' c% l) G9 x; i6 [: g- a
$ ONBOOT=yes2 b/ S- u! z7 t* T7 z8 ]1 q
# 重启网络服务) {! e+ N% }9 l0 l
$ systemctl restart network
$ K* `+ Z; \" A4 I5 u网络管理4-配置静态ip- IP配置类型
) C1 [: [& Z5 x- dhcp:动态IP
- static:静态IP
5 r, g2 n4 M7 P% M
- 配置静态IP步骤, y" l3 B8 c' i r1 ^# m
- 域名服务器,根据域名获取对应的服务器ip地址,这样才可以访问外网
- 用于区别不同的网络,网关可以解决不同的网络通信,需要硬件支持路由器
- 用于标识ip地址的网络号是多少位
- IP地址由网络号和主机号组成
- 给linux系统设置ip必须确定ip的地址、子网掩码、网关
- IP地址(互联网协议地址):
- 子网掩码
- 网关
- DNS
+ `* d6 s* V/ ]+ \) Z( v/ T2 _; f6 Y
- 修改网卡配置
! u0 A9 x+ I9 }9 u) F5 e # 找到网卡配置文件ens32
& b# \) h) U( H/ s/ w$ cd /etc/sysconfig/network-scripts/ # 网卡配置文件目录2 k. J$ h( q: E
# 查看目录文件- `. ^# r, p" s. C+ e! `
$ ls8 Z7 h$ j2 }- k: a
# 修改配置文件' A! _3 ?6 y$ R2 K$ y. `' ~
$ vim ifcfg-ens32
/ t! o& R- A9 W# 修改配置,切换成静态模式
: B& r \+ f7 V2 B/ uBOOTPROTO=static
( D3 u- J6 m. a0 E& c# 最下方添加相关内容3 ^" Z2 o6 x9 _! `
IPADDR=192.168.56.1358 Y3 ?" x; f) R: @
GATEWAY=192.168.123.83
5 |: g" B5 O# MNETMASK=255.255.255.0
# K0 Y0 G8 {, T+ z/ ODNS1=114.114.114.114( r: \$ F$ J% h
# 重启网络服务
0 O P# C* G" u1 i. \& E9 u# S' Q$ [$ systemctl restart network+ O' I w; X$ T$ e" b+ c
# 测试是否可以联网4 _" l4 }/ ^# t
$ ping www.mobaijun.com3 c2 t; B. C2 V: s% t
网络管理5-克隆虚拟电脑- 克隆步骤
: p5 C4 g2 v' J5 b- 关闭当前虚拟机linux系统
- 选择当前虚拟机/管理/克隆/
- 修改克隆出来的静态ip
- 修改计算机的名字
. i9 y. ]% t N! T& g' @0 }
网络管理6-域名映射- url域名访问服务器通信原理7 p. G4 Q% q, h+ m3 n
image-20200528161737276- 本地域名映射文件位置
- Windows系统本地域名映射位置:5 C# k. X! d3 d8 i
- c:\windows\System32\drivers\etc\hosts
% _2 j8 k0 X+ A% |2 `& J0 y
- Linux系统本地域名映射位置:
- w! H' @) u: E1 y1 k$ J0 Z- /etc/hosts
; V. D& h9 r W( Q9 K* q; L( p
- 修改本地域名映射实现步骤
+ ?, z, e( ^6 K2 @9 s # 编辑本地etc/hosts域名映射文件1 |2 Q# J0 b) f4 C6 W- ^ ^
$ vim /etc/hosts
+ D) l) O. B+ w( X# 添加域名映射IP的配置3 H, I! i1 Q" Z! _$ S3 [& G
192.168.123.83 www.mobaijun.com l5 @/ D7 W' ~9 e8 m7 P. h& U
# 保存退出* C( }7 E; {2 c" M6 G
$ wq
( O% H6 l4 D* H4 [+ D* Q/ z! U( d ]) x# 测试效果2 O+ J5 c4 i1 u2 ?- [; }
$ ping www.mobaijun.com9 w; W% h! j& x+ n9 _
网络管理7-查询网络进程使用端口号常用命令 [td]netstat [args] | null | 显示网络状态 | -n | number | 显示程序的IP地址和端口号 | -t | TCP | 只显示TCP协议链接的程序 | -l | listener | 显示监听中的Socket | -p | Programs | 显示程序的名称 | -u | UDP | 查询udp协议通信的程序 | # 查看端口、udp、tcp、正在监听、显示程序名的所有程序7 _, ]" F! h. X; T3 v# x
$ netstat -nutlp, u k* X2 I1 \, p# B4 x2 i
防火墙管理- 防火墙作用
0 I! X& e7 v- |# d3 u# Z \
是防止外界访问系统内部的程序,防火墙允许哪个软件访问外网,这个软件才可以进行网络通信 [td]命令 | 简介 | systemctl status firewalld | 查看状态 | systemctl start firewalld | 启动防火墙 | systemctl stop firewalld | 关闭防火墙 | systemctl enable firewalld | 开机自启 | systemctl disable firewalld | 让防火墙开机不自启 | SSH有密登录和免密登录- SSH实现免密登录步骤
6 ^* L- Q$ S" d# E9 B5 m # 在本地生成一对公钥和私钥
7 z' ]: ~# v3 g) H! H3 L$ ssh-keygen# u! [- f6 g G9 K+ R1 E7 G
# 将公钥发送给远程服务器,必须给出远程服务器的密码本地才接收公钥( ^6 p/ |& r; Z/ b4 S3 c
$ ssh-copy-id address
# g. X. v; l9 }# 查看公钥% k. h8 r4 V8 b! ?$ \
$ cat authorized_keys8 ]) X1 w8 p/ P# j- Z
# 发送登录请求,实现免密登录' x7 Q$ h; Z& C, }) j G' b
$ ssh address
! j% X/ k* O2 K" V% x, k; V部署项目1-本地软件安装命令rpmRedHat Package Manager(RPM), 擅长安装本地的软件 - rpm的作用
! G3 C' x; O/ @1 \7 q* A- 查询已安装的软件
- 安装软件
- 卸载软件2 |# r" _5 M% ^. |! u M
- 常用命令
- a# h- `9 d, M/ Y1 i+ |9 W [td]rpm [args] [包名] | 类似软件管家{添加,卸载,查询} | -v | 显示安装的详细过程 | -q | 查询某个软件是否安装 | -a | 查询所有软件 | -h | 列出软件安装时的标记 | -i | install 安装指定的软件 | --nodeps | 不验证软件相关关联性,常于-e一起使用,表示强制卸载 |
- 测试7 K8 f1 H2 A9 o8 P# Q( l0 F& Y
# 查询所有已安装软件
% @' N* W# d" u( G) f4 i, i# `$ rpm -qa4 Q! Y D3 `3 f
# 安装指定的软件包' \; b) u1 {, p, A5 a+ X
$ rpm -ivh <包名>
9 g4 E$ e5 h+ L( O# x# 强制卸载指定软件包
; d2 P$ E- O" U R, t, |. b$ rpm -e --nodeps <包名># d' [# ~. l* |
RPM_jdk安装# 查询本地是否有JDK/ j8 `9 C% K) U P; `0 G3 p
$ rpm -qa | grep java
k! `- o) Z+ \, V# 查询是否安装JDK
, o$ H+ o( l' u2 M; t r2 i$ rpm -qR jdk
$ Z w2 ?+ ~% ~7 D# 新建soft包存放未解压的安装包# w) |9 [2 [* Q1 P
$ mkdir soft4 }' }9 E, U* _3 g# [
# 将jdk软件上传到linux系统/soft目录下并解压到指定目录7 d' ?/ [2 T' T" q! b J
$ tar -xvf jdk-8u251-linux-x64.tar.gz -C /usr/local4 r' `. [4 m+ u; ]3 t
# 配置linux的jdk环境变量,操作一个/etc/profile环境变量配置文件. X" D& O+ ~4 R F, w+ c
$ vim /etc/profile
% j2 S& f, f) |2 M# 配置环境变量
1 s& d! r0 Q% ~. }6 `#set java environment$ Y6 D2 }1 v4 Q7 E
JAVA_HOME=/usr/local/jdk1.8.0_251- Z2 J* r9 N# w9 Q" }: w
CLASSPATH=. JAVA_HOME/lib6 s5 H" g- R z# @( P# z7 d
PATH=$JAVA_HOME/bin PATH
8 q! H1 g5 T+ k/ E; N. ?export JAVA_HOME CLASSPATH PATH+ y5 k% Z- F! J9 D8 a
# 重载环境变量配置文件
5 V" G& i, k8 V# O: c$ source /etc/profile
1 Q+ |. x# Z+ @0 o+ d# 查看jdk环境变量是否配置成功
3 R5 q6 X9 s4 o2 i$ java -version
- @8 |1 ]) r5 V# `' M. @更换YUM源# 安装wget
& L: H! I2 E7 j/ a$ yum install -y wget
6 r. R' G- o8 S R3 X' S# 下载CentOS 7的repo文件
+ w8 u8 u4 W" ?$ y9 X$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo" J1 d# Y9 k5 N9 m! K# Q
# 清除缓存
. H. K) t7 U% d$ yum clean all
2 ?7 S' F! q: p$ Z) T# 生成缓存
- |5 _" p4 s6 @+ Z) X/ z$ yum makecache
. \1 n& _ Z' {8 A& ~5 w* H7 f0 g1 s/ t1 `# 备份CentOS 7系统自带yum源配置文件
4 H; C5 h5 M* l) ^$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
* P1 i, I) g: [; }$ Z8 j# 打开CentOS-Base.repo文件,将文件中的所有http开头的地址更改为https+ z; b8 \: h$ f
$ vim /etc/yum.repos.d/CentOS-Base.repo
: d7 S8 G5 Z% f$ \- `# 更新YUM
" ^% x0 C5 R. Q! P$ yum update. F C% l1 a0 q5 V& ?4 h9 c% S
部署项目3-mysql安装-启动-远程授权- MySQL安装
0 U9 J- w8 s3 {5 d( F1 S # 查看CentOS是否自带的MySQL,如果已经安装需要卸载。如果没有找到,则表示没有安装
$ H* y6 V5 q. N4 K e$ rpm -qa | grep mysql& a) p2 a! ^ N$ @
# 在线获取CentOS7的mysql的rpm安装文件,直接执行如下命令:8 m+ n2 o. ]" a' P
$ wget http://repo.mysql.com//mysql80- ... se-el7-1.noarch.rpm
5 @' v$ W7 z6 d$ U# i- n. I# 执行安装命令
! |' J5 _/ N; w2 i5 M$ rpm -ivh mysql80-community-release-el7-1.noarch.rpm
" o% i# t0 V4 C# 得到两个配置文件,进入/etc/yum.repos.d目录下查询
( J( G. W/ Y5 i- `, O2 `$ cd /etc/yum.repos.d 5 F8 U7 m- d0 K
# 编辑mysql-community.repo文件,配置资源库下载版本选择
6 T: ^1 _9 w) p" W4 C; y/ M$ vim mysql-community.repo: y C9 ]( ]2 ~ T0 O
# 编辑需要下载的MySQL版本将`enable=0`改为`enable=1`
) O7 z: a- X" Q1 j- z9 ?6 [% ]{. j) b* _3 p! k
[mysql55-community]
b5 v0 \& E7 h# b8 l2 H0 B" a7 Fname=MySQL 5.5 Community Server
+ Y0 C+ k, i9 g; \, Vbaseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/3 D/ g/ L; R& j! s0 ]
enabled=16 O" t& a+ m# b9 }$ l2 F% s) ^
gpgcheck=1
/ G; m- X. s* n( S$ v! Fgpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
7 ], Y8 a- `& z( h: ?, A' A}: \3 l" I1 u; q5 H/ Z5 ?* Z
# 下载安装客户端、服务器端、工具包% t& S a' c: L# J, @
$ yum -y install mysql-community-client mysql-community-server mysql-community-devel
1 Y5 O9 o, _8 O2 |# 启动MySQL
5 q- w* F' C" v, Q }; |$ systemctl start mysqld G' n) `. F4 M( t+ m
# 将mysql加到系统服务中并设置开机启动) d/ H) l5 _. S0 o* B7 o3 D
$ systemctl enable mysqld
5 G7 {; X7 Y: Y9 u" A# 登录mysql,root用户默认没有密码. I, z' [* G4 L- j& z' y! w; s
$ mysql -uroot5 T, `4 i! @2 v6 I2 G, m! U
# 在mysql中修改自己的密码
( K4 K; A& [# @, B, _$ set password = password('root');2 T8 N4 u" Z7 y/ N! L
# 退出
" t8 A+ }, n: d; i4 ?3 g6 `$ exit1 _4 p* b4 H0 E9 e4 Q
# 重新登录% u' x0 B% a" F0 s, K
$ mysql -uroot -proot
% o- W3 \. g, ~! ~设置远程连接权限、开放端口号 开启mysql的远程登录权限,默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启,并且刷新权限缓存。远程登录mysql的权限登录mysql后输入如下命令 # 开启mysql的远程登录权限' l' A8 r( I0 T* r8 D$ |) h3 y
$ grant all privileges on *.* to 'root'@'%' identified by 'root';
' R* ^* t# i, w7 P" L: z7 K/ ?# 刷新权限缓存: |0 @5 E3 o- R2 _
$ flush privileges;开放Linux的对外访问的端口3306
6 O8 z( z7 |- s. Y3 y; H # 开放的端口永久保存到防火墙
. {) l+ V" V# c+ H$ firewall-cmd --zone=public --add-port=3306/tcp --permanent4 s& W8 W$ m) L" o" J
# 重启防火墙) _* R$ q1 @* F7 j6 o6 R! a9 G
$ systemctl restart firewalld! ^$ [5 N* Z5 j3 b- u$ b
- Navicat测试
2 i& _0 r: o3 t3 x: v3 [ 部署项目4-tomcat安装-启动- 下载Tomcat. X; ]1 F8 {4 h7 L9 J
image-20200529105935993# 将软件上传到linux系统/soft目录下并解压
9 c, ^, E1 n% o" T* r& w$ tar -xvf apache-tomcat-8.5.55-src.tar.gz -C /usr/local/
) U M3 d% v( [# 改名& X3 v# n, p% V. m% q
$ mv apache-tomcat-8.5.55-src tomcat8
( D9 t) P9 X6 R( z# 进入bin目录: x% [3 I$ D: H" b( z" K: w y
$ cd /usr/local/apache-tomcat-8.5.55-src/bin
5 B h- I3 e4 c0 C# 启动tomcat服务器/ G v- O" P; ^5 |
$ ./startup.sh! ~5 V: f5 p# F
# 提示权限不够解决方案
. ?1 O( H. P( Q* E" R$ chmod u+x *.sh; b R' I) u: C. y
# 重启应用服务& M7 l2 m; k1 g5 g0 T
$ ./startup.sh
% P% j8 b- n) ]2 V5 I# 开放linux系统防火墙8080端口6 P' f% F; d) u( o# q8 Q8 D& Q
$ firewall-cmd --zone=public --add-port=8080/tcp --permanent
) a; b$ T* U3 y$ k# 检查是否生效) v4 a# I0 d1 h$ U% Y0 d/ p% ?
$ firewall-cmd --zone=public --query-port=8080/tcp
2 P+ [2 {4 i+ g( Q# F# 重启防火墙4 ~( U$ l O7 [. n: n" G: g
$ systemctl restart firewalld) L4 N: \* |! e3 S3 m
# windows客户端使用浏览器访问linux的8080端口tomcat
, u1 U+ E$ f. c: B$ 192.168.123.83:8080
; O. z M& j6 ], _* ^, D8 b% C# tomcat无法找到JAVA_HOME解决方案# z% O8 N; c [5 v* X) O
# 查看环境变量是否有问题2 j3 G0 J+ Z1 S, W/ C
$ echo $JAVA_HOME9 d9 k- Q. I2 i* w
$ echo $JRE_HOME( Y! G% I S, D8 H- X+ ^6 ~% d
# 定位到tomcat/bin/setclasspath.sh目录下,文件开头添加环境变量6 ?* P; P- U+ r/ T0 h& R5 Q
JAVA_HOME=/usr/local/jdk1.8.0_251% v: _4 S$ F" b$ F
JRE_HOME=/usr/local/jdk1.8.0_251/jre
: s7 X* p! D0 P# 删除tomcat和日志文件
4 y4 L. h1 t$ t: W' Q/ H: G$ rm -rf /usr/local/tomcat: z) f3 _' X& L+ B" Y3 X @
$ rm -rf /usr/local/logs/*.txt &
w/ z& H+ l. L5 ], n$ rm -rf /usr/local/logs/*.log &
# f# U2 R) k) h9 c7 {
image-20200529110825215
% |3 s0 ^. F. a( g部署项目5-项目发布! T; C& Y7 U5 A N6 E1 p- U
- 链接Linux数据库(导入数据库)
- 在IDEA中导出war包
- 将war包部署到linux里面的tomcat里面的webapps里面
- 浏览器访问 f6 z% A) ?( R+ T$ O6 e
解决mysql底层乱码问题- 修改druid.properties配置文件,设置mysql使用utf-8解码,添加?characterEncoding=utf8
) I& _! {1 s3 N& y6 _" H7 B driverClassName=com.mysql.jdbc.Driver
7 B% W# P) P* N/ X7 |; m; [url=jdbc:mysql://127.0.0.1:3306/linux?characterEncoding=utf8& Q% W& L' I/ [" |4 E
username=root
: @) t. K8 Z3 U* q% B) J( Rpassword=root7 G( I9 |# [/ z# R/ u* c
initialSize=5
" l1 k: {! k# S* LmaxActive=50
( V2 y1 L' j1 kmaxWait=30000' i ]+ j; u1 B8 k3 ]$ u8 U* d, n
minIdle=3( h) m( s- y) H4 l- B" s# N2 ^
- 将当前项目需要重新打包,再部署到linux上tomcat的webapps里面
- 关闭tomcat,执行shutdown.sh
- 启动tomcat,执行startup.sh
" _/ _: V( N: F% a7 R6 M 用户管理1-用户的管理- 添加用户" G) z1 e! i h! ?! _* o
# 添加用户,进入/home文件夹/创建用户和主目录
* V% J" [$ ?/ W) N$ cd /home
9 l3 [, G4 ~# K; |8 s' Z v# 查看
% L6 ?7 i8 a0 z$ ll5 b$ R. k/ n$ T" T3 I" U0 n
# 创建组名
3 P+ `4 ^: K. e( i" ?$ useradd -m mobaijun( {4 |9 s' |; j2 y- F
# 查看, C `8 g% O* p5 L
$ ll
2 C, e! O1 j( I2 @& k+ U- Z8 l# 创建用户名, Q$ D+ Z6 j0 I0 e7 r5 T8 d
$ useradd -mg mobaijun tom
$ |' o* |0 A8 }1 @# 查看
, G' h8 V6 k9 t7 R C[root@mobai home]# ll
) y( a' O5 L4 i3 X总用量 0
2 n% D" l, U) jdrwx------. 2 mobaijun mobaijun 62 5月 29 11:25 mobaijun" c6 {2 i5 `( m; y3 ]) R
drwx------. 2 tom mobaijun 62 5月 29 11:25 tom% t5 |( }4 o0 K8 E. X2 U
# 查看/etc/passwd用户内容
3 f/ I* V1 w: A3 }. c4 `! p$ cat /etc/passwd' E+ S0 a5 O/ X
# passwd文件用户内容6 M5 y. Y8 q; y+ Z, R, {
mobaijun:x:1000:1000::/home/mobaijun:/bin/bash
4 w. o$ K8 q, W W& n0 stom:x:1001:1000::/home/tom:/bin/bash
) G/ f) i1 m: w2 z
image-20200529113324846- 给用户设置密码并切换用户$ F5 S6 _: U* Y2 e
# 设置密码" l Q# Q# l' w6 W2 A
$ passwd mobaijun
* K7 G6 ]7 P; z1 T# 切换用户9 ?* T) [ p9 D2 W
$ su mobaijun+ G4 O& _: T" \0 H% F: ^
% q1 T1 A" z4 y0 v- k* f: K& T3 K
8 p) i, {7 ~/ o8 { image-20200529113602453- 删除用户
+ m# c! G! M/ t3 Y9 o # 切换回主目录
# B8 b% `/ P6 ] \: k$ su root 7 Z4 k t/ F! l$ l' s* r5 l
# 删除用户组
6 Q5 p- ?' a1 {1 a( L; c$ userdel -r tom; i# ~ t4 P+ E, t
image-20200529114209310- 修改登录名& Z+ \+ k- _. `4 `- ]
# 修改登录名称 i- p% _/ g. P1 E# q# x6 G
$ usermod -1 Rose mobaijun
) r" E, k9 i2 |7 @, F6 Y$ z$ w总结 - useradd:添加用户
- passwd:给用户设置密码
- su:切换用户
- userdel:删除用户
- usermod:修改用户登录名' H0 T9 w; v8 I9 A0 r* ?9 G9 y
用户管理2-组与用户的管理- 添加组* ~9 u, X2 u- O: G" J X
# 添加组/ s% E# M3 [' L' V
$ groupadd [组名]$ P: _2 Q/ V: h5 n1 f5 k) }5 a4 e
# 查看组
) G. `: H/ m8 T; Q1 h$ cat /etc/group
0 C9 }9 H- O% K6 s0 |& `& Y5 F5 b- 用户添加指定组
9 a/ y; b" o& W& m, o( w) S8 D # 进入主目录) M; M" @7 s. O. V) b! T c- T
$ cd /home- X" q; M& \. c7 R6 w5 q
# 修改用户组名称9 W. a" f+ b7 t% ~' r" y
$ usermod -g [新组名] [组名]
5 J# Y' u5 T1 O, j. Y" Q, }- 用户从指定组中删除
% y3 d+ _3 S$ \& b- I # 用户从指定组中删除
$ d [) p% G) O' w" m. k& ~$ gpasswd -d 用户 组名
5 ~, P% r2 `5 x; r* x; |7 q+ Z( z' l# 查看1 E8 o: q, p6 |+ J5 `+ T+ X
$ ll
& Z& }/ B# F* P8 E$ j# 查看配置文件
- P% u# K) m4 o$ cat /etc/group% a* H! p& ]0 ^8 {* p8 t+ [# D2 U
- 修改组名
/ c3 K* P9 Y! K. o- r # 修改组名4 }& ?! h5 t2 }5 X1 t s
$ groupmod -n 新组名 组名$ x% \" @ d& O4 A+ [) w2 B# q
# 删除组8 k0 f# g. k# S p1 j
$ groupdel 组名 Q- p8 W* W" a' H7 w9 L q
# 查看8 G+ c% J; S& } _) o5 M9 V
$ cat /etc/group/ \* h/ `1 K( h5 K
总结 - groupadd:添加组
- gpaddwd:将用户从组中删除
- groupmod:修改组名
- groupdel:删除组. V$ o$ @3 N* P$ B1 \$ ~
用户管理3-给普通用户设置 sudo超级管理权限# 编辑配置文件
' |3 P$ ~4 c/ h5 X$ vim /etc/sudoers4 [( w: d! {, Y+ o+ o) r S3 g
# 切换用户) p5 Z( Y2 y! o9 w
$ su mobaijun. ]! W: o, c1 Z3 J, b
# 设置权限* y9 S- l1 S5 f. P4 J
$ sudo useradd -m 用户名
9 X# k3 {' @% Z" a4 w# 查看
% {. b& }* Q$ p% P# n7 a$ cd /home
# P) j2 A" }) S# W% |5 p' D+ [
% v& o- @' d I
: m8 V# h6 ]( n: T! G* E' \ L3 b |