博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

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]

    指定字符类:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-08-09 16:24  MurkyCorners  阅读(185)  评论(0编辑  收藏  举报