Linux回顾(第五天)

交换分区swap的创建与查看

  • 增加交换分区的大小

    • mkswap /dev/sdd1
    • swapon /dev/sdd1
    • swapoff /dev/sdd1
  • 使用文件制作交换分区

    • dd if=/dev/zero bs=4M count=1024 of=/swapfile
    • chmod 600 /swapfile
    • mkswap /swapfile
    • swapon /swapfile

以上的操作写入到内存之中,如果我们要在下次开机默认开启,需要进行修改/etc/fstab

在其中插入

/swapfile swap swap defaules 0

后面的两个0意味 备份 和自检 默认写0就好

RAID(磁盘阵列)的使用

  • RAID的常见级别及定义

    • RAID 0 striping 条带方式,提高单盘吞吐率
      • 将一个数据拆成两份,分别写入到两块磁盘里
    • RAID 1 mirroring 镜像方式,提高可靠性
      • 将一个数据自动做了一个备份,
    • RAID 5 有奇偶校验
      • 至少有三块硬盘,
    • RAID 10 时RAID 1和RAID 0的结合
      • 至少4块硬盘
  • 软件RAID的使用

    • 首先需要安装一个软件mdadm
    • 首先需要创建三个分区,最好是相同的大小,如果三个硬盘的大小不一样,会默认使用最小的容量
    • 例如:sdb1和sdc1和sdd1
    • mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sdb1 /dev/sdc1
      • -a yes表示 不进行提示
      • -l 表示 raid的级别
      • -n 指定几个硬盘
      • 后面就是跟得硬盘也可以写成:/dev/sd[b,c]1
    • 然后可以使用mdadm -D /dev/md0进行查看
    • echo DEVICE /dev/sd[b,c]1 >> /etc/mdadm.conf
    • mdam -Evs >> /etc/mdadm.conf
    • 经过这两次 的写入信息之后,下次开机的时候就会自动
    • mkfs.xfs /dev/md0 之后我们就可以进行使用了
    • 关闭raid
      • mdadm –stop /dev/md0
      • 然后还要对原来组成的分区进行破坏
      • dd if=/dev/zero of=/dev/sdb1 bs=1M count=1
      • dd if=/dev/zero of=/dev/sdc1 bs=1M count=1

逻辑卷LVM的用途与创建

逻辑卷管理

  • 逻辑卷和文件系统

    • 在raid中 其实md0 也是一个逻辑卷
    • 在物理硬盘的一个上层
  • 为LInux创建逻辑卷

    • 首先要添加新的硬盘
    • pvcreate /dev/sd[b,c,d]1 //创建物理卷
    • 使用pvs进行查看物理卷
    • vgcreate vg1 /dev/sdb1 /dev/sdc1 //将后面的两块硬盘加入到vg1这个卷组
    • 使用vgs来查看卷组
    • lvcreate -L 100M -n lv1 vg1 //创建逻辑卷
    • 使用lvs来查看创建的逻辑卷
    • mkdir /mnt/test
    • mkfs.xfs /dev/vg1/lv1
    • mount /dev/vg1/lv1 /mnt/test
  • 动态扩容逻辑卷

    • vgextend centos /dev/sdd1 //扩充卷组
    • 然后可以使用pvs vgs lvs来产看
    • lv extend -L +50G /dev/centos/root //给逻辑卷增加50G
    • xfs_growfs /dev/centos/root //文件系统的扩充

系统综合状态查看命令

  • sar

    • sar -u 1 10 //查看cpu 每隔1秒 采样十次
    • sar -r 1 10 //查看内存读写情况
    • sar -b 1 10 //查看 io的情况
    • sar -d 1 10 //查看每块磁盘的读写
    • sar -q 1 10 //查看进程的情况
  • yum install iftop

    • iftop -p //默认只监听eth0

什么是shell

  • Shell是命令解释器,用来解释命令对系统的操作
  • Shell有很多:cat /etc/shells
  • centos的shell是bash 基于bshell,集合了其他shell的优点

Linux的启动过程

BIOS - MBR- Bootloader(grub)-kernel-systemd-系统初始化-shell

  • mbr
    • 使用dd来导出主引导记录
    • dd if=/dev/sda of=mbr.bin bs=446 count=1
    • dd if=/dev/sda of=mbr.bin bs=512 count=1 //包含磁盘的分区表
    • 55 aa的意思是证明引导扇区是正确的
    • hexdump -C mbr2.bin | more
  • grub

    • cd /boot/grub2
    • 使用:grub2-editenv list //查看默认引导的内核
    • uname -r查看当前的内核
    • 如果是init0来引导,会在/etc/rc.d下有大量的配置文件
    • 如果是systemd在/etc/systemd/system会有默认的启动级别,根据这个启动级别,会来到usr/lib/systemd/system

Shell脚本的格式

  • 一条命令只做一件事

  • 为了组合命令,和多次执行,使用脚本文件来保存需要执行的命令

  • 赋予该文件的执行权限(chmod u+rx filename)

1
2
3
4
5
6
7
8
#!/bin/bash
# demo
cd /var/
ls
pwd
du -sh
du -sh *

标准的shell脚本要包含那些元素

  • sha-Bang
  • 命令
  • #开头的注释
  • 执行命令
    • bash 1.sh
      • ·可以不用赋予权限
      • 产生一个子进程来运行
    • ./1.sh
      • 需要进行赋予权限
      • 脚本内部执行了,结束后回到当前
    • source ./1.sh
      • 使用当前的进程来运行
      • 如果使用cd的话当前的目录会发生变化
    • . 1.sh
      • 与source相似

内建命令和外部命令的区别

  • 内建命令不需要创建子进程
  • 内建命令对当前shell生效
  • source和. 不产生子经常

管道与重定向

  • 管道与管道符

    • 管道和信号一样,也是进程通信的方式之一
    • 匿名管道(管道符)是shell编程经常用到的通信工具
    • 管道符号 “|”,将前一个命令执行的结果传递给后面的命令
    • 会为第一条第二条命令创建两个子进程
  • 子进程与子shell

  • 重定向符号

    • 一个进程默认会打开标准输出,标准输入,错误输出三个文件描述符

    • 输入重定向符号”<”

      • wc -l可以统计行数
      • wc -l < /etc/passwd //利用文件代替了用户的输入
      • read var //输入内容给var这个变量
      • echo $var 就可以进行查看
      • read var2 < a.txt
    • 输出重定向符号”>” “>>” “2>” “&>”

      • 一个>会将文件进行清空
      • 两个>将内容追加在后面
      • 2>如果命令执行产生了错误,会将错误输出
        • nacmd 2> a.txt
      • &>无论正确还是错误 全部输出
    • 输入和输出重定向组合使用

    • #!/bin/bash
      
      cat > /root/a.sh <<EOF
      echo "hello bash"
      EOF
你的支持是我最大的动力!
0%