Shel的l十三问ChinaUnix精华贴整理.doc

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Shell十三问——ChinaUnix论坛精华整理 原创 ChinaUnix 网中人 整理 Lkydeer 整理时间 2007-7-19 联系方式 lkydeer@ 目 录 1 简介 3 2 为何叫做 shell ? 3 3 shell prompt(PS1) 与 Carriage Return(CR) 的关系? 4 4 别人 echo、你也 echo ,是问 echo 知多少? 5 5 (双引号) 与 (单引号)差在哪? 7 6 var=value?export 前后差在哪? 11 7 exec 跟 source 差在哪? 16 8 ( ) 与 { } 差在哪? 20 9 $(( )) 与 $( ) 还有${ } 差在哪? 21 10 $@ 与 $* 差在哪? 25 11 与 || 差在哪? 27 12 与 差在哪? 31 12.1 31 12.2 32 12.3 33 12.4 34 12.5 37 13 你要 if 还是 case 呢? 38 14 for what???while 与 until 差在哪? 42 15 [^ ] 跟 [! ] 差在哪? 45 简介 ChinaUnix论坛shell版名为网中人的前辈于2004年发布的精华贴,最近学习这块内容,觉得很多东西讲的实在透彻,非常感谢前辈网中人,但是还是自己功力不够,很多问题解答不了,不知道有没有word或者pdf版,自己简单整理了一份,留着慢慢体会,也提供给大家,希望有用,疏漏处请见谅。 为何叫做 shell ? 在介绍 shell 是甚么东西之前,不妨让我们重新检视使用者与计算机系统的关系:我们知道计算机的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为操作系统(Operating System)的软件来控管,事实上,我们每天所谈的 linux ,严格来说只是一个操作系统,我们称之为核心(kernel)。然而,从使用者的角度来说,使用者也没办法直接操作 kernel ,而是透过 kernel 的外壳程序,也就是所谓的 shell ,来与 kernel 沟通。这也正是 kernel 跟 shell 的形像命名关系。 从技术角度来说,shell 是一个使用者与系统的互动界面(interface),主要是让使用者透过命令行(command line)来使用系统以完成工作。 因此,shell 的最简单的定义就是命令解译器(Command Interpreter): ? ? ? ? * 将使用者的命令翻译给核心处理, ? ? ? ? * 同时,将核心处理结果翻译给使用者。 每次当我们完成系统登入(log in),我们就取得一个互动模式的 shell ,也称为 login shell 或 primary shell。若从行程(process)角度来说,我们在 shell 所下达的命令,均是 shell 所产生的子行程。这现像,我们暂可称之为 fork 。如果是执行脚本(shell script)的话,脚本中的命令则是由另外一个非互动模式的子 shell (sub shell)来执行的。 也就是 primary shell 产生 sub shell 的行程,sub shell 再产生 script 中所有命令的行程。 (关于行程,我们日后有机会再补充。) 这里,我们必须知道:kernel 与 shell 是不同的两套软件,而且都是可以被替换的: ? ? ? ? * 不同的操作系统使用不同的 kernel , ? ? ? ? * 而在同一个 kernel 之上,也可使用不同的 shell 。 在 linux 的预设系统中,通常都可以找到好几种不同的 shell ,且通常会被列于如下档案里:/etc/shells不同的 shell 有着不同的功能,且也彼此各异、或说大同小异。 [*]常见的 shell 主要分为两大主流: ? ? ? ? sh: ? ? ? ? ? ? ? ? burne shell (sh) ? ? ? ? ? ? ? ? burne again shell (bash) ? ? ? ? csh: ? ? ? ? ? ? ? ? c shell (csh) ? ? ? ? ? ? ? ? tc shell (tcsh) ? ? ? ? ? ? ? ? korn shell (ksh) [*]大部份的 Linux 系统的预设 shell 都是 bash ,其原因大致如下两点: ? ? ? ? * 自由软件 ? ? ? ? * 功能强大 bash 是 gnu project 最成功的产品之一,自推出以来深受广大 Un

文档评论(0)

xiaofei2001127 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档