首页 > 其他分享 >学习笔记3 第十章的自学归纳

学习笔记3 第十章的自学归纳

时间:2023-09-24 21:23:06浏览次数:27  
标签:脚本 语句 Shell 第十章 笔记 命令 sh 参数 自学

第十章 sh编程

10.1 sh脚本

1.可执行性:Shell 脚本需要设置可执行权限,使用 chmod +x script.sh 命令添加执行权限,然后可以通过 ./script.sh 执行脚本。
2.解释器指定:在脚本的第一行使用 #!/bin/sh 或 #!/bin/bash 来指定解释器。sh 是 Bourne Shell 的标准解释器,而 bash 是 Bourne Again Shell 的增强版。
3.变量和赋值:Shell 脚本中可以使用变量来存储和操作数据。变量赋值时,不需要显式声明类型,并使用 $ 前缀引用变量。例如:name="John" 和 echo $name。
4.命令执行:Shell 脚本可以执行命令并获取其输出结果,使用反引号 `` 或 $() 进行命令替换。例如:date、result=$(ls)。
5.条件判断:Shell 脚本可以使用条件语句进行逻辑判断。常用的条件语句包括 if、elif、else。
6.循环结构:Shell 脚本支持多种循环结构,如 for、while 和 until。
7.输入输出重定向:Shell 脚本可以通过输入输出重定向来处理标准输入、输出和错误输出。使用 <、>、>> 符号来指定重定向的方式。

10.2 sh脚本与C程序

sh脚本与C语言有一些相似之处,但它们在根本上是不同的。主要可以以它们的语法形式和用法
1.结构:Shell 脚本是一系列命令的集合,以文本形式存储在文件中。它们按顺序执行,逐行解释。C 程序则是通过编译器将源代码转换为可执行二进制文件,该文件包含了程序的指令和数据。
2.语法:Shell 脚本是一种解释型脚本语言,使用简单的语法和命令来控制系统的操作。它通常用于自动化任务、批处理和系统脚本等。C 语言是一种编译型语言,使用复杂的语法和控制结构来编写高效的系统软件和应用程序。

10.3 命令行参数

1.对于 Shell 脚本:
在脚本中,可以使用特殊变量 $0 来获取脚本名,$1、$2、$3 等依次表示第一个、第二个、第三个参数,以此类推。
使用 $# 可以获取传递给脚本的参数个数。
如果参数中包含空格或特殊字符,需要使用引号来引用参数。例如:./script.sh "Hello, World!".
2.对于 C 程序:
在 main 函数的参数列表中,argc 表示参数个数,argv 是一个指针数组,每个元素指向具体的参数字符串。
argv[0] 表示程序的名称,argv[1]、argv[2]、argv[3] 等表示具体的命令行参数。
通过遍历 argc 和 argv 数组,可以获取和处理命令行参数的值。

10.4 sh变量

内置变量
PATH
HOME
TERM

10.5 sh中的引导

引导通常以 #! 开头,后面跟着解释器的路径和参数。
bash:#!/bin/bash
sh:#!/bin/sh 或 #!/usr/bin/env sh
zsh:#!/bin/zsh
csh:#!/bin/csh 或 #!/bin/tcsh
设置了引导后,在执行脚本时,操作系统会根据引导找到对应的解释器,然后使用解释器来解释和执行脚本中的命令。
引导还可以带有参数,用于在执行脚本时传递一些额外的选项或参数给解释器。例如,如果在使用 bash 解释器执行脚本时需要使用 POSIX 模式,则可以将引导设置为 #!/bin/bash --posix。

10.6 sh语句

sh语句包括所有Unix/Linux命令,以及可能的I/O重定向

10.7 sh命令

1.内置命令、
.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的输入行。
2.Linux命令
echo命令:用于在控制台输出文本或变量值。
expr命令:是一个用于数值表达式求值的实用工具
管道命令:在sh脚本中经常使用管道作为过滤器
ps -ax | grep httpd
cat file | grep word
实用命令:
axk:数据处理程序。
cmp:比较两个文件。
comm:选择两个排序文件共有的行。
grep:匹配一系列文件的模式。
diff:找出两个文件的差异。
join:通过使用相同的键来连接记录以比较两个文件。
sed:流或行编辑命令。
sort:排序或合并文件。
tail:打印某个文件的最后口行。
tr:一对一宇符翻译。
uniq:从文件中删除连续重复行。

10.8 命令替换

命令替换可以非常方便地实现一些复杂的功能和操作,如动态获取参数或配置信息、生成文件名称

10.9 sh控制语句

1.if-else-fi语句
2.for语句
3.while语句
4.until-do语句
5.case语句
6.continue和break语句

10.10 I/O重定向

I/O 重定向是 Shell 中常用的一种技术,它允许将命令的输入和输出重定向到文件或其他设备上。I/O 重定向使用特殊的符号来指示输入和输出的来源/去向。

