zoukankan      html  css  js  c++  java
  • Xshell学习第一课:bash的基本特性

    1. 命令历史

            作用:查之前使用的命令

            关于命令历史的文件

                    每个用户家目录下面的.bash_history

                    在关机的时候,会自动写入一次(history -r将内存中的命令历史手动写入文件)

                    env //查看环境变量

                    set //查看更详细的环境变量参数

                    HISTSIZE=1000  记录了数量

                    HISTCONTROL=ignoredups 

                                    lgnoresdups 忽略重复的历史命令

                                    lgnorespace 忽略空白开头的历史命令

                                    lgnoreboth  两者都生效

                    history的常见操作:

                             查看命令历史

                             !#   #:表示数值,执行#行的命令

                             !string   匹配最近一次的字符串

                             !! 上一条命令

                             !$   上一条命令的最后一个参数(ESC+.)

                             常见的选项:

                             -a:手工追加当前会话的命令历史到历史文件中去

                             -d:删除指定的命令

                             -c:清空命令

                             History #显示最近#行的命令

            关于命令历史的变量(环境变量)

    2.命令补全

         Tab键:制表符    代表四个空格

            作用:1.提示

                  2.自动补全

    1. 目录补全

          Tab:1.提示(目录路径)

               2.自动补全

    1. 命令展开—date命令

         {}创建文件或者拷贝文件时候使用

     

    Linux目录需要遵循什么规则?

    属性1   属性2

    A         1

    B         2

    Mkdir -pv /var{a,b}-{1,2}

    这就创建了四个文件了

         ---FHS的目录规则

         date:查看系统时间(date +%F)(date +%F-%H)

     

     

    %F CCYY-mm-dd

    %H hh

    %M MM

    %S ss

    %D: mm/dd/YY

    %Y YY

    %T hh:MM:ss

     

    练习:通过for语句循环创建一个月的日志文件;.log   2019-8-6.http.log

    Touch `Date +%F`.http.log

    for I in {1..30};do

             touch `date +%Y-%m-$i`.http.log

    done

     

    Tar的常见参数:

    Tar:归档工具【可以对目录进行操作】

    -j:bzip2

    -J:xz

    -z:gzip

    -c:create(创建,压缩)

    -x:extract(解压)//可以不用指定解压的工具

    -f:指定文件名

    -v:显示详细信息 verbose

    -t:不解压查看内容和zcat一样

    Tar cjvf 2019-08.http.log.bz2 2019-08-*.http.log

    Tar xvf 2019-08.http.log.bz2 -C abc

    压缩工具:(gzip)(bzip2)(xz)【压缩这个操作,只能对文件进行才做,不能对目录进行操作】

    压缩:

     

    解压:

     

    练习:编写脚本,每天2:20备份/etc/目录中所有文件,名称为当天日期;且保存文件为压缩文件;

    Ctontab –20 2 * * * /root/xxx.sh

    Vim xxx.sh

    #!/bin/bash

    Tar cJvf /var/`date +%F`.xz /etc/

    Chmod +x xxx.sh

    补充俩个命令:

         Clock/hwclock 查看硬件时钟(如果同步洗头膏时钟与硬件时钟)

         (cal):日历

    1. 命令的执行状态

    在Linux中,每条命令执行后都会有俩个结果:

              命令本身返回的内容

              其次,命令执行的结果状态

    $? 变量,就是用来存放命令执行状态的变量;

    0         表示成功状态(和python相反)

    1-255 表示失败状态

    127—命令找不到

    2—文件或目录不存在

    13—没有权限

    1. 命令的快捷键

    Ctrl + l

    Ctrl + c

    Ctrl + u  //删除光标前的字符

    Ctrl + k  //删除光标后的字符

    Ctrl + a  //跳光标头

    Ctrl + e  //跳光标尾

    Ctrl + w  //以空格为分隔符,去删除文件

    Ctrl + r  //进入交互式界面,搜索最近的一次使用的命令(要输入字符串)

    1. Alias别名

         系统启动时读取特殊文件的顺序;

         Aliasd:alias cdnet=”cd /etc/sysconfig/network-scriptes”  //这种方式定义的alias只能在当前shell生效

    /etc/profile:定义环境变量(所有用户)---EXPORT HISTCONTROL=XXX

    /etc/bashrc:定义本地变量—alias(所有用户)

    ~/etc/bash_profile:定义环境变量(指定用户)

    ~/.bashrc:定义本地变量—alias(指定用户)

    Sources /etc/profile 或者./etc/profile

    1. 文件通配符 ---globbing

            【文件通配符不是正则表达式】

    ?  任意单个字符

       *:任意长度的任意字符

    []:指定范围内的任意一个字符

    ^:1.以什么开头

    2.[^]指定范围以外的任意一个字符

       [^0-9-A-Za-z]

    指定字符类 :

     ^*[[:space:]]*$----------空白行(有空格键的空行)

    字符标识
    [:digit:]
    任意数字, 相当于0-9
    [:lower]
    任意小写字母
    [upper:]
    任意大写字母
    [alpha:]
    任意大小写字母
    [:alnum:]
    任意数字或字母
    [:blank:]
    水平空白字符
    [:space:]
    水平或垂直空白字符
    [punct:]
    标点符号
    [print:]
    可打印字符
    [:cntrl:]
    控制(非打印)字符
    [:graph:]
    图形字符
    [xdigit:]
    十六进制字符

    练习:

    1. 显示/var目录下所有以1开头,以一个小字母结尾,且中间出现至少一位数字的文件或目录;ls /var/^1*[0-9]*[a-z]$
    2. 显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录

             Ls /etc/^[0-9]*[^0-9]$

    1. 显示/etc目录下,以非字母开头,后面跟了一个字母及其他任意长度任意字符的文件或目录;ls /etc/^[^[:alpha:]]{[:alpha:]]*
    2. 复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/test目录中;

             Cp -a/etc/^m*[^0-9]$ /tmp/test

    1. 复制/etc目录下,所有以.d结尾的文件或目录至/tmp/test.com目录中

             Cp -a /etc/*.d$ /tmp/test.com

    1. 复制/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/test.com目录中;    cp -a /etc/[mnrp]*.conf /tmp/test.com
  • 相关阅读:
    postgresql怎么导入数据库
    flask建表遇到的错误: flask,sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1071, 'Specified key was too long; max key length is 767 bytes')
    Linux(Ubuntu)系统下使用crontab定期执行任务
    Odoo中如何多workers中解决‘Bus.bus avriavle’
    python装饰器
    小程序开发可能会踩的坑
    Flask开发微信小程序后端基础知识准备
    Flask 中使用BluePrint蓝图分割业务代码,方便多人协作开发
    理解JWT(JSON Web Token)认证及python实践
    小程序中的数据请求sessionid,保持登陆状态。
  • 原文地址:https://www.cnblogs.com/huangchuan/p/11311818.html
Copyright © 2011-2022 走看看