美文网首页
bash入门

bash入门

作者: WrRanX | 来源:发表于2019-08-18 08:33 被阅读0次

    Bourne-Again SHell; Born Again SHell

    Introduction

    写作“入门”,读作由使用驱动的学习。

    Six Core Responsibility

    Shell的责任(responsibility,职责是duty)有:

    1. 程序执行:负责执行终端中指定的所有程序;
    2. 变量及其替换:只要在命令行中将变量名放置在$之后,就会被bash替换为对应的变量值;
    3. I/O重定向:负责处理输入/输出的重定向;指令有>(写入),<(读入),>>(追写),<<(?);
    4. 管道:负责将前一个命令的标准输出连接到之后命令的标准输入;管道符号为|,如who | wc -l
    5. 环境控制:定制个人环境的命令;个人环境包括主目录(~)、命令行提示符及用于搜索待执行程序的目录列表;
    6. 解释型编程语言:内建的解释型编程语言;分析所遇到的每一条语句,然后执行所发现的有效命令。

    Variable & its Replacement

    Variable

    匹配变量的正则表达式为[a-zA-Z_][a-zA-Z0-9_]*
    变量赋值形如variable=value
    显示变量值形如echo $variable.

    bash在执行指令时,按照如下顺序进行操作:

    1. 命令分割:依据空格字符(一个或多个)分割命令与参数;
    2. 变量替换:扫描命令行,用变量值替换变量名;
    3. 引用字符替换:扫描上一步的输出,将引用字符替换为其语义所指表示;
    4. 命令执行:执行上一步的输出。

    特殊字符有*,代表当前目录下的所有文件及文件名;之外,还有四种不同的引用字符:'(单引号)/"(双引号)/\/ `(反引号);
    其中除斜杠外,其他引用字符都需要成对出现。

    '(单引号):被单引号包裹的特殊字符将被忽略;
    "(双引号):被双引号包裹的字符大部分都会被保护,除了三种字符$(美元字符)/\(反斜线)/ ****(反引号);`(反斜线):反斜线大部分情况下相当于在单个字符周围放置单引号;当反斜线出现在输入行的最后一个,起到续行符的作用;
    `(反引号):反引号一般包裹待执行的命令;命令输出会被插入到它的当前所在位置上;但注意更提倡使用与之等价的 $(command)

    示例:

    echo "<<< echo \$x >>> displays the value of x, which is $x"
    echo '<<< echo \$x >>> displays the value of x, which is' $x
    echo Your current working directory is $(pwd)
    

    Passing

    Everyday Commands

    alias

    别名是shell提供的一种可以用于自定义命令的快捷记法。

    shell保存了一个别名列表,在命令输入之后,会在执行其他替换操作之前首先搜索该列表。如果命令行的第一个单词是别名,将该别名替换成对应的文本。

    其形式如下:

    alias name=string
    

    示例:

    alias ll='ls -l'
    

    More

    重定向:https://www.jianshu.com/p/b3f8daf73db2

    References

    UNIX/Linux/OS X中的Shell编程@ISBN: 9787115470416:https://book.douban.com/subject/30410589/

    相关文章

      网友评论

          本文标题:bash入门

          本文链接:https://www.haomeiwen.com/subject/acalsctx.html