• Liunx教程超详细(完整)


    Linux

    1、计算机硬件软件体系

    冯 诺依曼体系结构

    • 计算机处理的数据和指令一律用二进制数表示
    • 顺序执行程序
    • 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成

    计算机硬件组成

    • 输入设备
    • 输出设备
    • 存储器
      • 存储器用来存放数据和程序

      • RAM(random access memory)即随机存储 内存

        • 速度快,容量小
        • 掉电易失
        • 逻辑IO
      • ROM(Read-Only Memory)即只读内存 硬盘:

        • 容量大,速度相对较慢
        • 长久保存
        • 物理IO
    • 控制器
      • 控制器主要用来控制和指挥程序和数据的输入运行,以及处理运算结果
    • 运算器
      • 运算器主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中

    硬盘的分类

    • 机械硬盘(Hard Disk Driver, HDD)

      • 机械硬盘采用磁性碟片来存储数据
      • 用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有
      • 被磁化
      • 凸起的地方代表数字1(磁化为1),凹的地方代表数字0。
      • 硬盘可以以二进制来存储表示文字、图片等信息。
      • 硬盘可以根据转速来判断硬盘的好坏 7200转/分 100-200M/s
    • 固态硬盘(Solid State Disk, SSD)

      • 固态硬盘通过闪存颗粒(固态电子存储芯片阵列)来存储数据
      • 读写速度的区别

    网络连接概念

    • IP地址IPADDR
      • IP地址是一种逻辑地址,用来标识网络中一个个主机
        • IP地址=网络地址+主机地址
        • IP地址是一个 4 * 8bit(1字节)由 0/1 组成的数字串(IP4协议)
    • 子网掩码NETMASK
      • 子网掩码只有一个功能,就是将IP地址划分为网络地址和主机地址两部分。
      • 子网掩码用来判断任意两台计算机的IP地址是否在同一个子网中的根据
    • 默认网关GATEWAY
      • 网关的作用就是实现两个网络之间进行通讯与控制
      • 连接两个不同的网络的设备都可以叫网关设备
      • 网关地址就是网关设备的IP地址
    • 域名服务器DNS
      • DNS是域名服务器,用来解析域名的(域名和IP之间的解析)。
      • 如果没有这东西,登陆某个网站时就必须输入该网站的IP地址,有了DNS就可以直接输入网址
      • 全国
        • 114.114.114.114
      • 全球
        • 8.8.8.8
      • C:\Windows\System32\drivers\etc\hosts

    网络连接模式

    • host-onboy(主机模式)
      • VMNet1
    • bridged(桥接模式)
      • 虚拟机和真实主机共享一个网络
    • NAT(网络地址转换模式)
      • 给虚拟机构建一个单独的子网络
      • VMNet8

    软件分类

    • 应用软件
      • 就是为了实现某些业务功能
      • 应用软件要基于对应的系统软件
    • 系统软件
      • 就是为了和硬件打交道
      • 屏蔽应用软件与硬件的差异
      • 分类
        • Window
          • 用户量全球最大
          • 收费,不开源,民用较多
          • 各种软件比较齐全
        • Mac
          • 只限定于某些苹果的品牌机
        • GNU/Linux
          • GNU是一个开源软件组织,世界上所有的软件都应该开源免费

    Linux分支

    • RedHat(收费)

      • CentOS

        • 完全开源免费
        • 不要使用最新版的CentOS
      • 主要用于服务器版本

    • Debain(免费)

      • Ubuntu

        • 视窗界面良好的Linux系统
        • 一些主流的软件都支持Ubuntu系统

    Linux下载

    • 官网

      • https://linux.org/
    • 下载页面

      • https://linux.org/pages/download/
    • CentOS7.6下载地址

      • http://vault.centos.org/7.6.1810/
    • 镜像的分类

      • everything
      • minimal
      • netinstall

    2、虚拟机安装与配置

    虚拟化技术

    • 可以更好的利用计算机闲置的资源

    • 我们可以在计算机中虚拟出多台虚拟机帮助我们执行程序或者业务

    • 虚拟机的各种组成理论上和真实主机是一样的

    • 如果要使用这种技术只需要安装对应的软件即可

      • Virtualbox
      • VirtualMachine
    • 安装软件

      • Win10

        • VirtualMachine 15.X版本
      • Win11

        • VirtualMachine 16.X版本

    创建虚拟主机

    安装操作系统

    配置常见参数

    • 网络

      • 查看自己虚拟网卡地址

        • 编辑–>虚拟机网络编辑器–>vmnet8
      • 修改网络配置信息

        • 修改网络信息

          • vi /etc/sysconfig/network-scripts/ifcfg-ens33

          • –修改

            • ONBOOT=yes
            • BOOTPROTO=static //静态网络IP dhcp 动态获取网络IP
          • –添加

            • ip地址
            • 网关地址
            • 子网掩码
            • DNS1
          • 删除------

            • UUID
        • 重启网卡重新加载配置文件

          • ip addr
          • systemctl restart network.service
          • ping www.baidu.com
          • ctrl+c 终止命令的执行
    • 软件安装限制

      • 操作系统对未知软件的安装有可能拒绝或者警告,我们需要禁用这个功能

      • vi /etc/selinux/config

        • 修改

          • SELINUX=disabled
    • 防火墙

      • 保护本机的端口不被别人恶意访问

      • 如果端口需要被别人访问到,需要添加端口的防火墙例外

      • 关闭防火墙

        • 本次开机状态下防火墙关闭

          • systemctl stop firewalld (本次服务内关闭防火墙)
        • 服务器重启后防火墙禁用

          • systemctl disable firewalld(禁用防火墙服务)
        • 查看防火墙状态

          • systemctl status firewalld(禁用防火墙服务)
    • 关机

      • halt

        • 直接拔掉电源
      • poweroff

        • 直接关闭机器,但是有可能当前虚拟机其他人在使用
      • shutdown -h now

        • 马上关闭计算机 ,但是可以给其他用户发送消息
      • reboot

        • 重启虚拟机

    快照与克隆

    • 拍摄快照

      • 记录当前虚拟机的状态
      • 拍摄快照的时候一定要关机
    • 转到

      • 回到某一个历史快照的节点
    • 克隆

      • 复制某一个历史快照节点

      • 克隆的方式

        • 链接克隆

          • 当前节点文件夹只存储差异性数据
          • 相同数据存放在原始节点上
          • 优点:节省硬盘空间 缺点:耦合性大
        • 完整克隆

          • 就是基于原始节点完全拷贝到新节点的文件夹中
          • 优点:耦合性抵 缺点:硬盘空间使用大
          • 推荐使用完整克

    修改克隆机配置

    • 网络信息

      • 参考修改网络信息
    • 主机名

      • vi /etc/hostname

        • 修改完成后需要重启生效
      • hostname xxxx

        • 本次启动中有效,重启虚拟机还是使用原来的名字

    连接Linux服务器

    • Xshell

      • 负责向虚拟机输入命令
    • XFtp

      • 如则向虚拟机传输文件

    3、Linux的命令

    命令学习法

    • Linux命令与参数之间必须用空格隔开

    • Linux命令是区分大小写的

    • 如果输入了错误的命令

      • -bash: abcd: command not found
      • 命令敲错了
      • 命令未安装
    • type 命令的类型

      • cd is a shell builtin
      • ping is /bin/ping
      • ll is aliased to `ls -l --color=auto’
      • for is a shell keyword
    • 命令的帮助文档

      • help

        • 内置命令的帮助文档
      • man

        • 外部命令的帮助文档

        • 因为当前系统为minimal的,very basic 没有man包

        • 需要手动安装man

          • yum install man man-pages -y
      • 将来工作中如果遇到生疏的命令,直接百度

        • 如果不是为了装C,完全没必要查看命令手册

    常用的命令

    • whereis 查询命令文件的位置
    • file 查看文件的类型
    • who 查看当前在线的用户
    • whoami 我是谁
    • pwd 我在那
    • uname -a 查看内核信息
    • echo 类似于 sout syso ,打印语句
    • clear 清屏
    • history 历史

    特殊字符

    • .点:

      • 如果文件的开始是.说明当前文件是一个隐藏文件
      • . 指向当前目录
      • …指向当前目录的上级目录
    • $

      • 说明这是一个变量
      • $PATH Linux的环境变量
    • *星号

      • 通配符
    • ~

      • 当前用户的家目录
      • 每个用户的家目录是不同的
      • root用户家目录在系统根目录下
      • 其他用户的家目录在/home/用户名为家目录
    • 空格

      • Linux的命令与参数用空格隔开
    • /

      • 整个Linux的文件根目录
    • 命令的参数

      • 如果是单词 一般加–
      • 如果是字母或者缩写 一般加 -
    • 修改Xshell字体颜色

      PS1=‘[\e[36;40m][\u@\h \W][\e[0m]\$ ’
      echo "PS1=’[\e[36;40m][\u@\h \W][\e[0m]\$ '">>~/.bashrc
      source ~/.bashrc

    4、Linux的文件系统

    万事万物皆

    • 所以在Linux中所有的东西都是以文件的方式进行操作
    • 在Linux中,文件的访问不和Window的一样。window依靠的是通过盘符进行访问
    • Linux维护着一个树状结构的文件模型
      • 只有一个根节点 ,他的名字叫做 /
      • 一个节点上可以有多个子节点
    • 查找文件的方式
      • 相对路径
        • 以当前路径为基准点,查找其他资源
        • vi …/etc/sysconfig/network
        • 以根目录为基准点,查找其他资源
        • vi /etc/sysconfig/network-scripts/ifcfg-ens33
      • 日常使用中,只要找到路径即可,但是如果是一些配置文件,尽量写绝对路径
    • 可以随意的挂载磁盘
      • mount /dev/disk1 /usr/download disk1 1T mount /dev/disk2 /usr/upload disk2 100T mount /dev/disk3 /usr/upload/photo disk3 1P

    Linux二级文件目录

    • /bin:
      • 可执行文件
        • 比如命令和脚本
    • /boot:
      • 引导分区
    • /dev :
      • 设备信息
    • /etc:
      • 系统核心配置信息
    • /home:
      • 家目录(普通用户)
    • /lib:
      • 类库
    • /media:
      • 媒体
    • /mnt:
      • 硬盘挂载
    • /opt:
      • 自定义安装软件路径
    • /proc:
      • 进程信息
    • /root:
      • root用户家目录
    • /sbin:
      • 管理员可执行的相关命令和权限
    • /srv
      • 存放一些服务启动需要提前的数据
    • /sys:
      • 系统内核信息
    • /tmp:
      • 临时文件目录名
    • /usr:
      • 用户们共享的区域
    • /var:
      • 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日 志文件。
    • /run:
      • 运行时的一些系统信息和变量

    Linux的文件操作

    • cd
      • 改变当前工作目录
    • ls ll
      • 显示出指定目录下所有的文件
      • 文件的类型
        • -普通文件
        • d文件夹
    • l软连接
      • -rw-r–r–. 1 root root 3384 Nov 11 23:51 install.log.syslog
    • mkdir
      • 创建文件目录
      • mkdir -p a/b/c/d/e/f 会自动创建文件父目录
      • mkdir -p lucky/{1234}ls 一次可以创建多个子目录
    • rmdir
      • 删除空文件夹
      • 可以安全的删除文件目录
    • cp
      • 拷贝文件或者文件目录
      • cp 源文件 目标目录
        • cp abcd /opt
        • cp /opt/abcd ./
    • 拷贝文件夹
      • cp -r lucky /opt
      • 拷贝文件夹下所有的内容
      • cp: omitting directory ‘/root/a1
    • mv
      • 移动文件或者文件夹
        • mv a1 /opt
        • mv abc /opt
      • 修改文件名称
        • mv a abcd
    • rm
      • 删除文件
        • rm install.log
        • rm -f install.log
      • 删除文件夹
        • rm -r abcd
        • rm -rf abcd 谨慎使用,从删库到跑路
    • touch
      • 如果没有就创建一个文件
      • 如果该文件已经存在,修改文件的三个时间,将三个时间改为当前时间
    • stat
      • 查看文件的状态
      • Inode 当前文件在文件系统的唯一标识,类似于ID
      • 时间
        • access 访问时间

        • modify 修改文件内容时间

        • change 修改文件元数据信息时间

          • 对于文件的描述信息
          • 文件大小 ,文件所有者 ,文件权限
    • ln
      • 创建文件的链接
      • 软(符号)连接
        • ln -s lucky01 sl
        • 软连接和原始文件不是同一个文件
          • lucky1 131085
          • sl 131074
        • rm -rf lucky1
      • 硬链接
        • ln lucky02 hl
        • 硬链接和原始文件使用文件系统中的同一个文件
        • 如果你害怕一个文件被别人误删,你可以使用硬链接保护这个文件
      • 软硬链接在链接文件的时候,推荐使用文件的绝对路径,否则有可能会出现问题

    读取文件信息

    • cat
      • 将整个文档加载到内存中,并进行一次性显示
      • 除非后面使用管道,传递数据
    • tac
      • 将整个文档加载到内存中,并进行一次性按行逆序显示
    • more less
      • 分页查看文档内容
      • 快捷键
        • 回车 下一行
        • 空格 下一页
        • b 回退
        • q 退出
    • head
      • 从文章开始读取N行
      • 默认如果超过10行读取10行,否则读取现在行数
      • head -5 profile
    • tail
      • 从文章末尾读取N行
      • head -3 profile | tail -1
        • 利用管道只读取第N行
        • 管道的作用就相当于把前面的结果以参数的方式传递给后面的命令
      • 读取新增数据
        • ping www.baidu.com >>baidu
        • tail -F baidu
        • 如果f:
          • 它会监听指定inode的文件数据变化,但是当文件被删除后
          • 即使创新创建,inode也会发生变化,于是监听失败
        • 如果F
          • 他会监听指定名字的文件,如果文件被删除后,重新创建
          • 他会重新监听新文件的数据变化,监听不受影响
    • find
      • 查找指定的文件
      • find 要查找的范围 -name 名字
      • find /etc -name profile

    VI和VIM编辑器

    • 打开文件

      • 正常打开
        • vi profile
      • 打开文件,并将光标置于第8行
        • vi +8 profile
      • 打开最后一行
        • vi + profile
        • 按n查找下一个,按N查找上一个
      • 打开指定搜索单词的位置
        • vi +/if profile
    • 三种模式

      • 编辑模式
        • 编辑模式中,每一个按键都有其他的功能
      • 输入模式
        • 每一个按键按下什么,就像文本中数据输入什么
      • 末行(命令行)模式
        • 我们可以直接在VI中输入特定的命令
    • 三种模式切换

    • 编辑模式

      • G最后一行
      • gg 跳转到第一行
      • 数字gg 跳转到第数字行
      • w 下个单词
      • 数字w
      • dw 删除一个单词
      • 3dw 删除三个单词
      • dd 删除一行
      • 3dd 删除三行
      • u回退到前面的操作
      • .回退u执行的操作
      • yw 复制一个单词
      • 3yw 复制三个单词
      • yy 复制一行
      • 3yy复制三行
      • p粘贴
      • 6p 粘贴6次
      • x 剪切
      • 3x 剪切三个字符
      • r 替换,然后输入一个字符替换
      • 3r 替换三个
      • hjkl 方向键
      • ZZ 保存并退出
      • ctrl+s 锁屏 ctrl+q 解锁
    • 输入模式

      • 没得讲。按啥是啥
    • 末行模式

      • set nu 设置行号
      • set nonu 取消行号
      • w 保存
      • q 退出
      • wq 保存并退出
      • q!强制退出,但是不保存
      • 如果上次异常退出会保留同名隐藏文件,每次启动会给与提示
        • 如果确定当前文件没问题,请删除隐藏文件
      • /pattern
        • 搜索指定的字符串
        • /usr n向下查找 N逆向查找
      • s/p1/p2/g
        • 替换字符串
        • g 替换当前行所有 否则只替换当前行第一个
          • s/abc/lucky/g
        • 替换全文
          • g/abc/s//lucky/g

    计算机间的数据传输

    • Window–Linux
      • lrzsz
        • 需要手动安装
          • yum install lrzsz -y
        • rz
          • 将文件从window上传到Linux
        • sz 文件
          • 将文件从Linux传输到Window
      • xftp
        • 较为通用的文件传输方式
    • Linux–Linux
      • scp 源数据地址(source) 目标数据地址(target)
      • scp apache-tomcat-7.0.61.tar.gz root@192.168.31.44:/opt
      • scp root@192.168.31.44:/opt/apache-tomcat-7.0.61.tar.gz ./
      • scp -r apache-tomcat-7.0.61 root@192.168.31.44:/opt

    文件大小

    • 分区信息
      • df -h
    • 指定文件目录大小
      • du -h --max-depth=1 apache-tomcat-7.0.61
    • swap
      • 一个特殊分区,以硬盘代替内存
      • 当内存使用满的时候,可以将一部分数据写出到swap分区

    文件压缩

    • tar
      • 主要针对的文件是 lucky.tar.gz
      • 解压缩
        • tar -zx(解压)v(过程)f(文件) lucky.tar.gz
      • 压缩
        • tar -zc(压缩)f(文件) tomcat.tar.gz(压缩后的名字) apache-tomcat-7.0.61(源文件)
        • tar -zxf tomcat.tar.gz -C /opt/
          • -C 指定解压缩的文件目录
    • zip和unzip
      • 安装
        • yum install zip unzip -y
      • 压缩
        • zip -r tomcat.zip apache-tomcat-7.0.61
      • 解压缩
        • unzip tomcat.zip

    5、Linux的网络信息

    主机名称

    • 临时修改
      • hostname bdp
    • 长久修改
      • vi /etc/hostname

    DNS解析

    • 域名解析服务

    • 可以将域名转换为IP地址

    • DNS域名劫持

      • window --> C:\Windows\System32\drivers\etc\hosts
      • 123.56.138.186 www.baidu.com
      • 123.56.138.186 www.taodao.com
    • 修改主机域名

      • vi /etc/hosts
      • 将来我们需要把所有的虚拟机都配置hosts文件
      • 192.168.31.101 bd1601
      • 192.168.31.102 bd1602

    网络相关命令

    • ifconfig

      • 查看当前网卡的配置信息
      • 这个命令属于 net-tools中的一个命令,但是Centos7中minimal版并没有集成这个包
      • 所以7的时候需要自己手动安装
      • 如果没有ifconfig ,可以使用ip addr 临时代替
    • netstat

      • 查看当前网络的状态信息
    • ping

      • 查看与目标IP地址是否能够连通
    • telnet

      • 查看与目标IP的指定端口是否能够连通
      • yum install telnet -y
      • telnet 192.168.31.44 22
    • curl

      • restful 我们所有的资源在网络上中都有唯一的定位
      • 那么我们可以通过这个唯一定位标识指定的资源
      • http://localhost:8080/lucky/user.action/666
      • curl -X GET http://www.baidu.com
    • 防火墙

      • 帮助计算机网络于其内、
        外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术
      • #查看防火墙状态 systemctl status firewalld.service
      • #临时停止firewall systemctl stop firewalld.service
      • 开启一个端口的正确操作
    • 加密算法

      • 不可逆加密算法

        • 可以通过数据计算加密后的结果,但是通过结果无法计算出加密数据
        • md5
        • Hash算法
      • 对称加密算法

        • 代表性算法叫做 DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
        • 特点
          • 加密和解密使用相同的秘钥
    • 非对称加密算法

      • 非对称加密算法需要一对密钥(两个密钥):

        • 公开密钥(publickey)和私有密钥(privatekey)(简称公钥,私钥)。
        • 公开密钥与私有密钥生成时是一对
        • 用公钥加密只能是对应的私钥解密,同理用私钥加密只能用对应的公钥解密
      • 代表性算法叫做 RSA、ECC、Diffie-Hellman、El Gamal、DSA(数字签名用)

      • 优点:

        • 安全高(几乎很难破解)
      • 缺点

        • 加解密相对速度慢、密钥长、计算量大、效率低
      • 应用场景

        • HTTPS(ssl)证书里制作、CRS请求证书、金融通信加密、蓝牙等硬件信息加密配对传输、关键的登录信息验证。
    • 主机间的相互免秘钥

      • 可以通过ssh命令免秘钥连接到其他的主机

      • 如果是第一次建立连接,需要输入yes

        • 在 ~/.ssh/known_hosts 文件记录了以前访问地址(ip hostname)的信息
        • 在访问地址的时候如果没有收录到known_hosts文件中,就需要输入yes
        • 如果以前收录到known_hosts中,直接输入密码即可
      • 配置步骤

        • 生成秘钥
          • ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
          • 如果你想免秘钥登录谁,只需要把自己的公钥传递给对方主机即可
          • 这个秘钥要放在 ~/.ssh/authorized_keys
        • 发送公钥、给需要免秘钥的主机
          • ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.58.201
      • 相互面秘钥工作流程

          • 防止每次新的连接都要确认
        • 解决方案1–本次
          • ssh -v -o GSSAPIAuthentication=no root@192.168.88.201
        • 解决方案2–所有
          • 修改/etc/ssh/ssh_config文件的配置,以后则不会再出现此问题
          • 最后面添加:
            • StrictHostKeyChecking no
            • UserKnownHostsFile /dev/null
    • 用户-组-权限

      • 用户

        • 新增用户
          • useradd luckyboy
          • 会创建同名的组和家目录
        • 设置密码
          • passwd luckyboy
        • 删除用户
          • userdel -r luckyboy
          • 级联删除家目录和组
        • 修改用户信息
          • usermod -l luckyss luckyls 修改用户名
            • 家目录和组名称是不会被修改的
          • usermod -L luckyss 锁定用户名
          • usermod -U luckyss 解锁用户名
        • 常用文件
          • cat /etc/shadow
            • 用户名和密码
          • cat /etc/passwd
            • 7.6系统0-999 普通 1000+
            • 6.5系统0-499 普通 500+
            • 用户名,编号,组编号,家目录,命令,目录
        • 切换账户
          • su luckyboy
        • 创建组
          • groupadd lucky
        • 删除组
          • groupdel lucky
        • 修改组名字
          • groupmod -n bdp lucky
        • 查看用户对应的组
          • groups
          • groups bdpboy
            • 当我们创建用户的时候,会默认创建一个同名的主组
      • 权限

        • 查看文件的权限

          • 三组权限,每组3个字母
          • r :读取权限
          • w :写入权限
          • x :执行权限
          • -:没有权限
        • 权限的UGO模型

          • 三组权限
          • 属主的权限:属组的权限:其他的权限
          • 所有说:将来修改文件的权限 可以从rwx和ugo两个方面进行修改
        • 修改文件的权限

          • 修改文件所属

            • chown n1 /var/lucky1
            • chown n1:m1 /var/lucky2
            • 修改文件夹时,让子目录迭代修改
              • chown -R n1:m1 bdp
            • chgrp m2 lucky3
              • 当用户的组被修改之后,需要重新登录才能获取新组的权限
          • 修改文件的rwx

            • chmod o+w lucky4
            • chmod ug+rw lucky4
            • chmod ugo-rw lucky4
              • (权限RWX分别对应数字 4 2 1 5= 4+0+1 r-x)
      • 权限赋予

        • 我们可以将管理用的权限分配给普通用户
        • 文件位置在 vim /etc/sudoers
        • 但是修改这个文件需要使用命令
          • visudo
          • 修改 Line 99
          • n1 ALL=(root) /sbin/useradd
          • n1 ALL=(root) /sbin/*
        • 如何使用
          • su n1
          • sudo chkconfig iptables off

    6、日期与时间

    时间命令

    • 查看时区
      • ll /etc/localtime
        • /etc/localtime -> …/usr/share/zoneinfo/America/Los_Angeles
      • ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    • date
      • 查看当前系统时间
    • cal 查看日历
      • cal 2020
    • 修改时间
      • date -s 11:11:11
      • date -s 2019-11-11
      • date -s ‘2019-11-11 11:11:11’

    日期自动同步

    • 首先安装时间同步的服务
    • yum install ntp -y
    • 自动同步网络时间中心
    • ntpdate cn.ntp.org.cn
    • 自动同步网络时间中心本地NTP服务
      • NTP服务器
        • vi /etc/ntp.conf
        • 添加到末尾
          #权限控制====
          restrict default kod nomodify notrap nopeer noquery 拒绝IPV4用户
          restrict -6 default kod nomodify notrap nopeer noquery 拒绝IPV6用户
          restrict 210.72.145.44 授权国家授时中心服务器访问本地NTP
          restrict 133.100.11.8 授权133.100.11.8访问本地NTP
          restrict 127.0.0.1
          restrict -6 ::1
          restrict 192.168.88.2 mask 255.255.255.0 nomodify 本地网段授权访问
          #=源服务器===
          server cn.ntp.org.cn prefer 指定上级更新时间服务器,优先使用这个地址
          #=差异分析===
          driftfile /var/lib/ntp/drift
          keys /etc/ntp/keys
        • 开启本地NTP服务器
          • systemctl start ntpd.service
      • 同步时间
        • 其他主机来和本主机t同步
          • ntpdate 本机ip

    7、管道与重定向

    管道

    • 将前面命令的结果作为参数传递给后面的命令
    • grep
      • 强大的文本搜索工具
      • cat profile | grep if
      • ls / | grep ^t

    重定向

    • 改变数据输出的位置,方向
    • 替换 >> 追加

    • 0 in 1 out 2 err
      • ls / 1> lucky 标准输出
      • ls / > lucky 标准输出
      • ls abcd 2>lucky 错误输出
    • 结合使用
      • ls /etc /abc >> lucky 2>&1
      • ls /etc /abc > lucky 2>&1

    8、Linux的系统进程

    进程信息

    • ps -ef

      • UID PID PPID C STIME TTY TIME CMD
      • UID 所属用户
      • PID 当前进程编号
      • PPID 当前进程编号的父进程编号
    • ps -ef | grep redis

    • ps -aux

      • 所有信息
    • ps -aux --sort -pcpu

    • top

      • 当前服务器内存使用率

    后台进程

    • 只需要在命令的后面添加一个 & 符号
      • ping www.baidu.com >> baidu &
    • jobs -l
      • 可以查看当前的后台进程
      • 但是只有当前用户界面可以获取到
    • nohup 可以防止后台进程被挂起
      • nohup ping www.baidu.com >> baidu 2>&1 &

    杀死进程

    • kill -9 17599

    9、Linux的软件安装

    环境变量

    • 1、如果配置的多个文件夹都包含命令abc,默认执行第一个文件夹中的abc
    • 2、环境变量尽量配置一些重要的文件夹目录,减少命令检索的时间
    • 3、修改完配置之后需要重新加载配置信息
    • Linux环境变量位置
      • /etc/profile
    • window 环境变量文件夹用分号;隔开,LInux中用:隔开

    软件的安装方式

    • 压缩包
    • rpm包
      • 自己下载安装包
      • 使用统一的软件帮助我们安装
    • 源码包安装

    压缩包安装

    YUM安装

    rpm安装

    10、Linux三剑客

    普通剑客

    • cut

      • 用指定的规则来切分文本
      • cut -d’:’ -f1,2,3 passwd | grep bdp
    • sort

      • sort lucky

        • 对文本中的行进行排序
      • sort -t’ ’ -k2 lucky

        • 对每一行的数据进行切分,按照第二列进行排序
      • sort -t’ ’ -k2 -r lucky

        • 逆序
      • sort -t’ ’ -k2 -n lucky

        • 按照数值大小进行排序,如果有字母,字母在前
    • wc

      • 统计单词的数量
      • wc lucky
      • 4 15 79 lucky
        • -l line
        • -w word 以空格来分割单词
        • -c char

    剑客1号:grep

    • 可以对文本进行搜索

    • 同时搜索多个文件

    • 显示匹配的行号

      • grep -n bdp passwd
    • 显示不匹配的忽略大小写

      • grep -nvi root passwd --color=auto
    • 使用正则表达式匹配

      • grep -E “[1-9]+” passwd --color=auto

    剑客2号:sed

    • sed 是Stream Editor(字符流编辑器)的缩写,简称流编辑器

    • Sed软件从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行

    • 一次一行的设计使得sed软件性能很高

    • vi命令打开文件是一次性将文件加载到内存

    • 了解即可

    • 行的选择模式

      • 10 第十行
      • m,n --> 第m行到第n行 [m,n]
      • m,+n–>第一行到第四行 [m,m+n]
      • m~n–>从m行开始,依次累加n
      • m,$ -->从m开始到最后一行
      • /bdp/ -->匹配到bdp的行
      • /u1/,/u4/–>从匹配u1到匹配u4
      • sed ‘2a luckyisgood’ passwd
      • sed ‘2i luckyisgood’ passwd
        • 打印到控制台
      • sed -i ‘2a luckyisgood’ passwd
        • 直接修改到文件
      • sed ‘3,10d’ passwd
      • 整行替换
        • sed ‘3,20c hahaha’ passwd
        • sed ‘3~1c hehehe’ passwd
    • 字符替换

      • sed ‘1,5s/root/lucky/g’ passwd
      • sed ‘1,5s#/#-#g’ passwd

    剑客3号:awk

    • 它不是一个剑客,它是一门语言

    • 了解即可

    • 模式与动作

      • awk -F “:” ‘NR>=2&&NR<=6’ /etc/passwd
      • awk -F “:” ‘{print NR,$1}’ /etc/passwd
      • awk -F “:” ‘NR>=2&&NR<=6 {print NR,$1}’ /etc/passwd
      • awk -F “:” ‘NR==1{print NR,KaTeX parse error: Expected 'EOF', got '}' at position 2: 1}̲NR==2{print NR,NF}’ /etc/passwd

    11、shell编程

    作为大数据开发人员,shell编程作了解和基本的知道即可,下面只是一些基础的shell编程知识适合学习和了解。在运维方面的话shell编程会重要的多。

    Shell名词解释

    • Kernel

      • Linux内核主要是为了和硬件打交道
    • Shell

      • 命令解释器(command interpreter)
      • Shell 是一个用 C 语言编写的程序。Shell 既是一种命令语言,又是一种程序设计语言。
    • shell两大主流:

      • sh:

        • Bourne shell(sh) ,Solaris,hpux默认shell
        • Bourne again shell(bash) ,Linux系统默认shell
      • csh

        • C shell(csh)
        • tc shell(tcsh)
    • #! 声明

      • 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序

    Shell脚本的执行

    • 输入脚本的绝对路径或相对路径

      • /root/helloworld.sh
      • ./helloworld.sh
      • 执行的必须是一个可执行文件
    • bash或sh +脚本

      • sh helloworld.sh
      • 当脚本没有x权限时,root和文件所有者通过该方式可以正常执行
    • 在脚本的路径前再加". " 或source

      • source helloworld.sh
    • 区别

      • 第一种和第二种会新开一个bash,不同bash中的变量无法共享。
      • 第三种 是在同一个shell里面执行的
    • export : 可以将当前进程的变量传递给子进程去使用

      • 将来配置profile的时候 所有的变量前必须加export

    Shell基础入门

    • shell变量
    • 变量的类型
    • Shell的字符串
    • Shell数组
    • Shell的注释
    • Shell参数传递

    Shell高级进阶

    • Shell运算符
    • Shell流程控制
    • echo打印数据
    • test 命令
    • Shell函数

    系统任务设置

    • 系统启动流程

    • 开机自启动服务

      • rc.local

        • 首先创建脚本存放的文件夹

          • mkdir -p /usr/local/scripts
        • 在文件夹中创建脚本文件

          • vim hello.sh
          • 给予执行权限
        • 去/etc/rc.d/rc.local文件中添加脚本的绝对路径

          • 给予rc.local执行权限
        • 重启虚拟机

          • reboot
      • chkconfig

        • 创建开机自启动脚本文件

          • vim schoolntpdate.sh

            • 脚本开头

              #!/bin/bash
              #chkconfig: 2345 88 99
              #description:auto_run

              开始写脚本

        • 给其设置执行权限

          • chmod u+x schoolntpdate.sh
        • 将脚本拷贝到 /etc/init.d目录下

          • cp schoolntpdate.sh /etc/init.d/
        • 添加到服务

          • chkconfig --add /etc/init.d/schoolntpdate.sh
        • 重启服务器

          • reboot
    • 定时任务

      • 在系统服务中心,crond负责周期任务

        • systemctl status crond.service
      • 添加任务,编辑当前用户的任务列表

        • crontab -e
      • 编辑任务

        30 21 * * * /usr/local/etc/rc.d/lighttpd restart
        上面的例子表示每晚的21:30重启apache。
        45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
        上面的例子表示每月1、10、22日的4 : 45重启apache。
        10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
        上面的例子表示每周六、周日的1 : 10重启apache。
        0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
        上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
        0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
        上面的例子表示每星期六的11 : 00 pm重启apache。

        • */2 * * * /usr/local/etc/rc.d/lighttpd restart
          每两小时重启apache
        • 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
          晚上11点到早上7点之间,每隔一小时重启apache
          0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
          每月的4号与每周一到周三的11点重启apache
          0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
          一月一号的4点重启apache
          –(功能描述:显示年月日时分秒)
          date “+%Y%m%d%H%M%S”
      • 重启crontab,使配置生效

        • systemctl restart crond.service
      • 通过crontab -l

        • 查看当前的定时任务
      • 查看任务的历史

        • vim /var/spool/mail/root
      • 清除任务

        • crontab -r

    虚拟机初始化脚本

    虚拟机相互免秘钥

    ##三台主机分别生成秘钥
    【123】ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
    ##host验证
    【123】vim /etc/ssh/ssh_config 在最后添加
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
    ##将秘钥分别拷贝给自己和别人
    【123】ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
    【123】ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
    【123】ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
    123456
    ##关闭主机拍摄快照
    power off

  • 相关阅读:
    Springboot----项目整合微信支付(用户取消订单)
    Ae 效果:CC Lens
    Rust入门(1)
    Codeforces Round 916 (Div. 3)(A~E题解)
    骁龙咣咣咣三脚,再次改写格局
    3.验证面试高频问题整理(附答案)
    0基础学习PyFlink——流批模式在主键上的对比
    标准C++中string类函数总结
    UE4 回合游戏项目 06- 战斗场景-返回之前的位置
    计算机毕业设计之交互式大学英语学习平台
  • 原文地址:https://blog.csdn.net/m0_49303490/article/details/126159590