首页 > 其他分享 >学习笔记3

学习笔记3

时间:2023-09-24 14:57:21浏览次数:37  
标签:语句 文件 commands 脚本 笔记 学习 命令 sh

学习笔记3

一门程序设计语言具有以下必备的要素和技能:

  • 语法:了解语言的基本语法规则,包括变量、数据类型、运算符、控制流程(如条件语句和循环语句)、函数定义等。
  • 数据结构:理解常见的数据结构,如数组、链表、栈、队列、树、图等,并能够灵活地应用于实际问题中。
  • 算法:掌握常见的算法思想与实现,如排序、搜索、递归、动态规划等,以提高代码的效率和质量。
  • 编程范式:了解不同的编程范式,如面向对象编程、函数式编程、并发编程等,以便选择适合的方式来解决问题。
  • 调试和错误处理:具备调试程序和处理错误的能力,能够定位和修复代码中的Bug,并做好异常处理。

在Shell脚本中,这些要素和技能也有相应的呈现方式:

  • 语法:编写符合Shell脚本语法规则的代码,包括正确使用变量、操作符、条件语句(如if-else语句)和循环语句(如for循环和while循环)等。
  • 命令行操作:熟悉Shell的命令行操作,包括文件操作、目录操作、进程管理等,能够通过Shell脚本实现自动化的批量处理任务。
  • 环境变量和配置:了解Shell环境变量的概念和使用方法,能够在脚本中读取、设置和使用环境变量,以便实现灵活的配置和参数传递。
  • 输入和输出处理:能够合理处理输入和输出,包括读取用户输入、从文件中读取数据、将结果输出到文件或终端等。
  • 错误处理和异常处理:编写健壮的代码,能够处理意外情况和错误,包括输入错误、文件不存在、命令执行失败等,并提供相应的错误信息和处理措施。

第十章

  • sh脚本
    • sh脚本是一个包含sh语句的文本文件,命令解释程序sh要执行该语句。
    • 创建文件文本mysh,包含:
    #!/bin/bash
    #comment line
    echo hello
    
    使用chmod +x mysh使其可执行,然后运行mysh
  • sh脚本与C程序
    • sh是一个解释程序,逐行读取sh脚本文件并直接执行这些行。而C程序必须编译链接到一个二进制可执行文件,然后通过主sh的子进程运行可执行二进制文件。
    • C程序中,每个变量都有特点的不同类型,而sh脚本中所有变量都是字符型。
  • 命令行参数
    • 可使用与运行sh命令完全相同的参数调用sh脚本,如
      mysh one two three
    • 可使用参数$0、$1、$2等访问命令行参数
    • 可使用内置变量$#和$*计数并显示命令行参数
    $# = 命令行参数$1到$n的数量
    $* = 所有命令行参数,包括$0
    
    • 其他的相关内置变量
    $S = 执行sh的进程PID
    $? = 最后一个命令执行的退出状态(如果成功,则为0,否则为非0)
    
  • sh变量
    • 内置变量
      • PATH
      • HOME
      • TERM
    • sh变量的设置或赋值:
      variable=string
  • sh中的引号
    • sh中的特殊字符,如$、/、*、>、<等,要想把它们用作普通字符,可使用\或单引号来引用它们
  • sh语句
    • sh语句包括所有Unix/Linux命令,以及可能的I/O重定向
      示例:
    ls
    ls > outfile
    date
    cp f1 f2
    mkdir newdir
    cat < filename
    
    此外,sh编程语言还支持控制sh程序执行的测试条件、循环、case等语句
  • sh命令
    • 内置命令
      • 常用的sh内置命令
      .file:读取并执行文件
      break [n]:从最近的第n个嵌套循环中退出
      cd [dirname]:更换目录
      continue [n]:重启最近的第n个嵌套循环
      eval [arg...]:计算一次参数并让sh执行生成的命令。
      exec [arg...]:通过这个sh执行命令,sh将会退出。
      exit [n]:使sh退出,退出状态为n。
      export [var…]:将变量导出到随后执行的命令.
      trap [arg] [n]:接收到信号n后执行参数。
      umask [ddd]:将掩码设置为八进制数 ddd 的。
      wait pid]: 等待进程 pid,如果没有给出pid,则等待所有活动子进程。
      read命令:当sh执行read命令时,它会等待来自stdin的输入行。
      
    • Linux命令
      • echo命令:将参数字符串作为行回显到stdout
      • expr命令:间接更改sh变量的值
      • 管道命令:通常使用管道作为过滤器
      • 实用命令:除Linux外的其他实用实用程序作为命令。
        例如:
      axk:数据处理程序。
      cmp:比较两个文件。
      comm:选择两个排序文件共有的行。
      grep:匹配一系列文件的模式。
      diff:找出两个文件的差异。
      join:通过使用相同的键来连接记录以比较两个文件。
      sed:流或行编辑命令。
      sort:排序或合并文件。
      tail:打印某个文件的最后口行。
      tr:一对一宇符翻译。
      uniq:从文件中删除连续重复行。
      
  • 命令替换
    • 在sh中,$A会被替换成A值,当遇到'cmd'或者$(cmd)时,会先执行cmd
      示例:
    echo $(data)
    echo $(ls dir)
    
  • sh控制语句
    • if-else-fi语句
    if [condition]
        then
            statemates
        else
            statements
    fi
    
    • if-elif-else-fi语句
    if [condition];then
            commands
        elif [condition2];then
            commands
        else
            commands
    fi
    
    • for语句
    for VARIABLE in string1 string2 ... stringn
        do
            commands
        done
    
    • while语句
    while [condition]
        do
            commands
        done
    
    • until-do语句
    until [$ANS = "give up"]
        do
            echo -n "enter your answer"
            read ANS
        done
    
    • case 语句
    case $variable in
        pattern1) commands;;
        pattern2) commands;;
        patternn) commands;;
    esac
    
  • I/O重定向
    • 当进入sh命令时,我们可以指示sh将I/O重定向到除默认stdin、stdout和sterr以外的文件
    • I/O重定向有以下形式和含义
    > file:stdout转向文件,如果文件不存在,将会创建文件
    >> file:stdout追加到文件
    < file:将文件用作stdin;文件必须存在并且具有r权限
    << woed:从“here”文件中获取输入,直到只包含“word”的行
    
  • sh函数
    func()
    {
        # function code
    }
    
  • sh中的通配符
    *:可扩展到当前目录中的所有文件
    ?:查询某文件名中的字符
    []:查询文件名中一对[]中的字符
    
  • 命令分组
    • 使用{}或()对命令进行分组
  • eval语句
    • eval是sh的内置命令,由sh自己执行,不需要复刻新进程
      eval [argl argl .. argn]
    • sh在执行命令行前的步骤
      • 参数替换
      • 命令替换
      • 通配符扩展
  • 调试sh脚本
    • sh脚本可由带有-x选项的子sh运行,以进行调试,如:
      bash -x mysh

