一、Linux介绍
背景:Java项目通常基于windows系统进行开发、服务器部署则是基于Linux
1.1 Linux系统概述
- Linux是一套免费使用、自由传播的类unix操作系统
- 支持多用户、多任何、支持多线程和多CPU的操作系统
- linux通常作为服务器系统使用(windows server也是一个适用于服务器的系统)
1.2 Linux系统的特点
- 性能比window更稳定(宕机概率比较低)
- 完全开源,用户可以自由的进行裁剪、灵活性高、使用成本低
- 技术社区用户多
- Linux核心防火墙组件性能高、配置简单,保证系统的安全
- 对于linux提供纯命令行系统(也可以带有桌面),系统开销比windows小的多
- 综上,Linux比windows更合适用于服务器系统
1.3 Linux系统版本
- RedHat(RedHat公司发行的Linux版本,效率高、高可扩展、高可靠性)
- SUSE(德国SUSE公司推出的Linux发行版)
- DEbian(追求创建自由操作系统,目前有很多的非官方版本,可用性不高)
- Ubuntu(乌班图,基于DEbian发行版,桌面系统,是一个以桌面应用为主的linux系统)
- CentOS(基于RedHat源码编译而成,CentOS完全开源)
- 红旗Linux
- OS X就是一个Linux系统
二、虚拟机
2.1 如何获得一个Linux系统?
- 基于硬件安装Linux系统(需要硬件的支持)
- 安装虚拟机
- 购买云主机
2.2 虚拟机介绍
通过虚拟机软件在现有的系统资源环境下,独立出一部分系统资源构造出一个独立的系统运行环境,在这个独立的环境下可以安装操作系统
虚拟机 |
---|
![]() |
- 在windows系统中安装虚拟机软件—VMware Workstation
- 通过VMware创建虚拟机
- 在虚拟机中安装CentOS系统
2.3 下载安装VMware
文档:02-VMware workstation.md
链接:http://note.youdao.com/noteshare?id=c19a77888a7d71e2a846c01ac00aaac9&sub=789DFC14569E4914B8EB5A8DBA41E56F
2.4 创建虚拟机
文档:03-CentOS.md
链接:http://note.youdao.com/noteshare?id=3c381e2ea74d0d5cfcc743defa0e942c&sub=AB9601C588C7484BB0F29331F0005756
2.5 克隆虚拟机
-
停止当前虚拟机
-
选择虚拟机–管理–克隆–(选择完成克隆)
-
修改克隆的副本的mac
选择克隆的副本–右键–设置–网络适配器–高级–mac地址(生成)–确定
三、云主机
3.1 什么是云主机?
云主机是一种类似VPS主机的虚拟化技术, VPS是采用虚拟软件,VZ或VM在一台主机上虚拟出多个类似独立主机的部分,能够实现单机多用户,每个部分都可以做单独的操作系统,管理方法同主机一样。
3.2 云主机提供商
阿里云
-
24岁免学生认证可享受学生优惠政策、24岁以上需要学生认证享优惠
-
需要注册一个阿里云的账号,此账号也是用于对云主机进行管理的账号
-
https://www.aliyun.com/activity/daily/bestoffer
腾讯云
-
25岁下免学生认证
-
需要在腾讯云注册一个账号
-
https://cloud.tencent.com/act/campus
3.3 云主机管理系统
阿里云管理平台:https://console.aliyun.com/
安全组管理:
四、Linux远程终端工具
我们在对远程服务器、云主机进行操作需要通过远程终端来完成。
- SSH
- xshell & xftp
4.1 xftp 文件传输管理工具
-
下载
-
安装(傻瓜式)
-
建立与云主机的连接
4.2 xshell 远程终端
- 下载
- 安装
- 连接连接
五、Linux常用操作指令
服务器的Linux通常是通过指令来完成操作的,所以我们对Linux系统的使用就是学习Linux的常用指令
5.1 Linux常用操作
- Linux文件系统结构
- Linux文件管理
- 目录
- 文件
- Linux用户权限
- Linux软件管理
- 软件的安装和配置
- 软件的卸载
5.2 Linux的文件系统结构
Linux系统不同于widnows系统,在Linux系统中是没有盘符的,根路径"/"
[root@theo ~]# cd /
[root@theo /]# ls
bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@theo /]#
目录 | 说明 |
---|---|
bin、boot | 系统文件夹、boot包含系统启动相关的文件 |
dev、lost+found、proc、run、srv、sys、var | 系统相关目录 |
etc | 系统配置相关的目录(环境变量) |
home | 一般用户所在的文件夹(此目录包含所有普通用户的目录) |
lib 、lib64 | 存放系统的依赖库 |
media | 媒体(光驱) |
mnt | 挂在(U盘、移动硬盘) |
opt、tmp | 系统的临时文件夹(系统日志) |
root | 超级管理员的目录(root用户) |
sbin | 存储超级管理员可执行的指令文件 |
usr | 用户目录,我们通常将软件安装在此目录中 |
5.3 Linux系统指令语法
指令 [选项] [参数]
- 指定 决定了当前的动作
- 选项 可有可无,用于补充指令的功能(对于有些特定的指令,必须给出选项)
- “-” 短选项,一个字母代表一个选项
- “–” 长选项,一个单词代表一个选项
- 参数 指令执行动作所需的数据
man指令 (manual:说明书)
- man 指令名称
- 点击Q退出说明书
文档:Linux命令.md
链接:http://note.youdao.com/noteshare?id=b9455f8744c5921ee6c716323c8c1341&sub=D32CB90730044AE4AEA9269DB952FB8B
六、Linux文件管理
6.1 目录操作指令
-
cd
进入/退出指定目录-
cd 目录名称 进入指定目录
##进入到Linux根目录 cd / ##进入到当前的用户目录(root用户进入到/root,普通用户进入到/home) cd ~ ##指定的路径如果是/开头 则表示绝对路径; 如果不加/,则表示当前路径下的相对路径 cd /usr/local ## pwd (print working directory)打印当前目录路径 pwd
-
cd … 退出当前目录
-
-
ls
列出当前目录下的内容(list directory contents)- ls 显示文件列表
- ls -a 显示目录中包括.开头的所有文件列表
- ls -l 显示当前目录中文件列表的详细信息
- ll 作用同“ls -l”,显示文件列表的详细信息
-
mkdir
创建目录- mkdir 目录名 在当前目录下创建指定目录
- mkdir /usr/…/目录名 在指定的目录下创建指定目录
- mkdir -p 目录A/目录B 创建多级目录
-
rmdir
删除目录,删除空目录 -
rm
删除目录和文件- -r recursive 递归
- -f force 强制
6.2 文件操作指令
-
vi
和vim
创建和修改文件- vi (visual) 文本编辑器
- vim(visual improved) 增强文本编辑器
- vim操作
- vim 新文件名 创建并打开这个文件
- 点击“i”进入编辑状态(a i o)
- 编辑完成以后点击“esc”退出编辑状态
- 退出文件
- :q 未对文件进行修改,退出文件
- :q! 对文件进行了修改,但不保存修改退出
- :wq 对文件进行了修改,保存并退出
-
cat
、more
、less
阅读文件cat [-n] 文件名
阅读文件内容(适合小文件)more 文件名
阅读文件内容、可以翻页(点击回车一次翻一行,不支持向上翻)less 文件名
阅读文件内容、可以翻页(一次翻一页,可向上翻页)- pageDown 向下翻页
- pageUp 向上翻页
- q 退出阅读模式
-
grep
查找文件内容- grep [-n] 搜索关键字 文件名 从当前文件中搜索指定关键词所在的行
-
find
查找文件- find 文件名|目录名 在当前目录下查找文件/目录
- find 文件名|目录名 目标表目录 在当前目录下查找文件/目录
-
|
管道命令- 多个命令的组合
|
前面指令的输出作为后面指令的输入- grep -n Hello a.txt|grep o
-
rm
删除文件- rm -rf 文件名
-
cp
、mv
拷贝和移动文件- cp 文件 目录 将某个文件拷贝到指定目录
- mv 文件 目录 将某个文件剪切到指定目录
-
tar
压缩和解压- 压缩
- tar -zcvf 压缩文件名 目标目录/文件
- 解压
- tar -zxvf 压缩文件名
- 指令选项
- z 指定gzip进行压缩解压
- c compress 压缩
- x extract 解压
- v verbose 显示压缩/解压详细过程
- f file 文件
- 压缩
七、Linux用户及权限管理
7.1 用户及用户组
-
用户组
- 创建用户组: groupadd 新建的用户组名
- 删除用户组: groupdel 用户组名
-
用户
-
创建用户:useradd [-g 用户组名] 用户名 (默认在root用户组)
-
修改密码:passwd 用户名
-
删除用户:userdel 用户名
-
-
切换用户
- 切换到普通用户 :su 用户
- 切换到root用户 :su
7.2 文件权限
- 改文件权限
- chmod 764 文件名
八、Linux系统与进程管理
8.1 查看进程
-
ps -ef
查看系统所有进程 -
ps -ef|grep 关键字
查询与关键字相关的进程 -
lsof -i:3306
根据端口查询指定的进程(CentOS并不是默认包含此命令)- 我们可以通过
yum install -y lsof
安装lsof命令
- 我们可以通过
-
netstat -apn| grep port
也可以实现通过端口号查询进程信息
8.2 强杀进程
kill -9 PID
通过进程编号强杀进程
8.3 注销和重启
logout
注销reboot
重启
九、软件管理相关的指令
9.1 wget指令
wget 就是linux系统中下载资源的指令,用于下载软件的安装包;wget是linux系统自带的下载工具
例如下载mysql安装包:
- 搜索mysql下载url:http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
- 执行下载: wget url
9.2 rpm指令
rpm(Red-Hat Package Manager) 是Linux系统中的软件包管理工具
-
查询:
rpm -qa|grep 关键字
-
卸载:
rpm -e --nodeps 软件包名
-
安装:
rpm -ivh 安装包.rpm
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
-
更新:
rpm -Uvh 安装包.rpm
9.3 yum指令
yum(YellowDog Updater & Modified)基于RPM包的管理,能够从指定的服务器下载rmp并完成安装;而且可以自动处理依赖关系,一次性安装所有依赖,无需一个一个下载安装。
- 查询:
yum list
- 卸载:
yum remove
- 更新:
yum update
- 安装:
yum install -y rpm|url
十、安装JDK
10.1 下载JDK的tar包
- https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
10.2 将tar上传到云主机
10.3 解压tar包
- tar -zxvf jdk-8u221-linux-x64.tar.gz
10.4 配置环境变量
-
进入到/etc目录
-
编辑profile文件,在文件最后添加java环境变量的配置
export JAVA_HOME=/usr/local/jdk1.8.0_221 export CLASSPATH=$JAVA_HOME/lib export PATH=$JAVA_HOME/bin:$PATH
10.5 重新加载profile文件
-
加载/etc/profile
source /etc/profile
10.6 查询JDK版本
- 执行java -version
十一、安装MySQL
11.1 下载mysql的rpm安装包
cd /usr/local
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
11.2 通过rpm指令安装rpm文件
rpm安装mysql的rpm包
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
查看安装后mysql文件
[root@theo local]# rpm -qa|grep mysql
mysql57-community-release-el7-10.noarch
11.3 通过yum指令安装mysql服务
yum -y install mysql-community-server
11.4 设置mysql服务开机启动
systemctl enable mysqld
11.5 启动mysql服务
## 启动mysql服务
systemctl start mysqld
## 停止mysql服务
systemctl stop mysqld
## 重启mysql服务
systemctl restart mysqld
11.6 首次登录mysql
## 查找mysql root用户的默认密码
[root@theo ~]# grep 'temporary password' /var/log/mysqld.log
2020-08-14T08:41:15.111338Z 1 [Note] A temporary password is generated for root@localhost: x#tA*O.E)9/,
## 使用root用户登录mysql
[root@theo ~]# mysql -uroot -p
Enter password:
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
## 初次登录需要设置root用户的初始密码
mysql> set password = password('QFEDU123_mysql');
11.7 设置mysql数据库允许远程连接
-- 设置允许以root用户进行远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
-- 让修改操作立即生效
flush privileges;
11.8 在本地通过mysql的可视化工具进行远程连接
十二、安装Tomcat
12.1 下载Tomcat
https://tomcat.apache.org/download-80.cgi
12.2 上传至linux系统 (/usr/local)
略
12.3 解压tomcat.jar
tar -zxvf apache-tomcat-8.5.57.tar.gz
12.4 启动Tomcat
## 进入tomcat的bin目录
[root@theo local]# cd apache-tomcat-8.5.57/bin
[root@theo bin]# ls
bootstrap.jar ciphers.bat configtest.bat digest.sh shutdown.sh tomcat-native.tar.gz version.sh
catalina.bat ciphers.sh configtest.sh setclasspath.bat startup.bat tool-wrapper.bat
catalina.sh commons-daemon.jar daemon.sh setclasspath.sh startup.sh tool-wrapper.sh
catalina-tasks.xml commons-daemon-native.tar.gz digest.bat shutdown.bat tomcat-juli.jar version.bat
## 启动tomcat
[root@theo bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-8.5.57
Using CATALINA_HOME: /usr/local/apache-tomcat-8.5.57
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.57/temp
Using JRE_HOME: /usr/local/jdk1.8.0_221
Using CLASSPATH: /usr/local/apache-tomcat-8.5.57/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.57/bin/tomcat-juli.jar
Tomcat started.
十三、web项目部署
tdown.bat tomcat-juli.jar version.bat
启动tomcat
[root@theo bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-8.5.57
Using CATALINA_HOME: /usr/local/apache-tomcat-8.5.57
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.57/temp
Using JRE_HOME: /usr/local/jdk1.8.0_221
Using CLASSPATH: /usr/local/apache-tomcat-8.5.57/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.57/bin/tomcat-juli.jar
Tomcat started.
## 十三、web项目部署
[外链图片转存中...(img-r8oLSuqU-1597457949038)]