正文& M* p/ z$ B3 e- t) b
- 引言, i! j) x/ d) P" ]* N% q
- 本文来自个人学习笔记,希望有帮助到你,未经授权,禁止复制修改% U# o$ n) c7 f
Linux介绍- Windows的不足6 m$ t! P/ `; P- ^, l5 A
- Windows是收费的
- 系统长时间运行,安装多了,系统越来越慢,越来越不稳定。
- 病毒和流氓软件很多/ D! a# K* E7 F/ V7 P- h7 E: @& i
- Linux的优势 k2 z/ K4 ?( P3 B& e* z3 t8 c
- Linux系统是免费,很多还是开源的。
- 长时间运行,很稳定的
- 几乎没有病毒和流氓软件
, l$ C: t+ x3 p. b1 D2 [" p
学习Linux的好处学会对Linux的基本操作是后端JavaEE程序员的必修课。做为一个后端JavaEE程序员,通常在Windows中开发完程序后,需要部署到一个相对比较安全,稳定的服务器中运行,这台服务器上安装的往往不是Windows操作系统,而是Linux操作系统。 windows默认安装完成软件就可以连外网,linux默认安装完软件是不可以连外网,必须防火墙放过才可以 linux的概述Linux(linux is not unix)是基于Unix的开源、免费、多用户、多任务的操作系统,由于系统的稳定性和安全性。几乎成为程序代码运行的最佳系统环境。 linux的分类按照市场的需求不同
* S' ~: ^" \7 e1 w" c- 图形界面
- 字符界面(推荐),特点:性能最优
7 d! C$ N, H- U8 F+ t
按照原生程度不同
0 A3 \" y6 y8 ?- M. i& N Linux安装两种安装方式 - 在PC电脑上进行安装
- 使用虚拟机安装( t1 r% K; `2 ?8 O4 |/ R) E
常见虚拟机软件 - VMWare 软件,威睿公司,收费的(推荐使用,可以试用)
- VirtualBox软件,免费的, 最开始是sun公司,由于被oracle收购了,所以目前属于oracle
# ?3 s* S; P' v5 s% p# g windows主机连接linux虚拟机与虚拟机网卡介绍[td]命令 | 含义 | | ifconfig | linux系统用于查看ip地址信息 | | ip addr | linux系统用于查看ip地址信息 |
在windows主机上使用dos命令ping进行拼通linux系统 ping www.mobaijun.com
" h$ S# w' D1 A; y使用客户端工具连接linux系统常见的客户端软件SecureCRT(操作客户端命令),SecureFx(用于传输文件) XShell(操作客户端命令),XFtp(用于传输文件) 目录操作1—目录结构linux系统没有盘符,一切从根目录/开始,如下图
根目录下所有子目录
image-20200525150911453, a; [* g* L A" n9 m) L: K
常见的目录配置[td]
' L+ @7 S% Q, S! B目录 | 含义 | bin目录 | 存放着所有linux系统的命令 | root目录 | 超级管理员root用户的主目录 | home目录 | 存放所有普通用户主目录的位置 | usr目录 | (unix shared resources)资源共享目录,所有用户都可以操作的目录,以后我们安装软件就安装到这里usr/local,这样所有用户都可以使用软件 | etc目录 | 存储配置文件的目录,以后网卡配置文件,权限配置文件都在这里 | 目录操作—切换—创建—查看[td]作用 | 改变目录/CD和目录名直接需要空格 | | / | 切换到根目录 | | . | 当前目录 | | .. | 上一级目录 | | ~ | 返回当前用户主目录 | | - | 返回上一次目录 | 创建目录[td]mkdir 目录名称 | 创建一个目录 | | mkdir -p | 创建多级目录 | mkdir -p /父目录名称/子目录名称+ H' g/ {1 m; Y7 w$ N9 j
-p,如果父目录不存在会先创建父目录再创建子目录 查看目录内容[td]ls参数 | 显示当前目录下的文件和目录 | | -l | 以详细的方式显示当前目录下的文件和目录 | | -a | 显示当前目录下的所有文件和目录,包含隐藏目录,.XXX开头的文件和目录是隐藏的 | 目录操作搜索—重命名—复制—删除—帮助[td]find | [目录名称] [-name'查询字符串'] | | 无参数 | 搜索当前目录和它的子目录所有文件和目录 | | 目录名称 | 搜索指定目录下和他的子目录所有的文件和目录 | | -name '查询字符串' | 指定具体查询字符串 | 1 f; r H/ K! ]) G( F+ R# ~
| *匹配多个字符串 | 0 d' n' P/ b, G2 A& b- y9 O- a
| ?匹配一个字符 | 重命名与移动- 重命名6 {) }4 l, d* S0 g0 t0 M
[td]move=mv | | | mv 旧名称 新名称 |
* D- I' D/ C7 z4 U* U! k | | mv既可以改文件也可以改目录 |
# g2 k: O& [/ v, A- W7 Y | [td]mv 源目录 目标目录 | | | mv将源目录移动到目标目录下 | $ k$ H% H3 r5 f' S
| [td]cp [参数] 源文件或目录 目标目录 将源文件或整个目录复制到目标目录下 | | | -r recursion连同子目录下所有文件全部复制 |
# p& s( e H' q( A$ w- [ |
- 删除; x( J+ {+ q/ g. [2 n3 f
[td]rm | 参数 文件或目录1 文件或目录2可以同时指定多个文件或目录 | | -r | recursion 连同子目录一起删除,只用来删除目录 | | -f | 强制删除,删除之前会确认,需要回答yes/no |
注意:千万不要rm -rf /* 会导致删除所有的文件或目录,导致系统崩溃
- 查看帮助文档
) H0 l9 Y+ h" Y3 B, i2 w- 命令 --help 查看英文文档手册,使用q退出
- man 命令 查看中文文档手册【推荐方式】,使用q退出
: F4 ?# Q z3 i) Q
创建文件与查看文件内容[td]touch 文件1 文件2 | 创建一个或多个文件0字节大小 | | cat 文件名 | 查看文件所有内容 | | more 文件名 | 查看文件所有的内容,可以分屏显示 | | head 文件名 | 查看文件前10行 | | had -n 行数 文件名 | 查看前面指定的行数 | | tail 文件名 | 查看文件后10行 | | tail -n 行数 文件名 | 查看文件后指定的行数 | | less 文件名 | 查看文件所有内容: R! S1 T2 P0 @( J
-n 显示行号! l7 u3 B+ q2 A5 Q3 a" r- U# g
PageUp 向前翻页
. |0 `6 S. `2 rPageDown 向后翻页
, L6 C% c, X @5 f4 }q:退出 | 编辑文件内容
* n' _* X0 X! P
r2 q& L! D I. p: t- M
4 J- K& [& Q% x- dimage-20200525154146121
0 c3 K- P1 V% M8 T# G. `& i/ ?- 命令模式下命令! X9 }: E0 L/ P& t/ F
[td]命令 | 描述 | | i | 在当前光标的前面插入字符 | | a | 在当前光标的后面插入字符 | | o | 在当前光标的下一行插入字符 | | 命令或底行模式下常用的编辑命令 |
# s) z* ~& @& z% L) p | | yy | 复制当前行 | | p | 如果前面已经复制了,在当前下面复制 | | dd | 删除当前行 | | u | 撤销 | | /字符串 | 搜索文本内容, N0 K: Q& A, s) g+ Q* h6 c
n:向后搜索! y/ f' O7 @* G0 c
N:向前搜索 | | wp | 保存并退出 | | q! | 不保存强制退出 | | wp! | 强制保存退出(只读文件使用) | 压缩与解压[td]拓展名称 | 分类 | | .zip/.rar | Windows系统压缩包 | | .tar | 在Linux下的打包文件 | | .gz | 在Linux下的压缩文件 | | .tar.gz | 在Linux下的打包压缩文件 |
- 压缩文件
3 `, x3 N. w+ e1 u- Y/ T [td]tar | 参数 压缩包名 一个或多个文件{对一个或多个文件进行打包并压缩} | | -c | 创建一个打包的文件 | | -v | 显示打包的详细过程 | | -z | 压缩文件 | | -f<压缩文件名称> | 只当压缩包的文件名称,f后面跟着压缩的文件名,一般放在参数最后面 |
- 解压文件- F1 C; _, i* m3 f' H/ k! d
[td]tar 参数 压缩文件名称 | 解压文件到当前目录 | | -x | 解压指定的文件 | | -v | 显示解压的详细过程 | | -f<压缩文件> | 指定要解压的文件 | | -C | 解压到指定的目录下 | 查看工作目录位置—查看进程—内存耗用—杀死进程[td]pwd | 查看当前工作目录 | | ps | 显示当前用户通过终端启动的进程 | | -a | 显示所有用户通过终端启动的进程 | | -u | 显示所有用户通过终端启动的进程详细信息 | | -x | 显示所有用户的所有进程 |
- 杀死进程
4 D( B, x2 {3 N7 I3 S0 n0 L( ?+ |) H- @ [td]kill 参数 进程号 | 通过ps可以查看到进程号 | | -9 | 强制终止进程 |
- 查看系统内存整体耗用
1 [; l. g2 Z3 x7 h' B; ]/ r. W [td]搜索文件内容grep是一种强大的文本搜索工具,它能使用字符串搜索文本,并把匹配的行和行号打印出来。 [td]grep 参数 字符串 文件名 | 搜索指定文件中字符串内容 | | -n | 搜索结果中显示行号 | | -v | 显示不匹配的行 | | -i | 忽略大小写搜索 | 管道管道就是“|”
- 命令
0 s) \1 H& R( ` U) ^7 L5 t/ R- m [td]语法 | 命令1 | 命令2 | | 解释 | 管道命令|,必须要有两条以上的命令参与运算 | 关机与重启- Linux/Windows N& T/ l! y7 C. ^
[td]Linux | 释义 | | shutdown now | 关闭服务器 | | -h +参数 | 指定**时间后关机 | | shutdown -n 16:05 | 指定时间关机 | | shutdown -c | 清除定时命令 | | reboot | 重启Linux | | Windows命令 | 释义 | | shutdown -s | 立刻关机 | | shutdown -s -t 秒 | 指定多少秒后关机 | | shutdown -a | 清除定时计划 | | shutdown -r | 系统重启 | 文件权限2 g! O) U# s: j: e( g) q
7 y; `3 b4 R( |2 m: y
; M- y4 r% g4 [% e* }image-20200525160550045
! b' X0 N0 g l8 |- 每一类用户都有3个权限
5 Q" V4 Z4 J4 q" D0 W- r:读取权限, 只读
- w: 写入权限 , 可以编辑文件
- x: 执行权限, 由于某些文件是可以执行的,如有有执行权限才可以执行
' f, i1 F9 v' P# N# q4 m
- 操作权限
" ]$ C3 K) Z; n2 \% ^! N- r: ?5 w- 添加权限:chmod 用户或组+权限 资源文件或目录
- 删除权限:chmod 用户或组-权限 资源文件或目录
- 修改权限:chmod 用户或组=权限 资源文件或目录
; N6 c4 E5 n W4 i5 g* G
crontab定时任务[td]命令 | 含义 | | crontab -l | 查看当前用户的定时任务列表 | | crontab -e | 进入编辑当前用户定时任务编辑器 | | crontab -r | 删除当前用户的定时任务 | | * * * * * 命令 | 每分钟执行一次命令 | 服务管理—自启动服务管理# b* N. ]4 P, ?6 i8 w. U
0 h$ T# e/ v3 F$ k
% ]5 H. w- E' q. k% c% w# f1 Vimage-20200525161016493
7 _% y/ b" Z* M- N* a% m服务管理的命令:systemctl start/stop/restart/status 服务名 操作服务启动/停止/重启/查看状态 设置服务开机启动:systemctl enable 服务名.service 设置服务开机不启动:systemctl disable 服务名.service
! v, [; |8 }# W) N) j9 ^9 N 网络管理1-主机名管理# 查看主机名& r& q. [+ U+ O- T' Y6 p: }/ H6 u
$ hostname
- o# q+ k9 H/ }7 w# \# 修改主机名称 永久修改计算机名字,需要重启或使用bash刷新
& A/ E$ O! m' X4 P( ^0 M" D6 O$ hostnamectl set-hostname [args]% r6 b C P. H- s" @
# 刷新
% g, w+ H0 ~6 ]' D% |; W% G/ P* V5 m$ bash
8 F9 o4 ` N' P7 A网络管理2-网络服务管理# 启动网络
4 b- W$ V6 }# M$ ~$ systemctl start network
$ D6 p. T8 X- A( J' y# 停止
, @1 {8 |, c. M8 r9 F$ l; B; X$ systemctl stop network
* b! X- c9 w u/ x2 [% i# 重启
3 O8 ~ z- @+ P$ systemctl restart network
5 r( w' ?2 e' t0 |# 查看状态7 g& s. i. a0 e
$ systemctl status network
5 d7 w% h2 u* [; A) M如果linux系统不能上网(内网和外网),需要检查网络服务 网络管理3-网卡激活管理- 关闭网卡激活实现步骤# T2 X* G( I: p; o! _6 z- o+ V
# 找到网卡配置文件ens325 ?: c* K1 j2 O% M) x
$ cd /etc/sysconfig/network-scripts/ # 网卡配置文件目录+ s( M: y; x; ~$ ?) A3 }4 P. m5 q
# 查看目录文件' Q& T0 ~0 O6 [- O$ ]: H4 ~. F: }
$ ls4 }; @! Z6 k9 W5 O7 Q9 m* K
# 修改配置文件
- G$ m; W; R0 `; B$ vim ifcfg-ens321 y% o$ m: d2 \. P# S0 b7 g1 Q
# 修改配置,关闭网卡* Y! W3 {3 h9 A! e) n) Y& w+ h
ONBOOT=no
8 S/ @" I1 N- Q. R" ^ k- H$ h# 重启网络服务
# `, E" }4 N) u6 b$ systemctl restart network) S4 o! A$ n" E% R1 U2 z
# 测试是否可以联网
% x/ `+ L" V" N5 e! L$ ping www.mobaijun.com
3 |7 P& x/ d$ \: ?# 修改配置/激活网卡 修片配置文件ifcfg-ens33,开启网卡5 _5 G* D* L+ r9 s: r: b( R+ q
$ ONBOOT=yes
x0 C* Z$ G9 S) `# 重启网络服务
8 {9 V" }8 A# d1 V4 A2 u1 y$ systemctl restart network
# u9 r U" A( L, v网络管理4-配置静态ip- IP配置类型
2 C5 V0 H& e6 D/ `' @3 v0 U- dhcp:动态IP
- static:静态IP
. {( _7 h0 [! j2 z
- 配置静态IP步骤; ?4 \* N. s" P
- 域名服务器,根据域名获取对应的服务器ip地址,这样才可以访问外网
- 用于区别不同的网络,网关可以解决不同的网络通信,需要硬件支持路由器
- 用于标识ip地址的网络号是多少位
- IP地址由网络号和主机号组成
- 给linux系统设置ip必须确定ip的地址、子网掩码、网关
- IP地址(互联网协议地址):
- 子网掩码
- 网关
- DNS
. u4 _; K* F' v, b3 p- D8 P
- 修改网卡配置+ [, v5 Y- @- H- x2 t
# 找到网卡配置文件ens32
A ~% p) J& [' A! G4 f1 g. p$ cd /etc/sysconfig/network-scripts/ # 网卡配置文件目录- S& ]# E5 G8 l8 X+ r
# 查看目录文件
2 S u' z5 Y- s: @$ ls
% R( x$ G$ a. y9 s" K$ z: U% o1 A# 修改配置文件4 V4 B5 e2 {( i3 W% Y1 K
$ vim ifcfg-ens32: T, h+ c0 `2 d6 s
# 修改配置,切换成静态模式. i' _, u* t6 t+ ^$ U6 i2 b* u- i
BOOTPROTO=static
- k: s5 C. M [' j# 最下方添加相关内容8 K9 T1 i' G; p ~0 x; i
IPADDR=192.168.56.135' n$ e. ?% B" K: k
GATEWAY=192.168.123.83
* m' w; v% B( @# I8 xNETMASK=255.255.255.0
2 f" w7 ^& T6 SDNS1=114.114.114.114" P( [0 r" R6 h) m5 T4 Z( P
# 重启网络服务
+ p: e5 \, e: Q# V! U$ systemctl restart network' G! m3 \' ~9 J; M! o* U
# 测试是否可以联网$ U' f5 `5 h5 l; `; {; \( G- w, K
$ ping www.mobaijun.com7 q8 P* h8 C4 x8 L( B" |4 g
网络管理5-克隆虚拟电脑- 克隆步骤8 G, o$ A) S, t
- 关闭当前虚拟机linux系统
- 选择当前虚拟机/管理/克隆/
- 修改克隆出来的静态ip
- 修改计算机的名字) Y$ u& J. E2 Q( l; G6 w8 r9 Q3 e! E. y1 O
网络管理6-域名映射- url域名访问服务器通信原理
, w# l$ [7 N, @" w C
image-20200528161737276- 本地域名映射文件位置
- Windows系统本地域名映射位置:
% B& m. U2 _' h9 R; ~- c:\windows\System32\drivers\etc\hosts
; A& v4 w8 A: f! Q9 C, J
- Linux系统本地域名映射位置:
1 E* Y) x3 P% E: M1 W" l3 B2 q- /etc/hosts
9 x+ I+ u( O7 x7 Z
- 修改本地域名映射实现步骤
; e/ O+ a5 I P- G8 J# j y # 编辑本地etc/hosts域名映射文件% u) ~9 {' H& S7 h% c( `7 E
$ vim /etc/hosts/ O2 Y% K% p& n; K# T" o3 e
# 添加域名映射IP的配置: M( ?0 i0 l9 j4 y9 Q2 R. m6 Q5 |
192.168.123.83 www.mobaijun.com
$ H, B$ \; E; u; x% j# P# 保存退出" x0 o* G3 w) b
$ wq
7 o! R% y3 G" Z. @1 s: e [# 测试效果0 b$ Z9 ?2 ]) A2 k+ [, Q9 |
$ ping www.mobaijun.com
' W. A6 n2 R$ f网络管理7-查询网络进程使用端口号常用命令 [td]netstat [args] | null | 显示网络状态 | | -n | number | 显示程序的IP地址和端口号 | | -t | TCP | 只显示TCP协议链接的程序 | | -l | listener | 显示监听中的Socket | | -p | Programs | 显示程序的名称 | | -u | UDP | 查询udp协议通信的程序 | # 查看端口、udp、tcp、正在监听、显示程序名的所有程序
4 j1 {1 W. N5 `- }; u* C$ netstat -nutlp
0 m1 c& u! m: x( P6 B防火墙管理- 防火墙作用( R3 p- e+ \2 I7 ?/ }( h
是防止外界访问系统内部的程序,防火墙允许哪个软件访问外网,这个软件才可以进行网络通信 [td]命令 | 简介 | | systemctl status firewalld | 查看状态 | | systemctl start firewalld | 启动防火墙 | | systemctl stop firewalld | 关闭防火墙 | | systemctl enable firewalld | 开机自启 | | systemctl disable firewalld | 让防火墙开机不自启 | SSH有密登录和免密登录- SSH实现免密登录步骤& S% U3 g7 o( s) j
# 在本地生成一对公钥和私钥
" C$ g. S1 j. V! r* ^$ ssh-keygen$ E" K6 n/ E" X0 Z/ P
# 将公钥发送给远程服务器,必须给出远程服务器的密码本地才接收公钥
& V- b2 C: m; J0 |$ ssh-copy-id address- Z& L4 h- X; S1 y% M, f
# 查看公钥
: Q6 X4 K+ N9 `$ R3 v% a$ cat authorized_keys
* y! J2 k9 Y8 e5 k4 ?- k1 i# 发送登录请求,实现免密登录
( X1 M% n7 M5 D: E$ x# T0 o$ ssh address9 w4 X; ]' \9 V9 i8 x3 b
部署项目1-本地软件安装命令rpmRedHat Package Manager(RPM), 擅长安装本地的软件 - rpm的作用. ~7 a: j; G. V
- 查询已安装的软件
- 安装软件
- 卸载软件0 g" R% a% L+ r" o( P% s0 V( e
- 常用命令7 [7 R' l! o; F- {8 }- O' O$ H* K- x
[td]rpm [args] [包名] | 类似软件管家{添加,卸载,查询} | | -v | 显示安装的详细过程 | | -q | 查询某个软件是否安装 | | -a | 查询所有软件 | | -h | 列出软件安装时的标记 | | -i | install 安装指定的软件 | | --nodeps | 不验证软件相关关联性,常于-e一起使用,表示强制卸载 | # 查询所有已安装软件7 T, R4 Q# ?4 u8 `; p" G
$ rpm -qa
( H/ j! o& a& M# 安装指定的软件包
8 Q/ _2 ^- K( L$ rpm -ivh <包名>
( K$ M8 a( g3 u D% r9 y# |# 强制卸载指定软件包
5 J; t6 S4 u. _2 X0 Q# C% ~$ rpm -e --nodeps <包名>
) G! U- t/ [+ p2 n8 H4 GRPM_jdk安装# 查询本地是否有JDK
9 S: E0 I9 D% ^3 C4 x) e/ [$ rpm -qa | grep java9 ~: r6 }" c- c0 b
# 查询是否安装JDK
8 }7 J z) N5 W! r% v7 |) e& Y$ rpm -qR jdk
4 j" a2 Y4 U9 V L4 s# 新建soft包存放未解压的安装包
* C. G/ I/ F l2 s5 q5 ]$ mkdir soft6 h6 G: X8 X( n+ j' X8 G$ f) s
# 将jdk软件上传到linux系统/soft目录下并解压到指定目录) G/ V) {. D: I( x
$ tar -xvf jdk-8u251-linux-x64.tar.gz -C /usr/local
. X2 K1 j" O, D8 ^) ^# 配置linux的jdk环境变量,操作一个/etc/profile环境变量配置文件 R' ^" j6 A3 g) t3 F' z2 T% U0 V
$ vim /etc/profile
) d/ W& e" a `1 I# 配置环境变量/ I; J$ J& S& U6 L
#set java environment* }# V- w1 Y, [% B* B/ O" [. R. \1 Z
JAVA_HOME=/usr/local/jdk1.8.0_2512 E4 k* j; R7 D, D. I0 w( K) k
CLASSPATH=. JAVA_HOME/lib
8 N4 a( p! h( k( XPATH=$JAVA_HOME/bin PATH
3 E3 `. |, R* E* uexport JAVA_HOME CLASSPATH PATH
3 ~. r& X, l. N! s. M x7 W) \# 重载环境变量配置文件: O/ E% D6 A# P, Y" C
$ source /etc/profile
, S# v4 W6 j) c# 查看jdk环境变量是否配置成功8 }7 P! P6 k" Z
$ java -version
0 m) }0 z# W' \4 a# O1 m; ?* p' g更换YUM源# 安装wget. M+ y- ~. t7 @ V" I+ p2 n. X
$ yum install -y wget
/ h6 W! b3 p$ Z! T; T! J# 下载CentOS 7的repo文件* l# {3 f2 ]0 c) j
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
$ F) R& U* y$ T& `1 n# 清除缓存
6 T" v! {5 G9 T4 P- h1 _, W$ yum clean all1 c9 G6 O5 f! q( M2 A9 j9 `
# 生成缓存
+ {& W- S* F* k& J$ yum makecache: j% [- _% H9 \1 S; y
# 备份CentOS 7系统自带yum源配置文件" Y2 x" A; Q) W1 M) p; w6 q
$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup" H3 p, e. B! f5 X- D) f# f6 y4 s" c
# 打开CentOS-Base.repo文件,将文件中的所有http开头的地址更改为https
: r C/ P. n V, E' |$ vim /etc/yum.repos.d/CentOS-Base.repo# e) T$ [6 U- ^
# 更新YUM O" M2 i5 R( n( |) v
$ yum update
v8 p6 `6 t: p+ g; J& L- h! c部署项目3-mysql安装-启动-远程授权- MySQL安装+ S/ J& e& b7 u/ Y- r
# 查看CentOS是否自带的MySQL,如果已经安装需要卸载。如果没有找到,则表示没有安装5 f: v& W8 y+ l/ |4 E0 i4 \
$ rpm -qa | grep mysql X" C( k+ j& c. f; O
# 在线获取CentOS7的mysql的rpm安装文件,直接执行如下命令:
, W9 h8 Q* }: C; p$ J' [; X I7 s* P$ wget http://repo.mysql.com//mysql80- ... se-el7-1.noarch.rpm
2 N7 Z+ {4 ?( w9 P, t: p# 执行安装命令/ M* P J* {: q* p0 K+ H1 X
$ rpm -ivh mysql80-community-release-el7-1.noarch.rpm
" S7 V3 |2 ]0 X' a: i% f# 得到两个配置文件,进入/etc/yum.repos.d目录下查询, o/ v( z, b9 k( V
$ cd /etc/yum.repos.d 0 Q9 B" q& C% x
# 编辑mysql-community.repo文件,配置资源库下载版本选择
, t, r1 n; B2 `5 D( S/ k$ vim mysql-community.repo1 D: V4 \+ Q$ E
# 编辑需要下载的MySQL版本将`enable=0`改为`enable=1`
: q# H* J$ w$ F{
/ q: r& i1 C; D2 D# A; }1 i0 ]0 D[mysql55-community]6 B3 G5 }) N, U7 g# @% ?) [ W
name=MySQL 5.5 Community Server b3 R9 x8 B( c+ G* Q A0 C
baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/
! e: P* L0 n2 L, Z0 j' S% V+ Benabled=1
, y8 q( s: ?9 X% i ~gpgcheck=1* s7 K+ O: I8 |0 @0 a" ~# h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql& l3 ]) D! L7 H& E- l8 V
}/ S* g$ J8 Z8 i: _3 ]8 X
# 下载安装客户端、服务器端、工具包$ i0 T2 M" Y2 {- c! \! n
$ yum -y install mysql-community-client mysql-community-server mysql-community-devel
: g2 w# d2 ?5 M1 ?9 m! {# 启动MySQL' Q0 }4 ]$ G1 B; {5 ?6 }
$ systemctl start mysqld
; q2 {" I5 F- r* b( ^7 ]# 将mysql加到系统服务中并设置开机启动
0 s7 k& k; n! S$ systemctl enable mysqld# r2 M! a4 S; q* B+ \) V" l% ]
# 登录mysql,root用户默认没有密码
: Y+ `3 z) A ^9 T" ?% M$ mysql -uroot1 P, j& [0 Q9 M
# 在mysql中修改自己的密码" ~5 u6 O+ {" M& k# c
$ set password = password('root');- k0 t8 e4 S" Q3 y/ b* e
# 退出
- a4 c* g0 z: X/ Q! T6 d$ exit
7 G/ z# ]4 e3 e: ]. a' g# 重新登录
8 O2 N; N& R1 v' k& ?' N3 O$ mysql -uroot -proot+ S) E4 L% J: ~
设置远程连接权限、开放端口号 开启mysql的远程登录权限,默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启,并且刷新权限缓存。远程登录mysql的权限登录mysql后输入如下命令 # 开启mysql的远程登录权限0 T0 O$ v! q; G! o, w$ I K/ Z
$ grant all privileges on *.* to 'root'@'%' identified by 'root';# G) Y* D3 f$ b- k
# 刷新权限缓存) a* Y1 s8 J- b: j
$ flush privileges;开放Linux的对外访问的端口3306
6 M2 c. m2 T J # 开放的端口永久保存到防火墙* @+ O# [( Z d5 ]* Y, [( D
$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
; b$ v! S" A4 ], N8 i# 重启防火墙
+ v8 N1 o* |! j$ systemctl restart firewalld
, c6 U b& w1 C K8 l+ y- Navicat测试" L; ?/ Y. r: D$ x
部署项目4-tomcat安装-启动- 下载Tomcat
; t* S6 a' B. Q8 G! C/ z
image-20200529105935993# 将软件上传到linux系统/soft目录下并解压) r8 O6 |/ v% H5 o% \# k0 n
$ tar -xvf apache-tomcat-8.5.55-src.tar.gz -C /usr/local/
) M' T( U9 a: A: p j4 C# 改名% ^% m! t1 K3 ~3 i8 o
$ mv apache-tomcat-8.5.55-src tomcat8& c8 u+ ]( F* f& _7 C
# 进入bin目录" z+ l6 q4 k; e" U
$ cd /usr/local/apache-tomcat-8.5.55-src/bin
( Q' Z! z5 Z: _& }3 Y; {! ~ o7 ?# 启动tomcat服务器
8 h, q0 @9 D$ v- x( e# @$ ./startup.sh. X' F" K# v( A! q5 Q
# 提示权限不够解决方案; T4 l% j: l; Q7 Y6 r
$ chmod u+x *.sh
' Q8 C9 \/ \; ]) b# B6 w# 重启应用服务
, w- g. o: a& J" k$ ./startup.sh( O4 i2 i- Q( F E- s/ x
# 开放linux系统防火墙8080端口: Y/ B5 K( X( h
$ firewall-cmd --zone=public --add-port=8080/tcp --permanent% o% C+ K, }0 E6 z7 o, V
# 检查是否生效
9 b9 `% n: [/ |$ firewall-cmd --zone=public --query-port=8080/tcp/ s+ b) G% S7 Z8 H% L8 @
# 重启防火墙( m6 ^2 \' d5 u% O% j! \) L6 L
$ systemctl restart firewalld
; m: w8 ^3 h% s# windows客户端使用浏览器访问linux的8080端口tomcat% k- Z+ r& p/ q& W
$ 192.168.123.83:8080- K) z: j* p+ W: X9 h
# tomcat无法找到JAVA_HOME解决方案) C5 j, L& H% P& f
# 查看环境变量是否有问题
7 k/ z1 O5 C& V; ~6 y" {$ echo $JAVA_HOME
z' H2 M D2 b! i# o; F$ echo $JRE_HOME
. `% D' L% J; X/ ]: L# 定位到tomcat/bin/setclasspath.sh目录下,文件开头添加环境变量5 @7 z7 U/ ^; r( P: z
JAVA_HOME=/usr/local/jdk1.8.0_251* r. P/ r9 ]' K* s
JRE_HOME=/usr/local/jdk1.8.0_251/jre! ]/ D( ?, ?& d- C. X
# 删除tomcat和日志文件
$ j7 g/ M( l1 s( p; P3 v' d$ rm -rf /usr/local/tomcat
& ?3 q5 d8 L5 `4 X% }8 Z; a$ rm -rf /usr/local/logs/*.txt &
5 ?+ T* a8 q! w2 k$ rm -rf /usr/local/logs/*.log &
0 U# g+ o+ P0 u8 R- l2 K
image-20200529110825215
! ^9 k$ n2 Q4 X+ _/ n* P部署项目5-项目发布
( r3 X) C" y4 f; q1 t* T- 链接Linux数据库(导入数据库)
- 在IDEA中导出war包
- 将war包部署到linux里面的tomcat里面的webapps里面
- 浏览器访问* K: [: j) Q a& q/ i6 l
解决mysql底层乱码问题- 修改druid.properties配置文件,设置mysql使用utf-8解码,添加?characterEncoding=utf8
/ h( w9 u6 a' C5 N& R, c6 ] driverClassName=com.mysql.jdbc.Driver
& \1 e8 I& t0 N% kurl=jdbc:mysql://127.0.0.1:3306/linux?characterEncoding=utf8$ |6 P$ }$ U% X' f& R
username=root9 B) y) c2 h; U6 i H) `
password=root# ~: o' T+ a* N# i+ \# H/ z: j
initialSize=5
8 E% r* A% \! M3 F% f; C4 I# mmaxActive=50
" }, N' `& f/ u Q5 K* H; bmaxWait=30000
v7 @2 z2 M# }5 W/ |minIdle=3
. z- Y3 s) v1 w$ S! j; m L- 将当前项目需要重新打包,再部署到linux上tomcat的webapps里面
- 关闭tomcat,执行shutdown.sh
- 启动tomcat,执行startup.sh3 A" r. n/ Q5 i% |! |/ F
用户管理1-用户的管理- 添加用户
+ e, \9 n: y' t: D9 L5 g7 c # 添加用户,进入/home文件夹/创建用户和主目录1 H, W* W5 S% x1 H' J+ h
$ cd /home
3 p3 m: c! O% C: a o7 z# 查看( Z& ^) N" N$ k8 m2 ]1 ]8 J6 G
$ ll [4 j+ G; s! l
# 创建组名
+ h% o- ?' T) t$ useradd -m mobaijun1 ~+ C5 E! Y) V# D, F( w* h
# 查看 l2 X* ?0 e. b
$ ll7 \) k) O! s, g e$ z
# 创建用户名
8 F: M3 Z! Z5 o0 O9 L& S p$ useradd -mg mobaijun tom
6 V% y& O/ v7 Q1 O1 M/ X# 查看
; `: n" v2 |* ^2 w: ^/ O[root@mobai home]# ll
, I; L3 C. d( w4 s. [7 L! d: J) y6 p3 Z总用量 0
7 Z% x% S+ e. P' H+ I; D$ F( Pdrwx------. 2 mobaijun mobaijun 62 5月 29 11:25 mobaijun1 T! [% h! S. n0 m+ w' N7 ^' R+ g
drwx------. 2 tom mobaijun 62 5月 29 11:25 tom1 V% x* _- G! k: `5 G
# 查看/etc/passwd用户内容9 k& \1 f ?) C) s! k. w" }0 U- @
$ cat /etc/passwd
, t9 ?7 p" \; y" W# passwd文件用户内容
- P8 X4 ?: _8 `, Emobaijun:x:1000:1000::/home/mobaijun:/bin/bash' d4 C8 w. ~! S; F% t- O
tom:x:1001:1000::/home/tom:/bin/bash
6 }# B) j5 M6 i0 t% G6 P
image-20200529113324846- 给用户设置密码并切换用户5 ?4 \- V1 E- L3 J w( q
# 设置密码! Y5 M. b. N( u x
$ passwd mobaijun
9 c" Z& ~# l" K' F+ I% i# 切换用户9 G7 f' f& v6 R6 y
$ su mobaijun
, _" R9 ]6 g* ^5 C. i3 b# n" X
6 l+ j& l! o5 }4 B6 g4 a' s' H8 R
4 I/ L" l/ z4 ?! h/ c8 u% h X/ C
image-20200529113602453- 删除用户3 R! Q! C T# J1 m" z+ a& ~8 m
# 切换回主目录
3 `& \3 u3 r | H( E7 E7 d1 M' I$ su root
/ A2 \5 o9 p2 w8 C2 `; A2 Z( r3 i# 删除用户组
$ v: z+ @3 C- b" Y# P$ userdel -r tom6 q# @2 u* H( f" W) _/ Q1 r1 m/ m
image-20200529114209310- 修改登录名7 ?/ b/ t, e4 X, u' G
# 修改登录名称. I6 `4 Z4 E% ~8 F3 ?
$ usermod -1 Rose mobaijun
N5 z9 a# j7 {9 t7 Z( Y总结 - useradd:添加用户
- passwd:给用户设置密码
- su:切换用户
- userdel:删除用户
- usermod:修改用户登录名
' z3 @8 b5 ]. M1 \; C5 O$ G 用户管理2-组与用户的管理# 添加组
2 X' U [) l' D. l% Q* D# ~7 l, o$ groupadd [组名]
: v, \ A5 d, y( N" A$ }! S# 查看组
- @* n8 N5 V* u3 {$ cat /etc/group
, I/ p0 j, Y* T3 g1 \& C1 c- 用户添加指定组( P! m7 d' j$ V% N. ^
# 进入主目录( Q3 v. ?6 F t9 [" D- }0 z
$ cd /home: ]9 l7 B1 n' ?$ m: e w% O
# 修改用户组名称
" d0 n8 R$ s( l% ~' Q3 C, ~! M$ usermod -g [新组名] [组名]# O# r3 N+ z3 q9 U# M) A' J
- 用户从指定组中删除
9 g& {2 U, q, g, O # 用户从指定组中删除 K2 Z' w. Y7 W( ~0 \3 c( F, t
$ gpasswd -d 用户 组名
- X; s' j9 E1 Y& W# 查看; [+ O% @! {0 t' S( a2 }7 _: \7 _* _% q
$ ll N7 X! ^3 y6 g' p; Z! p
# 查看配置文件
4 C% \# B) r+ A# R: A$ cat /etc/group
. S5 x9 q( Y" Y5 O- 修改组名
+ A5 { J) J) A* p5 x3 O # 修改组名8 u8 l5 ] `5 r. B
$ groupmod -n 新组名 组名
/ {( }* S; f% d' Q9 l- 删除组
+ N6 w# o/ p' c/ T+ N # 删除组
2 J7 D# Q6 t" Z! O0 G( [* }$ groupdel 组名9 U6 N9 R( K7 n5 M1 `/ V1 L6 W
# 查看
9 ~: y1 m+ \1 }; S, M# y$ cat /etc/group% I. t. m8 B/ Y) ~2 S" A
总结 - groupadd:添加组
- gpaddwd:将用户从组中删除
- groupmod:修改组名
- groupdel:删除组; D0 J* r* _5 @4 i: ]+ k
用户管理3-给普通用户设置 sudo超级管理权限# 编辑配置文件
. h8 ~) p& f0 l; E/ z- {. B$ vim /etc/sudoers
/ `0 e+ ?9 G/ d# Z9 Q# 切换用户
" A* y4 r8 X( W1 \0 C( ]/ H) T$ su mobaijun
; z; M9 |" {+ e! C# 设置权限
4 f; m1 Z( p, E+ }! B$ sudo useradd -m 用户名
; h1 d" z7 y- e4 j; ~# 查看* S) c) e* A. H7 {& H
$ cd /home" U) E# V5 M3 }; Q! d
2 r5 |3 c3 C& F5 `* B4 M- A! N
! W; K8 h* @3 x; y h% A% O |