网站大量收购闲置独家精品文档,联系QQ:2885784924

第6章 命令行的使用.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 命令行的使用

【特殊变量——一堆符号】 除了普通的用户变量和环境变量外,还有一些特殊的变量。这些特殊变量特殊在几方面: 1.长得就特殊。 2.脚本执行时自动被设定。 3.不可修改。 【变量赋值】 变量赋值,除了可以直接写出初值之外,还可以将命令的运行结果付给变量。比如咱们之前用到过的“`”符号,可以调用指令并获得该指令的输出。那么同样也可以把这个输出赋值给一个变量。 6.3.4 Shell中的条件判断 所有编程语言,都少不了条件判断语句。我们的Shell也是可以支持简单的条件判断的。 【if和fi】 最常见简单的条件判断,那就是if语句了。Shell中的if语句比较个性,if后面的“表达式”部分必须被足够的空格分割的分崩离析才可以。 if的工作,就是根据后面命令的返回值,来判断程序应该走哪条分支。另外,if语句一定要有对应的fi作为结尾。(相当于endif) 【case】 类似于C语言的switch,case语句。Shell中也有case语句来实现多分支的判断。 case的作用:就是用某个变量的值,去匹配下边的几个“)”符号前的字符串。如果某行匹配,则执行该行的语句,直到发现双分号“;;”停止。如果没有找到匹配的,就执行“*)”一行的内容,遇到双分号停止。 6.3.5 Shell中的循环语句 【for循环】 Shell脚本同样支持for循环。不过跟多数语言的for循环的写法不太一样的是,Shell脚本中的for循环有中很个性的格式: for 变量 in 名字列表 do 命令列表 done 【while循环】 while循环也是经常用到的一种结构,它的用法大约如下: while 循环条件; do 语句 done 6.3.6 扩展阅读:Linux的文件权限 这一回中,我们提到了写一个脚本,要赋予它可执行权限,才能执行。有的同学可能对这个权限还不是很明白,那咱们就仔细说说Linux下的文件权限。 【简单的权限——只有3种】 我们Linux系统中的权限相对简单很多,对于一个文件(包括文件夹),只有3种权限——读、写、执行。 【面对的用户——只有3类】 现在,这3种权限我们明白了。但是权限离不开对用户的识别,Windows下可以细致的针对某一个用户,或者某一个组来分配特定的权限,那Linux呢?本着简洁高效不折腾的原则,我们Linux系统只对3类用户设置权限。就是文件的所有者、群组、其他。 【设置权限的命令——chmod】 chmod是专门用来修改文件权限的命令,它的使用格式大约是这样:chmod [设置权限的对象]+/-[权限] [文件] 6.4 正则表达式 在使用Shell命令或者Shell编程的时候,经常会用到一种叫做“正则表达式”的东西。 6.4.1 什么是正则表达式 正则表达式(Regular Expression)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。听着挺迷茫的吧,那说简单点:正则表达式就一段火星文似的字符串,这段字符串可以用来表示有一定规律的很多段字符串。 最初的正则表达式,是出现在理论计算机科学的自动控制理论和形式化语言理论中。 6.4.2 初识正则表达 话说那一天,蜗牛拿到一个脚本文件,里面大量使用了sed命令。蜗牛同学想要复制里面的所有sed命令,存入到另一个文件里,作为学习sed命令用法的参考。经过学习和研究,蜗牛了解到有个grep命令可以完成这个操作,他的用法大约是这样:$grep 字符串 文件名 6.4.3 强大的正则表达式 【使用反义字符】在收到MM传来的足有3 MB大的diary.txt文件后,蜗牛运行了这个命令: $grep “\d\d\d\d\d\d\d\d” diary.txt 咱已经知道了,\d可以匹配一个数字。那么这个命令的意思很明白:查找diary.txt文件中,所有出现了连续8个数字的行。 那么如果要精确匹配“有且只有8位的数字”该怎么办呢?这就用到正则中的反义了 。 那么,对于蜗牛同志的需求,就应该运行这样的命令: $grep “\D\d\d\d\d\d\d\d\d\D” diary.txt 这个命令用人类语言描述就是:查找diary.txt文件中,所有出现了连续8个数字,且此8个数字的前后1个字符都不是数字的行。这样就能更准确的定位1个固定电话的号码了。 【使用重复】 不过这样写连续的8个“\d”还是有点累,其实这里可以精简一下,写成这样: $grep “\D\d{8}\D” diary.txt 这里面,“{8}”的意思,就是前一个字符重复8次。 【使用中括号】 蜗牛终于找出了所有的“出现了连续8个数字,且此8个数字的前后1个字符都不是数字”的行,并让MM过目。结果,MM很不好意思的表示:这些好像都不是,那个电话号码有可

文档评论(0)

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

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

1亿VIP精品文档

相关文档