前言简介

什么是编程

    编程是编定程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
    编程:设计具备逻辑流动作用的一种"可控体系"。

什么是shell

    shell翻译中文是壳的意思,它是包裹在linux内核外层的一个接口,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面。
    shell是linux命令集的概称,是属于命令行的人机界面。Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
    shell是一种面向过程的高级语言,快速编写能力强,执行效率弱。

shell的种类

Linux Shell的种类很多,目前流行的Shell包括ash、bash、ksh、csh、zsh等,用户可以通过查看/etc/shells 文件中的内容来查看自己主机中当前有哪些种类的Shell,命令如下(下面是在笔者Linux 主机中查看信息的结果):

查看当前使用的shell类型

echo $SHELL

ash 

ash Shell是由Kenneth Almquist编写的,是Linux 中占用系统资源最少的一个小Shell,它只包含24个内部命令,因而使用起来很不方便。

bash

bash是Linux系统默认使用的Shell,它由Brian Fox 和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40 个。Linux 使用它作为默认的Shell是因为它具有以下特色:

可以使用类似DOS下面的doskey的功能,用上下方向键查阅和快速输入并修改命令。

自动通过查找匹配的方式,给出以某字串开头的命令。

包含了自身的帮助功能,你只要在提示符下面键入help就可以得到相关的帮助信息。

ksh

ksh是Korn Shell的缩写,由Eric Gisin编写,共有42 条内部命令。该Shell最大的优点是几乎和商业发行版的ksh 完全相容,这样就可以在不用花钱购买商业版本的情况下尝试商业版本的性能了。

csh

csh 是Linux 比较大的内核,它由以William Joy 为代表的共计47 位作者编成,共有52个内部命令。该Shell其实是指向/bin/tcsh这样的一个Shell,也就是说,csh其实就是tcsh。

zch

zch是Linux 最大的Shell之一,由Paul Falstad完成,共有84 个内部命令。如果只是一般的用途,没有必要安装这样的Shell。

Shell 命令的两种形式

1.内部命令
内部命令内置于Shell源码中,即存在于内存中,一般比较简短,代码量很少,执行起来速度快,经常会使用,比如cd、echo。它与shell本身处在同一进程内(它就写在Shell这个程序里面),当打开Shell时,操作系统会将Shell程序放入内存 。

2.外部命令
外部命令一般功能比较强大,包含的代码量也较大,所以在系统加载时并不随系统一起被加载到内存中,而是在需要时才调用,它们是存在于文件系统中某个目录下的单独的程序,当执行外部命令时,会到文件系统中文件的目录中寻找,例如 cp 、rm。

3.查看命令类型
type command

shell与shell 脚本的区别

    shell只是一个命令行简单的单一操作;而shell script可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序,从而来实现一些较为复杂的功能。

总结

  1. shell脚本依赖于shell,但shell脚本实现的功能比shell更加强大。
  2. 大多数开发人员来说,这两者的差别不大,也不影响大家对于linux系统的使用,除了非常专业的运维人员。
原文地址:https://www.cnblogs.com/guge-94/p/11006390.html