Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命 令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言 中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各 个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统的关键。可以 说,shell使用的熟练程度反映了用户对Linux使用的熟练程度。

  一、什么是shell

  当一个用户登录Linux系统之后,系统初始化程序init就为每一个用户运行一个 称为shell(外壳)的程序。那么,shell是什么呢?确切一点说,shell就是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以 便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。

  当用户使用Linux时是通过命令来完成所 需工作的。一个命令就是用户和shell之间对话的一个基本单位,它是由多个字符组成并以换行结束的字符串。shell解释用户输入的命令,就象DOS里 的command.com所做的一样,所不同的是,在DOS中,command.com只有一个,而在Linux下比较流行的shell有好几个,每个 shell都各有千秋。一般的Linux系统都将bash作为默认的shell。

  二、几种流行的shell

  目前流行的shell有ash、bash、ksh、csh、zsh等,你可以用下面的命令来查看你自己的shell类型:

  #echo $SHELL

  $SHELL是一个环境变量,它记录用户所使用的shell类型。你可以用命令:

  #shell-name

  来转换到别的shell,这里shell-name是你想要尝试使用的shell的名称,如ash等。这个命令为用户又启动了一个shell,这个shell在最初登录的那个shell之后,称为下级的shell或子shell。使用命令:

  $exit

  可以退出这个子shell。

  使用不同的shell的原因在于它们各自都有自己的特点,下面作一个简单的介绍:

  1.ash

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

  2.bash

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

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

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

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

  3.ksh

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

  4.csh

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

  5.zch

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

Linux的shell编程(一)相关推荐

  1. shell for循环1到100_浅谈Linux下shell 编程的for循环常用的6种结构

    浅谈Linux下shell 编程的for循环常用的6种结构 1. 常用for循环结构 (1) for 变量 in 值1 值2 值3... do 程序块儿 done (2) for 变量 in `命令` ...

  2. linux中快捷脚本,Linux下Shell编程快捷键大全(日常整理)

    有时候,我们需要在 Bash 中重复执行先前的命令.你当然可以使用上方向键来查看之前曾经运行过的命令.但这里有一些更好的方式,例如,数量掌握以下的快捷键. 1) !!:重复执行上一条指令 2) !a: ...

  3. Linux _ Shell编程 — 循环语句

    Linux _ Shell编程 - 循环语句 一.循环语句for的用法 二.循环语句while的用法 三.循环控制语句 一.循环语句for的用法 for 变量名 in 单词表do命令表done 变量依 ...

  4. 运维 - 第一阶段 - linux与shell编程

    linux与shell编程 讲师:墨竹 系统运维与linux 1.系统运维是什么 简单来说运维(Operation and maintenance)是指对公司硬件和软件的维护. 硬件包括:机房.机柜. ...

  5. linux系统——Shell编程之变量解释

    linux系统--Shell编程之变量解释 - Shell能做什么 自动化批量系统初始化程序 (update,软件安装,时区设置,安全策略-) 自动化批量软件部署程序 (LAMP,LNMP,Tomca ...

  6. Linux _ Shell编程 — 功能语句

    Linux _ Shell编程 - 功能语句 一.说明性语句 二.常用功能性语句 1.常用功能性语句(read命令) 2.expr命令 三.结构性语句 条件测试语句 字符串测试 整数测试 文件的测试 ...

  7. Linux之shell编程篇-----Shell 函数和Shell 输入/输出重定向

    ​ 最近发现了一个挺厉害的人工智能学习网站,内容通俗易懂,风趣幽默,感兴趣的可以点击此链接进行查看:床长人工智能教程 废话不多说,请看正文! ​ Shell 函数 1. 自定义函数 linux she ...

  8. Linux学习——shell编程之变量

    shell编程之变量:Linux shell编程基础中的变量. 包括Bash变量的分类和各变量的详细使用,如:用户自定义变量.环境变量.语系变量.位置参数变量和预定义变量. 1:什么是Bash变量? ...

  9. linux之shell编程基本语法

    Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash Shell.Shell也是一门编程语言<解释型的编程语言>,即shell脚本<就是在用linux的s ...

  10. Linux 下shell编程

    什么是shell?Shell是一个命令解析器,是介于Linux操作系统的内核(kernel)与用户之间的一个绝缘层.shell脚本就是讲各类命令预先放入其中,方便一次性执行的一个程序文件,主要用于方便 ...

最新文章

  1. Django 视图和模板1.4
  2. Java项目:在线蛋糕商城系统(java+jsp+jdbc+mysql)
  3. 系统封装工具_去工具化/脚本化理解,自动化运维落地最佳实践之业务/架构/模型/方法...
  4. hdu4277 DFS+SET
  5. win7升级win10正式版_win7告退在即,如何升级到win10?
  6. RDLC 报表的制作(图文)
  7. OPPO大数据平台运营研发实践分享
  8. 导致集群重启_园区网核心交换机S7706异常重启导致无线网络故障
  9. 11 wifi6速率_什么是WiFi 6?究竟有多6?
  10. SAP ERP和ORACLE ERP的区别是哪些?
  11. arima 公式_R时间序列分析(8)ARIMA(上)
  12. required默认提示的修改
  13. PO 审批 PO Release
  14. 现代循环神经网络 - 机器翻译与数据集
  15. 家用计算机中的内存大约多少,64gb内存能装多少东西_64gb内存有多大-系统城
  16. 语音计算机打字教程,win7电脑打字使用语音输入法打字的超详细教程
  17. “倔驴”一个h5小游戏的实现和思考(码易直播)——总结与整理
  18. vue设置右边距_利用页面布局设置制作工资条(不用函数)
  19. python中序列是什么意思_python序列是指什么
  20. DENdb:human增强子数据库

热门文章

  1. 职场打怪,是不是升级越快越好?
  2. 【量产】波士顿动力机器狗,当警犬不错,上战场。。。
  3. 从淘宝第1位程序员, 到阿里合伙人,20多年了,非科班出身的他还在编程,程序员的榜样
  4. 古代婚姻和现代社会矛盾了。导致大量大龄女性未婚
  5. 在windows下安装webpy
  6. 创业要有创意--应当注意的八大细节
  7. “假冒上市”公司再甩锅:我被服务商给骗了
  8. 中国电信披露2021年年报 天翼云营收实现三位数增长
  9. 三星调侃iPhone13苍岭绿配色:受宠若惊
  10. 与饿了么三年“独家合作”即将到期 星巴克正与顺丰、美团等商谈配送合作