Shell编程指南:查找、后台运行与文件操作

需积分: 12 7 下载量 93 浏览量 更新于2024-08-02 收藏 23KB DOCX 举报
"这篇文档详细介绍了shell编程的学习内容,包括find命令的使用、后台运行任务的设置、文件名置换规则、shell的输入与输出以及命令执行顺序等关键知识点。" 在深入探讨shell编程时,首先关注的是`find`命令。它是Linux系统中用于查找文件的强大工具。`find`的基本用法是结合目录、查询选项和匹配文件后的动作来搜索文件。例如,`find ~ "*.txt" -exec ls -l {} \;`会在当前用户的家目录(`~`)中查找所有.txt文件并列出它们的详细信息。`-ok`和`-exec`选项允许在找到文件后执行指定的shell命令。其他常用的find选项有`-perm`(按权限查找)、`-user`(按用户查找)、`-mtime`(按修改日期查找)等。 其次,文档提到了后台运行任务,这是通过`crontab`实现的。`crontab`允许用户设置定时任务,例如`1,30 20-23 1,5,22 * 6,0 /bin/find ~ -name "core.*" -exec rm {} \;`会每周末的20-23点间,每15分钟运行一次,删除家目录下的所有以`core.*`开头的文件。管理`crontab`任务可以通过`crontab -e`, `-l`, `-r`命令进行编辑、查看和删除。 文件名置换是shell编程中常见的操作,通配符如`*`匹配任意数量的字符,`?`匹配任意单个字符,`[ ]`用于匹配指定范围内的字符,而`[! ]`表示匹配不在范围内的人物。例如,`[A-Z]P??[!0-9]*`会匹配以大写字母开头,接着是"P",再是任意两个字符,然后是非数字的任意字符组成的字符串。 shell的输入和输出处理也是其核心特性。`echo`命令常用于打印文本,`>`和`>>`分别用于重定向输出到文件和追加到文件。`read`命令可以从标准输入读取数据并赋值给变量。管道`|`用于连接命令,例如`df -k | awk '{print $1}' | grep -v "Filesystem" | sed '/\/dev\///g'`将磁盘空间信息传递给后续命令处理。`tee`命令可以同时输出到屏幕和文件。 最后,shell命令的执行顺序是关键。`&&`运算符确保只有当前一个命令成功执行后才会运行下一个命令。例如,`command1 && command2`意味着只有`command1`成功,`command2`才会被执行。错误输出可以通过重定向到`/dev/null`来忽略,例如`grep "trident" missiles 2>/dev/null`。 以上是shell编程学习中的主要知识点,涵盖了文件查找、后台任务调度、文件名处理、输入输出管理和命令执行控制等多个方面,对于理解和编写shell脚本至关重要。