欢迎来到天天文库
浏览记录
ID:19572515
大小:283.00 KB
页数:50页
时间:2018-10-03
《shell十三问-chinaunix精华贴整理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Shell十三问——ChinaUnix论坛精华整理 原创 ChinaUnix网中人 整理 Lkydeer 整理时间 2007-7-19 联系方式 lkydeer@hotmail.com -50- 目录 1简介3 2为何叫做shell?3 3shellprompt(PS1)与CarriageReturn(CR)的关系?4 4别人echo、你也echo,是问echo知多少?5 5
2、""(双引号)与''(单引号)差在哪?7 6var=value?export前后差在哪?11 7exec跟source差在哪?16 8()与{}差在哪?20 9$(())与$()还有${}差在哪?21 10$@与$*差在哪?25 11&&与
3、
4、差在哪?27 12>与<差在哪?31 12.131 12.232 12.333 12.434 12.537 13你要if还是case呢?38 14forwhat? while与until差在哪?42 15[^]跟[!]差在哪?45 -5
5、0- 1简介 ChinaUnix论坛shell版名为网中人的前辈于2004年发布的精华贴,最近学习这块内容,觉得很多东西讲的实在透彻,非常感谢前辈网中人,但是还是自己功力不够,很多问题解答不了,不知道有没有word或者pdf版,自己简单整理了一份,留着慢慢体会,也提供给大家,希望有用,疏漏处请见谅。 2为何叫做shell? 在介绍shell是甚么东西之前,不妨让我们重新检视使用者与计算机系统的关系:我们知道计算机的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操
6、作系统(OperatingSystem)"的软件来控管,事实上,我们每天所谈的linux,严格来说只是一个操作系统,我们称之为"核心(kernel)"。然而,从使用者的角度来说,使用者也没办法直接操作kernel,而是透过kernel的"外壳"程序,也就是所谓的shell,来与kernel沟通。这也正是kernel跟shell的形像命名关系。从技术角度来说,shell是一个使用者与系统的互动界面(interface),主要是让使用者透过命令行(commandline)来使用系统以完成工作。因此,shell的
7、最简单的定义就是---命令解译器(CommandInterpreter): *将使用者的命令翻译给核心处理, *同时,将核心处理结果翻译给使用者。每次当我们完成系统登入(login),我们就取得一个互动模式的shell,也称为loginshell或primaryshell。若从行程(process)角度来说,我们在shell所下达的命令,均是shell所产生的子行程。这现像,我们暂可称之为fork。如果是执行脚本(shellscript)的话,脚本中的命令则是由另外一个非互动模式的子shell(
8、subshell)来执行的。也就是primaryshell产生subshell的行程,subshell再产生script中所有命令的行程。(关于行程,我们日后有机会再补充。)这里,我们必须知道:kernel与shell是不同的两套软件,而且都是可以被替换的: *不同的操作系统使用不同的kernel, *而在同一个kernel之上,也可使用不同的shell。在linux的预设系统中,通常都可以找到好几种不同的shell,且通常会被列于如下档案里:/etc/shells不同的shell有着不同的功能
9、,且也彼此各异、或说"大同小异"。[*]常见的shell主要分为两大主流: sh: burneshell(sh) burneagainshell(bash) csh: cshell(csh) tcshell(tcsh) kornshell(ksh)[*]大部份的Linux系统的预设shell都是bash,其原因大致如下两点: *自由软件-50- *功能强大bash是gnuproject最成功的产品之一,自推出以
10、来深受广大Unix用户喜爱,且也逐渐成为不少组织的系统标准。 1shellprompt(PS1)与CarriageReturn(CR)的关系? 当你成功登录进一个文字界面之后,大部份情形下,你会在荧幕上看到一个不断闪烁的方块或底线(视不同版本而别),我们称之为*游标*(coursor)。游标的作用就是告诉你接下来你从键盘输入的按键所插入的位置,且每输如一键游标便向右边移动一个格子,若连续输入太多的话,则自
此文档下载收益归作者所有