Shell十三问——ChinaUnix论坛精华整理.docxVIP

Shell十三问——ChinaUnix论坛精华整理.docx

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PDF created with pdfFactory Pro trial version PDF created with pdfFactory Pro trial version Shell 十三问——Chi naUni x 论坛精华整理 原创 ChinaUnix 网中人 整理 Lkydeer 整理时间 2007-7-19 联系方式 lkydeer@ -1- 目 录 TOC \o "1-1" \h \z \u 简介 3 为何叫做 shell ? 3 shell prompt(PS1) 与 Carriage Return(CR) 的关系? 4 别人 echo、你也 echo ,是问 echo 知多少? 5 5 " "(双引号) 与 ' '(单引号)差在哪? 7 var=value?export 前后差在哪? 11 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 你要 if 还是 case 呢? 38 for what? while 与 until 差在哪? 42 15 [^ ] 跟 [! ] 差在哪? 45 -2- 简介 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: csh: burne shell (sh) burne again shell (bash) c shell (csh) tc shell (tcsh) korn shell (ksh) [*]大部份的 Linux 系统的预设 shell 都是 bash ,其原因大致如下两点: 自由软件 -3- 功能强大 bash 是 gnu project 最成功的产品之一,自推出以来深受广大 Unix 用户喜爱,

文档评论(0)

159****1262 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档