shell基础-简介

1. 概述

shell是一个命令行解释器。

它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止和编写一些程序。说白了,shell就是用户操作Linux系统的界面。

当外层的应用程序运行时或者用户执行某个命令(如ls)时,该命令先传递给shell,shell会对其进行解释(转化为数字0和1代表的机器语言),然后将其传递给Linux的内核(内核是用来管理和调用硬件的,它只能识别机器语言),Linux的内核再将收到的机器语言交给硬件处理,硬件处理完毕后会将执行结果返回给内核,然后内核再将结果返回给shell,shell会将机器语言表示的结果进行解释(转化为用户可以识别的字母、数字或汉字),最终呈现给用户。

最外层是外层的应用程序或者用户,往里依次是shell、Linux的内核、硬件。也就是说硬件位于最底层。

对于Windows系统来说,它的图形化交互界面也是shell。其实,shell就是用户和系统内核进行交互的界面。

shell还是一个功能强大的编程语言,易编写,易调试,灵活性强。shell是解释执行的脚本语言,在shell中可以直接调用Linux系统的命令,因此shell非常便于Linux系统管理。

总的来说,shell有两层意思:

  • shell是一个命令解释器,是用户和系统内核进行交互的界面。
  • shell还是一门编程语言,允许用户使用shell进行编程。

2. shell的分类

shell主要有两种语法类型:
- Bourne Shell
- C Shell

这两种语法彼此不兼容,语法结构完全不相同。

2.1 Bourne Shell

从1979年起,Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。

Bourne Shell家族主要包括:sh、ksh、bash、psh、zsh。

Linux系统中用到的标准shell类型是bash。

2.2 C Shell

C Shell主要在BSD版的Unix系统中使用,因它的语法和C语言类似而得名。

C Shell家族主要包括:csh、tcsh。

总结说明: 现在的Linux是使用bash作为用户的基本shell,bash和sh兼容,后面讲解的shell主要指的就是bash。

3. Linux支持的shell类型

在 /etc/shells 文件中列出了Linux支持的shell类型。

[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash

/sbin/nologin 表示用户不能登录。

Linux系统默认使用的shell类型是bash,但也可以切换到其他它所支持的shell。

sh              
切换到sh。
后面讲到的单用户、系统修复模式,启动的shell类型就是sh。

exit                
返回默认的shell类型bash。

你可能感兴趣的:(Linux,Linux,基础知识)