首先我们知道目前主流操作系统分为Windows系统和Linux系统,当然Windows系统的内核依然是Linux,只不过是在内核之上开发了图形化界面的应用程序。
当人们使用电脑或操作服务器的时候就需要进行与其进行交互,windows操作系统微软公司提供的图形化交互界面程序称为GUI(Graphic User Interface)。其实Linux也有自己图形化的交互式界面GUI,如GNOME,KDE,轻量级的XFCE。但是图形化的交互界面并不被企业广泛使用,应用图形化的界面操作比较消耗硬件资源(其实图形化操作也是应用在Linux操作系统内核之上的应用程序,且该应用程序包含很多图片、视频等),因此人们常常使用Linux系统的另一种交互是界面CLI(Command Line Interface)--shell。
shell也叫壳,shell提供了用于与Linux操作系统内核进行交互操作的一种接口。它接受用户输入的命令(程序)并把他送入到内核去执行。
shell也被称为Linux的命令解释器,shell本身也是一种程序,将用户输入的命令拆解为“命令名”与“参数”,接着根据命令名找到对应要执行的命令程序,对被执行的程序进行初始化,然后将刚才拆解的参数传递给该程序并执行。
注:shell也是一种高级程序设计语言,提供了函数、变量、条件判断、循环等开发语言的功能。关于shell编程详解我会在下一章进行阐述。
由于shell也是一个应用程序,因此也用很多其他人开发了其他类型的shell。linux系统最初使用的是sh的程序,后面就开始出现了各种的shell。目前使用最多的就GUN组织发布的bash,也是目前Linux系统的标准shell,与sh兼容。下面就是shell程序的发展历程。
话不多说,开始介绍bash应用程序的基础命令使用。
Linux系统中内置的SELL的环境变量,通过该变量决定当前的交互界面使用的哪种shell,使用 echo $SHELL 命令可以进行查看,如下可以看出当前系统使用的是bash应用程序。
通过查看 /etc/shells文件可以查看当前系统使用的所有shell类型。如下图可以看出当前使用了sh 和 bash两种shell。
如果想开启某个shell进程执行命令,可以在当前shell界面下输入对应shell程序的绝对路径进入。如下图
我们知道,在Linux操作系统中我们是通过执行命令来运行相关程序,执行的命令是分内部命令和外部命令的。内部命令是shell应用程序自身所带的,外部命令是某些人或组织开发进行编译安装到Linux操作系统的给用户使用的。内部命令由于是在shell应用程序中使用,因此不需要再通过环境变量或绝对路径来找到相关程序的位置去执行,执行输入命令就行。外部命令需要通过绝对路径或者配置环境变量来让shell程序找到对应的外部命令程序执行。
通过使用enable命令可以查看shell程序自带了哪些内部命令。如下图可以看出enable命令也是内部命令,所以执行输入执行就行,不需要配置环境变量或者通过绝对路径来执行。
可以通过 type COMMAND 命令来查看指定命令是内部命令还是外部命令,如下图,type -a COMMAND ,有些命令是使用的别名,type加 -a 选项可以列出该命令的所有命令信息
bash的常用快捷键有以下这些,可以点击收藏。
Ctrl + l 清屏,相当于clear命令
ctrl + o 执行当前命令并重新显示本命令
ctrl + s 阻止屏幕输出,锁定
ctrl + p 允许屏幕输出,解锁
ctrl + c 终止命令
ctrl + a 光标移到行首
ctrl + e 光标移到行尾
ctrl + f 光标向右移动一个字符
ctrl + b 光标向左移动一个字符
ctrl + xx 光标在光标和行首之间来回移动
ctrl + > 光标向右移动一个单词
ctrl + < 光标向左移动一个单词
ctrl + u 从光标处删除至行首命令
ctrl + k 从光标处删除至行尾命令
ctrl + d 删除光标所在的字符
Linux中关于shell程序就先介绍到这里啦!