zoukankan      html  css  js  c++  java
  • Shell-bash的基本特性

    1、命令历史
            作用:查看之前使用的命令
            关于命令历史的文件
                每个用户家目录下面的.bash_history
                在关机的时候,会自动写入一次(history -r 将内存中的命令历史写入文件)
            关于命令历史的变量(环境变量)
                env //查看环境变量
                set //查看详细的环境变量参数
                HISIZE=1000    数量
                HISCONTROL = ignoredups
            history的常见操作
                查看历史命令
                !!上一条命令
                *!$*上一条命令的最后的一个参数
                        ls /etc
                        ls !$
                        ESC +
                常见的选项
                        -a
                        -d
                        -c
                history # 显示最近#行的命令
    2、命令补全
            TAB
                1、提示  2、自动补全
                     扩展:制表符 四个空格键
    3、目录补全
            TAB
                1、提示  2、自动补全
    4、命令展开-date命令
            {}
            Linux的目录需要遵循什么规则? --FHS目录规则
            date 基于date命令创建目录
                    %F CCYY-mm-dd
                    %H hh
                    %M MM
                    %S ss
                    
    练习:通过for语句循环创建一个月的日志文件:.log 2019-08-6.http.log
                for i in {1..30};do
                    touch `date +%F-%m-%$i.http.log
                done
            tar
                压缩工具
              【压缩只能对文件进行压缩,不能对目录进行压缩】
                gzip
                bzip2
                xz
                zcat //查看压缩文件且不解压
      tar的常见参数:
                tar 归档工具【可以对目录进行操作】
                -j bzip2
                -J xz
                -z gzip
                -c create
                -x extract //可以不用指定解压的工具
                -f 指定文件名
                -v 显示详细信息verbose
                -t 不解压查看内容和zcat一样
            tar cjvf 2018-08.http.log.bz2 2018-08-*.http.log
            tar xvf 2018-08.http.log.bz2 -C abc
            
    练习:编写脚本,每天02:20备份/etc/目录中所有文件,名称为当前日期;且保存文件为压缩文件;
            crontab -e --20 2 * * * /root/xx.sh
            vim xx.sh
                #!/bin/bash
                #
                tar cJvd /var/`date +%F`.xz /etc/
            clock
            hwclock
    5、命令的执行状态
    在Linux中,每一条命令执行后都会有两个结果:
        命令本身反回的内容
        其次,命令执行的结果状态
    $?变量,就是用来存放命令执行状态的变量;
        0表示成功状态(和Python正好相反)
        1-255表示失败状态
    6、命令的快捷键
        ctrl + I
        ctrl + C
        ctrl + U    //删除光标前的字符
        ctrl + K    //删除光标后的字符
        ctrl + A
        ctrl + E
        ctrl + W    //以空格为分隔符,去删除文件
        ctrl + R    //进入一个交互界面,搜索最近一次使用的命令
    7、alias别名
        系统启动时读取一些特殊文件的顺序;
        
        alias cdnet="cd /etc/sysconfig/network-scripts" //这种定义alias只能在当前shell生效
        /etc/profile:定义环境变量(所有用户) --EXPORT HISTCONTROL =
        /etc/bashrc:定义本地本量--alias(所有用户)
        ~/.bash_profile:定义环境变量(指定用户)
        ~/.bashrc:定义本地变量--alias(指定用户)
        
        sources ~/.bashrc
    8、文件通配符 -- globbing
            【文件通配符不是正则表达式】
            ? 任意单个字符
            * 任意长度的任意字符
            [] 指定范围内的任意一个字符
            ^ 1、以什么开头
              2、[^]指定范围以外的任意一个字符
                [^0-9A-Za-z]
                [0-9][a-z][A-Z][a-zA-Z]
            指定字符类:
            符号
    字符标识
            [:digit:]
                任意数字, 相当于0-9
            [:lower]
                任意小写字母
            [upper:]
                任意大写字母
            [alpha:]
                任意大小写字母
            [:alnum:]
                任意数字或字母
            [:blank:]|
                水平空白字符
            [:space:]
                水平或垂直空白字符
            [punct:]
                标点符号
            [print:]
                可打印字符
            [:cntrl:]
                控制(非打印)字符
            [:graph:]
                图形字符
            [xdigit:]
                十六进制字符

    9、练习
        1、显示/var目录下所有以1开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录;
            ls /var/1*[0-9]*[a-z]
        2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录
            ls /etc/[0-9]*[^0-9]
        3、显示/etc目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
            ls /etc/[^[:alpha:]][[:alpha:]]*
        4、复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/test目录中;
            cp -a /etc/m*[^0-9]  /tmp/test
        5、复制/etc目录下,所有以.d结尾的文件或目录至/tmp/test.com目录中
            cp -a /etc/*.d$ /tmp/test.com
        6、复制/etc目录下,所有.conf结尾,且以m n r p开头的文件或目录至/tmp/test.com目录中
            cp -a /etc/[mnrp]*.conf /tmp/test.com
            
           

  • 相关阅读:
    Oracle中的序列
    Oracle中常见表与各类结构的查询
    软件项目中的沟通 第一故事
    bat脚本 得到前一天的日期
    Windows bat脚本的for语句
    Integer与int比较
    String参数传递
    数据类型转换
    synchronized
    Java的Thread和Runnable
  • 原文地址:https://www.cnblogs.com/jklp-1234/p/11311440.html
Copyright © 2011-2022 走看看