shell

Posted devonl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell相关的知识,希望对你有一定的参考价值。

1、命令历史
      作用:查看之前使用的命令
      关于命令历史的文件
          每个用户家目录下面的.bash_history
          在关机的时候,会自动写入一次(history -r 将内存中的命令历史写入文件)
      关于命令历史的变量(环境变量)
          env //查看环境变量
          set //查看详细的环境变量参数
          HISIZE=1000 数量
          HISCONTROL = ignoredups
      history的常见操作
          查看历史命令
          !!上一条命令
          *!$*上一条命令的最后的一个参数
                  ls /etc
                  ls !$
                  ESC +
           常见的选项
            -a
            -d
            -c
            history # 显示最近#行的命令
2、命令补全
      TAB
        1、提示2、自动补全
      扩展:制表符 \t 四个空格键
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:]
十六进制字符


以上是关于shell的主要内容,如果未能解决你的问题,请参考以下文章

Shellshell脚本练习

Shellshell 的执行流控制

shellshell-grep -v 排除多个输出结果

Shellshell中的常用基础命令

shellshell中各种括号的作用()(())[][[]]{}

Shellshell脚本中的变量