gnu-bash#1 介绍
2015-08-21 22:50
309 查看
想试着翻译一些手册,就从bash开始吧。官方链接在这里
Bash高度兼容sh,并从ksh和csh中吸纳很多有用的特性。bash试图对IEEE POSIX Shell and Tools portion of the IEEE POSIX specification (IEEE Standard 1003.1) 标准作一个较好的实现。相比sh, 在交互性和编程特性上,bash做了很多功能上的改进。
尽管GNU OS也提供其他的shell,包括csh,但bash是默认的shell,和其他的GNU软件一样,bash有很好的可移植性。它几乎在所有的Unix系统以及其他一些操作系统上运行,包括 MS-DOS, OS/2, and Windows 平台.
shell既是一个命令解释器,也是一种编程语言。作为一个命令解释器,shell提供用户接口以便使用强大的GNU应用程序集。而作为编程语言,而它的语言特性允许这些程序得以组合。包含命令的文件可以被创建,而这些文件本身也可以成为命令。这些新的命令,和在类似/bin目录下的系统命令一样,允许用户和群组建立定制环境,来自动化完成他们的日常工作。
shell可以工作在交互模式和非交互模式下。在交互模式系下,shell接受键盘输入,在非交互模式下,shell执行从文件中读取的命令。
shell 允许GNU命令的执行,可以同步执也可以非同步执行。shell在接受新的输入前,必须等待同步命令执行完成。而异步命令将和shell自身并行执行。重定向指令允许我们对这些命令的输入输出进行细粒度的控制。而且shell还允许对命令的执行环境进行控制。
shell还提供一个较小的内建命令集合(builtins)。以完成一些不可能或者不方便通过独立组件完成的功能。比如cd,break,continue自己exec就不能再shell程序之外执行,因为他们直接对shell自身进行操作。而History,getopts,kill, pwd 这些内建命令是可以通过独立的程序来完成的,但是他们以内建命令使用起来会更方便。所有这些内建命令都会在后续的分节中描述。
执行命令是不可避免的,shell之所以强大或者说复杂,主要是由于它嵌入的编程语言。和所有的高级语言一样,shell提供变量,控制流,引用,以及函数。
shell也提供很多针对交互设计的功能,而不只是加强语言特性。这些交互特性包括job控制,命令行编辑,命令历史查看,以及别名机制。这些特性会在该手册中描述。
1.1 什么是bash
Bash是一种shell,或者说是一种针对GNU操作系统的命令解释器。名字本身是Bourne-Again SHell的首字母缩写,是对Bourne Shell的双关。Bourne Shell是当前Unix上shell的原型。Bourne Shell最早出现在贝尔实验室Unix的第七版。Bash高度兼容sh,并从ksh和csh中吸纳很多有用的特性。bash试图对IEEE POSIX Shell and Tools portion of the IEEE POSIX specification (IEEE Standard 1003.1) 标准作一个较好的实现。相比sh, 在交互性和编程特性上,bash做了很多功能上的改进。
尽管GNU OS也提供其他的shell,包括csh,但bash是默认的shell,和其他的GNU软件一样,bash有很好的可移植性。它几乎在所有的Unix系统以及其他一些操作系统上运行,包括 MS-DOS, OS/2, and Windows 平台.
1.2 什么shell
从根本上来说,shell可以简单认为是一个执行命令的宏处理器。macro这个术语本身已经体现了它的功能,把文本和符号扩展为更复杂的表达式。shell既是一个命令解释器,也是一种编程语言。作为一个命令解释器,shell提供用户接口以便使用强大的GNU应用程序集。而作为编程语言,而它的语言特性允许这些程序得以组合。包含命令的文件可以被创建,而这些文件本身也可以成为命令。这些新的命令,和在类似/bin目录下的系统命令一样,允许用户和群组建立定制环境,来自动化完成他们的日常工作。
shell可以工作在交互模式和非交互模式下。在交互模式系下,shell接受键盘输入,在非交互模式下,shell执行从文件中读取的命令。
shell 允许GNU命令的执行,可以同步执也可以非同步执行。shell在接受新的输入前,必须等待同步命令执行完成。而异步命令将和shell自身并行执行。重定向指令允许我们对这些命令的输入输出进行细粒度的控制。而且shell还允许对命令的执行环境进行控制。
shell还提供一个较小的内建命令集合(builtins)。以完成一些不可能或者不方便通过独立组件完成的功能。比如cd,break,continue自己exec就不能再shell程序之外执行,因为他们直接对shell自身进行操作。而History,getopts,kill, pwd 这些内建命令是可以通过独立的程序来完成的,但是他们以内建命令使用起来会更方便。所有这些内建命令都会在后续的分节中描述。
执行命令是不可避免的,shell之所以强大或者说复杂,主要是由于它嵌入的编程语言。和所有的高级语言一样,shell提供变量,控制流,引用,以及函数。
shell也提供很多针对交互设计的功能,而不只是加强语言特性。这些交互特性包括job控制,命令行编辑,命令历史查看,以及别名机制。这些特性会在该手册中描述。
相关文章推荐
- 51nod Bash游戏(V1,V2,V3,V4(斐波那契博弈))
- windows下面常用的***测试命令
- Linux下的bash配置文件
- shell编程——if条件判断(转)
- Shell重定向&>file、2>&1、1>&2的区别
- shell 解释变量
- shell脚本之if语句
- 【shell脚本练习】判断用户存在和用户类型
- 【shell脚本练习】判断用户存在和用户类型
- Python Shell的一些使用技巧
- Shell编程(环境变量配置文件)学习笔记
- linux shell 判断文件或文件夹是否真的存在
- linux bash总结(一) 基础部分(适合初学者学习和非初学者参考)
- Delphi如何让程序最小化到任务栏(截取WM_SYSCOMMAND后,调用Shell_NotifyIcon)
- shell查找局域网主机
- Bash简介
- Shell算数运算
- Shell 练习题(append)
- 如何用shell取得字符串中的数字?
- Python之shell清屏