Bash 学习 - 第1章:Introduction

本文为 Bash Reference Manual第1章:Introduction 的读书笔记。

完整的笔记目录参见Bash学习笔记总目录

1 Introduction

1.1 What is Bash?

Bash 是 GNU 操作系统的 shell,即命令语言解释器。

Bash 与 sh 基本兼容,并结合了 Korn shell ksh 和 C shell csh 的有用功能。

Bash是GNU 操作系统的默认 shell,具有高可移植性

1.2 What is a shell?

本质上shell 只是一个执行命令的宏处理器。"宏处理器"是指将文本和符号展开以创建更大表达式的功能。

Unix shell 既是命令解释器 ,又是编程语言。作为命令解释器,shell 为丰富的 GNU 实用程序集提供了用户界面。编程语言功能允许将这些实用程序组合在一起。

Shell 可以以交互或非交互方式(即Shell脚本)使用。

Shell 允许同步和异步执行(即后台执行) GNU 命令。

Shell 还提供了一小部分内置命令 (builtins),用于实现通过单独的实用程序无法或不方便获得的功能。

💡 compgen -b 可列出所有的 builtin,-b 是 -A builtin的缩写。

bash 复制代码
$ compgen -b|wc -l
61

$ compgen -b
.
:
[
alias
bg
bind
break
...

compgen 表示complete generation,他还有很多其他的用法,试一下 compgen -k。

💡 判断某命令是否为builtin

bash 复制代码
$ type compgen
compgen is a shell builtin

$ type do
do is a shell keyword

虽然执行命令是必不可少的,但 shell 的大部分功能(和复杂性)都归功于其嵌入式编程语言。与任何高级语言一样,shell 提供变量、流控制构造、引用和函数。

Shell 提供专门用于交互式使用的功能,而不是增强编程语言。这些交互式功能包括作业控制、命令行编辑、命令历史记录和别名。

相关推荐
scx_link13 天前
通过git bash在本地创建分支,并推送到远程仓库中
开发语言·git·bash
江华森13 天前
高级 Bash 脚本编程指南 — 实战教程
开发语言·bash
承渊政道13 天前
【MySQL数据库学习】(MySQL表的内外连接)
数据库·学习·mysql·leetcode·bash·数据库开发·数据库系统
zzzzzz31014 天前
NVIDIA 开源 SkillSpector:AI Agent 技能安全扫描器,你的 Agent 装了个定时炸弹?
机器学习·shell·cto
hyunbar14 天前
配置 Cloudflare Tunnel:把 Mac 上的 Web 服务变成安全域名
网络协议·https·bash
承渊政道14 天前
【MySQL数据库学习】(MySQL复合查询)
数据库·学习·mysql·bash·database·数据库开发·数据库架构
ScilogyHunter16 天前
Zephyr Shell完全指南
shell·zephyr
zh路西法16 天前
【tmux入门】终端分屏、SSH远程守护与一键启动脚本
linux·运维·ssh·bash
承渊政道16 天前
【MySQL数据库学习】(MySQL内置函数)
数据库·学习·mysql·ubuntu·bash·数据库开发·数据库系统
七夜zippoe16 天前
OpenClaw 节点命令执行:远程Shell与系统操作实战
github·shell·openclaw·nodes·系统操作