bash 5.2中文修订1

Bash Features(专题)

本文简要描述了 Bash shell(版本 5.2,2022 年 9 月 19 日)中的功能。 Bash 主页是 http://www.gnu.org/software/bash/ 。
这是 5.2 版,最后更新于 2022 年 9 月 19 日,GNU Bash 参考手册,适用于 Bash ,版本 5.2。
Bash 包含出现在其他流行 shell 中的功能,以及一些仅出现在 Bash 中的功能。 Bash 引用的一些 shell 功能, Bourne Shell (sh)、Korn shell (ksh)和 C shell(csh及其扩展版本,tcsh)。以下菜单将功能分为几类,注明哪些功能是受其他 shell 启发的,哪些是 Bash 特有的。
本手册旨在简要介绍 Bash 的功能。 Bash 手册页应用作 shell 行为的权威参考。

第一部分 Introduction(介绍

什么是bash?

Bash 是 GNU 操作系统的 shell 或命令语言解释器。该名称是 “Bourne-Again Shell”的缩写,这是对 Stephen Bourne 的双关语,Stephen Bourne 是当前 的最早版本的作者,Unix shell sh出现在 Unix 的第七版贝尔实验室研究版本中。
Bash 在很大程度上与 sh 兼容,并融合了 Korn shell ksh 和 C shell csh 的有用功能。它力求遵循 IEEE POSIX 规范(IEEE 标准 1003.1)的 《Shell 和实用工具》规范。它在交互和编程使用方面比 sh 提供了更强的功能。
虽然 GNU 操作系统提供了其他 shell,包括 csh 版本,但 Bash 是默认 shell。与其他 GNU 软件一样, Bash 非常易于移植。目前,它几乎可以在 Unix 的每个版本和一些其他操作系统上运行,在MS-DOS、OS/2 和 Windows 平台都有可以运行的移植版本。

什么是shell?

从本质上讲,shell 只是一个执行命令的宏处理器。术语“宏处理器”是指扩展文本和符号以创建更大表达式的功能。
Unix shell 既是命令解释器又是编程语言。作为命令解释器,shell 为丰富的 GNU 实用工具提供了用户界面。编程语言功能允许组合这些实用工具。可以创建包含命令的文件,并将其本身变成命令。这些新命令与目录中的系统命令具有相同的地位,例如/bin,允许用户或组建立自定义环境来自动执行其常见任务。
Shell 可以交互式或非交互式地使用。在交互模式下,它们接受从键盘输入的输入。当非交互执行时,shell 执行从文件读取的命令。
shell 允许同步和异步执行 GNU 命令。shell 在接受更多输入之前等待同步命令完成;当 shell 读取和执行其他命令时,异步命令继续与 shell 并行执行。重定向结构允许对这些命令的输入和输出进行精准的控制。此外,shell 允许控制命令环境的内容。
Shell 还提供一组内置命令 (builtins),实现通过单独的实用程序不可能或不方便获得的功能。例如, cd 、 break 、 continue 和 exec 是无法在 shell 外部实现,因为它们直接操作 shell 本身。 history 、 getopts 、 kill 或 pwd 内置命令等可以在单独的实用程序中实现,但它们作为内置命令使用更方便。所有 shell 内置函数将在后续部分中进行描述。
虽然执行命令至关重要,但 shell 强大(灵活)之处在于其内置了编程语言。与任何高级语言一样,shell 提供变量、流程控制结构、引用和函数。
Shell 提供专门用于交互使用的功能,这些功能不是用来增强shell编程功能。这些交互功能包括作业控制、命令行编辑、命令历史记录和别名。本手册中将一一描述了这些功能。

第二部分 Definitions(定义、名词解释)

本手册的其余部分均使用这些定义。

POSIX UNIX 可移植标准
基于 Unix 的可移植性(开放系统)标准系列。 Bash 主要涉及 POSIX 1003.1 标
准的《Shell 和实用工具》部分。

blank 空白符
空格或制表符。

builtin 内建命令
shell 本身内部实现的命令,而不是由文件系统中某处的可执行程序实现。

control operator 控制运算符
执行控制功能的 标记(token) 。它是 newline 或以下之一:‘||’, ‘&&’, ‘&’, ‘;’, ‘;;’, ‘;&’, ‘;;&’, ‘|’, ‘|&’, ‘(’, 或者 ')’.

exit status 返回值
命令返回给调用者的值。该值限制为 8 位(bit位,二进制位),因此最大值为 255。

field 字段
一种文本单元,是 shell 扩展之一的结果。扩展后,执行命令时,结果字段将用作命令名称和参数。

filename 文件名
用于标识文件的字符串。

job 作业
包含管道的一组进程以及从该管道派生的所有进程,它们都位于同一进程组中。

job control 作业管理
一种机制,用户可以通过该机制有选择地停止(挂起)和重新启动(恢复)进程的执行。

metacharacter 元字符
当不加引号时,用于分隔单词的字符。元字符是 space 、 tab 、 newline 或以下字符之一: ‘|’, ‘&’, ‘;’, ‘(’, ‘)’, ‘<’, 或者 '>’.

name 名字
word 仅由字母、数字和下划线组成,并且以字母或下划线开头。 Name 用作 shell 变量和函数名称。也称为 identifier 。

operator 运算符
控制运算符(control operator) 或 重定向运算符(redirection operator) 。有关重定向运算符的列表,请参阅 Redirections 。运算符至少包含一个未加引号的 metacharacter 。

process group 进程组
每个具有相同进程组 ID 的相关进程的集合。

process group ID 进程组ID
代表 process group 在其生命周期内的唯一标识符。

reserved word 保留字
对shell有特殊意义的 word 。大多数保留字用于 shell 分支、循环控制结构,例如 for 和 while 。

return status 返回状态
退出状态(exit status) 的同义词。

signal 信号
一种机制,内核可以通过该机制向进程通知系统中发生的事件。

special builtin 特殊内部命令
已被 POSIX 标准归类为特殊命令的 shell 内置命令。

token 标记
被 shell 视为单个单元的字符序列。它是单词(word)或运算符(operator)。

word 单词
被 shell 视为一个单元的字符序列。单词不得包含未加引号的元字符(metacharacters)作命令名称和参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/646386.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯备战——4.继电器/蜂鸣器

1.分析原理图 最好自己先去查查138以及ULN2003的使用方法&#xff0c;我这里直接讲思路。 由上图我们可以看到如果138输入ABC101,则输出Y50,此时若WR通过跳线帽接地则Y5C1 &#xff0c;于是573(U9)处于输出跟随输入P0状态&#xff0c;此时若P061&#xff0c;则573输出Q71&am…

CPC认证 TEMU出口儿童便携式游泳池ASTM F2666测试标准

便携式游泳池是由PVC加网布制成供儿童和家庭洗澡娱乐的便携式游泳池。简介它和国内的充气水池区别在于&#xff0c;充气水池主要是供儿童钓鱼或摸鱼娱乐而用。所以&#xff0c;业内又叫其为摸鱼池。儿童充气游泳池上架亚马逊出口需要办理CPC认证ASTM F2666标准测试。咨询看首页…

Vue好看的组件库:Element

文章目录 1、什么是Element2、Element快速入门3、Element布局3.1、 Layout 局部3.2、容器布局 1、什么是Element Element&#xff1a;是饿了么公司前端开发团队提供的一套基于 Vue 的网站组件库&#xff0c;用于快速构建网页 Element 提供了很多组件&#xff08;组成网页的部件…

怎么隐藏磁盘或U盘分区?

隐藏分区需求确实存在&#xff01; 某用户将自己的U盘驱动器分为两个分区&#xff0c;一个是可引导的活动主分区&#xff0c;另一个分区包含服务包和其他用于技术支持的内容&#xff0c;他一直被以下两个问题所困扰&#xff1a; 是否可以隐藏U盘分区&#xff1f; 如果想更改内…

10.docker卷

Docker Volume ​Docker Volume 是 docker的数据卷&#xff0c;用于保持数据持久化。MySQL运行在Docker容器中时&#xff0c;一般将数据通过Docker Volume保存在主机上&#xff0c;即使删除MySQL容器&#xff0c;数据不会丢失。 MySQL Dockerfile 找到docker hub上的mysql 5…

QEMU搭建arm虚拟机开发环境

获取QEMU代码 git clone https://gitlab.com/qemu-project/qemu.git 切换对应的工程分支 使用git指令切换到对应的分支上&#xff0c;我这里使用的是stable-4.0的分支 git checkout -b stable-4.0 remotes/origin/stable-4.0 配置&编译 在工程的根目录下执行 ./conf…

关于Spring和缓存雪崩、穿透、击穿、预热的最常见的十道面试题

面试题一&#xff1a;什么是缓存雪崩&#xff1f;如何解决缓存雪崩&#xff1f; 缓存雪崩指的是在短时间内&#xff0c;有大量的请求直接查询术后句酷&#xff0c;从而对数据库造成大量的压力&#xff0c;严重情况下可能导致数据库宕机的情况叫做缓存雪崩 我们可以看一下正常…

【CANoe使用大全】——DBC数据库制作

文章目录 1.DBC数据库选择1.1.DBC模板选择1.3. 新建报文1.4. 新建信号1.5.数值表建立 2. DBC导入 1.DBC数据库选择 首先找到DBC编辑器入口 1.1.DBC模板选择 举例说明&#xff1a; 新建选择CANFD的模板 1.3. 新建报文 注意上图中报文周期“Cycle Time”处于不可编辑状态…

初探二分法

推荐阅读 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;一&#xff09; 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;二&#xff09; 文章目录 推荐阅读题目解法一解法二 题目 题目&#xff1a;给定一个 n 个元素有序的&#xff0…

C语言常见面试题:什么是条件编译,条件编译的作用是什么?

条件编译是一种编程技术&#xff0c;它允许程序员根据不同的条件来选择性地编译源代码中的部分内容。条件编译在编译过程中起到了非常重要的作用&#xff0c;它可以根据不同的条件来生成不同的代码&#xff0c;从而实现更加灵活和高效的代码生成。 条件编译的作用主要有以下几…

kotlin中的初始化问题纪录

1. init 代码块的顺序问题 init代码块和成员变量实质上是按先后顺序执行的。若果init{} 中有成员变量使用。要把成员变量放到代码块之前。 2. init代码块之中的函数问题 下面是一段错误的代码&#xff1a; class mkotlin{val info:Stringinit {getInfoMethod()info "adad…

BGP路由反射-数据中心IDC项目经验

一、背景描述 R1,R2,R3在AS200区域内&#xff0c;R1和R2,R1和R3建立OSPF&#xff0c;宣告接口互联. AS200区域内&#xff0c;R1和R2建立IBGP, R1和R3建立IBGP R2和R4建立EBGP, R3和R5建立EBGP。 网络拓扑&#xff1a; 二、故障现象 R1和R2可以收到来自AS100区域R4的E…

nsenter比docker exec更底层的命令

文章目录 nsenter介绍安装方法简单使用 nsenter介绍 nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。它位于util-linux包中。典型的用途就是进入容器的网络命令空间。相当多的容器为了轻量级&#xff0c;是不包含较为基础的命令的&#xff0c;比如说ip addr…

系统移植,GNU命令,Uboot移植

一.GNU命令 1、addr2line 把程序地址转换为文件名和行号 做调试 2、ar 建立&#xff0c;修改&#xff0c;提取归档文件 3、Id:GNU arm-none-linux-gnueabi-ld start.o main.o -Tmap.lds -o uart.elf 链接器 4、as 主要用来编译GNU编译器gcc输出的汇编文件&a…

‘HEAD‘ 是 HTTP 请求的一种方法

一、名词解释 ‘HEAD’ 是 HTTP 请求的一种方法&#xff0c;它与 ‘GET’ 方法类似&#xff0c;但有一些关键区别。 当你使用 ‘GET’ 请求时&#xff0c;服务器会返回请求的资源&#xff08;例如 HTML 页面或文件内容&#xff09;。而当你使用 ‘HEAD’ 请求时&#xff0c;服务…

嵌入式-stm32-江科大-EXTI外部中断

一&#xff1a;EXTI外部中断&#xff08;external interrupt&#xff09; 1.1 STM32 中断系统 中断是指在主程序运行过程中&#xff0c;出现了特定的中断触发条件&#xff08;中断源&#xff09;&#xff0c;使得CPU暂停当前的程序&#xff0c;转而去处理中断程序&#xff0c;…

【Rust】第六节:结构体

0 前言 结构体&#xff0c;struct&#xff0c;听到这个名字大家可能会感觉“哇&#xff01;好熟悉&#xff01;”&#xff0c;毕竟在大学时学习c/cpp的时候已经接触过很多次了&#xff0c;实际上也确实很类似&#xff0c;即使有些不同&#xff0c;比如“所有权系统”&#xff…

字符金字塔(C语言刷题)

个人博客主页&#xff1a;https://blog.csdn.net/2301_79293429?typeblog 专栏&#xff1a;https://blog.csdn.net/2301_79293429/category_12545690.html 题目描述 请打印输出一个字符金字塔&#xff0c;字符金字塔的特征请参考样例 输入描述: 输入一个字母&#xff0c;保…

5.6 误差相关统计与计算

文章目录 1、平均值2、首次作为参考基准3、绝对差值4、方差、均方差、CV值4.1 方差&#xff08;variance&#xff09;4.2 均方差、标准差&#xff08;Standard Deviation&#xff09;4.3 CV值 1、平均值 Excel 公式&#xff1a;AVERAGE(C4:C20) 2、首次作为参考基准 Excel 操作…

docker面试题(一)

问题1&#xff1a;Docker的工作原理是什么&#xff1f; 答案1&#xff1a;Docker利用Linux内核的容器化技术&#xff0c;如命名空间&#xff08;namespaces&#xff09;和控制&#xff08;cgroups&#xff09;&#xff0c;来实现应用程序的隔离和封装。它使用镜像作为构建和分…