Linux基础入门

1 Linux发展史

1.1 摘要

  1. Linux是一种开源的操作系统,最初由芬兰的程序员Linus Torvalds于1991年开发而成。它是基于UNIX操作系统的设计理念,具有高度的稳定性、灵活性和安全性。
  2. Linux具有许多独特的特性,使其成为广受欢迎的操作系统之一。它是一个多用户、多任务的系统,可以同时支持多个用户进行操作,并且可以在同一时间进行多个任务。此外,Linux具有高度的可移植性,可以在各种硬件平台上运行,包括个人电脑、服务器、嵌入式设备等。
  3. Linux的核心组件是Linux内核,它是操作系统的核心部分,负责管理计算机的硬件资源,并提供对软件程序的接口。在Linux系统中,用户可以通过Shell来与内核进行交互,执行命令并管理系统。
  4. Linux拥有丰富的应用软件生态系统,包括图形界面、办公套件、开发工具、数据库管理系统等。用户可以根据自己的需求自由选择和安装各种软件,在满足个性化需求的同时保持系统的轻量和高效。
  5. Linux以其开放源代码和社区支持而闻名。由于其开放性,任何人都可以查看、修改和分发Linux的源代码。这使得Linux拥有庞大的开发者社区,积极参与操作系统的改进和维护,并提供技术支持和解决方案。
  6. 总结来说,Linux是一种稳定、灵活、安全且可定制的操作系统,适用于各种应用场景,从个人电脑到大型服务器都可以使用。它以其开源、多样化和庞大的社区而受到广泛的欢迎和推崇。

1.2 发展史

        前身 ---> unx

        1991:诞生Linux内核,在同年发布了第一个版本 ,linux1.0

        1992:Linux正式成为一个开源系统

        2001:2.4内核,支持了多用户同系统

        2011:3.0内核,支持硬件的操作

1.3 Linux与Windows的区别

        1. 开源和闭源

        2. 内核架构

        Linux:unx内核,可以定制 --- Centos、乌邦图

        Windows:微内核,服务、程序兼容性

        3. 文件系统

        linux:文本界面,在Linux内一切皆文件

        Windows:可视化界面

        4.操作方式

        Linux:命令,关键词

        Windows:点一点

        5.兼容性

        linux:容错率很高,支持多用户同时在线,适合开发

        Windows:主要针对的对象还是普通用户

        开发一个电商网页

        数据:数据库 --- 服务器

        前端页面:前端开发 --- 服务器

        后端后台:后端开发 --- 服务器

2 安装

        2.1 选择Linux镜像文件

        一直点下一步点到完成。

        点击开始安装

        登录:

 3 手动配置虚拟网卡

3.1在Windows查看自己的网络地址

3.2 en33网卡信息       

         命令:vi /etc/sysconfig/network-script/ifcfg-ens33

配置内容:

        摁I进入插入模式,可以输入内容,摁 esc退出插入模式,输入:wq 保存退出

        命令:cat /etc/sysconfig/network-scripts/ifcfg-ens33 查询内容

3.3 重启网卡

        命令:systemctl restart network

        双向检测:

虚拟机

 本地机:

 快捷键:Tab键自动补全内容,上下键,翻找历史命令

     使用远程工具:

        第一次创建完成不显示,需要重新打开软件

 

 4 文件命令

4.1 文件声明

        文件名:firle

        文件夹:firletest

        路径:road

        用户名:username

        关键字:key

4.2 系统:systemctl  指令

        status:状态

        start:启动

        stop:停止

        restart:重启

        disable:禁用,关闭开机自启

        enable:启用:打开开机自启

        语法:systemctl 指令 关键词

4.3 一些常用的关键词

        firwalld:防火墙

        network:网络

         查看帮助文档

                语法:指令 --help/-h

                --help/-h,外部文档:man

 4.4 文件