苏格拉底挑战

  • sh内置命令

  • sh控制语句


遇到的问题

  • sh脚本怎么用
  • GPT

标签:语句,文件,commands,脚本,笔记,学习,命令,sh
From: https://www.cnblogs.com/gao0818/p/17725967.html

相关文章

  • 信息安全系统设计与实现课程第十章学习笔记
    一、知识点总结1、sh脚本sh脚本是一种文本文件,包含一系列sh语句,用于执行一系列命令。它是一种脚本语言,通常以.sh为文件扩展名。脚本的执行需要使用shell解释器,比如Bash、csh、ksh等。脚本的基本结构如下:#!/bin/bash#Thisisacommentecho"Hello,World!"在这个示例中,#!/......
  • 学习笔记3
    第10章sh编程——教材知识点归纳这一章课本为我们介绍的是sh编程内容,sh是一种脚本,是一种可以实现在linux中批量执行命令的文件。10.1~10.2sh脚本、sh脚本和C程序sh是Linux下进行批处理的脚本,我觉得它类似于windows下的bat脚本。可见sh脚本的逻辑和C语言等程序设计语言有很多......
  • 学习笔记3
    知识点归纳无论是Python、C、Java还是其他编程语言,程序设计语言通常都有一些共同的必备要素和技能。这些要素和技能在shell脚本中也可以找到对应,尽管shell脚本是一种脚本语言,与通用编程语言有些不同,但也具备类似的元素和技能。以下是一些必备的要素和技能:语法编写规范的代码:......
  • 学习笔记3
    知识点归纳一门程序设计语言的必备要素和技能可以总结为以下几点:语法:掌握语言的基本语法规则,包括变量的声明和赋值、控制结构(条件语句、循环语句等)、函数和类的定义等。数据类型:了解语言提供的不同数据类型,如整数、浮点数、字符串、数组、列表、字典等,并能灵活地运用它们。......
  • 学习笔记三
    一、任务详情自学教材第10章,提交学习笔记(10分)大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如何呈现出来的?知识点归纳以及自己最有收获的内容(3分)问题与解决思路(2分)实践内容与截图,代码链接(3分)...(知......
  • 学习笔记3
    第十章sh编程1.一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如何呈现出来的?-要素:数据类型、常量、变量、运算符、表达式、标识符、关键字、数组、基本控制结构、函数、输入和输出、解释器和编译器-技能:数据结构分析和设计算法分析和设计系统......
  • 《信息安全系统设计与实现》第三周学习笔记
    《信息安全系统设计与实现》第三周学习笔记第十章sh编程sh脚本sh脚本是一个包含sh语句的文本文件,命令行解释程序sh要执行该语句。例如创建一个文本文件mysh,包含:#!/bin/bash#commentlineechohello用chmod+xmysh使其可执行sh脚本与C程序sh是一个解释......
  • x86汇编学习
    sal为算术左移,保持符号位不变。shl为逻辑左移,为无符号左移,最高位直接被次高位覆盖。对应的右移分别为sar,shr。参考[https://blog.csdn.net/deniece1/article/details/](https://blog.csdn.net/deniece1/article/details/103274744#汇编语言中sal(算术左移指令)和shl(逻辑左移指......
  • Oracle process/session/cursor/tx/tm的简单学习
    Oracleprocess/session/cursor/tx/tm的简单学习Oracle的部署模式Oracle安装时有专用模式和共享模式的区别共享模式(Sharedmode):在共享模式下,会话可以同时读取数据库的数据,多个会话可以并发地进行读取操作。这意味着多个会话可以共享相同的数据快照,并且彼此之间不会阻塞。......
  • 学习笔记1
    知识点ubuntulinux的使用unix/linux常用命令ls:lsdirname:列出CWD或目录的内容cddirname:更改目录pwd:打印CWD的绝对路径名touchfilename:更改文件名时间戳(如果文件不存在,则创建文件)catfilename:显示文件内容cpsrcdest:复制文件mvsrcdest:移动或重命名......