linux shell
NS西北风
为梦想而坚持。
展开
-
linux shell编程指南第九章------AWK 介绍1
为使一域号匹配正则表达式,使用符号‘~’后紧跟正则表达式,也可以用i f语句。a w k中i f后面的条件用()括起来。观察文件g r a d e . t x t,如果只要打印b r o w n腰带级别可知其所在域为f i e l d - 4,这样可以写出表达式{if($4~/brown/) print }意即如果f i e l d - 4包含b r o w n,打印它。如果条件满足,原创 2013-11-26 22:58:16 · 1184 阅读 · 0 评论 -
linux shell编程指南第九章------AWK 介绍3
s u b s t r的另一种形式是返回字符串后缀或指定位置后面字符。这里需要给出指定字符串及其返回字串的起始位置。例如,从文本文件中抽取姓氏,需操作域1,并从第三个字符开始:[root@localhost huangcd]# awk '{print substr($1,3)}' grade.txt TansleyLuluBunnyTrollTansley还有一原创 2013-11-28 19:59:23 · 1510 阅读 · 1 评论 -
linux shell编程指南第七章------正则表达式介绍
本章设计的基本元字符使用在g r e p和s e d命令中,同时结合{ \ \ }(以字符出现情况进行匹配的元字符)使用在a w k语言中。行首前4个字符为c o m p,匹配操作表示为:^ c o m p假定重新定义匹配模式,行首前4个字符为c o m p,后面紧跟两个任意字符,并以i n g结尾,一种方法为:^ c o m p . . i n g原创 2013-11-24 15:35:17 · 965 阅读 · 0 评论 -
linux shell编程指南第九章------AWK 介绍
如果要格式化报文或从一个大的文本文件中抽取数据包,那么a w k可以完成这些任务。它在文本浏览和数据的熟练使用上性能优异。可以说a w k是一种自解释的编程语言,之所以要在s h e l l中使用a w k是因为a w k本身是学习的好例子,但结合a w k与其他工具诸如g r e p和s e d,将会使s h e l l编程更加容易。本书几乎所有包含a w k命令的脚本都原创 2013-11-26 21:57:07 · 1121 阅读 · 0 评论 -
linux shell编程指南第十章------sed 用法介绍1
要附加文本,使用符号a \,可以将指定文本一行或多行附加到指定行。如果不指定文本放置位置, s e d缺省放在每一行后面。附加文本时不能指定范围,只允许一个地址模式。文本附加操作时,结果输出在标准输出上。注意它不能被编辑,因为s e d执行时,首先将文件的一行文本拷贝至缓冲区,在这里s e d编辑命令执行所有操作(不是在初始文件上),因为文本直接输出到标准输出,s e d并无拷贝。原创 2013-11-29 22:30:17 · 1894 阅读 · 2 评论 -
linux shell编程指南第九章------AWK 介绍2
修改文本域即对其重新赋值。需要做的就是赋给一个新的字符串。在J . Tr o l l中加入字母,使其成为J . L . Tr o l l,表达式为$ 1 = " J . L . Tr o l l ",记住字符串要使用双秒号( " "),并用圆括号括起整个语法。root@localhost huangcd]# awk '{if($1=="J.Troll") ($1="J.L.Troll"原创 2013-11-27 23:54:30 · 1148 阅读 · 0 评论 -
linux shell编程指南第十章------sed 用法介绍2
前面已经讲述了s e d的基本功能,但是在脚本或命令行中使用s e d真正要做的是修改或删除文件或字符串中文本。下面运用前面学过的知识讲述这一点。使用s e d实现的一个重要功能是在另一个系统中下载的文件中剔除控制字符。下面是传送过来的文件( d o s . t x t)的部分脚本。必须去除所有可疑字符,以便于帐号所有者使用文件。任务1。删除所有的#字符很容易,可以原创 2013-12-03 00:37:30 · 2528 阅读 · 1 评论 -
linux shell编程指南第十章------sed 用法介绍
s e d是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道的文本。s e d可以做些什么呢?别忘了,Vi也是一个文本编辑器。s e d可以随意编辑小或大的文件,有许多s e d命令用来编辑、删除,并允许做这项工作时不在现场。s e d一次性处理所有改变,因而变得很有效,对用户来讲,最重要的是节省了时间。原创 2013-11-28 21:19:29 · 2479 阅读 · 2 评论 -
linux shell编程指南第十一章------------合并与分割
有几种工具用来处理文本文件分类、合并和分割操作,本章详细介绍这些工具。本章内容有:• 实用的分类(s o r t)操作。• uniq。• join。• cut。• paste。• split。s o r t命令将许多不同的域按不同的列顺序分类。当查阅注册文件或为另一用户对下载文件重排文本列时, s o r t工具很方便。实际上,使用其他U N I X工具时,已假原创 2013-11-30 10:10:30 · 1471 阅读 · 0 评论 -
linux shell编程指南第十一章------------合并与分割2
c u t用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件。下一节将介绍粘贴用法。c u t一般格式为:cut [options] file1 file2下面介绍其可用选项:-c list 指定剪切字符数。-f field 指定剪切域数。-d 指定与空格和t a b键不同的域分隔符。- c用来指定剪切范围,如下所示:- c 1,5-7 剪原创 2013-12-02 23:19:46 · 1100 阅读 · 0 评论 -
linux shell编程指南第十一章------------合并与分割1
j o i n用来将来自两个分类文本文件的行连在一起。如果学过S Q L语言,可能会很熟悉j o i n命令。下面讲述j o i n工作方式。这里有两个文件f i l e 1和f i l e 2,当然已经分类。每个文件里都有一些元素与另一个文件相关。由于这种关系, j o i n将两个文件连在一起,这有点像修改一个主文件,使之包含两个文件里的共同元素。文本文件中的域通常由空格或原创 2013-11-30 15:46:02 · 1340 阅读 · 0 评论 -
linux shell编程指南第十二章------------tr 用法
t r用来从标准输入中通过替换或删除操作进行字符转换。t r主要用于删除文件中控制字符或进行字符转换。使用t r时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。t r刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。原创 2013-12-02 23:49:10 · 1367 阅读 · 0 评论 -
linux shell编程指南第十八章------控制流结构
在书写正确脚本前,大概讲一下退出状态。任何命令进行时都将返回一个退出状态。如果要观察其退出状态,使用最后状态命令:$ echo $?主要有4种退出状态。前面已经讲到了两种,即最后命令退出状态$ ?和控制次序命令( $ $、| |)。其余两种是处理s h e l l脚本或s h e l l退出及相应退出状态或函数返回码。在第1 9章讲到函数时,也将提到其返回码。要退出当前进程原创 2013-12-08 23:08:53 · 1776 阅读 · 0 评论 -
linux shell编程指南第十四章------环境和shell变量
为使s h e l l编程更有效,系统提供了一些s h e l l变量。s h e l l变量可以保存诸如路径名、文件名或者一个数字这样的变量名。s h e l l将其中任何设置都看做文本字符串。有两种变量,本地和环境。严格地说可以有4种,但其余两种是只读的,可以认为是特殊变量,它用于向s h e l l脚本传递参数。原创 2013-12-06 14:00:34 · 1258 阅读 · 0 评论 -
linux shell编程指南第十五章------引号
上一章介绍了变量和替换操作,在脚本中执行变量替换时最容易犯的一个错误就是由于引用错误。在命令行中引用是很重要的。这里只讲述引用的基本规则。因为使用引用的例子很多。本书接下来的两个部分将一一予以讲述。脚本中执行行操作时, s h e l l将对脚本设置予以解释。要采取一种方法防止s h e l l这样做,即使用引用号,包括各式引用或使用反斜线。下面列出各种引用类型。" "原创 2013-12-07 11:21:37 · 1676 阅读 · 0 评论 -
linux shell编程指南第十三章------登录环境
登录成功后,系统执行两个环境设置文件,第一个是/ e t c / p r o f i l e,第二个是. p r o f i l e,位于用户根目录下。系统还会处理其他的初始化文件。这里只涉及p r o f i l e文件。用户登录时,自动读取/ e t c目录下p r o f i l e文件,此文件包含:• 全局或局部环境变量。• PAT H信息。• 终端设置。• 安原创 2013-12-06 13:51:00 · 874 阅读 · 0 评论 -
linux shell编程指南第十七章------条件测试
写脚本时,有时要判断字符串是否相等,可能还要检查文件状态或是数字测试。基于这些测试才能做进一步动作。Te s t命令用于测试字符串,文件状态和数字,也很适合于下一章将提到的i f、t h e n、e l s e条件结构。本章内容有:• 对文件、字符串和数字使用t e s t命令。• 对数字和字符串使用e x p r命令。e x p r命令测试和执行数值输出。使用最后退出状态原创 2013-12-07 14:20:36 · 1329 阅读 · 0 评论 -
linux shell编程指南第八章------grep 家族
相信g r e p是U N I X和L I N U X中使用最广泛的命令之一。g r e p(全局正则表达式版本)允许对文本文件进行模式查找。如果找到匹配模式, g r e p打印包含模式的所有行。开始讨论之前,先生成一个文件,插入一段文本,并在每列后加入键,g r e p命令示例中绝大多数将以此为例,其命名为d a t a . . f。生成一个文件,但不知其含义,将是一件很枯原创 2013-11-24 16:05:25 · 1192 阅读 · 0 评论 -
linux shell编程指南第六章------命令执行顺序
在执行某个命令的时候,有时需要依赖于前一个命令是否执行成功。例如,假设你希望将一个目录中的文件全部拷贝到另外一个目录中后,然后删除源目录中的全部文件。在删除之前,你希望能够确信拷贝成功,否则就有可能丢失所有的文件。如果希望在成功地执行一个命令之后再执行另一个命令,或者在一个命令失败后再执行另一个命令,& &和| |可以完成这样的功能。相应的命令可以是系统命令或s h e l l脚本原创 2013-12-18 14:46:22 · 2093 阅读 · 0 评论 -
linux shell编程指南第五章------shell输入与输出1
在使用c a t命令时要注意,它不会在文件分页符处停下来;它会一下显示完整个文件。如果希望每次显示一页,可以使用m o r e命令或把c a t命令的输出通过管道传递到另外一个具有分页功能的命令中,$ cat myfile | more或$ cat myfile | pg如果希望创建一个名为b i g f i l e的文件,该文件包含上述三个文件的内容,可以把上面命令原创 2013-11-21 23:25:24 · 1234 阅读 · 0 评论 -
linux shell编程指南第十九章------shell 函数
s h e l l允许将一组命令集或语句形成一个可用块,这些块称为s h e l l函数。函数体。标题是函数名。函数体是函数内的命令集合。标题名应该唯一;如果不是,将会混淆结果,因为脚本在查看调用脚本前将首先搜索函数调用相应的s h e l l。定义函数的格式为:函数名(){命令1. . .}或者函数名(){命令1. . .}两者方式都可原创 2013-12-11 10:34:09 · 1498 阅读 · 0 评论 -
linux shell编程指南第十八章------控制流结构1
前面讨论e x p r时指出,循环时如果要加入计数,使用此命令。下面使用l s在f o r循环中列出文件及其数目。[root@localhost huangcd]# cat forcount #!/bin/bashcounter=0for files in *do counter=`expr $counter + 1`doneecho "there are原创 2013-12-11 14:21:36 · 1410 阅读 · 0 评论 -
linux shell编程指南第十九章------shell 函数1
在菜单中进行选择时,最麻烦的工作是必须在选择后键入回车键,或显示“ press any keyto continue”。可以使用d d命令解决不键入回车符以发送击键序列的问题。d d命令常用于对磁带或一般的磁带解压任务中出现的数据问题提出质疑或转换,但也可用于创建定长文件。下面创建长度为1兆的文件m y f i l e。[root@localhost huangcd]# dd if原创 2013-12-11 13:08:08 · 1044 阅读 · 0 评论 -
linux shell编程指南第二十二章------创建屏幕输入
屏幕输入或数据输入是接受输入(这里指键盘)并验证其有效的能力。如果有效,接受它,如果无效,放弃该输入。前面讲到了基于一些条件的测试函数,例如字符串长度、字符串是数字或字符型,这一章在脚本中将继续使用这些函数。未完待续。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。原创 2013-12-13 15:03:26 · 1100 阅读 · 0 评论 -
linux shell编程指南第二十三章------脚本调试
s h e l l编程最烦人的一项工作是调试问题。有一些方法可以借鉴,但是最好能在问题出现前防止大部分错误,为此应遵循以下规则。需要牢记的一点是当s h e l l打印出一个脚本错误后,不要只看那些疑问行。而是要观察整个相关代码段。s h e l l不会对错误进行精确定位,而是在试图结束一个语句时进行错误统计。循环错误f o r、w h i l e、u n t i l和c原创 2013-12-13 15:27:54 · 1075 阅读 · 0 评论 -
linux shell编程指南第二十四章------shell嵌入命令
实际上已经用过了许多s h e l l嵌入命令。可能要想什么是s h e l l嵌入,这些命令是在实际的Bourne shell里创建而不是存在于/ b i n或u s r / b i n目录里。嵌入命令比系统里的相同命令要快。本章内容有:• 标准的Bourne shell嵌入命令列表例如,c d和p w d命令可同时在系统和嵌入命令中发现。如果要运行系统版,简单输入命令路径即原创 2013-12-13 15:55:32 · 1252 阅读 · 0 评论 -
linux shell编程指南第二十章------向脚本传递参数
前面已经讲到如何使用特定变量$ 1 . . $ 9向脚本传递参数。$ #用于统计传递参数的个数。可以创建一个u s a g e语句,需要时可通知用户怎样以适当的调用参数调用脚本或函数。简单地说,下述脚本框架控制参数开始与停止。脚本需要两个参数,如果没有输入两个参数,那么产生一个u s a g e语句。注意这里使用c a s e语句处理输入脚本的不同参数。[root@localh原创 2013-12-13 10:55:54 · 8406 阅读 · 0 评论 -
linux shell编程指南第二十一章------创建屏幕输出
用户可以使用s h e l l脚本创建交互性的、专业性强的屏幕输出。要实现这一点,系统上需要一个彩色监视器和t p u t命令。本章内容有:• tput命令。• 使用转义序列和产生控制码。• 使用颜色。作者写这本书时,遇到了t p u t命令的三种不同变形。至今为止最好的是GNU tput,如果没有这个版本,首先下载它并安装在你的系统里。t p u t使用文件/ e t原创 2013-12-13 14:51:19 · 1258 阅读 · 0 评论 -
linux shell编程指南第二十五章------深入讨论<<
我们在介绍标准输入和标准输出以及w h i l e循环的时候已经几次遇到了如何发送邮件,如何构建一个菜单,不过本章将介绍以下内容:• 快速创建一个文件。• 自动进入菜单。• ftp传输。• 连接至其他应用系统。该命令的一般形式为:command t e x tw o r d这里再简要回顾一下符。在该分界符以后的内容都被当作输入,直到s h e l l原创 2013-12-13 16:24:17 · 1106 阅读 · 0 评论 -
linux shell编程指南第二十六章------shell 工具
任何脚本都应该能够创建临时文件或日志文件。在运行脚本做备份时,最好是保存一个日志文件。这些日志文件通常在文件系统中保留几周,过时将被删除。在开发脚本的时候,可能总要创建一些临时的文件。在正常运行脚本的时候,也要使用临时文件保存信息,以便作为另外一个进程的输入。可以使用c a t命令来显示一个临时文件的内容或把它打印出来。在创建日志文件时,最好能够使它具有唯一性,可以按照日志文件原创 2013-12-14 11:17:03 · 2098 阅读 · 0 评论 -
linux shell编程指南第二十六章------shell 工具1
在用户登录时,系统将会执行/ e t c / p r o f i l e文件,根用户不希望其他普通用户打断这一进程。他通常通过设置t r a p来屏蔽信号1、2、3和1 5,然后在用户读当天的消息时重新打开这些信号。最后仍然回到屏蔽这些信号的状态。在编写脚本时也可以采用类似的办法。在脚本运行的某些关键时刻,比如打开了很多文件时,不希望该脚本被中断,以免破坏这些文件。通过设置t r原创 2013-12-15 18:23:04 · 1522 阅读 · 0 评论 -
linux shell编程指南第三章------后台执行命令
。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。在本章中我们将讨论:• 设置c r o n t a b文件,并用它来提交作业。• 使用a t命令来提交作业。• 在后台提交作业。• 使用n o h u p命令提交作业。名词解释:cron 系统调度进程。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。原创 2013-11-12 21:08:57 · 1547 阅读 · 0 评论 -
linux shell编程指南第四章------文件名置换
* 匹配文件名中的任何字符串,包括空字符串。? 匹配文件名中的任何单个字符。[...] 匹配[ ]中所包含的任何字符。[!...] 匹配[ ]中非感叹号!之后的字符。当s h e l l遇到上述字符时,就会把它们当作特殊字符,而不是文件名中的普通字符,这样用户就可以用它们来匹配相应的文件名。为了列出所有以大写字母开头的文件名,可以用:$ ls [A-原创 2013-11-20 22:03:54 · 889 阅读 · 0 评论 -
linux shell编程指南第二章------使用find和xargs
当最初登录到系统中时, u m a s k命令确定了你创建文件的缺省模式。这一命令实际上和c h m o d命令正好相反。你的系统管理员必须要为你设置一个合理的u m a s k值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。在已经登录之后,可以按照个人的偏好使用u m a s k命令来改变文件创建的缺省权限。相应的改变直到退出该s h e l原创 2013-11-11 23:23:52 · 973 阅读 · 0 评论 -
linux shell编程指南第五章------shell输入与输出
使用e c h o命令可以显示文本行或变量,或者把字符串输入到文件。它的一般形式为:echo stringe c h o命令有很多功能,其中最常用的是下面几个:\c 不换行。\f 进纸。\t 跳格。\n 换行。,你可以让终端铃响一声,显示出$ H O M E目录,并且可以让系统执行t t y命令(注意,该命令用键盘左上角的符号,法语中的抑音符引起来,不是原创 2013-11-20 23:38:57 · 971 阅读 · 0 评论 -
linux shell 编程指南第一章-----文件安全与权限
还可以通过使用- R选项连同子目录下的文件一起设置:chmod -R 664 /usr/local/home/dave/*这样就可以一次将/ u s r / l o c a l / h o m e / d a v e目录下的所有文件连同各个子目录下的文件的权限全部设置为文件属主和同组用户可读和写,其他用户只读。使用- R选项一定要谨慎,只有在需要改变目录树下全部文件权限时才可以使用原创 2013-11-10 13:12:41 · 1060 阅读 · 0 评论 -
linux shell编程指南第二章------使用find和xargs1
F i n d命令把匹配到的文件传递给x a rg s命令,而x a rg s命令每次只获取一部分文件而不是全部,不像- e x e c选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。在有些系统中,使用- e x e c选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能原创 2013-11-12 20:38:12 · 896 阅读 · 0 评论 -
linux shell编程指南第十六章------shell脚本介绍
一个s h e l l脚本可以包含一个或多个命令。当然可以不必只为了两个命令就编写一个s h e l l脚本,一切由用户自己决定。s h e l l脚本可以在行命令中接收信息,并使用它作为另一个命令的输入。脚本不是复杂的程序,它是按行解释的。脚本第一行总是以# ! / b i n / s h开始,这段脚本通知s h e l l使用系统上的Bourne shell解释器。原创 2013-12-07 11:38:57 · 1178 阅读 · 0 评论