您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > SHELL基础原理【博森瑞】
1-1Copyright©Bosenrui,2016.Allrightsreserved.SHELL【博森瑞】1-2Copyright©Bosenrui,2016.Allrightsreserved.一.SHELL究竟是什么?1-3Copyright©Bosenrui,2016.Allrightsreserved.在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。(请看画图板演示)同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。1-4Copyright©Bosenrui,2016.Allrightsreserved.二.SHELL的种类1-5Copyright©Bosenrui,2016.Allrightsreserved.BourneShell首个重要的标准UnixShell是1970年底在V7Unix(AT&T第7版)中引入的,并且以它的创始科技部基础条件平台“国家气象网络计算应用节点建设”(2004DKA50730)资助者StephenBourne的名字命名。Bourneshell是一个交换式的命令解释器和命令编程语言。Bourneshell可以运行为loginshell或者loginshell的子shell(subshell)。只有login命令可以调用Bourneshell作为一个loginshell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。CShellBillJoy于20世纪80年代早期,在伯克利的加利福尼亚大学开发了Cshell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。KornShell有很长一段时间,只有两类shell供人们选择,Bourneshell用来编程,Cshell用来交互。为了改变这种状况,AT&T的bell实验室DavidKorn开发了Kornshell。ksh结合了所有的Cshell的交互式特性,并融入了Bourneshell的语法。因此,Kornshell广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inlineediting)等功能。KornShell是一个交互式的命令解释器和命令编程语言.它符合POSIX——一个操作系统的国际标准.POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准——在源程序一级跨越多种平台。BourneAgainShell(bash)bash是GNU计划的一部分,用来替代Bourneshell。它用于基于GNU的系统如Linux.大多数的Linux(RedHat,Slackware,Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。POSIXShellPOSIXshell是Kornshell的一个变种.当前提供POSIXshell的最大卖主是Hewlett-Packard。在HP-UX11.0,POSIXshell就是/bin/sh,而bsh是/usr/old/bin/sh.1-6Copyright©Bosenrui,2016.Allrightsreserved.AIX缺省的是KornShell.Solaris缺省的是Bourneshell.(这里指的是SUN-SOLARISV10)FreeBSD缺省的是CshellHP-UX缺省的是POSIXshell.Linux缺省的是BourneAgainshell.MACOS缺省的是BourneAgainshell.*ORACLE-SOLARISV11以后默认为BASH*各大系统使用SHELL的概览1-7Copyright©Bosenrui,2016.Allrightsreserved.三.我为什么要学SHELL?1-8Copyright©Bosenrui,2016.Allrightsreserved.你是一个苦逼的DBA!!!你每天要做很多重复的操作!!!因此你身心俱疲!!!情景一:1-9Copyright©Bosenrui,2016.Allrightsreserved.你还是一个苦逼的DBA!!!你要做你们公司数据库的备份策略!!!无论是物理备份(RMAN)还是逻辑备份(数据泵,EXP),你都志得意满。可是突然发现,你要把他变成定时任务却是如此的困难!!!情景二:1-10Copyright©Bosenrui,2016.Allrightsreserved.又是你!对没错又是你,你这个苦逼的DBA!!!你们数据库每天都会有报错,可是恰巧所有报错发生时间,都被你巧妙的错过了!你要在海量的日志中去搜索那个关键的点!因为,只是因为!!!你没有更好的手段,去做日志挖掘。情景三:1-11Copyright©Bosenrui,2016.Allrightsreserved.好吧!我真的不想再说了,不过这次又是你!你个苦逼的DBA!!!你要清理掉一些数据库中的“垃圾”!!!结果你却因为你不懂正则表达式!而让本是很简单的工作变得充满了变数和复杂不堪!这次看你咋办?!情景四:1-12Copyright©Bosenrui,2016.Allrightsreserved.那我们有没有好的解决方案呢?1-13Copyright©Bosenrui,2016.Allrightsreserved.Shell的用途数据的统计与分析计划任务的执行进程的监控与管理命令的组合与使用SHELL的用途1-14Copyright©Bosenrui,2016.Allrightsreserved.就让我们开始学BASH吧!!!1-15Copyright©Bosenrui,2016.Allrightsreserved.Bash脚本优点简单、快速不需要编译灵活高效1-16Copyright©Bosenrui,2016.Allrightsreserved.四.SHELL基础1-17Copyright©Bosenrui,2016.Allrightsreserved.•变量•数值运算•流程控制•命令•函数Bash语法1-18Copyright©Bosenrui,2016.Allrightsreserved.变量定义:var=value变量引用:$var变量1-19Copyright©Bosenrui,2016.Allrightsreserved.$!最后一个后台进程的pid$$当前进程的pid$0当前程序名称$nn为1,2...n,脚本或函数的参数$#:所给的参数个数$*:所有给出的参数$?最后一个命令的退出状态常用变量1-20Copyright©Bosenrui,2016.Allrightsreserved.条件判断•if•case循环•for,while•break,continue流程控制1-21Copyright©Bosenrui,2016.Allrightsreserved.grep-i忽略大小写grep-v只显示未匹配的grep-w整个单词匹配grep-n同时打印所在行数grep-E正则匹配grep--helpgrep1-22Copyright©Bosenrui,2016.Allrightsreserved.用途数据分析统计命令组合使用定时任务执行进程监控SHELL的用途
本文标题:SHELL基础原理【博森瑞】
链接地址:https://www.777doc.com/doc-7534613 .html