Linux的文件开始位置是~,也就相当于Windows的桌面

         Linux的文件开始一切是根目录开始 "/",相当于Windows里面的"我的电脑"

       

         /bin:系统命令的相关目录

        /boot:启动的相关目录

        /dev:设备文件目录

        /etc:配置文件目录

        /home:普通用户目录

        /lib:库目录

        /lib64:64位的库目录

        /media:媒体目录

        /mnt:磁盘挂载目录

        /opt:安装系统非必要文件目录

        /proc:虚拟文件目录,硬件信息

        /root:管理员目录

        /sbin:管理员才能运行的命令目录

        /srv:存放本机或者本机服务器的数据或者服务

        /sys:存放虚拟文件系统,系统信息

        /tmp:临时文件

        /usr:用户安装的应用程序

        /var:系统产生不可自动销毁的文件,操作日志,磁盘缓存

 4.4.1查看当前目录:pwd

 

 4.4.2 查看文件的系统消息

        ls:查看

        -a:查看全部文件,包括隐藏的

        -l:查看详细内容,缩写为ll

         文件内容组成:

         文件权限 目录概述 用户组 用户 创建时间 文件名称

        文件切换:   

                cd:直接回到“桌面”

                .. :回退到上级目录

                cd 文件路径:跳转到指定路径内

                cd - :回到上次操作的目录内

        文件编辑: vim 和 vi

        安装vim:命令:yum install vim -y

        特性: 如果当前目录下没有你输入的文件名,那么他会自动创建并打开    

         模式:正常模式、插入模式、编辑模式

        正常模式:打开文件时的状态就叫正常模式,esc可以退到正常模式

        常用命令:

                vim firle +行数:+必须打

                vim firle + : 定位到行尾

                G:定位到行尾

                gg:定位到行首

                yy:复制光标所在行

                p:粘贴

                u:撤销操作,相当于Windows的ctrl+z

                ctrl+r:反撤销

                dd:删除光标所在行

        插入模式:

                i:进入光标所在位置

                I:进入光标所在行首位置

                o:在光标所在行的下一行开始插入

                O:在光标所在行的上一行开始插入

                s:删除光标所在位置开始插入

                S:删除光标所在行开始插入

        编辑模式:

                :w:保存

                :q:退出

                :wq:保存退出

                !:强制

                快捷键:shift + zz 保存退出

                :set nu:显示行号,nonu不显示

4.4.3 文件创建等

        语法:touch firle

        无论后面跟什么,他全当文件创建,不会在乎你的格式什么的对不对

         创建文件夹:语法:mkdir firletest

         复制文件:

                cp:复制到当下文件夹内

                cp firle1 firle2:firle1如果不做更改,firle2还是原名,firle2换成你要更改的文件名

    

        复制到当前文件夹下的文件夹内:cp firle1 firletest

         删除文件:rm firle

                           -r:递归删除,只能删除文件

                 -f:强制删除

                 -rf:强制删除所有文件

         rmdir:删除文件夹 ,语法,rmdir firletest

        移动文件:

                mv firle road

                firle:你要移动的文件

                road:你要移动去的地方

                 利用mv改名

                机制:移动文件,如果不存在文件名,则改变名字

         查看文件内容:

                cat:从下往上看

                -n:添加行号,语法,cat -n firle

                -b:对非空输入行号

                 tac:从上往下看行号

                head:查看开头的指定内容,语法,head -行号

                 tail:查看末尾的指定内容,语法,tail -行号

                 more:查看文件内容,空格翻页,回车下一行,q退出

                less:查看文件内容,空格翻页,回车下一行,q退出,可以上下键翻查

        文件权限:

                chmod

                身份:

                        u:用户

                        g:组

                        o:其他

                        a:所有身份

                修改:

                        +:添加

                        -:去掉

                        =:设置

                权限

                        r:读写 4

                        w:写 2

                        x:执行 1

                简单写法:775,代表rwx

 

         改变文件拥有者: chown

                语法:chown username firle

                修改后的图

         改变文件所属组:chgrp

 4.4.4 软硬连接

        软连接:相当于软件或者文件在Windows的快捷方式,ln -s firle newfirle

        硬链接:相当于软件或者文件在Windows的配置文件,ln firle newfirle

 

 

 

 

 

 4.4.5查看目录结构

        tree -L 深度(数字)

        安装依赖:yum install -y tree

         查找文件:

                find 范围

                -name:指定名字,find / -name b.txt

                 -type:如下

                b:块设备文件

                c:字符设备文件

                d:目录

                p:管道文件

                f:普通文件

                l:符号连接文件

                -size:指定大小,单位K\M\G,+表示大于,-表示小于,find / -size +1M

                 -user:指定用户

                -group:指定用户组

        查找程序:whereis

         查找命令:which

         起别名: alias

         取消别名:unalias

