文章目录

    • @[TOC](文章目录)
  • Linux
    • 1、计算机硬件软件体系
      • 冯 诺依曼体系结构
      • 计算机硬件组成
      • 硬盘的分类
      • 网络连接概念
      • 网络连接模式
      • 软件分类
      • Linux分支
      • Linux下载
    • 2、虚拟机安装与配置
      • 虚拟化技术
      • 创建虚拟主机
      • 安装操作系统
      • 配置常见参数
      • 快照与克隆
      • 修改克隆机配置
      • 连接Linux服务器
    • 3、Linux的命令
      • 命令学习法
      • 常用的命令
      • 特殊字符
    • 4、Linux的文件系统
      • 万事万物皆
      • Linux二级文件目录
      • Linux的文件操作
      • 读取文件信息
      • VI和VIM编辑器
      • 计算机间的数据传输
      • 文件大小
      • 文件压缩
    • 5、Linux的网络信息
      • 主机名称
      • DNS解析
      • 网络相关命令
    • 权限
    • 6、日期与时间
      • 时间命令
      • 日期自动同步
    • 7、管道与重定向
      • 管道
      • 重定向
    • 8、Linux的系统进程
      • 进程信息
      • 后台进程
      • 杀死进程
    • 9、Linux的软件安装
      • 环境变量
      • 软件的安装方式
      • 压缩包安装
      • YUM安装
      • rpm安装
    • 10、Linux三剑客
      • 普通剑客
      • 剑客1号:grep
      • 剑客2号:sed
      • 剑客3号:awk
    • 11、shell编程
      • Shell名词解释
      • Shell脚本的执行
      • Shell基础入门
      • Shell高级进阶
      • 系统任务设置
  • 开始写脚本
    • 虚拟机初始化脚本
    • 虚拟机相互免秘钥

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包
    • 自己下载安装包
    • 使用统一的软件帮助我们安装
  • 源码包安装

压缩包安装

  • 压缩包解压即可安装
  • 本次安装的tomcat属于此类
    • 写了一篇博客,可点击查看

YUM安装

  • yum的作用

    • 可以帮我们管理RPM包
    • 可以帮我们安装软件,
    • 如果软件有其他依赖,会帮我们安装依赖后在安装软件
    • 类似于Maven
  • yum命令

    • search 查询命令或者软件
    • info
    • 查看包的信息
    • list / list jdk
    • 查询安装的rpm包,或者只查询某一周
  • 更换yum源

    • 写了一篇博客,可以点击查看
  • 本次的mysql安装属于yum安装

    • 写了一篇安装mysql8.x的博客 可以点击查看

rpm安装

  • RedHat Package Manager,它属于红帽的一种包管理方式

  • 本次jdk安装属于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命令打开文件是一次性将文件加载到内存

  • 了解即可

    • https://www.cnblogs.com/chensiqiqi/p/6382080.html
  • 行的选择模式

    • 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

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

  • 了解即可

    • https://www.cnblogs.com/chensiqiqi/p/6481647.html
  • 模式与动作

    • 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

Liunx教程超详细(完整)相关推荐

  1. centos7无界面系统物理机安装教程超详细完整教程图解

    centos7无界面系统物理机安装教程超详细完整教程图解 安装系统所需要用到的相关工具: 一个U盘(此U盘之后会被格式化,请先备份好里面重要内容) 系统镜像(自定义镜像文件,博主的镜像可在下面链接提取 ...

  2. 2023微信社区小程序+APP+后台,附带超详细完整搭建教程【源码+教程】

    2023微信社区小程序+APP+后台,附带超详细完整搭建教程[源码+教程] 微信授权登陆正常,小程序和APP带后台 手机号登陆正常,发帖,建圈子.发活动. 微信小程序是一种轻量级的应用程序,可以在微信 ...

  3. maven配置阿里云_阿里云OSS PicGo 配置图床教程 超详细

    阿里云OSS和PicGo配置图床教程 超详细 废话不多说,直接开始 购买阿里云OSS服务 登录阿里云 打开侧边栏,选择对象存储OSS,如下图: 对象存储界面右部选择创建Bucket,如下图所示: 之后 ...

  4. svn安装教程 mysql_CentOS6.4 下安装SVN的详细教程(超详细)

    1.检查系统是否已经安装如果安装就卸载 rpm -qa subversion yum remove subversion 2.安装 yum install subversion 3.建立SVN库 mk ...

  5. ubuntu14.04+CUDA7.5+cuDNN+caffe的超详细完整配置

    版权声明:文章原创,转载请注明出处,多谢! 声明 本文是关于ubuntu14.04+CUDA7.5+cuDNN+caffe的超详细完整配置过程的说明. 小菜是刚接触深度学习领域的小白,在配置caffe ...

  6. 新版Android Studio(4.1.1 for Windows 64-bit)的安装教程(超详细)

    新版Android Studio(4.1.1 for Windows 64-bit)的安装教程(超详细) 获取Android Studio软件 在心仪的磁盘新建文件夹:AndroidStudio(文件 ...

  7. 【台大郭彦甫】Matlab入门教程超详细学习笔记二:基本操作与矩阵运算(附PPT链接)

    Matlab入门教程超详细学习笔记二:基本操作与矩阵运算 前言 一.基本操作 1.把matlab当作计算器使用 2.变量 3.控制格式输出 二.矩阵运算 1.矩阵 2.矩阵索引 3.使用:创建向量 4 ...

  8. windows安装Weblogic教程(图文教程超详细版)

    windows安装Weblogic教程(超详细) 一. 下载 WebLogic 到Oracle官网http://www.oracle.com/ 下载WebLogic(根据自己的情况选择),本文档下载的 ...

  9. 阿里云OSS PicGo 配置图床教程 超详细

    阿里云OSS和PicGo配置图床教程 超详细 废话不多说,直接开始 购买阿里云OSS服务 登录阿里云 打开侧边栏,选择对象存储OSS,如下图: 对象存储界面右部选择创建Bucket,如下图所示: 之后 ...

  10. exe电子书制作教程(超详细)【申明:来源于网络】

    exe电子书制作教程(超详细)[申明:来源于网络] 地址:http://wenku.baidu.com/view/0b046907eff9aef8941e0631.html

最新文章

  1. GitHub开源:17M超轻量级中文OCR模型、支持NCNN推理
  2. 2021.02.01.stata注释方法
  3. QT 建立信号和槽的联系(事件处理)
  4. 将数据文件附加到数据库
  5. python函数列表永久修改_python 禁止函数修改列表的实现方法
  6. Java11-day02【多态(成员访问、多态转型、内存图解)、抽象类(成员特点)、接口(成员特点)、类和接口的关系、抽象类和接口的区别、综合案例】
  7. Redis数据库如何实现读写分离
  8. STM32 软件重启导致死机的情况分析
  9. linux kong_当Linux是善良的面Kong
  10. 鬼才!我居然把 Vue3 的原理用到了 React 上?
  11. 电脑系统怎么重装win10的方法教程
  12. 【算法】—— 不借助中间变量实现 swap
  13. ES6新特性:Javascript中Generator(生成器)
  14. 职场动物进化手册(转自天涯)
  15. 工作分解结构(Work Breakdown Structure,简称WBS)
  16. IDEA中使用maven 创建 的ssm项目使用sprimg mvc国际化功能报错No message found under code ‘welcome‘ for locale ‘en_US'
  17. 几种下载慢的解决办法
  18. css之display:inline-block布局
  19. 计算机控制实验PID数字控制器设计,实验二数字PID控制器的设计
  20. 安卓10来电流程详细总结

热门文章

  1. CSDN和Typora的Markdown插入思维导图
  2. Flask基础--思维导图
  3. poi操作word模板替换数据并且导出word
  4. 每个前端工程师都应该了解的图片知识
  5. 计算机专业就业饱和没,“计算机就业饱和”差不多成了一个笑话
  6. xss.haozi.me解题记录
  7. python中dispatch_在django,dispatch的用途是什么?
  8. pack_padded_sequence torch说明
  9. linux vim 修改 只读文件,linux下vi编辑只读文档无法保存的解决方法
  10. java定义个字符串_Java定义字符串(2种方式)