摘要:任何优秀的脚本都应该具有帮助和输入参数。写一个框架脚本(framework.sh),该脚本包含了大多数脚本需要的框架结构,是一个非常不错的主意。
最简单的调试方法当然是使用echo命令。你可以在任何怀疑出错的地方用echo打印变量值,这也是大部分shell程序员花费80%的时间用于调试的原因。Shell脚本的好处在于无需重新编译,而插入一个echo命令也不需要多少时间。
阅读全文
文章分类 - linux其他
linux相关知识
摘要:如果你写过比较复杂的脚本,就会发现可能在几个地方使用了相同的代码,这时如果用上函数,会方便很多。
阅读全文
摘要:引号(单引号和双引号)可以防止通配符*的扩展,而双引号可以防止通配符扩展但允许变量扩展;使用转义字符——反斜杆:\;
阅读全文
摘要:if 语句 && 和|| 操作符
case 语句
select 语句 while/for 循环
........
阅读全文
摘要:Shell脚本中有许多变量是系统自动设定的,我们将在用到这些变量时再作说明。除了只在脚本内有效的普通shell变量外,还有环境变量,即那些由export关键字处理过的变量。本文不讨论环境变量,因为它们一般只在登录脚本中用到。
阅读全文
摘要: shell 函数
函数由两部分组成:
函数标题。
函数体。
标题是函数名。函数体是函数内的命令集合。标题名应该唯一;如果不是,将会混淆结
果,因为脚本在查看调用脚本前将首先搜索函数调用相应的s h e l l。
阅读全文
摘要:条件测试
对文件、字符串和数字使用t e s t命令。
对数字和字符串使用e x p r命令。
e x p r命令测试和执行数值输出。使用最后退出状态命令$ ?可测知t e s t和e x p r,二者均以0表
示正确,1表示返回错误
测试文件状态
阅读全文
摘要:环境和shell变量
测试变量是否已经设置
也可以编写脚本测试变量是否取值,然后返回带有系统错误信息的结果
测试变量是否取值,如果未设置,则返回一空串
导出变量除了可以用export 外,还可以用 set 命令
最常用的s t t y命令使用在下述设置上
阅读全文
摘要:g r e p(全局正则表达式版本)允许对文本文件进行模式查找。
在g r e p命令中输入字符串参数时,最好将其用双引号括起来。
如果要在当前目录下所有. d o c文件中查找字符串“ s o r t”,
大小写敏感
缺省情况下, g r e p是大小写敏感的,如要查询大小写不敏感字符串,必须使用- i开关。
结合使用^和$可查询空行。使用- n参数显示实际行数: grep '^$' myfile
查询有特殊含义的字符,诸如$ . ' " * [] ^ | \ + ? ,必须在特定字符前加\。
使用已学过的知识可以很容易通过g r e p命令获得系统信息。
ps x命令意为显示系统上运行的所有进程列表。
阅读全文
摘要:命令执行顺序
在执行某个命令的时候,有时需要依赖于前一个命令是否执行成功。例如,假设你希望
将一个目录中的文件全部拷贝到另外一个目录中后,然后删除源目录中的全部文件。在删除
之前,你希望能够确信拷贝成功,否则就有可能丢失所有的文件。
如果希望在成功地执行一个命令之后再执行另一个命令,或者在一个命令失败后再执行
另一个命令,& &和| |可以完成这样的功能。相应的命令可以是系统命令或s h e l l脚本。
阅读全文
摘要:
F i n d是一个非常有效的工具,它可以遍历当前目录甚至于整个文件系统来查找某些文件或目录。
使用e c h o命令可以显示文本行或变量,或者把字符串输入到文件。
使用c a t命令把标准输出重定向到该文件中,这时c a t命令的输入是标准输入—键盘,你输入一些文字,输入完毕后按结束输入。
t e e命令作用可以用字母T来形象地表示。
当我们在s h e l l中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件系统中实际上有1 2个文件描述符, 0、1、2是标准输入、输出和错误。可以任意使用文件描述符3到9。你可能会问为什么会有一个专门针对错误的特殊文件?这是由于很多人喜欢把错误单独保存到一个文件中,特别是在处理大的数据文件时,可能会产生很多错误。
e x e c命令可以用来替代当前s h e l l;换句话说,并没有启动子s h e l l。使用这一命令时任何现有环境都将会被清除,并重新启动一个s h e l l。
阅读全文
摘要:SHELL学习文件类型:
d 目录。
l 符号链接(指向另一个文件)。
s 套接字文件。
b 块设备文件。
c 字符设备文件。
p 命名管道文件。
- 普通文件,或者更准确地说,不属于以上几种类型的文件。
阅读全文
摘要:Both /sbin/sh and /usr/bin/sh shells are Bourne shells.
大体意思是/sbin/sh 是静态链接的, /bin/sh是动态链接的。 静态链接的sh虽然比动态链接的size大,但它有个好处就是它的运行不依赖共享库。也就是说如果系统崩溃导致库文件丢失或损坏,它仍然能执行。
阅读全文
摘要:tar: ./linux-2.6.14.1/mm/oom_kill.o: Cannot open: 没有那个文件或目录
./linux-2.6.14.1/mm/.page-writeback.o.cmd
tar: ./linux-2.6.14.1/mm/.page-writeback.o.cmd: Cannot open: 没有那个文件或目录
./linux-2.6.14.1/mm/filemap_xip.c
tar: ./linux-2.6.14.1/mm/filemap_xip.c: Cannot open: 没有那个文件或目录
./linux-2.6.14.1/mm/filemap.h
tar: ./linux-2.6.14.1/mm/filemap.h: Cannot open: 没有那个文件或目录
./linux-2.6.14.1/Makefile.orig
tar: ./linux-2.6.14.1/Makefile.orig: Wrote only 0 of 10240 bytes
tar: Skipping to next header
./linu
阅读全文
摘要:(1)在虚拟机中创建一个新硬盘。打开VMware,但还未启动Linux时,选择edit virtualmachine setting,通过“add按钮”,添加一个新硬盘。在disk file处指定虚拟硬盘的名字和位置。D:\Linux\lab.vmdk注意:新硬盘的设备名为sdb或hdb (假定原来只安装一个硬盘情况下)(2)虚拟Linux下分区,格式化为fat32格式。启...
阅读全文


浙公网安备 33010602011771号