正则匹配:

        语法:grep key road

        查询/opt/cccc.txt文件内包含d的行

        -i:忽略大小写

        -n:忽略行号

 5 特殊命令

5.1各种命令

        管道符:|

                管道符左边是执行结果,功能是右边的

                可以翻页查找含有name的行的文件

         日期:date -d:按照指定格式显示

        重定向:>

                将查询的结果存放在 内容.txt 内

         将错误的信息存入文件内

         主机名:hostname 查看主机名

         修改主机名:hostnamectl

         内存查看:free

         查看所有执行程序:top

5.2 进程

        进程:ps

                a:查看所有进程

                u:显示用户

                x:显示有终端的

         ps -auxef:查看进程的全部内容

         PID:进程ID

        结束进程:kill -9 PID

        压缩解压缩:安装依赖:yum install zip unzip -y

        zip:把所有后缀为txt的文件压缩在 *txt.zip 压缩包内

         unzip:

         tar:打包解包都行,后缀为tar

                -c:打包

                -x:拆包

                -t:查看

        以上三个参数不能一起使用 tar -cxt firle 这是不行的

                -f:指定文件

                -v:显示详细信息

                -z:使用gzip/ungzip 压缩和解压

                -j:使用bzip/unbzip 压缩和解压

但是下面的可以配合上面的一起使用 tar -zxvf firle 这是可以的

         查看压缩包内容

         解压

 5.3 软件安装

         yum:

                yum install -y 同意安装

                yum clean all 清除缓存

                yum remove 卸载

                yum update 更新

        rpm:

                rpm -i 安装

                rpm -e 卸载

                rpm -v 详细信息

        远程传输文件:scp firle IP: road

         输出命令:

                echo + 结果:输出

                seq m n 输出从m到n的数

                expr 进行运算

        环境变量:

                echo $PATH :查看环境变量

                编辑环境变量:vi .bash_profile

                重启环境变量:source .bash_profile

 5.4 启用Tomcat

        解压tomcat

         给脚本文件授权

       关闭防火墙

        防火墙名字:firewalld

        运行tomcat

         部署文件内容

        在 webapps 里面创建一个文件夹 存放文件 index.html

         重启tomcat,在 bin 目录

         完成

        http://IP:8080/文件夹/index.html

 6 网络命令

6.1 网络依赖包

        命令:yum install net-tools -y

6.2 网络

        ping:检查网络联通

        ip addr:查询IP

        ifup:启动网卡

        ifdown:关闭网卡

        service network statrt|stop|restart 启动|关闭|重启网络服务

6.3 端口查看

        命令:netstat -tunpl:查询网络端口

 7 用户命令

7.1 用户以及用户组

        /etc/passwd

        /etc/group

        /etc/shadow

7.2 创建用户

        useradd username

        passwd username:给用户设置密码

         -d : 指定家目录

        -u:指定用户

        -g:指定所属组

        -s:指定shell解析器

7.3 切换用户

        命令:su - username

         代表身份,#管理员,$普通用户

        su - :不加用户名直接回到管理员用户(root)

7.4 删除用户

        userdel username

        记得删除/home文件下的用户文件夹

7.5 查询当前用户:whoami

7.6 用户组

        groupadd 组名

        groups:查看当前所在组

        groupdel:删除用户组

8 项目:静默安装oracle

