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

    1. 命令历史

    作用:查看之前的使用的命令

    关于命令历史的文件

    每个用户家目录下的.bash_history,在关机时候会自动写入一次(history - r 将内存中的命令历史写入文件)

    (给用户写密码)

    chroot切换根文件系统

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

    env 查看环境变量

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

    HISTSIZE = 1000    数量1000

    HISTCONTROL=ignoredups    (三个值ignoredups ignorespace ignoreboth)

    HISTFILE=/root/.bash_history

    HISTFILESIZE=1000

    history的常见操作

    +编号:查看编号行命令历史

    +string 匹配最近一次字符串

    !! 上一条命令

    $=(快捷键esc+.上一条命令的最后一个参数

    常见选项

    -a 将历史命令缓冲区中的命令写入历史文件

    -d 删除

    -c 清空历史命令

    history # 显示最近#行的命令

    path是环境变量的一种

    1. 命令补全

    tab键(作用:提示、自动补全)

    拓展:tab键是制表符   \t = 四个空格

    1. 目录补全

    tab键(作用:提示和自动补全)

    1. 命令展开

    data命令

    {,}

    Linux的目录要遵循FHS目录规则

    属性1  属性2

      a      1

    b      2

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

    date   基于date命令创建目录

    date +

    %F年月日

    %H 小时

    %M 分钟

    %m 月份

    %S 变秒

    %T 时分秒

    %D 月日年

    %Y

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

    touch‘date +%F’.http.log

    atcrontab

    for i in {1...30};do

    touch  ‘date+%Y -%m-$i’.http.log;

    done

    压缩工具:gzip bzip2 xz

    Tar 归档(压缩与解压缩 )zcat不解压看压缩包里文件

    压缩只能对文件进行操作而不能对目录进行操作,归档可以对目录进行操作

    常见参数

    -j bzip2

    -J xz(效率最高)

    -z gzip

    -c creat创建

    -x extrect解压 可以不用指定解压的工具

    -f 指定文件名

    -v 显示详细信息

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

    tar cjvf 2019-08.http.log.bz2 2019-08-*.http.log(* 通配符)

    tar xvf 2018-08.http.log.bz2 -C abc

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

    crontab -e -- 20 2 * * * /root/xxx.sh  

    vim xxx.sh

    #!/bin/bash

    #

    tar cJvf  /var/’date +%F’ .xz /etc/

    chmod +x xxx.sh

    补充:

    clock / wclock:查看硬件时钟(如果同步系统时钟与硬件时钟)

    cal 日历

    1. 命令的执行状态

     Linux中每条命令执行后都会有两个结果:命令本身放回的内容,命令执行的结果状态

     $? 变量,存放命令执行状态的变量0表示成功1-255表示失败

    127命令找不到

    2文件或目录不存在

    13没有权限

    .

    .

    程序执行时可用exit手动指定放回的状态码return是函数中指定的返回码

    [$? -eq ] &&exit || exit 1

    1. 命令的快捷键

    ctrl + l

       + c 停止进程

       + u 删除光标前字符

       +k 删除光标后字符

       + a 跳到光标头

       + e跳到光标尾

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

    +z 锁屏

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

    1. alias别名

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

    全局配置文件:

    /etc/profile :定义环境变量(所有用户)

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

    在用户的家目录下,自己使用重启后依然有效:

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

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

    export  HISTCONTROL= xxx   导入环境变量(通过sources /etc/profile . /etc/profile导入)

    alias cdnet=cd /etc/sysconfig/network-scripts/(=两边不能有空格)

    只能在当前shell执行

    文件通配符 --globbing

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

    ? 任意单个字符

    * 任意长度的任意字符

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

    ^ 1、 以什么开头

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

    指定字符类[^0-9A-Za-z]

    指定字符类:

    [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:],

            [:punct:], [:space:], [:upper:], and [:xdigit:]

    ^[[:space:]]*$   //有空格键的空行(正则表达式)

    9、练习

    1、显示/var目录下所有以1开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录;

    ls /var/1*[0-9]*[a-z]

    2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录

    ls /etc/[0-9]*[^0-9]

    3、显示/etc目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录

    ls /etc/[^[:alpha:]][[:alpha:]]*

    4、复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/test目录中;

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

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

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

    6、复制/etc目录下,所有.conf结尾,且以m n r p开头的文件或目录至/tmp/test.com目录中

    cp -a /etc/[mnrp]*.conf /tmp/test.com

  • 相关阅读:
    c# 调用CMD窗口执行命令
    WPF 添加阴影效果
    WPF中鼠标拖动窗体
    c# exe程序只让启动一个
    $.when().done().then()的用法
    Math.round(),Math.ceil(),Math.floor()取整计算
    面向对象的程序设计-继承
    MATLAB | 直接保存窗口图片而不弹出figure窗口
    MATLAB 小tips总结
    图像数字处理 | Bit-Plane Slicing 比特平面分层- 如何计算
  • 原文地址:https://www.cnblogs.com/bishuyu/p/11313094.html
Copyright © 2011-2022 走看看