美文网首页
Linux shell基础

Linux shell基础

作者: 南土酱 | 来源:发表于2021-02-18 22:32 被阅读0次

    shell 是一个命令解释器,同时还是一种功能强大的程序设计语言,它定义各种变量和参数,并提高了在高级程序语言中才具有的控制结构,包括循环和分支。shell是解释性语言

    shell的种类

    最常见的shell:  Bourne shell(sh) , C shell (csh) 
    Korn shell(ksh) Bourne-again shell (bash)
    

    主讲 bash

    bash 特点
    命令记忆功能 : 上下键 即可
    自动补全功能: 输入 tab 键  即可补全
    别名设置功能:  alias 声明 ,例如 常用 ls -l 查看目录下的文件 ,则可以 这样设置别名 ( alias ll = 'ls -l')
    用户仅需输入 ll 即可调用
    

    shell运行

    第一种:
    相对路径 直接执行
    ./sh01(假设脚本文件名为 sh01)
    第二种:bash sh01 脚本名作为参数传递给 bash
    第三种:bash < sh01 以输入重定向方式让bash 从给定的脚本文件中读入命令行( 这种执行方式的脚本后面不能带参数的)

    shell 基础

    shell 是文本文件,既由 字符组成的文件

    1.通配符
    符号                含义
    *           匹配任意字符的0次或多次出现 (/ 斜线不匹配,因为用作路径名中的定界符了)
    ?           匹配任意单个字符 (/ 不匹配)
    []          匹配该字符组理里所限定的任何一个字符 例如 spa.[co] ,仅匹配  spa.c或 spa.o
                [0-9] 仅匹配  0到9里边某一个数字
    
    [^]  or [!]       匹配不在该字符组中的任何一个字符
    {string1,string2,...}        匹配其中一个指定的字符串
    例: ls /ho/stu  /ho/cs1 /ho/re,可写: ls /ho/{stu,cs1,re}
    

    ----待补----2021-2-12

    2.引号

    三种引号: 单引号 双引号 倒引号 ' "" `
    先说下 转义字符 , 想在 编程中正确使用 某些字符符号,而不被 解释器 解释为语法符号,从而造成 语法错误, 使用 转义字符 " \ "

    例如:
    echo it is warm ; come over and visit(会报错)
    修改后:  echo it is warm \; come over and visit(将 ; 转为普通字符)
    

    但有时 不容易阅读程序。所以 单引号的作用就体现出来了

    echo it is warm (and sunny ) ; come over & visit(会报错)
    修改: echo ' it is warm (and sunny ) ; come over & visit '
    加上单引号即可,将整体作为字符串
    
    单引号与双引号区别.png
    双引号会使 变量引用符号 $ 和 倒引号 保留其含义,其他字符均为普通字符(如上图)
    所以如果需要在双引号中输出 $ 和 倒引号,则需要在前边加上转义字符 \
    而倒引号的用法呢
    倒引号的用法.png
    可以看到图中 date 两边用了倒引号, 由倒引号括起来的字符会被 shell解释为命令
    date 是 查询日期命令,故而输出 today 的时候会输出当前日期
    
    3.输入/输出重定向符号
    类型                符号                作用
    输入重定向          command <file      文件作为命令的输入
                        command<<分界符    标准输入中读入,直到遇见分界符才停止
    错误输出重定向      command 2>file     覆盖的方式 把command的错误信息输出到file文件中
                        command 2>>file    追加的方式 把command的错误信息输出到file文件中
    输出重定向          command >file      覆盖的方式 把command的正确输出结果输出到file文件中
                        command >>file    追加的方式 把command的正确输出结果输出到file文件中
    

    案例此处 不给,有兴趣的可以根据表格自行测试

    4.命令执行操作符

    4.1 顺序执行
    多条命令一行出现

    ls;date;cd /user;pwd;
    
    案例.png

    4.2逻辑与 &&
    如果用 && 连接命令,则命令1正确执行了,命令2才会执行,以此类推

    cp /root && rm /root/test (格式:  命令1 && 命令2 && 命令3...)
    

    4.3逻辑或 ||
    使用 || 连接的话,只有前一条命令执行错误,后一条命令才能执行。
    案例可与上一小节一样测试

    4.4注释,管道符号

    # 表示注释符号,放在行头,该行 所有内容会被解释为 注释内容,shell会忽略不执行
    | 管道符,也是将多条命令 依次执行的命令,与 逻辑与 &&命令 不同的是: 管道符是 将上一条命令的输出作为下一条命令的输入

    案例.png
    ls 是查看当前目录下的目录和文件
    利用管道符 将 ls 的输出内容作为 grep 匹配的内容 ,可以看到 bin 和 snap 符合 匹配 被输出了
    

    \color{#228B22}{Linux 学习小总结,不对之处,欢迎大神们喷我。可以的话顺手点个赞吧~~!}
    \color{red}{警: 禁止抄袭,转载说明出处 🤨}

    相关文章

      网友评论

          本文标题:Linux shell基础

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