Shell编程
文章平均质量分 87
dingdingfish
能将忙事成闲事 不薄今人爱古人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Bash学习 - 第10章:Installing Bash
本文为的读书笔记。本章提供了在各种支持平台上安装 Bash 的基本说明。该发行版支持 GNU 操作系统、几乎所有版本的 Unix 以及一些非 Unix 系统,如 BeOS 和 Interix。对于 Windows 平台,也存在其他独立的移植版本。原创 2026-02-21 08:00:00 · 859 阅读 · 0 评论 -
Bash学习 - 第9章:Using History Interactively
本文为的读书笔记。本章介绍了如何从用户的角度交互式地使用 GNU 历史库。它应被视为用户指南。有关在其他程序中使用 GNU 历史库的信息,请参见 GNU Readline 库手册。原创 2026-02-20 08:15:00 · 1338 阅读 · 0 评论 -
Bash学习 - 第8章:Command Line Editing,第6-8节:Programmable Completion
本文为的读书笔记。原创 2026-02-20 08:00:00 · 1329 阅读 · 0 评论 -
Bash学习 - 第8章:Command Line Editing,第4-5节:Bindable Readline Commands
本文为的读书笔记。💡 由于 8.5 Readline vi Mode 内容极少,因此也包含在本篇笔记中。本节介绍可能绑定到按键序列的 Readline 命令。您可以通过执行 bind -P 列出您的按键绑定,或者为了更简洁的格式,适合 inputrc 文件的,可以使用 bind -p。(参见。)没有附带按键序列的命令默认是不绑定的。在以下描述中,point 指当前光标位置,mark 指通过 set-mark 命令保存的光标位置。point 和 mark 之间的文本称为区域。原创 2026-02-19 08:15:00 · 762 阅读 · 0 评论 -
Bash学习 - 第8章:Command Line Editing,第3节:Readline Init File
本文为的读书笔记。完整的笔记目录参见。虽然 Readline 库默认自带一组类似 Emacs 的键绑定,但也可以使用不同的一组键绑定。任何用户都可以通过在 inputrc 文件中放置命令来自定义使用 Readline 的程序,通常该文件位于用户的主目录中。该文件的名称取自 shell 变量 INPUTRC 的值。如果该变量未设置,则默认值为 ~/.inputrc。如果该文件不存在或无法读取,Readline 会查找 /etc/inputrc。原创 2026-02-19 08:00:00 · 613 阅读 · 0 评论 -
Bash学习 - 第7章:Job Control
本文为的读书笔记。本章讨论什么是作业控制,它是如何工作的,以及 Bash 如何让你访问其功能。原创 2026-02-18 08:00:00 · 1745 阅读 · 0 评论 -
Bash学习 - 第8章:Command Line Editing,第1-2节:Intro & Readline Interaction
本文为和 第2节的读书笔记。完整的笔记目录参见。本章描述了 GNU 命令行编辑界面的基本功能。命令行编辑由 Readline 库提供,该库被多个不同的程序使用,包括 Bash。在使用交互式 shell 时,命令行编辑默认是启用的,除非在启动 shell 时提供了 --noediting 选项。在使用 read 内置命令的 -e 选项时,也会使用命令行编辑(参见默认情况下,命令行编辑命令类似于 Emacs;也提供了 vi 风格的命令行编辑界面。原创 2026-02-18 08:15:00 · 1522 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第12节:Shell Compatibility Mode
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-17 08:15:00 · 665 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第11节:Bash and POSIX
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-17 08:00:00 · 1342 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第10节:The Restricted Shell
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-16 08:15:00 · 779 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第9节:Controlling the Prompt
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-16 08:00:00 · 1090 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第8节:The Directory Stack
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-15 08:15:00 · 667 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第7节:Arrays
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-15 08:00:00 · 720 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第6节:Aliases
本文为的读书笔记。原创 2026-02-14 08:15:00 · 1353 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第5节:Shell Arithmetic
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-14 08:00:00 · 763 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第4节:Bash Conditional Expressions
如果一个原始命令的文件参数是 /dev/stdin、/dev/stdout 或 /dev/stderr,Bash 会分别检查文件描述符 0、1 或 2。如果 varname 是一个关联数组变量名,并用 ‘@’ 或 ‘*’ 下标,这在该键对应的元素已设置时返回真。如果 file1 比 file2 新(根据修改日期),或者如果 file1 存在而 file2 不存在,则为 true。如果 file1 比 file2 旧,或者如果 file2 存在而 file1 不存在,则为 true。当字符串相等时为真。原创 2026-02-13 08:15:00 · 770 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第3节:Interactive Shells
本文为第3节:[Interactive Shells](https://www.gnu.org/software/bash/manual/bash.html#Interactive-Shells 的读书笔记。完整的笔记目录参见。原创 2026-02-13 08:00:00 · 1561 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第2节:Bash Startup Files
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-12 08:15:00 · 986 阅读 · 0 评论 -
Bash学习 - 第6章:Bash Features,第1节:Invoking Bash
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-12 08:00:00 · 1223 阅读 · 0 评论 -
Bash学习 - 第5章:Shell Variables
(展开后)。它还会被设置为用于调用每个执行命令的完整路径名,并放入导出到该命令的环境中。检查邮件时,原创 2026-02-11 08:15:00 · 993 阅读 · 0 评论 -
Bash学习 - 第4章:Shell Builtin Commands,第3节:Modifying Shell Behavior
本文为的读书笔记。注:4.4节 Special Builtins 比较短,也放在本笔记中。原创 2026-02-11 08:00:00 · 989 阅读 · 0 评论 -
Bash学习 - 第4章:Shell Builtin Commands,第2节:Bash Builtin Commands
软限制可以增加到硬限制的值。从标准输入读取一行,或从作为 -u 选项参数提供的文件描述符 fd 读取一行,将其按照上面“单词拆分”中描述的方法拆分成单词,并将第一个单词赋值给第一个名称,第二个单词赋值给第二个名称,依此类推。返回状态为零,除非遇到无效选项、尝试使用 ‘-f foo=bar’ 定义函数、尝试为只读变量赋值、尝试在不使用复合赋值语法(参见数组)的情况下为数组变量赋值、名称不是有效的 shell 变量名、尝试关闭只读变量的只读状态、尝试关闭数组变量的数组状态,或尝试使用 -f 显示不存在的函数。原创 2026-02-10 08:15:00 · 759 阅读 · 0 评论 -
Bash学习 - 第4章:Shell Builtin Commands,第1节:Bourne Shell Builtins
如果失败的命令是紧随 until 或 while 保留字之后的命令列表的一部分,是 if 或 elif 保留字之后测试的一部分,是 && 或 || 列表中执行的命令(除了最后的 && 或 || 后的命令)、管道中除了最后一个的任何命令(取决于 pipefail shell 选项的状态)、或者命令的返回状态被!移除每个变量或函数名。每次调用时,getopts 会将下一个选项放入 shell 变量 name 中,如果 name 不存在,则会初始化它,同时将下一个要处理的参数的索引放入变量 OPTIND 中。原创 2026-02-10 08:00:00 · 764 阅读 · 0 评论 -
Bash学习 - 第3章:Basic Shell Features,第8节:Shell Scripts
传递给解释器的参数包括位于脚本文件第一行解释器名称之后的一项或多项可选参数,然后是脚本文件的名称,最后是传递给脚本的其余参数。当 Bash 运行一个 shell 脚本时,它将特殊参数 0 设置为文件名,而不是 shell 的名称,并且位置参数设置为剩余的参数(如果提供了的话)。这个子 shell 会重新初始化自身,所以效果就像是调用了一个新的 shell 来解释脚本,唯一的例外是父 shell 记住的命令位置(参见。,并且根据操作系统的不同,还可以指定该解释器的一个或多个可选参数。它判断为二进制的文件。原创 2026-02-09 08:15:00 · 473 阅读 · 0 评论 -
Bash学习 - 第3章:Basic Shell Features,第7节:Executing Commands
本文为的读书笔记。原创 2026-02-09 08:00:00 · 962 阅读 · 0 评论 -
Bash学习 - 第3章:Basic Shell Features,第6节:Redirections
本文为的读书笔记。在命令执行之前,可以使用由 shell 解释的特殊符号来重定向其输入和输出。重定向允许命令的文件句柄被复制、打开、关闭、指向不同的文件,并且可以改变命令读取和写入的文件。当与 exec 内建命令一起使用时,重定向会修改当前 shell 执行环境中的文件句柄。以下重定向操作符可以出现在简单命令之前、命令中任何位置,或命令之后。重定向会按照出现的顺序处理。每个可能由文件描述符号前置的重定向,也可以由形式为 {varname} 的单词前置。原创 2026-02-08 08:15:00 · 621 阅读 · 0 评论 -
Bash学习 - 第3章:Basic Shell Features,第5节:Shell Expansions
本文为的读书笔记。扩展是在命令行拆分为标记后执行的。扩展的顺序是:大括号扩展;波浪号扩展、参数和变量扩展、算术扩展以及命令替换(按从左到右的顺序进行);单词拆分;文件名扩展;以及引号去除。在支持的系统上,还有一种额外的扩展可用:进程替换。它与波浪号扩展、参数、变量、算术扩展及命令替换同时进行。引号去除总是最后进行。它会去掉原始单词中存在的引号字符,而不是其他扩展产生的引号字符,除非这些字符本身已经被引用。更多信息请参见引号去除。只有大括号扩展、单词拆分和文件名扩展可以扩展后的单词数量;原创 2026-02-08 08:00:00 · 1847 阅读 · 0 评论 -
Bash学习 - 第3章:Basic Shell Features,第4节:Shell Parameters
本文为的读书笔记。完整的笔记目录参见。参数(parameter)是存储数值的实体。它可以是一个名称、一个数字或下面列出的一些特殊字符之一。变量(variable)是通过名称表示的参数。变量具有一个值和零个或多个属性。属性是通过使用 declare 内置命令分配的(参见 Bash 内置命令中 declare 内置命令的说明)。export 和 readonly 内置命令分配特定属性。💡 variable和parameter的区别何在?其实从以上的描述和本章的结构即可知道。原创 2026-02-07 08:15:00 · 1400 阅读 · 0 评论 -
Bash学习 - 第3章:Basic Shell Features,第3节:Shell Functions
在函数与其调用者之间,shell 执行环境的所有其他方面都是相同的,但有以下例外:DEBUG 和 RETURN 捕捉不会被继承,除非函数已使用 declare 内建命令赋予 trace 属性,或者使用 set 内建命令启用了 -o functrace 选项(在这种情况下,所有函数都会继承 DEBUG 和 RETURN 捕捉);例如,在函数中声明的局部变量会隐藏先前作用域中声明的同名变量,包括全局变量:引用和赋值操作都会针对局部变量进行,而不会修改先前作用域中的变量。执行函数时,函数的退出状态是函数体中。原创 2026-02-07 08:00:00 · 1392 阅读 · 0 评论 -
Bash学习 - 第3章:Basic Shell Features,第2节:Shell Commands
(或换行)是必须的。除了创建子 shell 外,这两种结构之间还有一个微妙的历史差异。原创 2026-02-06 08:15:00 · 735 阅读 · 0 评论 -
Bash学习 - 第3章:Basic Shell Features,第1节:Shell Syntax
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-06 08:00:00 · 654 阅读 · 0 评论 -
Bash 学习 - 第2章:Definitions
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-05 12:59:22 · 622 阅读 · 0 评论 -
Bash 学习 - 第1章:Introduction
本文为的读书笔记。完整的笔记目录参见。原创 2026-02-05 12:59:05 · 416 阅读 · 0 评论 -
Bash学习笔记总目录
研究的方法必须试行之后,方能真知。抽象的理论,言者虽属谆谆,听者终属隔膜,无已,则看前人所制成的作品,反而觉得亲切。Bash是日常工作中用得较多的工具,之前也看过基本shell编程的书,或零星的查看帮助和文档。但一直想系统的学一下,Bash基础和核心的东西不多,但很重要,因此决定将。当然,手册中有时非常重要的概念就一两句话,其实是比较抽象难懂的,这时就必须结合一些示例来理解,因此也寻找和自己设计了一些示例。系统的学习一遍后,感觉还是很有收获的,虽然笔记主要是给自己看的,也分享出来希望对大家有所帮助。原创 2026-02-04 19:22:19 · 1141 阅读 · 0 评论 -
GNU Parallel 学习 - 第10章:Miscellaneous features
本文为第9章:Miscellaneous features 的读书笔记。GNU Parallel 的一些选项与六个主要领域无关。原创 2026-02-04 08:45:00 · 691 阅读 · 0 评论 -
GNU Parallel 学习 - 第9章:Pipe mode
本文为第9章:Pipe mode 的读书笔记。GNU Parallel 可以通过管道将标准输入(stdin)传递给命令,而不是在命令模板中放入值。–pipe 功能会将 GNU Parallel 设置为不同的模式:它不再将标准输入(stdin)上的数据视为命令的参数,而是将数据发送到命令的标准输入(stdin)。其中 command_B 运行缓慢,而你希望通过并行来加速command_B。你将需要第三章中的测试文件。原创 2026-02-03 09:00:00 · 714 阅读 · 0 评论 -
GNU Parallel 学习 - 第8章:Remote execution
本文为第8章:Remote execution 的读书笔记。GNU Parallel 可以在远程服务器上运行任务。它使用 ssh 与远程机器通信。原创 2026-02-03 08:45:00 · 551 阅读 · 0 评论 -
GNU Parallel 学习 - 第7章:Control the execution
本文为第7章:Control the execution 的读书笔记。GNU Parallel 会为,并在所有作业完成后结束。你将需要第 3 章中的测试文件。原创 2026-02-02 09:00:00 · 712 阅读 · 0 评论 -
GNU Parallel 学习 - 第6章:Control the output
本文为第6章:Control the output 的读书笔记。(ง"-")ง 这个符号还挺可爱的,其中ง是泰文,蛇的意思。GNU Parallel 通常会在作业完成时打印其输出。原创 2026-02-02 08:45:00 · 765 阅读 · 0 评论 -
GNU Parallel 学习 - 第5章:Build the command line
本文为第5章:Build the command line 的读书笔记。GNU Parallel 通常根据模板运行命令,并将输入源中的值插入到模板中。你将需要第 3 章的测试文件。原创 2026-02-01 09:00:00 · 934 阅读 · 0 评论
分享