01、bash的基本特性

#1、命令历史 

    作用:查之前使用的命令 

    关于命令历史的文件

      每个用户家目录下面的.bash_history在关机的时候,会自动写入一次(history -r 将内存 中的命令历史写入文件)

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

      env   //查看环境变量

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

      HISTSIZE = 1000   数量

      HISTCONTROL = ignoredups    忽略重复的命令

      

    history的常见操作

      查看命令历史

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

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

      !!  上一条命令

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

            ls  /etc

            ls !$

            Esc+.

      常见的选项:

      -a 

      -d

      -c

      history #  最近#行的命令

#2、命令补全

    tab 

     1.提示  2.自动补全

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

#3、目录补全

    tab

     1.提示  2.自动补全

#4、命令展开--data命令

    {}

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

 属性1  属性2
 a    1
 b    2

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

    date 基于date命令来创建目录

            date +%F-%H:%M:%S     2019-08-06-22:29:08
            %F  CCYY-MM-dd
            %T   hh:MM:ss
            %D  mm/dd/YY
            %H  hh
            %M  MM
            %S   ss
            %Y   CCYY

        tar
                压缩工具    
                gzip
                bzip
                xz
                zcat  //查看压缩文件且不解压
                【压缩 只能对文件进行压缩,而不能对目录进行操作】
        tar的常见参数:
                tar归档工具【可以对目录进行操作】
                -j  bzip2
                -J  xz
                -z  gzip
                -c  create
                -x  extract  //可以不用知道解压的工具
                -f   指定文件名
                -v  显示详细信息
                -t  不解压查看内容 和 zcat 一样

  # 练习:编写脚本,每天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、命令的执行状态

    在Linux中,每一条命令执行后都会有俩个结果:1)命令本身放回的内容

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

    $?  变量,就是用来存放命令执行状态的变量:0  表示成功状态(与Python正好相反)

                          1~255  表示失败状态

#6、命令的快捷键

            ctrl + l
            ctrl + c
            ctrl + u   //删除光标前的字符
            ctrl + k   //删除光标后的字符
            ctrl + a
            ctrl + e
            ctrl + w   //以空格为分隔符,去删除文件
            ctrl + r   //进入一个交互界面,搜索最近一次使用的命令(要输入string)        
                                                                      

#7、alias别名

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

    

            alias cdnet="cd /etc/sysconfig/network-scripts"  //这种方式定义alias只能在当前shell生效;
            
            /etc/profile : 定义环境变量(所有用户)
            /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:]       匹配任意一个字母
  [:digit:]         匹配任意一个数字
  [:lower:]       匹配任意一个小写字母
  [:upper:]       匹配任意一个大写字母

    一般常用的匹配:

模式                     匹配对象
  *                    所有文件
  p*                  文件名以“p”开头的文件
  r*.txt               以”r” 开头,中间有零个或任意多个字符,并以”.txt” 结尾的文件
  Data???                   以“Data”开头,其后紧接着 3 个字符的文件
  [abc]*                     文件名以”a”,”b”, 或”c” 开头的文件
  BACKUP.[0-9][0-9][0-9]      以”BACKUP.” 开头,并紧接着 3 个数字的文件
  [[:upper:]]*            以大写字母开头的文件
  [![:digit:]]*            不以数字开头的文件
  *[[:lower:]123]       文件名以小写字母结尾,或以“1”,“2”,或“3”结尾的文件

  

猜你喜欢

转载自www.cnblogs.com/cnxy168/p/11311612.html
今日推荐