bash的基本特质

1.命令 历史

  作用:查之前使用的命令

  关于命令历史的文件:每个用户家目录下面的.bash_hishory;

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

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

            env  //查看环境变量

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

            HISTSIZE = 1000  数量

  history 的常见操作:

            查看命令历史

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

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

            !! //上一条命令

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

              例:ls /etc  ——>ls !$

                ESC+.

  history 的常见选项:

            -a

            -d

            -c

            history#  //显示最近的#行命令

 2.命令  补全

      Tab键

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

      扩展:制表符  /t  (代表4个空格键)

3.目录补全

      Tab键

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

4.命令展开——date命令

      1.{}:

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

      2.属性1     属性2

        a            1

        b             2

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

      date   基于date命令来创建目录

         %F   CCYY-mm-dd

            %T   小时hh:MM:ss

         %D   mm/dd/YY

         %H   小时hh

         %M   分钟MM

         %S   秒ss

         %Y    CCYY

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

    cal  日历

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

            #touch `date +%F`.http.log

            for i in {1...30};do 

              touch `date  +%Y-%m-$i`.http.log

            done

5.tar   归档工具  (压缩与解压)

      【压缩只能对文件操作,不能对目录操作】

      压缩工具:

      gzip

      bzip2

      xz

      (zcat   //不解压查看)

      tar的常见参数:

        tar归档工具【可以对目录进行操作】

        -j bzip2

        -J xz

        -z  gzip

        -c create(压缩)

        -x  extract(解压)//可以不用指定的工具

        -f  指定文件名

        -v  显示详细信息显示verbose

        -t  不解压查看和zcat一样

      例子:tar   cjvf   2019-08.http.log.bz2   2018-08-*.http.log(压缩)

         tar   xvf   2019-08-*.http.log.bz2   -C   abc(解压)

      练习:编写脚本,每天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

6.命令的执行状态

      在Linux中每一条命令执行后都会有两个结果:

        命令本身放回的内容

        其次,命令执行的结果状态

      $?变量,就是用来存放命令执行状态的变量:

        0 表示成功状态

        1-255  表示失败状态:

                    127--->命令找不到

          2--->文件或目录不存在

          13--->没有权限

          ......

7.命令的快捷键

      ctrl + l

      ctrl + c

      ctrl + u  //删除光标前的字符

      ctrl + k  //删除光标后的字符

      ctrl + a  //把光标移动到开头

      ctrl + e  //把光标移动到结尾

      ctrl + w  //以空格为分隔符,去删除文件

      ctrl + r  //进入一个交互界面,搜索最近一次使用的命令

 8.alias别名

      系统启动时,读取一些特殊文件的顺序;

      alias cdnet="cd /etc/sysconfig/network-scriptes"   //这种方式定义的alias只能在当前shell成立

      /etc/profile           //定义环境变量(所有用户)---EXPORT HISTCONTROL=XXX

      /etc/bashrc          //定义本地变量 alias--(所有用户)

      ~/.bash_profile    //定义环境变量(指定用户)

      ~/.bashrc     //定义本地变量 alias--(指定用户)

      sources /etc/profile  或者  . /etc/profile

8、文件通配符  -- globbing

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

             ?   任意单个字符
             *   任意长度的任意字符
             []   指定范围内的任意一个字符
             [^] 指定范围以外的任意一个字符    
             [0-9A-Za-z]
             [0-9] [a-z]  [A-Z]  [a-zA-Z]
           指定字符类:
            [:alnum:] 字母加数字, [:alpha:] 字母, [:cntrl:] , [:digit:] 数字, [:graph:], [:lower:] 小写字母, [:print:],
               [:punct:], [:space:] 空格, [:upper:]  大写字母, and [:xdigit:]
        
        ^[[:space:]]*$   //有空格键的空行(正则表达式)

原文地址:https://www.cnblogs.com/azuressy/p/11307840.html