8.1新建虚拟机

        内存选择40G

8.2 配置网络

        命令:cd /etc/sysconfig/network-scripts/ifcfg-ens33

                IPADDR=192.168.159.121

                NETMASK=255.255.255.0

                GATEWAY=192.168.159.2

                DNS1=114.114.114.114

         重新启动:systemctl restart network

8.3 配置jdk

        8.3.1 上传JDK并授权

                目录:cd /opt

                权限:chmod 775 jdk

 8.3.2 解压JDK

        命令解压:tar -xvf jdk-8u192-linux-x64.tar.gz

8.3.3 获取路径并配置环境变量

        pwd:获取路径

        ~:.bash_profile

        配置环境: 

               PATH=$PATH:$HOME/bin

                PATH=$PATH:HOME/bin:$JAVA_HOME/bin

                PATH=$PATH:HOME/opt

                export JAVA_HOME=/opt/jdk1.8.0_192

 8.4 启动Tomcat

8.4.1 解压

安装解压:yum install unzip -y

                  unzip apache-tomcat-8.5.90.zip

                权限:chmod 775 *.sh

8.4.2 启动

        先授权,然后启动

 8.5 安装Oracle

8.5.1 关闭selinux

        命令:sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

         setenforce 0

8.6 创建用户和用户组

        命令如下:

                groupadd -g 200 oinstall

                groupadd -g 201 dba

                useradd -u 440 -g oinstall -G dba oracle (主组:oinstall,其他组:dba)

                passwd oracle

8.7 修改内核参数

        命令:vi /etc/sysctl.conf

        数据:

                net.ipv4.ip_local_port_range = 9000 65500

                fs.file-max = 6815744

                kernel.shna11 = 10523004

                kernel.shmmax = 6465333657

                kernel.shmmni = 4096

                kernel.sem = 250 32000 100128

                net.core.rmem_default=262144

                net.core.wmem_default=262144

                net.core.rmem_max=4194304

                net.core.wmem_max=1048576

                fs.aio-max-nr = 1048576

 

         修改系统资源限制:vi /etc/security/limits.conf       最后加就可以了

 8.8 创建安装目录

       8.8.1 命令:

                cd

                mkdir oracle

                cd

8.8.2 添加权限

        让oracle用户能对该文件夹操作

        groups oracle

        chown oracle:dba /oracle

        chmod 775 /oracle/

 8.8.3 配置环境变量

        注:到Oracle用户操作界面

        命令:vi .bash_profil       

         export ORACLE_BASE=/oracle

        export ORACLE_HOME=$ORACLE_BASE/data/product/11.2.0/db_1

        export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

        export ORACLE_SID=orcl

        export ORACLE_PID=ora11g

        export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

        export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

         source .bash_profile

        echo $PATH

8.9 安装依赖包 主机2  Oracle

yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686/

主机1 yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686/

cd /oracle/

chmod 775 *.*

unzip:解压

cd database/

cd response/

mv db_install.rsp /var

cd var

mv db_install.rsp /oracle/database/response/:无关紧要

cd /oracle//database//response/

vi db_install.rsp less /oracle/database/response/db_install.rsp

8.9.1传入Oracle11g-Linux并解压

scp 文件路径 IP:文件路径 (注:复制不了,手动上传)

unzip

8.9.2 查看文件

dbca.rsp #创建应答

db_install.rsp #安装应答

netca.rsp #建立监听、本地服务名

        数据库:是一个服务或者环境

        数据库管理系统

        数据库名 + 数据库监听 + 仓库 :存放的是表数据

8.9.3 静默安装的配置

        备份,cp

oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=oracle

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/oracle/data/oraInventory

SELECTED_LANGUAGES=en,zh_CN

ORACLE_HOME=/oracle/data/product/11.2.0/db_1

ORACLE_BASE=/oracle/data

oracle.install.db.InstallEdition=EE

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=dba

DECLINE_SECURITY_UPDATES=true

 8.9.4 开始安装

        在oracle用户里安装

