• bash的基本特性


    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、自动补全
               扩展:制表符 ,代表四个空格键
          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

  • 相关阅读:
    lua "Hello, world!"[转]
    用16进制编辑器编写一个DLL文件【转自看雪】
    Lua脚本语言入门(目前魔兽使用的可以写在宏内的语言)转自中国Lua开发者
    some tips about web hacking
    DevCpp/Mingw32/GCC专栏
    .NET中的幕后英雄MSCOREE.dll [转]
    手写可执行程序[ 转自看雪]
    VC下编译lua和luabind[转]
    简论程序是如何动态修改内存或指令的【转自看雪】
    一些链接(转仅供收藏)
  • 原文地址:https://www.cnblogs.com/4443056bdH/p/11310712.html
Copyright © 2020-2023  润新知