您的位置:首页 > 运维架构 > Shell

shell 学习基础知识

2013-03-13 17:04 405 查看
程序必须以下面的行开始(必须方在文件的第一行):
#!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序


七种文件类型

d            目录                                                       l             符号链接

s             套接字文件                                           b            块设备文件

c            字符设备文件                                       p            命名管道文件

-             普通文件


正则表达式

从一个文件或命令输出中抽取或过滤文本时。可使用正则表达式(RE),正则表达式是一些特殊或不很特殊的字符串模式的集合。

       基本的元字符集:

       ^                   只匹配行首。

       $                   只匹配行尾。

       *                   一个单字符后紧跟*,匹配0个或多个此单字符。

       []                   匹配[]内字符,可以是一个单字符,也可以是字符序列。可以使

              用-来表示[]内范围,如[1-5]等价于[1,2,3,4,5]。

\                    屏蔽一个元字符的特殊含义,如\$表示字符$,而不表示匹配行

                    尾。

       .                 匹配任意单字符。

       pattern\{n\}   匹配pattern出现的次数n

       pattern\{n,\}m匹配pattern出现的次数,但表示次数最少为n

       pattern\{n,m\} 匹配pattern出现的次数在n与m之间(n,m为0-255)

几个常见的例子:

       显示可执行的文件:ls –l | grep …x...x..x

       只显示文件夹:ls –l | grep  ^d

       匹配所有的空行:^$

       匹配所有的单词:[A-Z a-z]*

       匹配任一非字母型字符:[^A-Z a-z]

       包含八个字符的行:^……..$(8个.)


字符类描述

以下是可用字符类的相当完整的列表:

[:alnum:] 字母数字 [a-z A-Z 0-9]

[:alpha:] 字母 [a-z A-Z]

[:blank:] 空格或制表键

[:cntrl:] 任何控制字符

[:digit:] 数字 [0-9]

[:graph:] 任何可视字符(无空格)

[:lower:] 小写 [a-z]

[:print:] 非控制字符

[:punct:] 标点字符

[:space:] 空格

[:upper:] 大写 [A-Z]

[:xdigit:] 十六进制数字 [0-9 a-f A-F]

尽可能使用字符类是很有利的,因为它们可以更好地适应非英语 locale(包括某些必需的重音字符等等).


shell的引号类型

shell共有四种引用类型:

       “ ”          双引号

       ‘ ’           单引号

` `         反引号

\            反斜线

l        “ ” 可引用除$、` 、\ 、外的任意字符或字符串,“ ”中的变量能够正常显示变量值。

l        ‘ ’与“ ”类似,不同在于shell会忽略任何的引用值。

              例如: GIRL=‘girl’

                        echo “The ‘$GIRL’ did well”

              则打印:The ‘girl’ did well

l        ` `用于设置系统命令的输出到变量,shell会将` `中的内容作为一个系统命令并执行质。

              例如:echo `date` 则打印当前的系统时间。

l        \ 用来屏蔽特殊含义的字符:&  *  +  ^  $  `  “  |  ?

例如:expr 12 \* 12 将输出144
转载地址http://www.cnblogs.com/ebusi/archive/2011/02/09/1950422.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: