bash入门 – RHCE 3-1 – 《TTLSA出品》

  • Bash简介

bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)。Bourne shell是一个早期的重要shell,由史蒂夫·伯恩在1978年前后编写,并同Version 7 Unix一起发布。bash则在1987年由布莱恩·福克斯创造。

Bash (GNU Bourne-Again Shell) 是许多Linux发行版的默认Shell。事实上,还有许多传统UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等等,Shell Script大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个Shell Script通常可以在很多种Shell上使用。

bash是大多数Linux系统以及Mac OS X默认的shell,它能运行于大多数类Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现Windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

bash的命令语法是Bourne shell命令语法的超集。数量庞大的Bourne shell脚本大多不经修改即可以在bash中执行,只用了Bourne特殊变量或使用了Bourne的内置命令的脚本才需要修改。 bash的命令语法很多来自Korn shell (ksh) 和 C shell (csh), 例如命令行编辑,命令历史,目录栈,$RANDOM 和 $PPID 变量,以及POSIX的命令置换语法: $(...)。作为一个交互式的shell,按下TAB键即可自动补全已部分输入的程序名,文件名,变量名等等。

 

  • Bash语法

注:这里所说的Bash是指bash环境,而非shell编程,所以本章重点讲的是Bash在linux中是如何运行的。

Bash的常用语法包括:命令、选项、参数[必填|可选]

举个例子:

以上内容是一个完整的命令行输入,接下来会对命令行内容进行完整讲解

root为登录用户

@是分隔符

localhost为计算机名称

~为当前所处目录

#表示为超级用户(root)身份运行,如果非超级用户运行会显示’$’符号

date是当前执行命令

-s是date选项,表示按照特定格式来定义时间

“Wed Sep 16 00:21:14 PDT 2015”表示时间显示为当前格式,可以理解为一个赋值操作

 

  • Bash使用技巧

在开始使用bash之前,我们要去记住这么多命令以及其对应的选项和参数,肯定是不切实际的,那么我们要怎样快速寻找到对应的选项及参数呢?

这里就要介绍三个方法,同时这也是Linux中获取命令详解,很重要的命令及参数

  • man

在绝大多数情况下,我们使用man都能找到我们想要的答案,man其实是manual的缩写,故名思意,这就是一部手册。所以它里面的内容会讲的很详细,想要学习命令的具体用法,且英文水平能够看懂的人,这其实不失为学习linux命令的一个很好的途径。

2、--help

实用派的首选,因为它的说明比man要少很多,但是只要你有一定的Linux基础,你可以很直观地看到所有命令的选项及参数简介。

所以说掌握了上面两个命令,基本上所有的Linux命令我们都能轻松掌握。

 

除了帮助选项以外,Linux还提供了强大的历史命令检索功能

最常见的就是history,顾名思义,它的主要作用就是列出最近1000条历史记录(包括远程执行的命令)。

以下是一段history节选

从上述节选中我们可以看出history给我们列出了最近执行的命令,如果是一些比较复杂的命令,那么此时history就派上了大用场。

那么如果我们没有鼠标可以选择复制,那么该如何来重复执行历史命令呢?

这里给大家介绍两个方法

  • 用’!’带历史序号,如我要重复执行第2条历史记录,那么我要输入的就是

如上,我们执行了历史命令中的第二条

2、还有一个方式是用组合键(Ctrl+r)的形式,快速索引历史记录,如果是一条很长的命令加选项及参数的命令行,那么我们只需要输入前面的命令即可,演示如下。

接下来我们按Ctrl+r会出现如下提示符

此时我们输入date,会提示最后一条date命令,那么我们要倒数第二条命令就要再按一次Ctrl+r即可,如果要继续寻找上一条再按一次即可,以此类推

以上两个小技巧在日常工作中使用频率是非常高的,还希望大家花点时间,多多实践,理解了bash运行的机制,接下来的课程我们讲解的时候就会更容易理解。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: