下载对应的软件
安装Linux,我们需要先安装一个虚拟机,为了安装虚拟环境:VMvare或者virtual (推荐使用VMvare
https://www.vmware.com/go/getworkstation-win
为了安装Linux,我们需要一个Linux的镜像文件:Centos7版本
http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso
安装一个远程连接Linux的图形化页面:FinalShell(推荐),Xterm,SSH,Xshell,MobaXterm
http://www.hostbuf.com/
安装VMvare和FinalShell,无脑下一步,不需要更改东西
在VMvare中安装Linux
1.选择安装方式
选择安装方式 2.指定镜像方式
选择稍后安装操作系统 \3. 选择操作系统类型
选择操作系统类型 4.指定虚拟机名称
指定虚拟机名称,和安装目录 \5. 磁盘存储方式
拆分成多个文件存储 6.指定虚拟机配置
指定虚拟机的设置 \7. 开始安装CentOS
开始界面选择语言 \8. 配置虚拟机网络连接
配置安装位置以及网络和主机名(开启) \9. 开始安装
9、开始安装后,设置ROOT用户的密码 \10. 安装成功
10、安装成功,并登录 11.查看ip并连接
11、查看ip,并连接
当前用户
who am i
当前目录
pwd
清屏
clear
查看IP地址
ip a | ip address
ping域名|ip
ping 地址
强制终止命令
Ctrl + C
列出目录
查看指定目录下的内容,默认查看当前目录下内容
Linux中的隐藏文件是以.开头的,当前目录使用.表示,上一级目录使用…表示
ls [-ald] [目录名]
# 目录名不填写,默认为当前目录。
# -a:列出的全部的文件,包括隐藏文件
# -l:列举出全部的信息
# -d:仅查看目录本身
切换目录
实现目录间切换,使用绝对路径、相对路径、特殊符号
cd 具体路径 | 特殊符号
特殊符号 表达的路径 . 当前目录 … 上一级目录 / 根目录 ~ 当前登录用户的HOME目录 - 返回 创建目录
mkdir [-p] 目录名
# -p:代表创建多级目录时,使用
删除目录
删除非空目录或包含内容的目录
# 只能删除空目录
rmdir 目录名
# 删除非空目录
rm [-rf] 目录名
# -r:代表递归删除目录下的全部内容
# -f:不询问,直接删除
复制目录
复制目录下的全部内容
cp -r 来源目录 目标目录
# -r:递归复制全部内容,必填项
移动、重命名目录
移动、重命名目录,会根据第二个参数指定具体操作逻辑
mv 目录名 新目录名 | 路径
# 如果第二个参数指定的路径不存在,就是重命名,如果第二个参数的路径存在,就是移动
创建文件
创建空文件
touch 文件名1 文件名2 ……
编辑文件
编辑文件,后期最常的命令之一
vi或者vim 文件名 # 查看文件。(查看模式)
i | a | o # 进入编辑模式。(编辑模式)
# i:在当前光标处,进入编辑模式。
# a:在当前光标后一格,进入编辑模式。
# o:在当前光标下一行,进入编辑模式。
esc # 退出编辑模式,回到查看模式。
# 从查看模式进入到底行命令模式。(底行命名模式)
# 在底行命令模式下,输入wq:保存并退出。输入q!:不保存并退出
# 在查看模式下,摁ZZ,可以快速保存并退出。
vi文件时,其他操作
编辑文件时,常用的快捷键,方便操作
# 在vi文件时,在底行命令模式下可以输入以下常用内容
# 行号操作
set nu # 查看文件的行号
to rownum # 快速的跳转到指定行
set nonu # 取消行号
# 搜索操作
/word # 类似Windows的Ctrl + F搜索文件中的具体内容所在位置,查看下一个可以输入字母n
# 快速定位
G # 快速跳转到最后一行
gg # 快速跳转到第一行
查看文件
根据不同的业务,可以选择不同的查看方式
# 查看文件,直接展示到最后一行
cat 文件名
# 从第一行开始查看文件内容,展示全部
tac 文件名
# 从最后一行开始展示
nl 文件名
# 显示文件的用时,展示行号
more 文件名
# 查看大文件时,可以一页一页的向下翻
# 嗯space向下翻页,退出时摁q
less 文件名
# 查看大文件时,可以任意的向上或者向下翻
# 向上或向下翻页摁PageUp和PageDown,一行一行查看,摁光标的↑↓
# 只查看前几行
head 文件名
# 只查看后几行
tail 文件名
# tail -f 日志 监控日志
移动、重命名文件
移动、重命名目录,会根据第二个参数指定具体操作逻辑
mv 文件名 新文件名 | 路径
# 如果第二个参数指定的路径不存在,就是重命名,如果第二个参数的路径存在,就是移动
复制文件
复制文件到指定目录下
cp 文件名 目录
删除文件
删除文件方式
rm [-f] 文件名
# -f:是否询问
针对tar命令
Linux中常用的压缩包,大多是.tar,.tar.gz,tgz的
解压压缩包
针对压缩包后缀的情况,采用不同的参数,否则可能会损失文件
tar [-zxvf] 压缩包名称 [-C 路径]
# -z: 代表压缩包后缀是.gz的
# -x: 代表解压
# -v: 解压时,打印详细信息
# -f: -f选项必须放在所有选项的最后,代表指定文件名称
# -C 路径: 代表将压缩包内容解压到指定路径
打包成压缩包
可以将多个文件以及目录打包成压缩包,根据选择的参数指定压缩包名
tar [-zcvf] 压缩包名称 文件1 文件2 目录1 目录2 …
# -c: 代表打包
# 其他参数同上
针对zip类型压缩包
Linux不仅仅针对tar类型的压缩包,也支持zip,rar这种Windows下的压缩包。
不过需要安装软件针对对各种类型压缩包的操作
安装软件
yum -y install zip # 打包程序
yum -y install unzip # 解压程序
解压以及打包
# 解压
unzip 压缩包名称
# 打包
zip 压缩包名称 文件1 文件2 目录1 目录2 …
用户的常用操作命令
Linux是一个多用户的操作系统,任何一个用户想要操作Linux操作系统,必须向系统管理员申请一个账号才可以,并且以这个账号的身份去操作Linux。
用户的账号一方面可以帮助系统管理员追踪当前用户的操作。另一方面可以控制当前用户对系统资源访问。
用户的创建
useradd [-cgd] [选项指定的具体内容] 用户名
# -c:代表comment,给用户添加一段注释
# -g:代表group,可以修改用户的所在组
# -d:代表指定用户的HOME目录
设置用户密码
passwd 用户名
切换用户
su 用户名
# [root@localhost ~]# -> root用户在本地登录,并且当前在~目录下,#代表是超级管理员
# [qf@localhost ~]$ -> qf用户在本地登录,并且当前在~目录下,$代表是普通用户
删除用户
userdel [-r] 用户名
# -r: 代表删除用户的同时,删除该用户的HOME目录
修改用户
usermod [-cgd] [选项指定的具体内容] 用户名
# -c:代表comment,给用户添加一段注释
# -g:代表group,可以修改用户的所在组
# -d:代表指定用户的HOME目录
用户组的操作
用户的身份除了用户本身,还会分配到指定的用户组,可以通过用户组对设置一些文件的操作权限
创建用户组
groupadd 用户组名
修改用户组
groupmod [-n] [选项指定的具体内容] 用户组名
# -n 修改用户组名称
删除用户组
groupdel 用户组名
# 只能删除不存在用户的用户组
首先我们要清楚Linux文件的权限信息,在Linux中输入ls -l 或者 ll查看文件和目录的详细信息
实例中,a目录的第一个属性用“d”标识这个a是一个目录。
anaconda-ks.cfg第一个属性用“-”标识他是一个文件。
在Linux文件详情的后面属性需要分为三组查看
rwx: 代表文件拥有者的权限
rwx: 代表文件所属组用户的权限
rwx: 代表其他用户对当前文件的操作权限
- r: 代表read,读的权限
- w: 代表write,写的权限
- x: 代表execute,代表执行权限
其余信息
- 后续的第一个root:代表当前文件的拥有者
- 后续的第二个root: 代表当前文件的所属组
- 后续分别为:文件的大小和最后修改时间等信息
对文件的权限修改
使用chmod对文件的权限进行修改,一种使用数字,一种使用符号……
- 数字方式方便操作,不过要修改整体权限信息
- 符号方式更细粒度化,不过操作麻烦
数字方式
chmod [-R] 777 文件|目录
# rwx在这三个权限中r:4,w:2,x:1
# -R: 当修改一个目录权限时,可以添加-R,将目录下的全部内容,都修改权限。
符号方式
chmod [-R] a=rw 文件|目录
# user:u,group:g,other:o,all:a
# read:r,write:w,execute:x
# 赋予权限的方式 , 添加:+,减掉:-,设定:=
# -R: 当修改一个目录权限时,可以添加-R,将目录下的全部内容,都修改权限。
文件拥有者及所属组修改
chown可以直接修改拥有者和所属组,chgrp只能修改所属组……
# 修改文件的拥有者和所属组
chown [-R] 拥有者:所属组 文件|目录
# 修改文件的拥有者
chown [-R] 拥有者 文件|目录
# 修改文件的所属组
chgrp [-R] 所属组 文件|目录
进程的操作
需要用到类似Windows的结束进程时,在Linux下需要使用如下命令
ps -ef
# 查看全部正在运行的进程
ps -ef | grep 搜索的内容
# 杀死进程
kill -9 pid
服务的操作
和Windows下的服务操作一致,只需使用如下命令,默认为centos7版本
# 针对服务的启动,停止,重启,开机自动启动,禁止开机自动启动,查看服务状态。
systemctl start|stop|restart|enable|disable|status 服务名称
端口号查看
如发现端口号被占用,可以使用如下方式查找pid,并结束进程
# 想使用指定的命令需要事先下载netstat
yum -y install net-tools
# 查看端口号占用情况
netstat -naop | grep 端口号
访问地址
类似浏览器访问路径,无法图形化显示,一般用于测试
curl 访问地址
查找文件
在Linux中查找指定文件,参数较多,如下为根据文件名称查询
find 路径 -type f | grep profile
在Linux下安装JDK,并配置JAVA_HOME环境变量
a. 将下载好的压缩包 .tar文件上传到Linux系统中/usr/local目录下
b.将JDK的压缩包解压
后期大多软件都安装在/usr/local下,直接使用tar解压
tar -zxvf jdk-8u241-linux-x64.tar.gz -C /usr/local
c.方便配置环境变量 修改目录名(可不改)
cd /usr/local
mv jdk1.8.0_241 jdk(下面JAVA_HOME后面的路径名与此处保持一致)
d.配置环境变量
Linux提供了两种环境变量的文件
- 第一个是用户级别的环境变量,存放在:~/.bashrc
- 第二个是系统级别的环境变量,存放在:/etc/profile
修改哪个文件都可以,毕竟虚拟机就我们自己使用
# 配置环境变量 vim /etc/profile # 在最后面添加如下的内容 # 在环境变量文件中,添加如下内容 export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH # 重新加载环境变量文件 source /etc/profile # 最终测试 java -version
出现版本号即为成功。
通过wegt https://www.oracle.com/java/technologies/javase-jdk8-downloads.html 直接下载压缩包到系统中
解压命令同上
在Linux下安装Tomcat,以便部署工程到Linux操作系统中
a.下载
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.53/bin/apache-tomcat-8.5.53.tar.gz
b.解压
一样解压到/usr/local目录下
tar -zxvf apache-tomcat-8.5.53.tar.gz -C /usr/local
c.启动tomcat并监听日志
通过./执行可运行文件,并使用tail监控日志信息
# 跳转到tomcat的bin目录
cd /usr/local/apache-tomcat-8.5.53/bin
# 启动
./startup.sh
# 监控日志
cd …/logs
tail -f catalina.out
启动成功后,可以通过浏览器8080端口访问,云服务器需要配置防火墙或安全组,放开8080端口
在MySQL下用yum的方式安装MySQL,yum就是一种在线下载的方式
切换目录:cd /usr/local
a.下载mysql57的rpm文件
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
b.安装mysql57的rpm文件
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
c.安装Mysql软件
yum install mysql-server
需要按下y
d.启动Mysql
查看mysql的版本
mysql -V
启动mysql
systemctl start mysqld 查看mysql状态 systemctl status mysqld
e.查看初始密码
grep “password” /var/log/mysqld.log
注意:某些服务器没有初始密码:提示路径不对
需要执行这个命令:grep “password” /var/log/mysql/mysqld.log
f.连接数据库并设置密码
执行命令:mysql -u root -p
输入密码:如果没有初始密码,那么就直接enter键就可以
执行下面的sql语句:
设置root的密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你的密码’;
设置root账号可以被外界访问:update mysql.user set Host=‘%’ where User=‘root’;
配置完后,exit退出数据库,并重启mysql服务,否则连接不成功
systemctl restart mysqld
第一次登陆,必须修改密码
**g.**开启远程连接
注意:需要关闭防火墙或者放行3306端口
下载 Docker引擎
curl -sSL https://get.daocloud.io/docker | sh
ps:之前安装过(原则上不需要重新安装),需要先卸载,在重新安装
1.查看安装的docker文件
yum list installed |grep docker
2.删除本机的docker文件
yum -y remove docker-engine-xxx
3.删除repo文件
cd /etc/yum.repos.d 删除所有docker开头的文件
验证是否安装成功
docker version
启动测试
启动Docker容器
systemctl start docker
停止
systemctl stop docker
重启
systemctl restart docker
状态
systemctl status docker
国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国
内很多云服务商都提供了国内加速器服务,例如:
Docker 官方提供的中国 registry mirror https://registry.docker-cn.com
七牛云加速器 https://reg-mirror.qiniu.com/
当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。
国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择
对应的镜像加速服务。
在 /etc/docker/daemon.json 中写入如下内容(如果文件不存
在请新建该文件)
vim /etc/docker/daemon.json
可以输入以下内容:阿里云镜像仓库
也可以输入以下内容:Docker官方的中国仓库
{
“registry-mirrors”: [
“https://registry.docker-cn.com”
]
}
注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。
之后重新启动服务。
输入一下的命令:
systemctl daemon-reload
systemctl restart docker
1.查看镜像文件列表
docker images
TAG:版本号,如果未指定就是:latest
2.搜索镜像
docker search 镜像名
eg:docker search tomcat
3.下载镜像
docker pull 镜像名称:版本号
eg:
4.查看运行的容器
docker ps
5.查看安装的容器
docker ps -a
6.查看容器详情
docker inspect 容器名称|容器ID
7.查看容器日志
docker logs 容器名称|容器ID
8.进入容器内部
docker exec -it 容器名称|容器ID bash
9.停止容器
docker stop 容器名称|容器ID
10.启动容器
docker start 容器名称|容器ID
11.删除容器
必须是停止的容器才能删除
docker rm 容器名称|容器ID
12.删除镜像
docker rmi 镜像名称:版本号
13.创建并运行容器
docker run -d --name 容器名称 -p 外界端口:软件端口 -v 外部路径:虚拟路径 镜像名称:版本号
如果对应的镜像不存在,就会先下载镜像,再创建容器,最后启动容器
14.查看docker所占磁盘
docker system df
15.删除Docker所占的磁盘空间
只删除停止的容器和没有版本的镜像
docker system prune
删除所有的停止的容器和镜像
docker system prune -a
1.创建映射路径
mkdir -p /docker/tomcat/webapp8081
2.创建并运行Tomcat容器
docker run -d --name tomcat8081 -p 8081:8080 -v /docker/tomcat/webapp8081:/usr/local/tomcat/webapps/ tomcat:9.0.33
查看是否安装成功
docker ps
3.开放端口
开放的是8081,云服务器的安全组上
4.访问测试
http://ip地址:8081/
1.创建并运行容器
docker run -d --name mysql3307 -e MYSQL_ROOT_PASSWORD=zzjava -p 3307:3306 mysql:5.7
docker ps
2.开放端口
开放3307端口
3.访问测试
多容器
1.下载
sudo curl -L “https://github.com/docker/compose/releases/download/1.29.2/docker-compose- ( u n a m e − s ) − (uname -s)- (uname−s)−(uname -m)” -o /usr/local/bin/docker-compose
2.授权
sudo chmod +x /usr/local/bin/docker-compose
3.软连接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4.测试
docker-compose -version
1.实现dockerfile文件的编写
vim /usr/local/tomcat.yml
内容如下:严格安装格式要求
version: "3.1" services: tomcat1: #服务名称,不是容器名,只是在文件中方便观看是按个服务 restart: always # 代表只要docker启动, 就会自动启动这个容器 相当于-restart参数 image: tomcat:9.0.33 #依赖的镜像 container_name: tomcat8082 # 容器名称 相当于 --name参数 ports: - 8082:8080 #映射端口,可以指定多个,用多个-来写 environment: TZ: Asia/Shanghai #指定时区 volumes: - /docker/tomcat/webapp8082/:/usr/local/tomcat/webapps #挂载数据卷 tomcat2: #服务名称,不是容器名,只是在文件中方便观看是按个服务 restart: always # 代表只要docker启动, 就会自动启动这个容器 相当于-restart参数 image: tomcat:9.0.33 #依赖的镜像 container_name: tomcat8083 # 容器名称 相当于 --name参数 ports: - 8083:8080 #映射端口,可以指定多个,用多个-来写 environment: TZ: Asia/Shanghai #指定时区 volumes: - /docker/tomcat/webapp8083/:/usr/local/tomcat/webapps #挂载数据卷
2.执行文件创建容器
docker-compose -f /usr/local/tomcat.yml up -d
3.验证
docker ps
1.创建文件夹
mkdir -p /var/lib/mysql mkdir -p /etc/mysql mkdir -p /var/log/mysql
2.创建Mysql的yml文件
version: '3.1' services: mysql: container_name: "mysql3308" network_mode: "host" environment: MYSQL_ROOT_PASSWORD: "123456" image: "mysql:5.7" restart: always ports: - 3308:3306 volumes: - "/var/lib/mysql:/home/ubuntu/docker/mysql/db" - "/etc/mysql:/home/ubuntu/docker/mysql/conf" - "/var/log/mysql:/home/ubuntu/docker/mysql/log"
3.执行命令
docker-compose -f /usr/local/mysql.yml up -d
4.开放端口
3308
2.执行文件创建容器 docker-compose -f /usr/local/tomcat.yml up -d [外链图片转存中...(img-GmPFXQ2p-1662379850615)] 3.验证 docker ps [外链图片转存中...(img-fjpJUPXB-1662379850618)][外链图片转存中...(img-RzS0aNd6-1662379850620)]
1.创建文件夹
mkdir -p /var/lib/mysql mkdir -p /etc/mysql mkdir -p /var/log/mysql
2.创建Mysql的yml文件
version: '3.1' services: mysql: container_name: "mysql3308" network_mode: "host" environment: MYSQL_ROOT_PASSWORD: "123456" image: "mysql:5.7" restart: always ports: - 3308:3306 volumes: - "/var/lib/mysql:/home/ubuntu/docker/mysql/db" - "/etc/mysql:/home/ubuntu/docker/mysql/conf" - "/var/log/mysql:/home/ubuntu/docker/mysql/log"
3.执行命令
docker-compose -f /usr/local/mysql.yml up -d
4.开放端口
3308