zoukankan      html  css  js  c++  java
  • shell 脚本——第一节课 bash的基本特性

    shell 程序在学校都是单行命令的形式执行,缺乏逻辑关系

    区别:使用shell实现Linux的批量管理,而不是去开发应用程序。

    Shell(python、perl

    1.bash的基本特性

       ctrl + i

       上键

        history

    2.IO重定向与管道符

    3.编程基础   

    编程原理

    程序:执行某个功能的一段代码

    程序 = 指令 + 数据 + (逻辑关系)

             命令   变量

    4.Grep和正则表达式

           Linux三剑客

           Pattern“模式”

    语句的逻辑关系

    If

    For * -- 放入for循环的列表

    While – 循环条件为True

    Until – 循环条件为False

               (不要进入死循环)

    Case -- *编写Linux的程序启动脚本*

     

    Break

    Continue

     

    Exit

    Read – input()

    Echo--print()

    变量*

    Linux三剑客

    Sed stream edit d?

            两种模式的切换

     

    Awk 报告生成器

            是一个独立的编程语言

    函数

    数组

    字符串

     

    Wc -l /etc/inittab I cut -d`` -fl

    Line =`wc -l /etc/inittab l cut d` ` -fl`

    Echo $Line

    第一节课 bash的基本特性·

    1、 命令历史

    作用:查看之前使用的命令

    关于命令历史的文件:

    每个用户家目录下的.bash_history

    在关机的时候会自动写入一次(history -r 将内存中的命令历史写入文件)

    关于命令历史的变量(环境变量)

         Env //查看环境变量

           Set //查看更详细的环境变量参数

        HISTSIZE =1000  //记录1000个历史命令

        HISTCONTROL = ignoredups

        

       HISTFILE=/root/.bash_history

       HISTFILESIZE = 1000

     History的常见操作

          

                 查看命令历史

                  !#    #表示数值,执行#行命令

            !string 匹配最近一次的字符串

            !!     上一条命令

            *!$*   上一条命令的最后一个参数

                  Ls /etc

             Ls !$

    History的常见选项:

           

          

          History # 显示最近#行的命令

     

     

    2. 命令补全

        Tab

        作用1.提示2.自动补全

        扩展:制表符 \t 四个空格键

     

    3. 目录补全

        Tab

        作用1.提示2.自动补全

     

    4. 命令展开-date命令

        {}

        Linux的目录需要遵循什么规则? --FHS目录规则

     

    命令行扩展

     

          属性1 属性2

          a         1

          b         2

          mkdir -pv /var/{a,b}-{1,2}

                date 基于date命令来创建目录

           %F CCYY-mm-dd

           %H hh

           %M MM

           %S ss

           %T hh:MM:ss

           %D mm/DD/YY

     练习:通过for语句循环创建一个月的日志文件;.log 2019-08-6.http.log

    touch ‘date +%F’.http.log

     

     

            练习:编写脚本,每天02:20备份/etc/目录中所有文件,名称为当天日期;且保存文件为压缩文件;

    Crontab -- 20 2 * * * /root/xxx.sh

    Vim xxx.sh

      #!/bin/bash

      #

      tar cjvf /var/’date +%F’.xz /etc/

      Chmod +x xxx.sh

     

      补充:

        clock / hwclock 常看硬件时钟 (如果同步系统时钟与硬件时钟)

        cal 日历

     5.命令的执行状态

     

    6.命令的快捷键

     

    7.alias别名

     

     

     

    1、 文件通配符

              【文件通配符不是正则表达式】

        ? 任意单个字符

        *  任意长度的任意字符

        [] 指定范围内的任意一个字符

        ^ 1、以什么开头

        2、[^]指定范围以外的任意一个字符

          [^0-9A-Za-z]

          [0-9][a-z] [A-Z] [a-zA-Z]

        指定字符类:

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    如何用VSCode编写Java程序
    使用Xcode + Python进行IOS运动轨迹模拟
    聚类(Clustering)
    异常值(outlier)
    线性回归(regression)
    自适应增强(Adaptive Boosting)
    决策树(Decision Trees)
    支持向量机(SVM)
    朴素贝叶斯(Naive Bayesian)
    ItChat与图灵机器人的结合
  • 原文地址:https://www.cnblogs.com/zwl123456/p/11328077.html
Copyright © 2011-2022 走看看