7.Shell本章同步视频:https://edu.51cto.com/sd/e4874

7.1 Shell

        Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。

7.1.1 Linux中合法的shell

[root@localhost mnt]# cat /etc/shells

/bin/sh         #已经被 /bin/bash 所取代

/bin/bash       # Linux 预设的 shell

/sbin/nologin

/usr/bin/sh       

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh        #已经被 /bin/tcsh所取代

7.1.2 Shell的功能

n  命令编修能力 (history)

n  命令与档案补全功能: ([tab] 按键的好处)

n  命令别名设定功能: (alias)

n  工作控制、前景背景控制: (job control, foreground, background)

n  通配符: (Wildcard)

n  程序化脚本: (shell scripts)

7.1.3 查询指令是否为 Bash shell 的内建命令: type

1.语法

[dmtsai@study ~]$ type [-tpa] name

选项与参数:

:不加任何选项与参数时,type 会显示出 name 是外部指令还是 bash 内建指令

-t  :当加入 -t 参数时,type 会将 name 以底下这些字眼显示出他的意义:

      file    :表示为外部指令;

      alias   :表示该指令为命令别名所设定的名称;

builtin:表示该指令为 bash 内建的指令功能;

-p  :如果后面接的 name 为外部指令时,才会显示完整文件名;

-a  :会由 PATH 变量定义的路径中,将所有含 name 的指令都列出来,包含 alias

2.用法

[root@localhost mnt]# type ls

ls is aliased to `ls --color=auto'

[root@localhost mnt]# type -t ls

alias

[root@localhost mnt]# type -a ls

ls is aliased to `ls --color=auto'

ls is /usr/bin/ls

ls is /bin/ls

[root@localhost mnt]# type cd

cd is a shell builtin