1 / 20
文档名称:

shell速成.doc

格式:doc   大小:174KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

shell速成.doc

上传人:小s 2022/4/11 文件大小:174 KB

下载得到文件列表

shell速成.doc

相关文档

文档介绍

文档介绍:除了仅在脚本内有效的普通shell变量外,还有环境变量,即那些由export关键字处
shell速成手册(z)
2008年11月20日星期四16:53
为什么要进行shell编程
Linux系统中虽然有各种各样的图形界面工具值给变量var
find:搜索文件,如根据文件名搜索:find.-namefilename-print
:
uniq:只输出文件中内容不一致的行,如:|uniq
expr:进行数学运算,如要进行2+3的运算,命令为:expr2"+"3
tee:将数据输出到标准输出设备(屏幕)和文件,比如:somecommand|teeoutfile
basenamefile:返回不包含路径的文件名,如:basename/bin/tux会返回tux
dirnamefile:返回文件所在路径,如:dirname/bin/tux会返回/bin
headfile:打印文本文件开头几行
tailfile:打印文本文件末尾几行
sed:Sed是一个基本的查找替换程序。可以从标准输入(如命令管道)读入文本,并将结果输出到标准输出(屏幕);该命令采用正则表达式进行搜索。不要和shell中的通配
符相混淆。比如将ubuntu替换为Ubuntu:|sed's/ubuntu/Ubuntu/'>

awk:awk用来提取文本文件中的字段。缺省的字段分割符是空格,可以使用-F指定
其它分割符。|awk-F,'{print$1","$3}',这里我们使用,作为字段
分割符,同时打印第一和第三个字段。如果该文件内容为AdamBor,34,IndiaKerryMiller,
22,USA,则上述命令的输出为:AdamBor,IndiaKerryMiller,USA
2)概念:管道,重定向和backtick
尽管这些都不是系统命令,不过它们扮演着相当重要的角色。
管道(|)将一个命令的输出作为另外一个命令的输入。
代码:
grep"hello"|wc-l
”hello”的行并计算行数,这里grep命令的输
出成了wc命令的输入。当然您可以使用多个命令。
重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。
代码:
>写入文件并覆盖旧文件
>>加到文件的尾部,保留旧文件内容。
反短斜线
使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。
代码:
find.-mtime-1-typef-print
上述命令可以查找过去24小时(-mtime-2则表示过去48小时)内修改过的文件。
如果你想将所有查找到的文件打一个包,则可以使用以下脚本:
代码:
#!/bin/sh
#Theticksarebackticks(')notnormalquotes('):tar-'find.-mtime-1-typef-print'
流程控制
"if"表达式如果条件为真则执行then后的部分:
代码:
if....;then
elif....;then
else
fi
大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件
是否存在及是否可读等等…通常用"[]"来表示条件测试,注意这里的空格很重要,要确
保方括号前后的空格。
代码:
[-f"somefile"]:判断是否是一个文件
[-x"/bin/ls"]:判断/bin/ls是否存在并有可执行权限
[-n"$var"]:判断$var变量是否有值["$a"="$b"]:判断$a和$b是否相等
执行mantest可以查看所有测试表达式可以比较和判断的类型。
直接执行以下脚本:
代码:
#!/bin/sh
if["$SHELL"="/bin/bash"];then
echo"yourloginshellisthebash(bourneagainshell)"
else
echo"yourloginshellisnotbashbut$SHELL"
fi
变量$SHELL包含了登录shell的名称,我们拿它和/bin/bash进行比较。
快捷操作符
熟悉C语言的朋友可能会很喜欢下面的表达式:
代码:
[-f"/etc/shadow"]&&echo"Thiscomputerusesshadowpasswors"
这里的&&就是一个快捷操作符,如果左边的表达式为真则执行右边的语句。你也