Linux操作系统
一、操作系统作用
- 部署测试环境
- 底层依赖环境
- JDK
- PHP
- Python
- NodeJS
- c语言的内置库文件
- 数据库依赖
- MySQL
- Oracle
- Redis
- mongDB
- 中间件
- 消息队列
- memcache
- 应用容器
- tomcat
- IIS
- weblogic
- nginx
- 底层依赖环境
二、本周的工作内容
- 部署JDK
- 部署MySQL
- 部署TOMCAT
- 部署woniuboss
三、准备工作
-
安装虚拟机,VMware workstation 16.1
-
安装Linux操作系统:centos7
-
[root@localhost ~]#
root:当前登录的用户
-
localhost:当前登录的计算机终端ip地址或域名
- :当前用户所处的位置是用户的主目录,家目录
# : 当前用户是超级管理员root,是$表示是普通用户
-
-
安装终端用来连接centos7? mobaxterm
-
ip :查看ip地址以及路由
-
ip [option] object
-
a :显示所有的ip信息
-
address :查ip地址有关的信息
-
route : 查询路由信息
-
-
-
如果没有inet这一项,那么问题是什么? 一般来讲,虚拟网卡没有启动
- vi : Linux用于编辑和查看文件的命令,类似于记事本。
- 用法
- vi 文件名 : 如果文件名存在,就是打开文件,如果文件名不存在就是新建文件。
- 网卡的配置文件位置: /etc/sysconfig/network-scrips/ifcfg-eth0
- 路径:定位文件或者目录的时候需要目录的排列顺序。这个的一个/代表一层。
- 第一个/被称为根目录。因为Linux是一个文件操作系统。DOS、windows是磁盘操作系统。
- 文件操作系统:操作系统把计算机控制所有的对象都视为一个文件。
- 相对路径:从当前位置进行访问的路径。 ./ 当前目录, …/ 代表当前目录的上一级
- 绝对路径:从根目录开始路径。使用绝对路径,在任何位置都可以访问的文件。
- 第一个/被称为根目录。因为Linux是一个文件操作系统。DOS、windows是磁盘操作系统。
- vi /etc/sysconfig/network-scripts/ifcfg-eth0
- vi的概念和用法
- 模式
- 命令模式:只能输入命令,不能编辑文件
- 在该模式下使用 i、I、o、O、a、A
- i :当前光标位置后面插入字符
- I:当前光标位置的行首插入
- o:当前光标的下一行新增空行
- O:当前光标的上一行新增空行
- a:当前光标位置的后面追加
- A:当前光标位置的前面追加
- 编辑模式:只能编辑不能输入命令
- ctrl +c :切换命令模式
- esc :切换命令模式
- 末行模式:在命令模式下的最底下一行,来输入命令使用
- 在命令模式下输入冒号,进入到末行模式
- 命令模式:只能输入命令,不能编辑文件
- 常用的操作
- 保存退出
- :w 写入文件不退出
- :wq 写入文件并退出
- :q 直接退出,如果文件发生变化,则无法退出
- :q! 强制退出不保存
- :wq! 强制写入退出
- 快速位移
- G:直接到文件最后一行的开始处
- gg: 回到文件的第一行的开始处
- $ : 跳到当前行的尾部
- ^ : 跳到当前行的开始处
- } : 跳到段落的结尾
- { : 跳到段落的开始
- :set nu 显示行号
- :n 直接到达第n行
- 常用文本操作
- dd:剪切当前行
- p:当前行的下面粘贴
- P:当前行的上面粘贴
- yy:复制当前行
- 查找和替换
- /keyword 查找文本中keyword,使用n跳到下一个,N跳到上一个
- :%s/old/new/g 把文本中所有的old替换为new,g的作用表示全文,缺少g只替换当前行的第一个
- :m,ns/old/new/g 把m行到n的old替换为new
- 撤销
- u 撤销历史操作
- 保存退出
- 模式
- 修改网络之后,必须重启网络服务
- systemctl 系统控制面板
- 查看服务状态: systemctl status 服务名(比如:network网络服务,防火墙firewalld,mysqld)
- 启动服务: systemctl start 服务名
- 停止服务: systemctl stop 服务名
- 重启服务: systemctl restart 服务名
- 设置服务开机启动: systemctl enable 服务名
- 禁止服务开机启动: systemctl disable 服务名
- 重启服务器: reboot
- 关闭服务器: poweroff
- 重启网络服务: systemctl restart network
- systemctl 系统控制面板
-
四、安装JDK
-
准备工作
- 常用命令
- 目录切换:cd 路径
- cd ~ :回到当前用户的主目录下面
- pwd :显示当前位置的路径
- ls(list):显示当前路径下的内容
- ls -l : 以详情列表的形式显示当前目录下的内容,如果加路径,显示路径下的内容,简写为 ll
- ls -a : 显示目录下面的所有文件,包括隐藏文件。
- 目录切换:cd 路径
- 常用命令
-
安装JDK的步骤
-
去网上下周jdk的tar包
- 百度一下jdk的tar包
-
上传到Linux指定目录
-
安装一个上传下载工具 lrzsz ; 推荐:secureCRT里面使用
- yum命令: 在线安装软件
- 语法: yum -y install 软件包名字 软件包名字
- -y : 在安装过程会产生一些提示,确认是否继续安装,-y默认选择yes
- 软件包的名字不是安装后使用的程序名
-
scp命令: scp 文件位置 用户名@remotehost:/目标位置
-
该命令执行的时候需要相应用户的密码
-
PS D:\humh\toolss> scp jdk-8u231-linux-x64.tar.gz root@172.18.169.193:/mnt The authenticity of host '172.18.169.193 (172.18.169.193)' can't be established. ECDSA key fingerprint is SHA256:t2XlGN8Lx2+QGEbPh86IsIfrW4phN48tNcIABcpf//Y. Are you sure you want to continue connecting (yes/no/[fingerprint])? Please type 'yes', 'no' or the fingerprint: Please type 'yes', 'no' or the fingerprint: Please type 'yes', 'no' or the fingerprint: Warning: Permanently added '172.18.169.193' (ECDSA) to the list of known hosts. root@172.18.169.193's password: jdk-8u231-linux-x64.tar.gz
-
-
直接通过终端把文件拖拽上传
-
-
将jdk-xxx.tar.gz解压到指定的目录下面
-
解压程序包相关知识
- 压缩文件的基本原理
- 磁盘存储的时候是使用0101方式。加入使用int类型,分配4个字节,实际使用可能只有1个字节,其他的三个字节使用的00来占位。把用来占位00去掉,把去掉的操作内容记录下来。目的是解压的时候根据这个步骤把扣掉00填回去。
- 压缩的标准
- 效率:xz>bzip>gzip
- 速度: gzip>bzip>xz
- 相关的命令
- gzip [-cdrvl] 文件
- -c:
- -d:
- -r:
- -v:
- -l:
- -数字:
- tar: 归档文件
- 归档: tar -zcvf xxx.tar.gz 源 …
- 解压: tar -zxvf xxxx.tar.gz [-C 目标路径]
- -z:
- -c:
- -x:
- -v:
- -f:
- -C 目标路径:
- gzip [-cdrvl] 文件
- 重定向
- 作用:把上一个命令的返回结果输出到指定的文件中,如果文件不存在,自动创建。
- 两种模式:
- > : 覆盖模式,理解为先清空文件,再写入结果。
- >> : 追加模式,理解为在原来文件的最后面追加
- 语法: 命令 > | >> 文件名
- 压缩文件的基本原理
-
解压jdk-xxx.tar.gz 到 /opt目录下面
-
tar -zxvf jdk-8u231-linux-x64.tar.gz -C /opt
-
**【可选步骤】**重命名jdk的目录名,目的为了操作过程中好记
-
mv jdk-1.8.0_231 jdk1.8
-
mv(move): 把文件移动到指定位置,同时也可以实现改名,在同一个目录下面移动,或者移动到其他目录的时候没有同名的目录。
mkdir demo demo1 # 创建目录,这里同时创建2个 mv demo demo2 # 同级目录移动等于改名 mv demo2 demo1/demo # 移动其他目录并改名
-
-
-
-
配置系统的环境变量
-
jdk的目录结构解释:
-
环境变量相关概念
- 环境变量:操作系统为支撑程序的运行提供变量
- 用户变量:只有当前用户能够使用
- 位置: 主目录下面的 .bash_profile
- 系统变量:所有用户都可以使用,全局变量
- 位置: /etc/profile
- 用户变量:只有当前用户能够使用
- 如何定义变量
- 命令: export 变量名=值
- 该命令可以用在命令行,也可以在配置文件中使用
- 命令: export 变量名=值
- 为什么要定义环境变量?
- 使用命令启动程序的时候,使用命令的位置不一定在安装程序的目录下面,操作系统首先回去环境变量中查找定位
- PATH:路径,所有可执行程序存放的路径,这个路径需要手工或者程序在安装的时候去添加
- echo $PATH :该命令用于输出变量的值;用于检查某个环境变量是否正确配置。
- 环境变量:操作系统为支撑程序的运行提供变量
-
配置JAVA环境变量
-
需要让操作系统知道jdk的bin目录的位置
-
配置java程序启动和运行依赖的库文件dt.jar,tools.jar
-
export JAVA_HOME=/opt/jdk1.8 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
-
使用: source /etc/profile 激活环境变量
-
-
-
检查安装效果
-
检查配置结果
-
[root@localhost ~]# java -version java version "1.8.0_231" Java(TM) SE Runtime Environment (build 1.8.0_231-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
-
-
五、部署MySQL数据库服务
1、下载mysql5.7-xxx.tar.gz
- https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
2、上传到Linux的指定目录
-
scp mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz root@ip:/mnt
3、解压到Linux指定目录
-
tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /opt
-
重命名目录
-
4、修改mysql的目录权限
-
Linux系统的权限相关概念
-
Linux有三种角色,三种权限
- 三种角色
- 所有者,owner: 默认是文件或目录的创建者
- 所有者同组用户,group: 所有者同组的用户
- 其他人,other:和所有者不同组的用户
- 三种权限
- r(read): 读
- w(write): 写入
- x(excute): 执行
- 三种角色
-
查看文件或目录的权限
-
ls -l [文件名/目录名]
-
drwxr-xr-x. 2 10 143 4096 10月 5 2019 bin -r--r--r--. 1 10 143 3244 10月 5 2019 COPYRIGHT
-
列表最前面的10个字符就是代表了文件或目录的权限,比如:drwxr-xr-x
-
-
权限列表的解读: 10个字符分为四组
- 第一组:第一个字符,d代表目录,- 代表文件,l 代表软连接
- 第二组:第一个rwx字符,代表的是owner的权限
- 第三组:第二个rwx字符,代表的是group的权限
- 第四组:最后三个字符,代表的是other的权限
- 在第二组,第三组,第四组中使用-表示去掉该权限。
-
-
修改权限
-
命令: chmod [-R] 权限列表 文件名或目录
-
-R :递归修改 ,主要应用与目录的权限修改
-
权限列表
-
字母+权限
-
# 文件demo.txt 的权限是用户可以读写,同组可以读写,其他人可读 chmod u+rw,g+rw,o+r demo.txt
-
# 文件demo.txt用户可以读写执行,同组和其他用户只能读 chmod u+x,g-w demo.txt
-
-
数字表示权限
-
rwx 对于数字和位置 421,每个角色的权限把421加起来,如果-等于0. 最后把三个角色的权限数字挨着放
-
# 文件demo.txt用户具有读写执行权,同组可读写,其他人可读,用数字表达权限是多少? #764 chmod 764 demo.txt
-
-
-
-
-
修改文件或目录的所属用户和组
-
组: Linux为了方便管理用户使用组的方式,group
-
查看用户组: cat /etc/group ;查看用户: cat /etc/passwd
-
cat /etc/group root:x:0: bin:x:1: #组的信息使用冒号间隔,一共分成四个部分 #第一个部分是组名,第二部分是密码,第三部分是组的编号,第四部分是附属成员 cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin # 用户信息使用冒号分成7个部分 # 第一部分是用户名,第二部分密码,第三部分用户编号,第四部分组的编号,第五部分组名,第六部分主目录,第七部分是用户使用解析脚本解析器名字
-
-
修改文件和目录的所有者的命令
-
chown [-R] username[:groupname] 文件名或目录名
-
# 修改mysql57的所有者和组为root chown -R root:root mysql57
-
-
-
5、修改MySQL的配置文件,/etc/my.cnf
# mysql的服务器节点
[mysqld]
# mysql主目录
basedir=/opt/mysql57
# mysql数据库文件存放的目录
datadir=/opt/mysql57/data
# mysql服务器提供的连接
socket=/tmp/mysql.sock
# mysql的服务器监听端口
port=3306
symbolic-links=0
# mysql服务安全启动模式
[mysqld_safe]
# mysql错误日志位置
log-error=/opt/mysql57/logs/mariadb.log
# mysql服务器进程信息文件位置
pid-file=/opt/mysql57/mariadb.pid
!includedir /etc/my.cnf.d
-
创建配置文件中涉及目录
-
目录相关操作的命令
-
创建目录:
-
mkdir 目录名 目录名 :在同一个目录下面连续创建多个目录。
-
mkidr -p 目录名/目录名/… :创建多层目录,-p 的作用是自动创建路径中不存在的目录
-
mkdir -p dir/dir1/dir2/dir3 mkdir dir1 dir2 dir3
-
-
删除目录
- 删除空目录: rmdir 目录名,作用是删除空目录。
- 删除非空目录: rm -rf 目录名|文件名
- -r :递归删除
- -f :强制删除,缺省的时候,删除操作会提示用户,得到授权之后才能执行删除。
- rm -rf / : 删库走人
-
-
mkdir /opt/mysql57/data # 创建数据库文件的目录 mkdir /opt/mysql57/logs # 创建日志文件的目录
-
6、初始化MySQL数据
-
修改环境变量,把mysql的主目录和bin加到环境变量中
-
export MYSQL_HOME=/opt/mysql57 export PATH=$PATH:$JAVA_HOME/bin:$MYSQL_HOME/bin
source /etc/profile
[root@localhost logs]# mysql -V mysql Ver 14.14 Distrib 5.7.31, for linux-glibc2.12 (x86_64) using EditLine wrapper
-
初始化数据库
-
mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=root
-
–defaults-file : 设置mysql服务启动所需的配置文件
-
–initialize: 初始化数据,同时生成一个临时密码 ,–initialize-insecure :初始化之后不设密码
-
–user : 指定初始化操作的Linux用户
-
[root@localhost logs]# mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=root 2022-04-22T09:32:31.966689Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2022-04-22T09:32:32.206050Z 0 [Warning] InnoDB: New log files created, LSN=45790 2022-04-22T09:32:32.286954Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2022-04-22T09:32:32.308225Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 22ab7e8a-c21f-11ec-9cc0-00155d0c5700. 2022-04-22T09:32:32.317292Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2022-04-22T09:32:33.547579Z 0 [Warning] CA certificate ca.pem is self signed. 2022-04-22T09:32:34.292050Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
-
7、启动MySQL服务
-
[root@localhost logs]# mysqld --defaults-file=/etc/my.cnf --user=root &
-
启动成功的显示
-
2022-04-22T09:34:58.522344Z 0 [Note] Event Scheduler: Loaded 0 events 2022-04-22T09:34:58.522754Z 0 [Note] mysqld: ready for connections. Version: '5.7.31' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
-
检查启动端口监听状态
-
命令: netstat -anlp|grep 3306
-
[root@localhost logs]# netstat -anlp|grep 3306 tcp6 0 0 :::3306 :::* LISTEN 17928/mysqld
- -a : 表示所有的端口
- -n :以数字的方式显示端口信息
- -l :显示正在监听状态的端口
- -p :显示监听端口的程序以及PID(进程编号)
-
| : 管道符
- 什么是管道? 把上一个命令的输出作为下一个命令的输入。
-
grep :作用是从文件中查询是否存在某个字符串,比如这里的3306,该处表示从上一个命令的返回中查找是否存在3306.
-
8、开启MySQL远处访问权限
-
mysql> grant all on *.* to 'root'@'%' identified by '123321' with grant option; mysql>flush privileges;
9、通过客户端去连接和使用MySQL
六、部署tomcat
1、下载tomcat8.5的tar
2、上传Linux指定目录
3、解压到指定的目录
-
目录结构
-
常用的文件
-
启停类: bin目录下面
- 前端启动: ./catalina.sh run ,启动之后可以直接看到运行日志,阻塞式。关闭终端会导致tomcat服务停止。
- 用途:检查部署是否成功使用。
- 后端启动:./startup.sh ,启动之后进入后台运行,看不到运行日志。关闭终端对tomcat服务没有影响。
- 建议在调试稳定之后,使用后台启动。
- 停止tomcat: ./shutdown.sh ,如果8005端口被占用,该脚本就无效。
- 前端启动: ./catalina.sh run ,启动之后可以直接看到运行日志,阻塞式。关闭终端会导致tomcat服务停止。
-
配置类: conf下面: server.xml
-
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> # port 是设置tomcat的启动端口,如果出现端口冲突, 就在这里修改 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> # name代表是从浏览器访问tomcat的时候,需要的主机地址,appBase指向存放web应用的目录,这个可以修改。 # unpackWARs为true表示tomcat自动解压war包。 autoDeploy为true表示tomcat会自动发布web应用
-
-
日志类: logs下面
- tomcat的运行日志的名字:
- catalina.yyyy-mm-dd.log
- catalina.out # tomcat的运行应用的日志,定位缺陷的时候用的较多
- tomcat的运行日志的名字:
-
4、检查tomcat是否可以正常启动
-
出现错误如下:
-
地址已在使用 (Bind failed)
-
表示tomcat的端口被占用了
-
解决办法: 强制结束进程
- 命令:kill
- kill PID :正常结束进程,通过PID
- kill -9 PID : 强制结束进程,通过PID
- 命令:kill
-
查看进程是否正在运行
-
命令 : ps(processor status)
-
语法: ps -ef [aux ] |grep 程序名(部分程序名)
-
[root@localhost bin]# ps aux|grep mysql root 17928 0.1 12.8 1589132 233880 ? Sl 4月23 2:00 mysqld --defaults-file=/etc/my.cnf --user=root root 19966 0.0 0.0 112824 980 pts/0 S+ 14:39 0:00 grep --color=auto mysql [root@localhost bin]# ps -ef |grep mysql root 17928 1 0 4月23 ? 00:02:00 mysqld --defaults-file=/etc/my.cnf --user=root root 19968 19574 0 14:41 pts/0 00:00:00 grep --color=auto mysql
-
-
-
-
-
在浏览器中输入: ip:8080
七、部署web应用
1、上传web应用的war包文件到Linux的指定目录,推荐直达tomcat的webapps目录
-
scp woniusales.war root@172.18.169.193:/opt/tomcat8.5/webapps
-
拷贝文件或目录
-
命令:cp(copy):
-
语法: cp [-r] 源 目标
-
-r :递归拷贝,拷贝单个文件不需要
-
拷贝可以修改文件名字,目标目录下如果没有文件名或目录名,等于是复制加改名
-
cp /mnt/woniusales.war /opt/tomcat8.5/webapps/
-
-
2、启动tomcat,使其自动解压war文件
3、配置web的数据库,以备web应用访问
4、去webapps里面找到web应用的数据库连接配置文件,修改配置项,使其能够正确定位数据库的位置
-
不同的web应用它的数据库连接文件名可能不一样 【重点】
- 企业中,开发工程师发布的安装包里面会带上一个配置说明文档。照着这个文档去做,如果出现问题,在排除自己操作失误的情况下,可以确定为配置错误。这个也称为安装测试。
-
woniusales的数据库连接文件的位置
-
woniusales/WEB-INF/class/db.properties
-
db_url=jdbc:mysql://localhost:3306/woniusales?useUnicode=true&characterEncoding=utf8 db_username=root db_password= db_driver=com.mysql.jdbc.Driver
db_url: 数据库的连接地址,localhost这个是tomcat去访问的数据库的主机地址,3306是数据库监听的端口,woniusales是我们创建的数据库的名字。
-
5、重启tomcat,检测配置是否完成
- 在浏览器中输入:ip:8080/woniusales
八、命令拾遗
1、文件创建
- touch 文件名: 创建一个空文件
- 使用重定向创建: man ls > ls.txt
- vi 文件名
2、文件查看
- vi 文件名;
- cat 文件名:查看文件的全部内容,如果文件行数多的话,不方便查看
- more 文件名:分屏查看,每次显示一屏
- less 文件名: 分屏查看
- tail [-f,-n 数字] 文件名
- -f : 阻塞式动态查看文件内容
- -n 数字: 查看文件结尾指定行数,比如: tail -n 100 文件名 ,查看文件的最后的100行,缺省最后10行
- head -n 数字 文件名:缺省-n,显示前面10行
3、链接文件
-
硬链接:一个文件被设置为硬链接,就会形成互相之间联动的两个单独文件
-
语法: ln -d 源文件 连接文件名
-
[root@localhost dir]# ln -d demo.txt ../dir0/demo [root@localhost dir]# ls -l ../dir0/demo -rw-r--r--. 2 root root 0 4月 24 17:31 ../dir0/demo [root@localhost dir]# vi demo.txt [root@localhost dir]# ls -l ../dir0/demo -rw-r--r--. 2 root root 5 4月 24 17:33 ../dir0/demo [root@localhost dir]# cat ../dir0/demo 1234 [root@localhost dir]# vi ../dir0/demo [root@localhost dir]# cat demo.txt 1234 456
-
-
软链接:创建一个标识性文件,用来指向原文件,可以理解快捷方式
-
语法: ln -s 源文件 连接文件
-
[root@localhost dir]# ln -s demo.txt ../dir0/demos [root@localhost dir]# ll ../dir0/ 总用量 4 -rw-r--r--. 2 root root 9 4月 24 17:33 demo lrwxrwxrwx. 1 root root 8 4月 24 17:36 demos -> demo.txt [root@localhost dir]# ll 总用量 4 -rw-r--r--. 2 root root 9 4月 24 17:33 demo.txt [root@localhost dir]# rm -f demo.txt [root@localhost dir]# ll ../dir0/ 总用量 4 -rw-r--r--. 1 root root 9 4月 24 17:33 demo lrwxrwxrwx. 1 root root 8 4月 24 17:36 demos -> demo.txt [root@localhost dir]# cat ../dir0/demo 1234 456 [root@localhost dir]# cat ../dir0/demos cat: ../dir0/demos: 没有那个文件或目录
-
特性:
- 硬链接文件是独立同时和源文件保持联动,删除任意一方,不影响另外的文件。修改数据是联动的。
- 软件链接文件类似win快捷方式,只要删除源文件,软链接就失效。修改源文件的内容,不影响软链接。
-
九、用户管理
- 组
- 查看组
- cat /etc/group
- 添加组
- groupadd 组名
- 修改组
- groupmod -n new old
- 删除组
- groupdel 组名
- 查看组
- 用户
- 新增用户
- useradd username:买一送二
- useradd -g 主组 -G 附加组
- 查询用户
- cat /etc/passwd
- 修改用户
- usermod -g 组名
- usermod -aG 附加组
- 删除用户
- userdel 用户名
- userdel -f 强制删除用户
- userdel -rf 删除用户和主组,如果主组里面还有其他用户,该命令会失败
- 新增用户
十、挂载
-
什么是挂载?
- 是通过文件去映射外部设备,从而可以通过这个文件去访问外部设备的数据
-
命令
-
mount [option] 需要挂载的资源 映射文件
-
-
挂载共享目录
-
mount -t cifs -o usernmae=Everyone //ip/share /mnt/wintools
-
十一、非常有用的命令
-
命令的别名设置:
-
alias 别名=‘命令’
- 临时生效
-
永久生效,修改配置文件,在 主目录的.bash_profile里面去增加
-
alias cls='clear' alias hh='history' alias ps='ps -ef |grep ' alias ns='netstat -anlp|grep '
-
-
查看历史命令
-
history
-
300 vi .bash_profile 301 source .bash_profile 302 cls 303 hh 304 ps mysqld 305 ns 3306 306 cat .bash_profile 307 hh 308 psg mysqld 309 cat .bash_profile 310 hh
-
第一列为命令编号,第二列是命令的详情
-
-
!命令编号 : 重复执行指定编号的命令
-
!命令部分字符 : 重复执行最近匹配的命令行
-
储存命令历史的文件在~/bash_history中。history配置文件为/etc/profile,默认记录1000行,如果修改行数则修改参数HISTSIZE=1000 即可。【重点】
-
-
进程查看命令
- top
- ps : 当需要确定我们的进程是否启动时。
-
结束进程的命令: kill -数字 PID
- 1 (HUP):重新加载进程。
- 9 (KILL):杀死一个进程。
- 15 (TERM):正常停止一个进程。
-
查看端口占用的命令:netstat -anlp|grep port
- 什么时候用呢?
- 当我们需要启动某个服务,出现地址被使用的时候
- 我们去连接某个服务,出现连接不上或连接被拒绝时候
- 什么时候用呢?
十二、yum的镜像源修改
-
安装wget: yum -y install wget
-
cd /etc/yum.repos.d;备份CentOS-Base.repo
-
执行下载aliyun的镜像源命令: 注意版本
-
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
-
-
重新创建yum的缓存
-
yum clean all yum makecache fast
-
十二、docker技术
-
概念
-
什么是docker技术?
- 虚拟化技术,实现的是应用级的隔离,而不是物理级的隔离
-
概念图
-
docker技术和虚拟机技术的相比的优势
- 更高效的利用系统资源。
- 更快速的启动。
- 提供一致的运行环境。
- 完成持续交付和部署。
- 进行更轻松的迁移。
-
docker技术的核心概念
- 镜像:把目标系统的特征进行汇总和重构形成的一个文件,依赖docker引擎。
- 开发人员使用docker引擎提供的命令创建的
- 仓库:保存镜像文件的地方
- 全局仓库:docker公司自己维护
- 私有仓库:企业自己创建的
- 容器:依据镜像文件使用docker引擎恢复成可运行的系统或应用程序。
- 用户根据实际需要,使用相关镜像文件启动运行的
- 镜像:把目标系统的特征进行汇总和重构形成的一个文件,依赖docker引擎。
-
-
docker的安装步骤
-
先安装依赖环境
-
yum install -y yum-utils device-mapper-persistent-data lvm2
-
-
再添加docker-ce的镜像源
-
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast
-
-
安装docker
-
yum -y install docker-ce
-
-
检查安装是否成功
-
systemctl start docker docker info
-
运行结果如下
-
Name: localhost.localdomain ID: TWR2:NLDM:3QFN:IHRF:UWGN:IW4R:L3DC:B3J3:JYJG:GXDF:2YGP:Q7LM Docker Root Dir: /var/lib/docker Debug Mode: false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false
-
-
优化docker的镜像
-
vi /etc/docker/daemon.json
-
{ "registry-mirrors": [ "https://kfwkfulq.mirror.aliyuncs.com", "https://2lqq34jg.mirror.aliyuncs.com", "https://pee6w651.mirror.aliyuncs.com", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com" ], "dns": ["8.8.8.8","8.8.4.4"] }
-
-
重载daemon文件
-
systemctl daemon-reload
-
-
重启docker服务
-
systemctl restart docker systemctl enable docker
-
-
查看新的镜像源是否生效
-
docker info
-
运行结果如下:
-
Registry Mirrors: https://kfwkfulq.mirror.aliyuncs.com/ https://2lqq34jg.mirror.aliyuncs.com/ https://pee6w651.mirror.aliyuncs.com/ https://registry.docker-cn.com/ http://hub-mirror.c.163.com/ Live Restore Enabled: false
-
-
-
使用docker安装部署应用
-
部署mysql
-
下载MySQL镜像
-
docker search mysql:5.7 docker pull idyci/mysql
-
-
启动MySQL容器
-
docker run -d --name mysql57 -p 3308:3306 --restart=always --privileged=true -e MYSQL_ROOT_PASSWORD='123321' idyci/mysql
- -d: 后台启动 , -it :前端启动,送一个命令行界面
- –name : 容器名,自定义
- -p 宿主端口:容器端口
- –restart=always : 伴随docker一起启动
- –privileged=true : 进入容器使用root权限
- -e 设置项 :设置环境变量
- 镜像文件名 : 一般放到命令的最后,要和本地镜像仓库的名字,这里可以镜像id
-
检查容器运行状态
-
docker ps -a # -a 显示所有状态的容器, 缺省的话只能看到运行中的容器
-
显示结果如下;
-
[root@localhost yum.repos.d]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 93f9e059ff41 6c3949ffb5c2 "docker-entrypoint.s…" About a minute ago Up About a minute 33060/tcp, 0.0.0.0:3308->3306/tcp, :::3308->3306/tcp mysql57 [root@localhost yum.repos.d]# ns 3308 tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 21503/docker-proxy tcp6 0 0 :::3308 :::* LISTEN 21508/docker-proxy
-
-
-
-
-
部署tomcat
-
拉取tomcat的镜像文件
-
docker search tomcat:8.5 docker pull 镜像名
-
-
运行tomcat的容器
-
docker run -d --name tomcat8 -p 8090:8080 -v 宿主目录:容器目录 [-v 宿主目录:容器目录 ] 镜像名
- -v 宿主目录:容器目录:挂载目录,这里的作用就是把tomcat的webapps挂载到宿主目录,方便我们在宿主目录操作它。
-
查看容器的运行日志
-
docker logs 容器名
-
-
删除容器的命令
-
docker rm [-f] 容器名 # -f 强制删除容器,即便容器是运行状态
-
-
删除镜像文件
-
docker rmi 镜像名
-
-
-
devops:解决分布式发布的一种思想
- 流水线自动化解决研发到发布的问题
- 底层依赖就是docker容器技术
-
docker的常用命令
- 镜像相关
- 搜索镜像文件: docker search 镜像文件名:版本
- 拉取: docker pull 镜像文件名|ID
- 删除镜像: docker rmi 镜像文件名
- 提交镜像文件 : docker commit -p -a “作者名” -m “镜像的简洁” 容器名|ID 镜像名:tag
- 导出本地镜像文件: docker save -o 路径/xxxx.tar 镜像文件
- 作用:将本地的镜像文件导出Linux目录下,用于备份或者复制
- 导入tar文件到本地的镜像库: docker load --input xxxx.tar
- 容器相关
- 把容器导出成tar包 : docker export -o xxxx.tar 容器名
- 把上一步tar包导入成镜像: docker import xxxx.tar username/程序名:tag
- 把镜像文件上传到仓库: docker push 镜像文件名
- 前提是docker hub的账户
- 进入容器的内部: docker exec -it 容器名 /bin/bash
- 在宿主和容器之间拷贝文件:
- docker cp 宿主目录 容器id|容器名:容器目录
- 镜像相关
-
附加
1、解决Linux系统中所有命令无法使用的问题:
- export PATH=/usr/sbin:/usr/bin:/usr/local/bin:/bin
- vi /etc/profile
- 仔细检查文件中哪里被修改错了
2、1>/dev/null 2>&1
- ```
docker rm [-f] 容器名 # -f 强制删除容器,即便容器是运行状态
```
- 删除镜像文件
- ```
docker rmi 镜像名
```
- [外链图片转存中...(img-hfAR66KV-1669104745891)]
-
devops:解决分布式发布的一种思想
- 流水线自动化解决研发到发布的问题
- 底层依赖就是docker容器技术
-
docker的常用命令
- 镜像相关
- 搜索镜像文件: docker search 镜像文件名:版本
- 拉取: docker pull 镜像文件名|ID
- 删除镜像: docker rmi 镜像文件名
- 提交镜像文件 : docker commit -p -a “作者名” -m “镜像的简洁” 容器名|ID 镜像名:tag
- 导出本地镜像文件: docker save -o 路径/xxxx.tar 镜像文件
- 作用:将本地的镜像文件导出Linux目录下,用于备份或者复制
- 导入tar文件到本地的镜像库: docker load --input xxxx.tar
- 容器相关
- 把容器导出成tar包 : docker export -o xxxx.tar 容器名
- 把上一步tar包导入成镜像: docker import xxxx.tar username/程序名:tag
- 把镜像文件上传到仓库: docker push 镜像文件名
- 前提是docker hub的账户
- 进入容器的内部: docker exec -it 容器名 /bin/bash
- 在宿主和容器之间拷贝文件:
- docker cp 宿主目录 容器id|容器名:容器目录
- 镜像相关
附加
1、解决Linux系统中所有命令无法使用的问题:
- export PATH=/usr/sbin:/usr/bin:/usr/local/bin:/bin
- vi /etc/profile
- 仔细检查文件中哪里被修改错了
2、1>/dev/null 2>&1
1>/dev/null 2>&1的解释就是将stdout标准输出重定向到空设备文件/dev/null ,同时将stderr标准错误输出的重定向跟stdout标准输出重定向一致,也输出到空设备文件/dev/null。