./runInstaller -silent -force -responseFile /oracle/database/response/db_install.rsp

         成功:

         主机1:

/oracle/data/oraInventory/orainstRoot.sh

/oracle/data/product/11.2.0/db_1/root.sh

        主机2:

        按照提示的命令输入,检测

sqlplus / as sysdba -- 登录Oracle

 

 9 项目:负载均衡

9.1 负载均衡

        说明:将一种工作负载在多个资源之间分配的技术

 9.2 软件

Nginx:

        高性能的反向代理服务器和web服务器,加速负载均衡HTTP请求、HTTPS、TCP...,可以作为静态资源服务器、缓存服务器、负载均衡服务器

Keepalived:

        集群环境中管理IP地址的故障转移,多个服务器可以公用一个虚拟IP,可以确保即使一个服务器发生故障,其他服务器的IP会接管这个虚拟IP的访问页面、请求

9.3 配置主机

        两台host,网络配置

 9.4 部署JDK与Tomcat

9.4.1 上传、解压、配置(一式两份)

 命令(拷贝):scp file ip: /opt

 

 解压:

 9.4.2 关闭防火墙

关闭:systemctl stop firewalld

查看:systemctl status firewalld

开机不启动:systemctl disable firewalld

 9.4.3 修改主机ID

        hostnamectl set-hostname 主机名

 9.4.4 安装网络依赖包

        命令:yum net-tools -y

9.4.5 配置JDK和启动tmocat

 

 9.4.6 加入展示页面

 
9.4.7 重启tomcat 

 9.4.8 成品

 

 9.5 配置nginx和keepalived

 9.5.1 先在 master 解压nginx

        chmod 775 nginx-1.25.1.tar.gz

        tar -zxvf 

9.5.2 安装依赖

yum -y install gcc pcre-devel openssl openssl-devel

9.5.3 安装nginx

#进入nginx-1.8.1

cd nginx-1.8.1

#配置安装路径

./configure --prefix=/var/local/nginx

#编译安装

make

make install

 

 cd /var/locad

cd /nginx

cd conf/

vi nginx.conf

cd ..

cd sbin/

 9.5.4 配置

#gzip on;

        upstream web_server{

        #两台host主机IP

                server 192.168.195.100:8080;

                server 192.168.195.200:8080;

         }

