在计算机中为我们工作的是"硬件",控制硬件的是"内核(kernel)".kernel听不懂人的语言,而人也没有办法直接记住kernel的语言,所以两者的沟通就要通过shell支持了.早期的DOS操作系统的命令界面也是使用shell来沟通,那个shell就是command.com.
shell就是一个命令解释器,在当前LINUX有多少可用的shells,有以下几个: (1)/bin/sh,已被/bin/bash所取代; (2)/bin/bash;(3)/bin/ksh;(4)/bin/tcsh;(5)/bin/csh;(6)/bin/zsh.还有一些不常用的shell,比如/sbin/nologin这个在FC,红帽系统中就有.可以查看/etc/shells文件,来查看系统支持那些shell.其中/bin/bash最常用也是linux默认的shell,所以要学习的也是bash shell.
系统一些服务因在运行时,会检查用户能够使用的shells,而这些shell的查询就是通过/etc/shells文件进行的.
还有一些图形界面的shell比如:windows exporer,KDE,GNOME.shell又分为登录shell和非登录shell.
所以,我认为shell就是人与kernel之间的一个翻译,一个桥梁.
2,Bash shell的内置命令 :type作用:查看命令是外部命令,还是内置在BASH中的命令.在DOS中也有内置命令,外部命令.
加入-t后,file 表示为外部命令;alias表示命令别名所设置的名称;builtin表示为bash内置的命令功能.
-a,在PATH变量定义的路径中,列出所有含有"该命令"的命令,包含alias.
本文转自xcjgutong 51CTO博客,原文链接:http://blog.51cto.com/xuchengji/313719