Linux_2019_5_26(shell的理解)

一生的时间并不多,一生的精力也不多,要搞好一件事实在不容易。
用去一生,搞好了一件事,那也就可以了。
世上不知道多少聪敏人,一生没有搞好一件事!–池莉

1. shell的定义

1.1 shell

中文名,壳。从技术角度,shell可定义为:命令行解释器(command interpreter)主要包括:
(1)将使用者的命令翻译给核心(kernel)处理;
(2)同时,将核心的处理结果翻译给使用者。

1.2 Linux中的shell

从严格意义上说是一个操作系统,我们称之为“核心(kernel)”,但是我们一般用户不能直接使用kernel,而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
壳有很多中,有命令行的:bash 、sh 、csh 、ksh;有图形化的: KDE、GNOME、CDE、 XFCE等。

1.3 Windows中的shell

Windows 9X系列的核是DOS,图形化的壳 叫 Windows Explorer (用来管理windows的文件),命令行壳叫command。 从Windows XP 开始,Windows的核叫做Windows NT (Windows New Technology),图形化 壳叫Windows Explorer,命令行壳有command、cmd.exe。Windows NT是针对图形化壳设计出来的核,更加稳定。

实际上不管是命令行shell,还是图形化shell,都是访问操作系统中的某个具有一定功能、可以处理具体事务的文件(二进制文件,此类文件经常被称作工具,在windows下的exe文件,或者是linux的/bin或者/usr/bin目录下的文件)、或包含一定内容的文件(文本文件),通常都是通过文件名访问。

2. shell的分类

2.1Bourne Shell

1979年unix就开始使用Bourne Shell,它的主文件名为sh。

2.2.C Shell

主要用于BSD版的unix系统中使用,其语法和C语言相类似而得名。

2.2.1 两种shell语言彼此不兼容。Bourne家族主要是sh、ksh、bash、psh、zsh;而C家族主要包括csh、tcsh。
2.2.2 Bash:bash和sh兼容,现在使用的linux就是使用bash作为用户的基本shell。

3. shell的功能

3.1

shell是一个命令行解释器,解释某条命令对应的文件的文件路径,供用户使用并返回使用结果。这也就是为何有 shell 脚本一说。脚本语言是种解释型语言,不能被编译为二进制代码。就如 shell ,它的作用是将命令解释成对应的文件名,然后通过文件名调用文件。对于图形化 shell 是通过鼠标的点击来访问文件的,但实际也是通过文件名,因为每个文件都有包含文件名的完整路径。

脚本语言(Script Language)
脚本语言的定义

(1)脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。

(2)脚本语言是相对于编译型语言而言的,它是为了缩短编译型语言编写-编译-链接-运行过程而创建的计算机编程语言。由于脚本语言常常运行于底层,所处理的是字节、整数、浮点数或其他机器层的对象,因而,脚本语言是低级程序设计语言。而C/C++、java、C#等都属于编译型语言,也就算高级语言,这类语言所编写的程序都需要经过编译,将源代码转化为目标代码才能运行。而脚本语言往往是解释运行而非编译,即由解释器读入脚本程序代码,将其转换成内部的形式执行,而解释器本身则是编译型程序。

脚本语言的特点

脚本语言的灵活性是以执行效率为代价的,脚本语言的执行效率通常不如编译型语言。脚本语言一般不适合用于大型的项目、计算复杂的工程或有高级需求的应用软件,它适合用于系统管理、文本处理等方面完成特定功能的常用的小工具或小程序。

3.2

shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。shell是解释执行的脚本语言,在shell中可以直接调用linux系统命令。

4. Linux支持的shell

4.1 /etc/shells

/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
当然使用的是/bin/bash shell,也是可以进行切换的。比如
(1)[root@linux-study Desktop]# sh --切换到sh shell
(2)shells文件里还有一个 /sbin/nologin
vim /etc/passwd --用户信息文件,里面指定相应用户的一些权限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值