server {

        listen 80;

         #本机IP

        server_name 192.168.195.201;

         #charset koi8-r;

        #access_log logs/host.access.log main;

        location / {

                #root html;

                index index.html index.htm;

                 proxy_set_header Host $host;

                proxy_set_header X-Real-IP $remote_addr;

                 proxy_pass http://web_server;

        }

 9.5.5 启动

/sbin ---> ./nginx

检查

netstat -anpt

ps ax | grep nginx

9.5.6  配置keep

./configure --prefix=/usr/local/keepalived

make

make install

9.5.7 拷贝配置文件

 9.5.8 配置 conf

cd /etc/keepalived/

vi keepalived.conf

! Configuration File for keepalived

global_defs {

}

vrrp_instance vip_nginx {         #实例名自定义

        state MASTER                 #主为MASTER----从为BACKUP

        interface ens33                 #主机网卡名

        virtual_router_id 51          #vrid 路由标识符,主备保持一致

        priority 100                       #值越大优先级越高

        master 100 slave 90 advert_int 1         #主服务器组播包发送间隔时间

        #nopreempt                         //采用抢占式,不开启此配置

        authentication {                 #主备主机之间的认证表示信息

                auth_type PASS

                auth_pass 1

}

        virtual_ipaddress {                 #设置虚拟ip地址信息

                #不能使用已经被使用的IP,这是最后对外访问用的IP

                192.168.195.250

        }

}

 9.5.9 授权

chmod +x /etc/init.d/keepalivedCopy to clipboardErrorCopied

 9.5.10 配置开机启动

        keepalived.conf下执行 

chkconfig --add keepalived

chkconfig keepalived onCopy to clipboardErrorCopied

9.5.11 开启keepalived

        分别在master和salve启动keepalived(输入)

systemctl start keepalivedCopy to clipboardErrorCopied

 9.5.12 重启

systemctl restart keepalivedCopy to clipboardErrorCopied

 9.5.13 查看进程

ps ax|grep keep

 9.5.14 测试

        网页输入你的虚拟IP实现和nginx一样的效果

192.169.159.50/web/index.html

 10 番外 1(Docker入门)

10.1 什么是Docker

        开源的,go语言编写的,方便我们使用容器

        为什么要用Docker:面对多环境、多内容的项目程序,我们每次配置花费很多时间,使用Docker,把这些东西打包起来,只需要在本地(开发者环境)配置成功即可

10.2 Docker和虚拟机的区别

        VMware、WSL、Hyper-V、Parallels Desktop

1,虚拟化技术

        将物理资源转化为逻辑资源,将一台服务器虚拟化为多台逻辑服务器(虚拟机)

2,优点

        每个都有自己的独立系统,相互之间是隔离的,可以将一台主机的功能拆分为多台,减少了服务器的开销

3,缺点

        非常占用运行资源,每次只能全部打开,不能部分打开

在我们实际开发中,我们使用虚拟机的时候,实际上仅仅只是使用我们在虚拟机里安装的环境、对外提供服务的应用程序

我们运行负载均衡,我们实际上只想使用nginx、keepalived、tomcat、jdk,并不想把虚拟的CPU、内存、硬盘这些不必要的虚拟物品也启动

Docker

不属于容器,只是容器的体现,是一个容器化的普平台和解决方案,容器本身就是一个虚拟化技术,和虚拟机类似也是一种虚拟化的技术,是一个独立的环境,在这个环境中运行应用程序,和虚拟机不一样的是,并不需要运行一个完整的操作系统,但是他使用的是宿主机的系统,使用启动占用的资源很少

 10.3 基本原理和概念

镜像和容器:

        只是一个只读的模板,它可以用来创建仓库,容器是Docker的运行实例,提供了一个独立的可移植的环境,容器只是一个只读实例

镜像----食谱:详细的描述了一道菜怎么做

容器----菜肴:就是食谱中说的这道菜

你可以根据这个食谱做出很多菜,你可以根据这个镜像创建很多个容器

前提:你要严格按照食谱做,严格按照镜像里的内容构建容器

结果:无论任何人怎么做这道菜,大家都是一样的,无论你在任何环境使用镜像,结果都一样

分享:你可以把这个菜谱分享给身边人,让他们也可以使用,你可以把镜像分享给其他人,让其他人可以运行你分享的内容(应用程序)

仓库:

食谱有很多,但是如何分享给其他人?放在图书馆,按需去选取自己想要的食谱

镜像有很多,如何分享呢?放在镜像仓库里,按照需求去选,我需要MySQL镜像我就去找MySQL镜像

仓库最常用的是DockerHub,他是一个公共的,我们可以从中下载各种镜像

你从其他地方发现了一本全新的食谱,你可以放进图书馆里

你发现了个好用的镜像,可以放进仓库,也可以放进个人仓库

10.4 架构模式

        Docker采用的是Server和Client结合的模式

 

Docker Client 和 Docker Demo 之间使用的是RESULTFUL API进行通信联系

Docker Client 向 Docker Demo 发送请求, Docker Demo 处理完数据返回给 Docker Client

Docker Client 只是一个后台进程,用来接收并处理 Docker 客户端的请求,将结果返回给客户端,所以我们输入任何和docker有关的命令,实际上就是通过客户端发给 Docker Demo 的,处理完返回给客户端

10.5 Docker的安装

10.5.1 第一种安装

镜像下载

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repoCopy

curl -o /etc/yum.repos.d/CentOS-Base.repo 

清理缓存

yum clean allCopy to clipboardErrorCopied

 安装Docker

 yum makecache

yum -y install yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum -y install docker-ce docker-ce-cli containerd.io

查看

docker -vCopy to clipboardErrorCopied

 启动Docker

 systemctl start docker

systemctl enable docker         # 开机自启

systemctl status dockerCopy to clipboardErrorCopied

10.5.2 第二种安装 

cat /etc/redhat-release

uname -a

uname -r

ls -l /sys/class/misc/device-mapper/

vi /etc/sysconfig/selinux # 修改为SELINUX=disabled

setenforce 0

yum list installed |grep docker

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum-config-manager --disable docker-ce-edge docker-ce-test

yum list docker-ce --showduplicates | sort -r

yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

systemctl enable docker

docker systemctl daemon-reload

systemctl daemon-reload

systemctl start docker

systemctl status docker

 修改下载镜像

# 来到配置文件下

cd /etc/docker/

# 创建文件

vi daemon.json

# 随便选一个网址放进去

https://registry.docker-cn.com

http://hub-mirror.c.163.com

https://3laho3y3.mirror.aliyuncs.com

http://f1361db2.m.daocloud.io

https://mirror.ccs.tencentyun.com

{

        "registry-mirrors": ["http://hub-mirror.c.163.com"]

}

# 重启

systemctl restart docker

 10.6 完成

        检查是否生效

docker info

 

 10.7 常用命令

        启动、关闭、重启

        systemctl 。。。docker

        docker 容器名

10.7.1 搜索镜像

        docker search 名称

 10.7.2 上传镜像

        docker pull 名称,如果不加版本,默认下载最新的

 10.7.3 查看镜像

        docker images

 10.7.4 删除镜像

        docker rmi -f 镜像名称

 10.7.5 运行容器

docker run 镜像名称

--name:给容器取名

-d:以后台的方式运行容器,并返回容器的ID

-i:以交互模式运行容器,通过和 -t 一起用

-t:给容器重新分配一个终端

-p:主机端口,一般是默认端口,指定端口:默认端口

tomcat:8080

nginx:80

MySQL:3306

Oracle:1530

docker run -itd --name MySQL01 -p 3310:3306

在后台运行MySQL,名称是MySQL01,端口3310

10.7.6 查看docker运行的容器

docker ps

10.7.7查看运行历史

docker ps -a

10.7.8 进入容器

docker exec -it 容器名/容器id

/bin/bash 该目录下修改

10.7.9 指定启动、重启、停止、强制停止(kill)容器

docker 命令 容器id/容器名

10.7.10 删除指定容器

docker rm 容器id

10.7.11 往容器内传入东西

docker cp /路径/文件名 容器id:/上传路径

10.8 docker安装tomcat

1. 拉取镜像

2. 查看镜

3. 运行 docker run -d -p 8085:8080 --name tomcat8085

容器名字叫 tomcat8085 端口808

 4. 传入容器内容

docker cp webapps.dist/* host1:/usr/local/tomcat/webapps

10.9 安装MySQL

docker pull mysql:5.7

设置的是 默认 root 用户 ,密码是123456

docker run -itd --name mysql1 -p 3300:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

docker ps

进入MySQL

        docker exec -it mysql1 bash

 登录

mysql -u root -p

 设置允许远程连接

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

 退出

 报错

container“容器id”

 需要删除id,任何重新run

docker rm + container ID

11 番外2(Shell)

11.1shell

        是介于用户和Linux内核之间的一个工具,你执行的命令,Linux通过对shell脚本的解析生效

bash、ash、csh、ksh...bash用的最多

 执行工具,标明了系统使用的shell工具

 11.2 第一个脚本

 #! /bin/bash         #shell 解析器

echo "hello world!"         # 该打的空格一个不能少,不该打的不能有

11.3  变量

 11.4 全局输出

export PATH=$PATH:脚本路径

 $?:判断上次执行是否成功,0代表成功

11.5 文件包含

设定子内容

 11.6 字符串

双引号:可以使用除了$ ` \之外的任意字符,可以解析变量

 单引号:所有的字符都认为是普通字符,不会解析变量

反引号:把其中的字符当作命令执行

反斜线:转义特殊字符,比如$ ` \

 11.7 字符串操作

长度计算:${#变量名}

字符串提取:${#变量名:开始:长度}

str:2:3 :从第二个开始提取三个

 11.8 数组

a 的下标(索引)是0,b的是1,数组从0开始计算

 11.9 运算符

测试,test+echo $?

 -lt:小于

-le:小于等于

-gt:大于

-ge:大于等于

-eq:等于

-nq:不等于

字符串比较

=:等于

!=:不等于

-n:字符串长度不为0,结果为真

-z:字符串长度为0,结果为真

文件判断

-f:普通文件

-d:目录文件

-w:文件可写

-x:文件执行

-s:文件至少有一个字符

-c:字符设备文件

-b:块设备文件

逻辑判断

-a:逻辑与,and的简写,&&

-o:逻辑或,or的简写,||

!:逻辑非

输入

read -p "请输入:" cj

read 代表从控制台输入,-p可以输出提示字符,内容传给变量cj

11.10 if分支

 11.11 case分支

 

 case偏向于同时计算和比较

if偏向于逐步比较,分支语块是有优先级的

11.12 for循环

for 变量 in 条件

 

 

 

11.13 while

while 后面跟 条件

 11.14 break和continue

11.14.1 break

 11.14.2 continue

结束本次循环,进入下次循环

 11.15 函数

 调用函数,执行函数里的方法,输出 hello world!

 11.16 带有参数的函数

参数按照顺序输入给变量

形参:等待传递内容的具有一定意义的容器

实参:具有确切的数据内容的值

 11.17 带返回值的函数

11.18 习题 

变量相加用:let

模拟取钱

①:提示输入框写到循环里面(无限循环)

②:用户输入4则退出循环 break

③:提前准备一个金额预先存储一个数额 money

④:根据输入不同的值,做不同的操作

取钱则是减法操作, 存钱则是加法操作,查看余额则是直接显示金额

#卡内余额初始值

money=1000

while true;do

echo "请选择操作:"

echo "1.取钱"

echo "2.存钱"

echo "3.查看余额"

echo "4.退出"

read choice

case $choice in

        1)

                echo "请输入取款金额:"

                read withdrawal

                if [ $withdrawal -gt $money ];then

                        echo "余额不足!"

                else

                         money=$((money - withdrawal))

                         echo "已取出 $withdrawal 元"

                fi

                ;;

                2)

                echo "请输入存款金额:"

                read deposit money=$((money + deposit))

                echo "存入 $deposit 元"

                ;;

                3)

                echo "当前余额为:$money 元"

                ;;

                4)

                break

                ;;

                *)

                echo "无效输入!"

                ;;

                esac

                echo "----------分界线----------"

        done

echo "感谢使用!~" 

九九乘法表

#! /bin/bash

for ((i=1;i

do

for((j=1;j

do

if [ $i -ge $j ];then #if test $i -ge $j;then

echo -n "$i*$j=$(($i*$j)) "

fi

done

echo

done

 

#! /bin/bash

#让用户输入一些数字,当输入一个负数时结束输入,,并计算所有输入的奇数总和

while :

do

echo "用户输入:"

read data

if [ $[data] -ge 0 ];then

if [ $[$data%2] -eq 0 ];then

continue

else

let sum=sum+$data

echo "奇数总和:$sum"

fi

else

echo "结束输入"

break

fi

done

 

#! /bin/bash

#用户如果输入的是偶数打印输出是偶数行的正方形,如果输入的是奇数打印输入

#奇数的三角形,如果输入的是1或是0提示“请输入大于1的数字”

read -p "请输入: " i

if [ $i -gt 1 ];then

if [ $[$i%2] -eq 0 ];then

for ((x=1;x

do

for((y=1;y

do

echo -n "* "

done

echo

done

else

for ((j=1;j

do

for ((k=1;k

do

echo -n "*"

done

echo

done

fi

else

echo "请输入大于1的数字"

fi

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值