zoukankan      html  css  js  c++  java
  • (1)、Bash的基本功能

    写在前面的话:

    此随笔需要一定的Linux基础

    shell是一门很简单的语言,它完成不了复杂的编程如写网站,写linux基本流程等等,它有些东西甚至不符合编程思想,但它对于我们运维人员来说,却是最简单且最实用的工具,它能减少我们的误判率,减轻我们的工作量。

    人生最可悲的事莫过于,胸怀大志却碌碌无为。

    莫等闲,白了少年头,空悲切。

     

    Bash标准输入输出:

    设备

    设备文件名 文件描述 类型
    键盘 /dev/stdin 0 标准输入
    显示器 /dev/stdout 1 标准输出
    显示器 /dev/stderr 2 标准错误输出

     

     

     

     

     

     

    标准错误输出重定向:

    错误命令 2>>file 

    #捕捉错误命令输出,并追加到文件,不在显示器上打印

    [root@CAT ~]# lss 2>>file
    [root@CAT ~]# cat file
    -bash: lss: 未找到命令

    实际使用:

    命令 >> file1  2>>file2

    #把正确命令输出信息放到file1,把错误输出信息放到file2

    [root@CAT ~]# ls >> file1 2>>file2
    [root@CAT ~]# lss >> file1 2>>file2
    [root@CAT ~]# cat file1 file2
    anaconda-ks.cfg
    file
    file1
    file2
    -bash: lss: 未找到命令

    多命令执行符:

    执行符 语法 作用
    ; 命令1;命令2 多个命令顺序执行,之间无任何逻辑关系
    && 命令1&&命令2 逻辑与,命令1正确执行($?=0),命令2才执行
    || 命令1||命令2 逻辑非,命令1错误执行($?≠0),命令2才执行

     

     

     

     

     

    [root@CAT ~]# ls && echo "yes"
    anaconda-ks.cfg  file  file1  file2
    yes
    [root@CAT ~]# lss && echo "yes"
    -bash: lss: 未找到命令
    [root@CAT ~]# ls || echo "no"
    anaconda-ks.cfg  file  file1  file2
    [root@CAT ~]# lss || echo "no"
    -bash: lss: 未找到命令
    no

    用 && 和 ||  可以进行简单的判断:

    [root@CAT ~]# lss >/dev/null 2>/dev/null && echo "yes" || echo no 
    no
    [root@CAT ~]# ls >/dev/null 2>/dev/null && echo "yes" || echo no
    yes

    注意:这样判断时 && 一定在前,否则判断不符合逻辑,将无意义。

    特殊字符:

    特殊字符 名称 意义
    ' ' 单引号 单引号中的所有特殊字符都不再有特殊含义
    " " 双引号 双引号中特殊字符无意义,但 "$"、"`"、"\"仍有特殊含义
    ` ` 反引号 反引号中的内容为系统命令,在Bash中优先执行,但我们一般使用$()代替它,因为它是在太容易看错了
    $() $小括号

    和反引号作用一致

    # 井号 注释
    $  dollar号 调用变量的值
    \ 转义符 跟在 \ 后的特殊字符将失去特殊意义,被转义为普通字符

     

     

     

     

     

     

     

     

     

     

     

    通配符:

    通配符 意义
    ? 匹配任意一个字符
    * 匹配0个或多个字符,全匹配
    [] 匹配[]内的任意一个字符 eg:[abc]  #匹配a或b或c
    [-] 匹配[]内任意一个字符,- 是范围  eg:[0-9]  #匹配一个是数字的字符
    [^] 逻辑非,反匹配,匹配一个不是[]内的字符    eg:[^0-9]  #匹配一个不是数字的字符

     

  • 相关阅读:
    LeetCode(123) Best Time to Buy and Sell Stock III
    LeetCode(122) Best Time to Buy and Sell Stock II
    LeetCode(147) Insertion Sort List
    360兼容模式不支持hidden属性的问题
    第一个博客,用来勉励自己,加油
    【LGR-059】洛谷7月月赛题解
    Codechef July Challenge 2019 Division 1题解
    AtCoder Grand Contest 035
    Comet OJ
    2019-7-3 感记
  • 原文地址:https://www.cnblogs.com/BrotherCat/p/14703427.html
Copyright © 2011-2022 走看看