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

    1.命令历史

       作用:查之前使用的命令
       关于命令历史的文件
          每个用户家目录下面的-->.bash_history
          在关机的时候,会自动写入一次(history -r 将内存中的命令历史写入文件)
       关于命令历史的变量(环境变量)
          env //查看环境变量
          set //查看更详细的环境变量参数
          HISTSIZE=1000    存入命令的数量
          HISTCONTROL=ignoredups  忽略重复的历史命令,连续且相同才叫重复
                      ignorespace  忽略空白开头的历史命令,键入空格开头则不会被记录
                      ignoreboth   两者都生效
                 HISTFILESIZE=1000
                 HISTFILE=/root/.bash_history
       history的常见操作
          查看命令历史---!#  #表示数值,执行#行命令
          !string ---匹配最近一次的字符串
          !!----上一条命令
          !$----上一条命令的最后一个参数(非常重要的命令)
          常见的选项:
            -a  将缓冲区历史手动添加到文件中,重启依然存在
            -d [编号]  删除某条历史命令
            -c  清空缓存区的历史命令
            history #  显示最近#行的命令

    2.命令补全

       tab键
          作用:1.提示   2.自动补全
       在开发语言里,tab键叫做制表符-- ,代表4个空格

    3.目录补全

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

    4.命令展开——date命令

       {}---展开命令,支持一个‘,’作为分隔符0
       Linux的目录需要遵循什么规则?
          FHS目录规则,不是约定俗成,就是一个规定
       date  基于date命令来创建目录
          %F CCYY-mm-dd 年月日
          %T hh:mm:ss  时分秒
          %D mm/dd/YY  月/日/年
          %H hh 小时
          %M MM 分钟
          %S ss 秒

          练习:通过for语句,循环创建一个月的日志文件;.log --> 2019-08-06.log
          for i in {1..30};do
             touch `date +%Y-%m-$i`.http.log
          done

          如果把命令写在一行中,需要用;分隔每条语句
       tar -- 本身不是压缩工具。是归档工具(压缩与解压缩)
          压缩工具--> bzip2/gzip/xz
          -j --> bzip2
          -J --> xz
          -z --> gzip
          zcat  //查看压缩文件且不解压
          -c create 压缩
          -x extract  解压
          解压时可以不用指定解压工具
          -f 指定文件名
          -v verbose  显示详细信息,可写可不写
          -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中,每一条命令执行后都会有两个结果
          命令本身放回的内容
          其次,命令执行的结果状态
       $?  变量,就是用来存放命令执行状态的变量
          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
       alias cdnet="cd /etc/sysconfig/network-scrptes" --> 这种方式定义alias只能在当前shell生效
     
      /etc/profile --> 定义环境变量(所有用户)--EXPORT HISTCONTROL=xxx(导入)
       /etc/bashec --> 定义本地变量--alias(所有用户)
       ~/.bash_profile --> 定义环境变量(指定用户)
       ~/.bashrc --> 定义本地变量--alias(指定用户)
       sources /etc/profile 或者 ./etc/profile 使文件生效

    8.文件通配符

       文件通配符不是正则表达式
       五种常见的通配符 ? * [] ^ 指定字符类
       ? --> 任意单个字符
       * --> 任意长度的任意字符
       [] --> 指定范围内的任意一个字符
       ^ 1.以什么开头
           2.[^] 指定范围以外的任意一个字符[^0-9A-Za-z]
       指定字符类
          [:alnum:],[:alpha:],[:cntrl:],[:digit:],[:graph:],[:lower:],[:print:],[:punct:],[:space:],[:upper:],and [:xdigit:]
  • 相关阅读:
    Java多线程系列--“JUC集合”08之 LinkedBlockingQueue
    Java多线程系列--“JUC集合”07之 ArrayBlockingQueue
    Java多线程系列--“JUC集合”06之 ConcurrentSkipListSet
    Java多线程系列--“JUC集合”05之 ConcurrentSkipListMap
    Java多线程系列--“JUC集合”04之 ConcurrentHashMap
    Java多线程系列--“JUC集合”03之 CopyOnWriteArraySet
    Java多线程系列--“JUC集合”02之 CopyOnWriteArrayList
    Java多线程系列--“JUC集合”01之 框架
    Java多线程系列--“JUC锁”11之 Semaphore信号量的原理和示例
    Java多线程系列--“JUC锁”10之 CyclicBarrier原理和示例
  • 原文地址:https://www.cnblogs.com/xsnblog/p/11345549.html
Copyright © 2011-2022 走看看