Author: Ning(Cover Eric)
Date: 2020.07.06
一、Linux介绍
1.1 引言
开发、生产、测试环境的概念
- 开发环境:一般情况下我们都是在Windows/MacOS环境下进行开发。但在开发环境中安装大量的软件,会导致环境的稳定性和安全性降低。
- 生产环境:运行可供用户访问的服务程序的环境。由专业人员去维护,一般人无权操作。
- 测试环境:一般会克隆一份生产环境,将开发环境中的程序部署到测试环境中,这个环境的主要目的是去程序进程检测,手机程序中的各种问题,并交给开发人员进行修改。
生产环境中常用的操作系统有Windows Server、Linux、Unix。
Linux操作系统在生产环境中占据了大量的市场份额,它主要以稳定、可靠、免费的特点成为全球使用最多的服务器操作系统。
Linux操作系统现在已成为后台开发人员必备的技能,并且后期学习的各种知识都会涉及到Linux操作系统。
1.2 Linux介绍
在Linux操作系统出现之前,还有一个操作系统Minix,Minix操作系统是由Andrew的大学教授研发出来的,当时大学教授是为了给学生上课,买了一套Unix操作系统,参考Unix自己写了一个操作系统,并命名为Minix。同时将Minix开源,供学校内部教学和研究,到了2000年,Andrew将Minix完全对外开源。
Minix完全开源后,在互联网上迅速传播,但在大家使用时,发现Minix并不完美,内部存在各种各样的问题。于是,大家将问题解决后,将补丁发给Andrew,但教授最初的目的只是为了教学和研究。
与此同时,一位芬兰的大学生Linus出现了,在Minix的基础上,自己添加了一些补丁和插件,并将其命名为Linux操作系统,且对外完全开源,开始维护Linux系统,过程中又开发了Git。
1.3 Linux的版本
Linux的内核版本
https://www.kernel.org/
Linux的发行版本
我们需要学习的发行版本是CentOS
1.4 Linux和Windows的区别
- Linux严格区分大小写
- Linux一切皆文件
- Linux不以后缀区分文件类型,有一些约定俗成的后缀,如tar.gz是压缩文件类型
二、Linux的安装
以虚拟机方式安装Linux,需要两个东西
虚拟化软件:VMware/Virtual Box
https://www.virtualbox.org/wiki/Downloads
CentOS镜像:CentOS.iso
https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2003.iso
为了远程连接Linux,需要一个SSH工具
- MobaXterm/Xshell等(推荐MobaXterm)
2.1安装vbox
傻瓜式安装
2.2安装Xterm
解压即可使用
2.3在vbox中安装CentOS
点击新建
自定义名称
内存至少为2GB
其它选项参见下图,完成后点击创建
- 文件大小即虚拟硬盘大小,因为是动态分配,不实际占用全部空间,建议20GB以上
- 文件类型选择VMDK,选择分割为2GB
- 完成后点击设置
- 设置CPU至少两核
- 网络选择桥接网卡,点击OK
- 点击注册,选择刚刚下载的盘片
- 进入后上下键选择Install CentOS 7
- 稍等片刻,左侧栏滑动到最底端选择中文,点击继续
需要注意的是,鼠标点进虚拟机后,会被锁定在里面,你需要点击主机组合键跳出,比如我的主机组合键是Right Ctrl + Right Alt(窗口右下角显示),可以在管理的全家设定里设置该组合键。
- 进入后稍等片刻,选择带警示标的选项(安装位置),进入后无需操作直接点击完成
- 返回后点击下方的网络和主机,进入后打开网络,看到ip地址后,点击完成
- 返回主界面后,点击开始安装
- 安装过程中设置root密码,请牢记,该密码极为重要
- 完成后点击重启
- 输入用户名密码,看到以下界面([root@localhost ~]#),表示安装成功了
Linux密码不显示,不用担心没输上
2.4 使用Xterm连接Linux
直接在虚拟机里面操作是很麻烦的,而且我们还需要进行一些文件传输,所以我们采用Xterm进行远程连接
- 在虚拟机中输入:ip a,查看虚拟机的ip
- 打开刚刚解压好的Xterm,点击session
- 选择SSH,输入刚才看到的ip,并输入登录用户的名字(root),点击OK
- 输入密码,看到以下界面,连接成功
三、Linux的基本操作
3.1 Linux的目录结构
Windows的目录结构是带盘符的:C:/ D:/ E:/
Linux不带
在Xterm终端中输入"ls /"查看Linux的顶级目录
- root:该目录为系统管理员的home目录
- bin:该目录放着经常使用的命令
- boot:启动Linux时的一些核心文件
- etc:存放系统管理所需要的配置文件和子目录
- home:普通用户的home目录
- usr:默认安装软件的目录,类似Windows中的Program Files目录
- opt:主机额外安装软件的目录
3.2 Linux中的简单命令
# 1. 我是谁
who am i
# 2. 我在哪
pwd
# 3. 查看IP地址
ip a|address
# 4. 清屏
clear
# 5. ping 域名|ip
ping 地址
# 6. 强制停止
Ctrl + c
四、Linux命令
Linux中命令的基本格式:命令 [选项] [参数]
需要注意的是,个别命令不遵循此格式,如:who am i
当命令中有多个选项时,可以写在一起,并且选项也是有简写方式的:命令 -选项A选项B
4.1 目录的命令
# 1. 列出目录
ls [-ald] [目录名]
# 目录名不填写,默认为当前目录
# -a:列出全部的内容,包括隐藏文件
# -l:列出全部的信息
# -d:仅查看目录本身
ll # 等同于ls -l
Linux的隐藏目录是以"."开头的,当前目录使用"."来表示,上一级目录使用".."表示
# 2. 切换目录
cd 具体路径|符号
路径可以填写的内容
符号 | 表达的路径 |
---|---|
. | 当前目录 |
.. | 上一级目录 |
/ | 根目录 |
~ | 当前登录用户的home目录 |
- | 返回 |
# 3. 创建目录
mkdir [-p] 目录名
# -p:代表创建多级目录,如 mkdir a/b/c
# 4. 删除目录
rmdir 目录名 # 只能删除空目录
rm [-rf] 目录名 # 删除非空目录
# -r:代表递归删除目录
# -f:不询问,直接删除
# 5. 复制目录
cp -r 来源目录 目标目录
# -r:递归复制
# 6. 移动、重命名
mv 目录名 新目录名
mv 目录名 路径
# 如果第二个参数的路径不存在,就是重命名,反之,则为移动
4.2 文件的命令
# 1. 创建空文件
touch 文件名
touch 文件名1 文件名2 ...
# 2. 编辑文件
vi 文件名 # 进入vi的查看模式
i | a | o # 从查看模式,进入vi的编辑模式
# i:在当前光标处,进入编辑模式;a:在当前光标后一格,进入编辑模式;o:在当期光标后一格,进入编辑模式
Esc # 退出到查看模式
: # 从查看模式,进入vi的底行命令模式
# 在底行命令模式下,输入wq:保存并退出;输入q!:不保存并退出
# 在查看模式下,双击大写的Z(ZZ | Shift + zz),可以快速保存并退出
# 3. 编辑文件时的其它操作
# 在底行命令模式下,可以输入的内容
set nu # 查看文件的行号
to 行号 # 快速跳转到指定行
set nonu # 取消行号
# 直接在查看模式下输入
/具体内容 # 类似Ctrl + f搜索文件中具体内容所在的位置,查看下一个可按字母n
# 4. 查看文件
cat 文件名 # 从第一行开始查看文件内容,展示全部
tac 文件名 # 从最后一行开始展示
nl 文件名 # 显示文件内容时,展示行号
more 文件名 # 查看大文件时,可以一页一页往下翻(点击空格)
less 文件名 # 查看大文件时,可以任意地向上或向下翻(键盘上下键 | PageUp/PageDown)
head 文件名 # 只查看前几行
tail 文件名 # 只查看后几行
tail -f 日志 # 监控日志
# 5. 移动文件
mv 文件名 新文件名
mv 文件名 目录
# 6. 复制文件
cp 文件名 目录
# 7. 删除文件
rm [-f] 文件名
# -f:是否询问
4.3 针对压缩包的操作
Linux中常用地压缩包,大多是.tar/.tar.gz/.tgz
但是Linux不仅仅针对tar类型的压缩包,也支持.zip/.rar这类Windows下的压缩包
4.3.1 tar压缩包
# 1. 解压
tar [-zxvf] 压缩包名称 [-C 路径]
# -z:代表压缩包后缀是.gz
# -x:代表解压
# -v:代表解压时,打印详细信息
# -f:-f选项必须放在所有选项的最后,代表制定文件名称
# -C:
# 2. 打包
tar [-zcvf] 压缩包名称 文件1 文件2 目录1 目录2 ...
# -c:代表打包
4.3.2 zip压缩包
Linux默认不支持zip压缩包格式
需要安装两个软件:
zip & unzip
通过命令:
yum -y install zip
yum -y install unzip
unzip 压缩包名称 # 解压
zip 压缩包名称 文件1 文件2 目录1 目录2 ... # 打包
4.4 用户和用户组的操作
Linux是一个多用户的操作系统,任何一个用户想要操作Linux操作系统,必须向系统管理员申请一个账号才可以,以这个账号的身份操作Linux。
用户的账号一方面可以帮助系统管理员追踪当前用户的操作,另一方面可以控制当前用户对系统资源的访问。
4.4.1 用户的操作
# 1. 创建用户
useradd [-cgd 选项指定的参数] 用户名
# -c:代表comment,给用户添加一段注释
# -g:代表group,修改用户的所在组
# -d:代表指定用户的home目录
# 2. 设置密码
passwd [用户名]
只有系统管理员才能指定用户名,不加用户名代表当前用户
# 3. 切换用户
su 用户名
# [root@localhost ~]# : root在本地登录,并且当前在~目录下,#代表是超级管理员
# [Ning@localhost root] : Ning在本地登录,并且当前在root目录下,$代表是普通用户
# 4. 删除用户
userdel [-r] 用户名
# -r:删除用户的同时,删除用户的home目录
# 5. 修改用户
usermod [-cgd 选项指定的参数] 用户名
4.4.2 用户组的操作
# 1. 查看用户所在的用户组
groups 用户名
# 2. 创建用户组
groupadd 用户组名
# 3. 修改用户组
groupmod -n 新用户组名称 用户组名称
# -n:修改用户组名称
# 4. 删除用户组
groupdel 用户组名 # 只能删除不存在用户的用户组
4.5 文件的权限
在Linux中输入ls -l | ll查看文件和目录的详细信息
在实例中,b目录的第一个属性用d来标识b是一个目录,tt等用-来标识它们是普通文件
后面九个属性分为三组
- 第一组rwx:代表文件拥有者的权限
- 第二组rwx:代表文件所属组用户的权限
- 第三组rwx:代表其它用户对当前文件的操作权限
- r:代表read,读的权限
- w:代表write,写的权限
- x:代表execute,执行的权限
后续第一个root的位置代表当前文件的拥有者
后续第二个root的位置代表当前文件的所属组
再往后分别为文件的大小和最后修改时间
4.5.1 对文件权限的操作
使用chmod对文件的权限进行修改,一种是使用数字,一种是使用符号
# 1. 数字方式
chmod [-R] 765 文件|目录
# -R:当修改一个目录时,将其目录下的全部内容,都修改为后面的权限
# rwx这三个权限的权值分别为4(100)、2(010)、1(001)
# 1-7的数字所指的含义类似即其二进制数所指含义
# 则以上的7(111)代表rwx,6(110)代表rw-,5(101)代表r-x,因此765代表rwxrw-r-x
# 2. 符号方式
# user:u, group:g, other:o, all:a
# read:r, write:w, execute:x
# 赋予权限方式
# 添加:+,删减:-,设定:=
chmod [-R] a=rw 文件|目录
4.5.2 对文件拥有者和所属组的修改
chown [-R] 拥有者:所属组 文件|目录
chown [-R] 拥有者 文件|目录
chgrp [-R] 所属组 文件|目录
4.6 Linux的其它操作命令
# 1. 进程的操作
# 查看全部正在运行的进程
ps -ef
# 搜索指定进程
ps -ef | grep 搜索的内容
# 杀死进程
kill -9 pid
# 2. 服务的操作
# 针对服务的启动、停止、重启、开机自启、禁止开机自启、查看服务状态
systemctl start|stop|restart|enable|disable|status 服务名称
# 3. 查看端口号占用情况
# 需要先下载该功能
yum -y install net-tools
# 查看端口号占用情况
netstat -naop [| grep 指定端口号]
# 4. 访问地址
curl 访问地址
# 5. 查找文件
find 路径 -type f | grep 文件名
五、Linux下安装软件
5.1 安装JDK
下载JDK压缩包
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
利用Xterm的SFTP把文件拉取到Linux系统中
将JDK的压缩包解压至/usr/local
tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local
修改jdk目录名为"jdk"
mv jdk1.8.0_251 jdk
配置环境变量
在环境变量中添加以下内容
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
重新加载环境变量文件
source /etc/profile
测试
java -version
Linux提供了两种环境变量的文件
- 系统级别的环境变量,存放在:/etc/profile
- 用户级别的环境变量,村放在:~/.bashrc
运行当前目录下的可执行文件,文件名前需要输入"./"
以下内容建议使用Docker进行,具体内容参考B站千峰Eric老师的Docker教程
https://www.bilibili.com/video/BV1sK4y1s7Cj/?spm_id_from=333.788.videocard.0
5.2 安装MySQL
5.2 安装Tomcat
六、部署SSM工程
部署项目到Linux中需要注意以下内容:
- 项目要保证在Windows下是没有问题的,再考虑部署到Linux。
- 将开发环境中的配置等更改为测试环境。
- 连接数据库的信息
- 存放文件的位置
- 日志文件存放的位置
- 项目路径问题
- 将Maven项目打包。
- 根据项目路径的不同,部署到Tomcat中。
- 在部署到Linux操作系统之后,一定要查看日志。