您的位置:首页 > 运维架构 > Shell

bash的基本特性

2020-02-06 06:56 567 查看

1、bash的基本特性
      ctrl + l 清屏
     上键
     history 历史
     1)命令历史
        作用:查看之前使用的命令
        关于命令历史的文件
            每个用户家目录下的 -- .bash_history
            在关机的时候,会自动写入一次(history -r 将内存中的命令历史写入文件)
        关于命令历史的变量(环境变量)
            env //查看环境变量
            set //查看更详细的环境变量参数
            HISTSIZE=1000 数量,总量为1000
            HISTCONTROL=ignoredups
            Ignoredups 忽略重复的历史命令
            Ignorespace 忽略空白开头的历史命令
            Ignoreboth 两者都生效
        history的常见操作
            查看命令历史 !# #表示数值,执行#行的命令
            !string 匹配最近一次的字符串
            !! 上一条命令
            !$ 上一条命令的最后一个参数
            ls /etc
            ls !$ (直接调用了/etc)
            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 改变输出的时间格式,按照年-月-日的形式
           %T 输出时-分-秒
           %D 月/天/年
           date +%F-%H-%M-%S H:小时 M:分钟 S:秒


           练习:通过for语句循环创建一个月的日志文件; .log 2019-08-6.http.log
               touch `date +%F`.http.log

               for i in {1..30};do
               touch `date +%Y-%m-$i`.http.log;
               done

 

           Tar 归档命令(做压缩)
           压缩工具:《只能对文件进行操作,而不能对目录进行操作》
                  gzip
                  bzip2
                  xz
           tar的常见参数:
                 tar归档工具,《可以对目录进行操作》
                 -j bzip2
                 -J xz
                 -z gzip
                 zcat:查看压缩文件,但是不解压文件

           解压:
                 -c create
                 -x extract //可以不用指定解压工具
                 -f 指定文件名
                 -v 显示详细信息
                 -t 与zcat功能一样,不解压查看文件
           tar cjvf 2018-08.http.log.bz2 2008-08-*.http.log 压缩2008-08-*.http.log文件,命名为2018-08.http.log.bz2。*:通配符
           tar xvf 2018-08http.log.bz2 -C abc 把2018-08http.log.bz2文件解压到abc目录中

 

           练习:编写脚本,每天02:20备份/etc/目录中所有的文件,名称为当天日期;且保存文件为压缩文件;
              crontab -e -- 20 2 * * *
              vim xxx.sh
              #!/bin/bash
              #
              tar cJvf /var/`date +%F`.xz /etc/
              chmod +x xxx.sh (执行权限)


           补充:
              lock /hwclock 查看硬件时钟(百度:如何同步系统时钟和硬件时钟)
              cal + 年份(看这年打的日历) 日历

      5)命令的执行状态
           执行后会有两种结果
           命令本身放回的内容
           命令执行的结果状态
           $?变量,就是用来存放命令执行状态的变量;
           0 表示成功状态(和python正好相反)
           1-255 表示失败状态

      6)命令的快捷键
           ctel + l 清屏
           ctrl + c 结束进程
           ctrl + u 删除光标前的字符
           ctrl + k 删除光标后的字符
           ctrl + a 跳到光标头
           ctrl + e 跳到光标尾
           ctrl + w 以空格为分隔符,去删除文件
           ctrl + r 进入一个交互界面,搜索最近一次使用的命令(要输入string)

      7)alias别名
           系统启动时读取一些特殊文件的顺序;
           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]
           [:alnum:] 字母加数字
           [:alpha:] 字母
           [:cntrl:]
           [:digit:] 数字
           [:graph:]
           [:lower:]
           [:print:]
           [:punct:] 特殊字符
           [:space:] 空格
           [:upper:]
           [:xdigit:]
           ^[[:space:]]*$ //有空格键的空行(正则表达式)


           练习:
           1.显示/var目录下所有以1开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
                ls /var/*[0-9]*[a-z]
           2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录
                ls /etc/[0-9]*[^0-9]
           3、复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/test目录中
                cp -a /etc/m*[^0-9] /tmp/test

转载于:https://www.cnblogs.com/4443056bdH/p/11310712.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
dichuangao1745 发布了0 篇原创文章 · 获赞 0 · 访问量 37 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: