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