10.11 嵌入文档

在一个文档中插入另一个文档或文件的内容。
HTML 中的 iframe 标签
Word 中的插入对象功能
LaTeX 中的 includegraphics 命令
Python 中的 import 语句

10.12 sh函数

sh函数定义:
func()
{
# function code
}

10.13 sh中的通配符

通配符是一种特殊字符模式匹配的功能,用于匹配文件名或路径名。

星号(*):匹配任意长度的任意字符(包括空字符)。例如:
.txt:匹配所有以 .txt 结尾的文件。
file
:匹配所有以 file 开头的文件名。
问号(?):匹配单个任意字符。例如:
file?.txt:匹配类似 file1.txt、fileA.txt 等文件名。
方括号([]):匹配方括号中列出的字符之一。可以使用连字符(-)表示连续字符范围。例如:
[abc]:匹配 a、b 或 c 字符。
[0-9]:匹配任意一个数字字符。

10.14 命令分组

使用{}或()对命令进行分组

10.15 eval语句

eval函数会将字符串参数解析为有效的表达式,并返回表达式的结果。
在许多编程语言中,eval函数通常被用于动态执行代码,使程序能够在运行时根据需要生成和执行代码。

问题与解决思路

内置命令与Linux命令

苏格拉底挑战



标签:脚本,语句,Shell,第十章,笔记,命令,sh,参数,自学
From: https://www.cnblogs.com/889w/p/17726518.html

相关文章

  • 学习笔记3
    第10章sh编程——教材知识点归纳这一章课本为我们介绍的是sh编程内容,sh是一种脚本,是一种可以实现在linux中批量执行命令的文件。10.1~10.2sh脚本、sh脚本和C程序sh是Linux下进行批处理的脚本,我觉得它类似于windows下的bat脚本。可见sh脚本的逻辑和C语言等程序设计语言有很多......
  • 学习笔记3(第十章)
    一、知识点归纳1、本章的主要学习重点在本章节中,我们将深入探讨sh脚本的各个方面。首先,我们会了解sh脚本是什么,以及它与C语言在结构和功能上的主要区别。接下来,我们会详细学习如何编写sh脚本,其中包括变量的定义和使用、不同类型的语句结构、命令的执行、常规的系统命令以及命令......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》第三周学习笔记
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会......
  • 《信息安全系统设计与实现》第三周学习笔记
      一门程序设计语言有哪些必备的要素和技能:语法:掌握该语言的基本语法和规则,包括变量、数据类型、运算符、控制结构等。数据结构:了解该语言中常用的数据结构,如数组、链表、栈、队列、树、图等,以及它们的实现方法和性能分析。算法:了解常见的算法和设计模式,包括排序、搜索、......
  • 信息安全系统设计与实现学习笔记3
    信息安全系统设计与实现学习笔记3一、知识点归纳以及自己最有收获的内容知识点归纳程序设计语言的要素和技能包括语法、语义和语用。这在shell脚本中体现在各类命令中。语言基本成分包括数据成分、运算成分和控制成分。第10章sh编程sh脚本是包含sh语句的文本文件,由sh解释......
  • Nginx第四天学习笔记
    Nginx第四天学习笔记在经过了前几天的学习后,我们对Nginx已经有了一个基本的了解。今天我们将更深入地探讨Nginx的配置和优化。一、配置Nginx的配置文件位于/etc/nginx/nginx.conf。这个文件包含了Nginx服务器的主要配置信息,包括端口、域名、SSL证书等。以下是一个简单的配置示例:per......
  • 学习笔记(3)
    一、任务详情自学教材第10章,提交学习笔记(10分)大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的?二、知识点归纳10.1sh脚本sh脚本是一个包含sh语句的文本文件,命令解释程序sh要执行该语句。sh脚本通......
  • 第三周Linux教材第十章学习笔记——sh编程
    第十章——sh编程sh脚本1.sh脚本是一种为shell编写的脚本程序。这个程序用纯文本文件,将一些shell的语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重定向等功能。第一行必须为#!/bin/sh2.命令行使用chmod+x <filename>编译后才能用./filename来运行。3.......
  • 2023-2024-1 20211306 密码系统设计与实现课程学习笔记3
    20211306密码系统设计与实现课程学习笔记3学习任务详情自学教材第10章,提交学习笔记大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的?知识点归纳以及自己最有收获的内容,选择至少2个知识点利用......
  • 学习笔记3
    第10章sh编程一、知识点总结1.sh脚本sh脚本是一个包含sh语句的文本文件,命令解释程序sh要执行该语句。实践过程:2.sh脚本与C程序sh是一个解释程序,逐行读取sh脚本文件并直接执行这些行;C程序必须先编译链接到一个二进制可执行文件在sh脚本中,每个变量都是字符串;在C程序......