Shell简介

为什么要学习Shell

  1. 安装操作系统
  • 手动安装
  • 工具自动化安装(kickstart cobbler)
  • 网络安装
  1. 系统优化
  • 关闭SElinux
  • Firewalld(防火墙工作中必须开启的对外的场景)
  • ssh优化
  • 加大文件描述符
  • 内核参数优化
  • yum源安装常用的软件
  • ntp时间同步
  • 字符集调整
  1. 安装服务
  • 使用脚本安装

Nginx apache PHP MySQL keepalived Zabbix SErsync NFS Redis Mongo Memcache KVM Docker K8S ELK

  1. 修改配置文件,启动服务

  2. 日志监控日志切割脚本+定时任务

  • ELK
  • rsync+sersync
  1. 日志统计使用三剑客+命令做日志分析
  2. 数据备份数据库备份存三份
  3. Zabbix(常用) Nagios (交换路由大型公司宽带运营商使用) Cacti (重要 监控流量)

学习Shell所需的知识

  1. xshell CRT
  2. Linux常用的基础命令
  3. VIM编辑器
  4. 三剑客grep awk sed

如何学好Shell编程

环境变量 条件表达式 if判断 for循环 while循环 case语句 数组条件 控制语句 continue break exit

  1. 掌握以上知识能够读懂脚本
  2. 针对脚本进行修改添加各种语句判断等
  3. 编程语言相同(脚本相通可套用)
  4. 需要一本教材 你得有特别详细的笔记或者 其他shell书籍

Shell入门

  1. 什么是Shell

命令解释器,负责翻译我们输入的命令,执行成功返回给用户

  • 面试题: linux默认的Shell是(bash)
  • 交互式:用户输入命令,bash负责把我们的命令翻译成内核可识别的语言,返回结果到屏幕
  • 非交互式:不与用户进行交互,执行文本里的内容,执行到文件的末尾,结束
  1. 什么Shell脚本

命令的集合命令大礼包很多可执行命令放在文本中称为Shell脚本(包含条件表达式 判断语句数组等等)

Shell脚本规范

  1. 必须放在统一的目录
  2. 脚本必须以.sh结尾
  3. 脚本开头有注释#!/bin/sh必须是第一行以外的都是注释
  4. 脚本的注释信息Author cut log count 代码块的注释
  5. 建议注释使用英文
  6. 成对的符号和语法一次性书写完毕
  7. 脚本名称的命名最好见名知其意