1.1 什么是bash
1.1.1 什么是bash
bash全称为The Bourne Again shell,是Bourne Shell的扩展,是基于GUN构架发展出来的语言,有很灵活和强大的编程接口,同时又有很友好的用户界面。
关于bash 与shell的关系,请参考此篇博客:
什么是shell? bash和shell有什么关系?
在linux中,当我们通过终端机下达指令时,就是通过bash指令环境来处理的。
bash包括了变量的设定与使用、bash操作环境的设置、数据流重导向、管线命令的功能。
1.1.2 什么是shell
那么,什么又是shell呢,shell的作用是什么呢?
shell是交换式的命令解释器和命令编程语言,是用户与操作系统核心(kernel)沟通的指令列,是一种壳程序,即shell,其为用户提供了一个用来对系统进行操作的接口。
有关shell语言的发展历程请看这里:
什么是shell
shell可以让学习者更深入的了解linux,通过shell程序,可以更轻松的管理系统。在管理者透过远程联机时,文字接口的shell可以提供更快的文字接口传输速度,且不易出现短线或者信息外流问题。
1.1.3linux下的合法shell
对于linux系统来说,bash是linux系统的预设语言。因此只要学会了bash语言,对操作linux会有很大的帮助。
以我目前的虚拟机系统CentOS 7为例,比如文件/bin/bash是linux系统的预设文件
另外,还有另一个文件/etc/shells,它存在的作用是,当系统在某些服务运行过程中,会去检查使用者能够使用的shells,而这些shell的查询就是基由这个文件。
1.1.4bash的功能
- 命令修编能力(history)
在终端中使用“上下键”就能找到之前输入的命令(类比于于MATLAB)。之前输入的命令被保存在.bash_history当中(注销系统之后才保存),本次的都在内存~/.bash_history中。 - 命令与文件补全功能(Tab键)
[tab] 接在一串指令的第一个字后面,命令补全。
[tab] 接在一串指令的第二个字后面,文件补齐。 - 命令别名设定功能(alias)
相当于c中的define,给命令起别名 - 程序脚本化(shell scripts)
可以将连续指令写成文件,生成脚本。 - 通配符(Wildcard)
除完整字符串之外,bash支持通配符帮助用户查询与指令下达。 - 查询指令是否为bash内建命令(type)
使用type指令找bash内建指令,如果指令是,则显示是bash指令,如果不是则显示错误。
(注:type并不属于bash的功能,只是放在这里了。)
1.1.5 下达BASH指令
指令的下达方式很简单,只需要记几个重要的概念就行。举例如下:
[haoqiqi@localhost ~]$ command [-options]parameter1 paremeteer2...
其中“$”之前的是终端自动产生的。
1.1.5.1 下达指令
- 对于一行指令,首先输入的必须是“commend”,即指令的名称,如交换工作目录的指令cd;或者可执行文档。
- 中括号[]其实并不存在,在加入此项,只需前加 - 号,如-h
- parameter1 paremeteer2…为依附在选项或者commend的参数。
- 指令,选项,参数等中间以空格来区分,不论几个空格,shell都视为一个。
- 按下"enter"键,开始执行指令。
- 指令太长时,使用“\Enter”使其跳到下一行,注意中间不能有空格。
- 区分英文大小写。
1.1.5.2 组合键
- ctrl + u / ctrl + k:分别是从光标处向前删除指令串以及向后删除指令串
- ctrl + a / ctrl + e:分别是让光标移动到整个指令的最前面以及最后面
今天内容就这些了, 欢迎关注我的微信公众号与我联系。