赞
踩
Shell既是一种命令语言,又是一种程序设计语言(即Shell脚本)。作为一种基于命令的语言,Shell 交互式地解释和执行用户输入的命令;作为程序设计语言,Shell中可以定义变量、传递参数,并提供了许多高级语言所有的流程控制结构。
Shell的原意为“壳”,它包裹在内核之外,处于用户与内核之间,其主要功能为接收用户输入的命令,找到命令所在位置,并加以执行。在计算机科学中,可以认为Shell是包裹在内核外的命令接口,又因为其最重要的功能是命令解释,所以也可以认为Shell是一个命令解释器。Shell与内核及用户间的关系如图所示。
常见的有:BSh、CSh、KSh、bash等
用户可通过
Is /bin/*sh
命令查看系统中安装的shell.
Shell最重要的功能是命令解释器,Linux系统中的所有可执行文件都可以在shell中执行。Linux系统中的可执行文件可以分为五类:
用户输入命令,shell判断是否是内置命令,是的话执行,不是的话去硬盘寻找。
可以看出,shell承上启下,上承用户,下接Kernel(内核)。作用有两方面:1.命令解释,2.编写程序。
Linux系统中将从终端输入数据称为标准输入(鼠标,键盘,扫描仪...),将打印数据到终端称为标准输出(默认是显示器),并设置了3个标准文件,分别关联标准输入、标准输出以及标准错误输出信息,标准输入文件的编号为0,默认设备是键盘;标准输出文件的编号1,默认设备是显示器;
标准错误文件的编号为2;默认设备也是显示器。
但并非任何时候用户都希望使用默认设置,这种情况下,可使用重定向,更改命令获取与信息输出的方向。
所谓重定向,即使用用户指定的文件而非默认资源(键盘、显示器)来获取或接收文件。重定向可分为三种:(一般会用文件来替代)
实现输入重定向的运算符为具体格式如下
命令<文件名(把文件的内容输入给命令)
示例:(把fiel文件内容广播出去)
wall<file
具体格式如下实现输出重定向的运算符为
命令>文件名(会把显示的内容写到文件当中)
示例:(把用户密码信息 写到文件中)
cat /etc/passwd >file
使用>运算符时,输出的信息将以覆盖的方式打印到文件fie中,若想保留文件file中原有的内容,可使用运算符“>>”,该运算符将以追加的形式将结果打印到fie文件。
重定向标准错误信息使用运算符“>”和“>>其格式如下:
命令 2>文件名
说明:
①其中“2”代表标准错误文件的编号,实际上,输入重定向和输出重定向还可写为如下格式
命令 0<文件名
命令 1>文件名
只是当其文件编号0、1出现在重定向符号左侧时,可以被省略。
②可以使用运算符“&”通过文件编号引用文件,该运算符表示“等同于”,如“2>&1”则表示将标准错误重定向到标准输出中。
在shell编程中,“|” 被称为管道符号,用于连接两个命令,其格式如下
命令1 | 命令2 | ..... | 命令n
管道可使前一个命令的输出作为后一个命令的输入,由此实现较为复杂的功能。
示例:(在/etc 列出来的列表中 检索init)
ls-l /etc|grep init
Shell中提供了一些用于连接符号的符号,包括“;”,“&&” 以及 “||”,使用这些符号,可以将多条shell指令进行连接,使这些指令顺序或根据命令执行结果,有选择地执行,下面将对这些符号的功能分别进行介绍。
示例:批量处理
mkdir text;cd text; touch 23.c;vim 123.c
示例:tunch拼写错误,则不会继续执行
cd text && tunch 123.c && 123.c
Shell中常用awk提取文档或标准输出中的文本信息。awk实际上是一个强大的文本分析工具,该工具是Shel中常用的文本提取命令为awk,该命令类似于常用命令中的grep,都能从指定文本中提取指定信息,不同的是该命令可将文本按指定分隔符分割,并从分割后的文本中提取指定项。
以上就是shell的基本介绍和基础应用,关于shell脚本会持续更新。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。