Linux系统的文件打包与压缩—测试工程师核心开发技术(5)

发表于:2020-1-14 13:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:51Testing教研团队    来源:51Testing软件测试网原创

分享:
  第2章 Linux Shell编程技术
  Linux Shell是用户使用Linux操作系统的桥梁,它是一种应用程序,为用户提供了操作界面。本章主要介绍Linux Shell基础知识及其基本应用。
  2.1 Linux Shell概述
  本节主要介绍什么是Linux Shell,它有哪些版本及其特点。
  2.1.1  Shell
  Shell既是一种命令语言,又是一种程序设计语言。Shell是指一种应用程序,这个应用程序提供了一个用户操作界面,用户通过这个界面可以访问操作系统内核的服务。举一个很形象的例子:如果把计算机硬件比作一个人的躯体,系统内核则是人的大脑,至于Shell,把它比作人的五官似乎更加贴切。用户直接面对的不是计算机硬件而是Shell,用户把指令告诉Shell,然后Shell再传输给系统内核,接着内核再去支配计算机硬件执行各种操作,如图2-1所示。
  2.1.2  Shell脚本
  Shell脚本(Shell Script)是一种为Shell编写的脚本程序。业界所说的Shell通常是指Shell脚本,Shell和Shell脚本是两个不同的概念。由于习惯的原因,简洁起见,本书中出现的"Shell编程"均指Shell脚本编程,而不是指开发Shell自身。
  Shell脚本是利用Shell的功能所写的一个程序,这个程序使用纯文本文件,将一些Shell的语法与指令(含外部指令)写在里面,搭配正则表达式、管道命令与数据流重导向等功能,以达到我们所想要的处理目的。所以,Shell脚本就像是早期DOS年代的批处理(.bat)文件,最简单的功能就是将许多指令汇总在一起,让使用者轻松地完成复杂的操作。
  2.1.3  Shell的版本区分
  同Linux系统本身一样,Shell也有多种不同的版本。目前主要有下列版本的Shell。
  ● Bourne Shell:由贝尔实验室开发,是最早的Shell。
  ● BASH:GNU的Bourne Again Shell,是GNU操作系统默认的Shell。
  ● C Shell:Sun公司Shell的BSD版本,采用的语法类似于C编程语言。
  ● Korn Shell:结合了C Shell的交互式特性,融入了Bourne Shell的语法,在大部分内容上与Bourne Shell兼容。
  ● TC Shell:CSH的增强版,并且完全兼容CSH。它不但具有CSH的全部功能,而且具有命令行编辑、拼写校正、可编程字符集、历史记录、作业控制等功能,以及C语言风格的语法结构。
  ● Z Shell:终极Shell,集成了BASH、KSH的重要特性,同时增加了自己独有的特性。
  2.1.4  BASH的特点
  本书采用CentOS,CentOS默认使用的Shell是BASH,即Bourne Again Shell,它是Bourne Shell的增强版本。
  BASH的特点如下。
  1.记录历史命令
  对于用户用过的命令,Linux系统是有记录的,预设可以记录1000条历史命令。这些命令保存在用户主目录中的.bash_history文件中。有一点需要用户知道的是,只有当用户正常退出当前Shell时,在当前Shell中运行的命令才会保存至.bash_history文件中。
  与历史命令有关的一个字符是"!",其常见应用如下。
  ● !!(连续两个"!"),表示执行上一条指令。
  ● !n(这里的n是数字),表示执行历史命令中的第n条指令。例如,!100表示执行历史命令的第100条命令。
  ● !字符串(字符串长度大于或等于1)。例如,!ta表示执行历史命令中最近一次以"ta"为开头的指令。
  2.指令和文件名补全
  按Tab键可以帮用户补全一个指令,也可以帮用户补全一个路径或者一个文件名。连续按两次Tab键,系统会把所有的指令或者文件名都列出来。
  3.别名
  别名(alias)是BASH所特有的功能之一。我们可以通过alias给一个常用并且很长的指令指定一个易记的别名。如果不想用这个别名了,还可以用unalias解除别名。直接输入"alias"命令会看到目前系统预设的别名,如图2-2所示。
  
图2-2  系统预设的别名
  可以看到,系统预设的alias指令并不多,我们用的ll命令其实是ls -l的别名。用户也可以自定义想要的指令别名。alias语法很简单,具体如下。
  alias [命令别名]=['具体的命令']
  4.通配符
  在BASH下,可以使用"*"匹配零个或多个字符,而用"?"匹配一个字符。
  5.输入/输出重定向
  输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。输出重定向更常用,它经常用于将命令的结果输入文件中,而不是屏幕上。输入重定向的命令是"<",输出重定向的命令是">"。另外,还有错误重定向"2>",以及追加重定向">>",稍后会详细介绍。
  6.管道符
  管道符"|"用于把前面命令的运行结果传递给后面的命令。典型的例子是"|less"。
  7.作业控制
  当运行一个进程时,用户可以使它暂停(按Ctrl+Z组合键),然后使用fg命令恢复它,可以利用bg命令使它在后台运行,也可以使它终止(按Ctrl+c组合键)。

版权声明:51Testing软件测试网获得人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
22/2<12
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号