一.Shell基本概念

一.什么是Shell?

<一>.Shell英文意思:壳;

<二>.计算机中管理整个硬件的其实是操作系统的核心;核心是被保护的;

<三>.计算机硬件,操作系统,Shell,用户之间的关系;

1.我们知道计算机完成计算,存储,网络,多媒体等等功能,其最基本条件是:计算机有相应的硬件支持以及这些硬件能够被管理使用;而计算机中管理硬件的其实就是操作系统和以及硬件驱动的支持;

2.而操作系统核心,其实就是一组程序,这组程序能够控制计算机的硬件以及管理系统活动;

3.更上一层,计算机不能够自动的说进行计算,播放视频,音乐等等;这些功能只有在用户进行有相关的命令请求发给操作系统的时候,相应的硬件才能进行工作。由于操作系统是管理计算机系统硬件的核心,因此这个核心应该被保护,用户不能随随便便的对操作系统进行操作,因为不当的操作可能造成整个计算机硬件系统的崩溃。

4.所以,就为操作系统做一层壳,来保护操作系统。而这层壳(Shell),是经过定义以及验证的,规定好的,用户的操作不会对计算机的硬件系统造成破坏。并且,通过Shell输入的命令,能够正确的被解析并传达到操作系统,而保证了相应的命令请求能够正确实施。

关系图:

<四>. 可以这样理解Shell:

Shell是一个应用程序;Shell定义了一系列的命令,用户输入这些命令之后,Shell能够解析,并调用正确的操作系统的具体功能;并且,用户输入的这些命令可以先高级编程语言一样,有变量和参数,以及有控制结构,所以说,Shell即是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并具有的控制结构,包括循环和分支,也就是Shell Script。

1.Shell是一种命令解释器,能够解释用户输入命令并且调用操作系统功能;

2.Sehll是用户与操作系统之间的接口,桥梁;即保护了操作系统核心也为用户操作操作系统以及获取功能提供了条件;

3.Shell 提供的命令能够像命令一样一条条的输入,执行;也可以像程序设计语言一样的编写逻辑进行执行。所以Shell是一种程序设计语言;

4.shell提供了你与操作系统之间通讯的方式。有两种:

a.交互方式:(从键盘输入,并且可以立即得到响应)其实就是一次输入一条命令;

     b.非交互方式shell script执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。 在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

二.什么是bash?

1.Shell类型

shell的类型

UNIX中主要有:

Bourne shell (包括 sh,ksh,and bash)

Bourne shell ( sh)

Korn shell ( ksh)

Bourne Again shell ( bash)

POSIX shell ( sh)

C shell (包括 csh and tcsh)

C shell ( csh)

TENEX/TOPS C shell ( tcsh)

2.最常见的是:bash;所以,bash是Shell的一种;

三.什么是Shell Script?

shell script 是利用 shell 的功能所寫的一個『程式 (program)』,這個程式是使用純文字檔,將一些 shell 的語法與指令(含外部指令)寫在裡面, 搭配正規表示法、管線命令與資料流重導向等功能,以達到我們所想要的處理目的。

shell script 就像是早期 DOS 年代的批处理 (.bat) ,最簡單的功能就是將許多指令彙整寫在一起, 讓使用者很輕易的就能夠 one touch 的方法去處理複雜的動作 (執行一個檔案 "shell script" ,就能夠一次執行多個指令)。 而且 shell script 更提供陣列、迴圈、條件與邏輯判斷等重要功能,讓使用者也可以直接以 shell 來撰寫程式。

时间: 2024-10-01 05:26:12

一.Shell基本概念的相关文章

【转】控制台,终端,tty,shell等概念的区别

转自:http://www.2cto.com/os/201403/282583.html http://blog.sina.com.cn/s/blog_bcdac52b0101i2r1.html 控制台,终端,tty,shell等概念的区别 使用linux已经有一段时间,却一直弄不明白这几个概念之间的区别.虽然一直在用,但是很多概念都感觉模糊不清,这样不上不下的状态实在令人不爽.下面就澄清一下这些概念. 这些概念本身有着非常浓厚的历史气息,随着时代的发展,他们的含义也在发生改变,它们有些已经失去

Linux and Unix Shell -- 基础概念

No.1 Security --------------------------------- chmod g-w file_name //改变同组用户的写权限 chmod 644 file_name //用绝对值来修改权限 umask 022 //设置初始值权限(文件:644,目录:755) No.2 Find ---------------------------------- find . -name "*old*" -print //在当前路径下查询包含"old&qu

Shell的概念

Linux系统分为三个重要部分: 1:kernel(核心) 2:Shell 3:应用程序和工具

理解Linux中子shell的概念

1. 所谓子shell,即从当前shell 环境中新开了一个shell 环境,这是新开的shell环境就是子shell ,而开启子shell的环境称为该子shell的父shell.子shell和父shell的关系,就是子进程和父进程的关系,只是这个关联的进程是bash进程. 子shell 会从父shell 中继承很多环境变量如:变量 文件描述符 当前工作目录 陷阱等. 不同的子shell继承环境不相同,变量 $BASH_SUBSHELL 可以查看从当前进程开始的子shell的层级数,$BASHP

shell编程概念介绍及变量定义--关于脚本运行与shell进程之间的关系

shell是用户与内核进行交互操作的一种接口,目前最流行的shell称为bash shell shell也是一门编程语言<解释型的编程语言>,即shell脚本<就是用 linux 的 shell 命令编程> 一个系统可以存在多个shell,可以通过 cat/etc/shells 命令查看系统中安装的shell,不同的shell 可能支持的命令语法是不相同的 基本格式 代码写在普通文本文件中,通常以 .sh为后缀名 例vi hello.sh: #!/bin/bash      ##表

[9-13]Shell系列1——基本概念

本文旨在复习Shell基本概念.编程模型.变量类型.脚本规范.语言结构.脚本执行方式 Linux层次结构和Shell基本概念 Linux层次结构大致分为这么几层 ● 请注意:基本上各层次都屏蔽了底层差异性,既能管理调用底层,同时又为上一层[或多层]服务 ● Hardware Platform:硬件层有各种各样不同厂家的各种硬件接口,对上层提供服务 ● OS Kernel:内核层,屏蔽底层硬件差异,提供核心功能,调度资源运行指令程序,上层可以进行System Call ● LIB:库文件,Kern

Shell基础学习小结

0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本身的限制和效率问题,以下情况一般不推荐Shell: 资源密集型的任务,尤其在需要考虑效率时(比如,排序,hash等等). 需要处理大任务的数学操作,尤其是浮点运算,精确运算,或者复杂的算术运算(这种情况一般使用C++或FORTRAN 来处理). 有跨平台(操作系统)移植需求(一般使用C 或Java)

/etc/profile与/etc/bashrc、交互式与非交互式、login与non-login shell的区别

线上的memcached又挂了,仍然没有得到core文件.排查原因,同事发现启动memcached的脚本存在可疑问题. 问题一:没有设置memcached工作目录,有可能core dump时没有工作目录写权限 这些脚本由crontab启动.脚本中没有设置工作目录,而这是非root用户的crontab.启动memcached时,工作目录不是memcached可执行文件所在目录.实验证明,这个是用户的home目录,crontab运行的脚本中打印pwd,结果是"home/work",work

Linux系统Shell脚本编程

1. shell脚本概念:C语言编写的.命令解释器.编程语言. 是用户使用linux的桥梁. shell脚本语言非常擅长处理文本类型的数据. 2. shell脚本作用:自动化管理.监控管理.日志数据处理.自动数据备份. 3. shell脚本中的成分:注释.命令.shell变量.结构控制语句. 以行为单位  一行一行依次执行. (在shell脚本中可以出现任何在交互方式下可以使用的命令.) 4. 调用shell脚本的两种方式: (1)sh 脚本文件名 (2)./脚本文件名(需要有执行权限) 当执行