zoukankan      html  css  js  c++  java
  • shell脚本0——”一切皆文件“, 认识Shell

    一、”一切皆文件“与“管道”

    1)管道:grep foo /path/to/file | grep -n -k 3 | more

    实际过程与我们直观认为的相反,最好通过实际过程理解。首先运行的是more,它的输入被连接至一个管道。然后是sort,并且其输出被连接至之前的那个管道。接着创建第二个管道,并且将sort的stdin连接至该管道。最后执行grep,将其stdout连接至与sort进程相连的那个管道。

    当grep开始运行并输出数据时,数据顺着管道流向sort,sort处理后顺着管道输出到more,由more对管道输出的全部内容进行分页输出。在由错误的情况下,这样的过程会有不同的行为,more有错误,不会有任何事情发生,若grep键入错误,则more和sort会执行到错误被检测出来。

    2)管道的存在使得系统中的工具在编写时假设它们处理的是文本流。”一切皆文件“的概念与4种可执行的文件操作(opne close read write)意味着Unix实际上使用了一种简洁明了的系统设计方法。shell脚本本身也是文本形式的系统实用程序。

    二、开始一个shell脚本

    1)用户登录的shell程序就是一个设立了程序解释器,解释执行shell脚本;

    通常在shell程序的首行指明shell程序采用哪个解释器来执行它,格式为:#!/bin/bash,若没有指明,用当前登陆shell来解释执行,echo $SHELL可以查看登陆的shell程序

    2)执行:chmod +x 然后./执行    或者bash *.sh

    3)以#开头的行为注释行

    三、认识shell

    LINUX是一个操作系统,它在CPU、磁盘驱动器、内存、监视器、键盘和其他硬件之间起调节作用。(非图形界面时)当你看那UNIX屏幕时,实际上并没有见到UNIX,只是见到由该操作系统运行的一个程序,它对键盘进行监控并作出相应,这个程序就被称作注册Shell(Login Shell)。

    bash  启动新的shell命令

    exit    退出

    echo $SHLVL

    注1:

    开头的空格被忽略,缩进只是为了好看

    字符让shell忽略换行符, 用于换行接续命令

    # 注释,可用在行首、行尾

    #!/bin/bash   脚本开头

    Shell程序设计:

    差不多总是用来使任务自动化。Shell与用户交互的工具非常少,至多可以问用户一个问题和接收一个文本答复,需要用户交互时应使用性能更全面的语言

    Shell特性:

    别名alias;

    命令替换:倒引号(`)把一个命令的输出合并到另一个命令中;

    后台处理:(不需要提供输入) find / -name “hello” -print > find.log & ;

    变量;

    管道(pipe):把一个命令的输出连接到另一个命令的输入。

    重定向(redirection):可以改变程序的输入来源和程序的输出地点 

    模式匹配: ls *.py

    特殊字符:

    “ 使shell无法认出大多数特殊字符(除去$ `)

    ‘ 使shell无法认出所有特殊字符

    `命令替换

    跟在反斜杠之后的字符就失去其特殊含义

    ;使一行上放多个命令

    &后台

    ()创建组命令

    {}用来创建Shell过程的命令块

    |管道

    <>&重定向

    *?[]!用于文件名模式匹配

    $引用变量名开头

    #注释

    空格 制表符 换行符   通称空白符用于分隔Shell命令中的词

  • 相关阅读:
    centos 用户管理
    rsync 实验
    文件共享和传输
    PAT 1109 Group Photo
    PAT 1108 Finding Average
    PAT 1107 Social Clusters
    PAT 1106 Lowest Price in Supply Chain
    PAT 1105 Spiral Matrix
    PAT 1104 Sum of Number Segments
    PAT 1103 Integer Factorization
  • 原文地址:https://www.cnblogs.com/daduryi/p/6691658.html
Copyright © 2011-2022 走看看