bash 脚本学习笔记
2006-07-17 21:40
357 查看
通常在/etc目录下面有大量的脚本文件,随时可以参考、学习
1、搜索含有某个指令的脚本:find /etc 2>/dev/null | xargs grep 'awk ' 2>/dev/null
说明:
find /etc 查找/etc 目录下的所有文件,并显示文件名
2>/dev/null 把所有的错误信息,如权限错误,不能访问等等 重定向倒看不到的虚拟设备,只显示有用信息。(1代表“标准输出”,2代表“标准错误输出”)
| 把前一个命令的输出以管道的方式传给后面的命令
xargs 对输入的每一个参数,循环执行后面的命令
grep 'awk' 在指定文件中查找字符串,这里的输入文件时xargs命令传过来的,每次去一个find输出的文件名
2、正则替换sed:
sed -i 's/regExp1/replaceExp/g' file -i 代表直接替换文件中的内容 前面的s代表搜索替换,后面的g代表替换所有,三个 / 可以用任意字符替换,比如 sed 's@regExp1@replaceExp@g' file 或 sed 's#regExp1#replaceExp#g' file ,即使不要后面的g(只替换第一个找到的内容),最后一个特殊符号也不能省掉。
在替换表达式中可以使用 /1 这样的特殊参数来替代前面正则表达式中匹配的部分内容,例如:sed -n 's/.*/(movie_Play.asp?Id=[0-9]/+/).*/http:////www.kankan.com///1/p' 这里最后一个p把内容显示到屏幕上
进行多次处理,以简化表达式:grep "Id=[0-9]/+.*img" movie_list.htm | sed -n 's/.*/(movie_Play.asp?Id=[0-9]/+/).*/http:////www.kankan.com///1/p'
还有awk cut 等命令可以完成相似的功能,参见/etc 下的相应代码 以及 info awk , info cut
3、bash 脚本中的 流程控制:
if [[ ! -d /var/run/nscd ]] ; then
mkdir -p /var/run/nscd
chmod 755 /var/run/nscd
fi
for entry in $entries ; do
echo $entry
done
case $entry in
nisplus*)
echo "case nisplus"
*)
echo "default"
;;
esac
注意case语句中倒数第二行的两个分号是必需的
4、查看命令的位置,察看文件的类型
which which 察看命令文件的位置,这个是一个单独的文件
type type 察看命令文件的位置,这个是bash内置命令
file /dev/null 察看文件的格式信息
1、搜索含有某个指令的脚本:find /etc 2>/dev/null | xargs grep 'awk ' 2>/dev/null
说明:
find /etc 查找/etc 目录下的所有文件,并显示文件名
2>/dev/null 把所有的错误信息,如权限错误,不能访问等等 重定向倒看不到的虚拟设备,只显示有用信息。(1代表“标准输出”,2代表“标准错误输出”)
| 把前一个命令的输出以管道的方式传给后面的命令
xargs 对输入的每一个参数,循环执行后面的命令
grep 'awk' 在指定文件中查找字符串,这里的输入文件时xargs命令传过来的,每次去一个find输出的文件名
2、正则替换sed:
sed -i 's/regExp1/replaceExp/g' file -i 代表直接替换文件中的内容 前面的s代表搜索替换,后面的g代表替换所有,三个 / 可以用任意字符替换,比如 sed 's@regExp1@replaceExp@g' file 或 sed 's#regExp1#replaceExp#g' file ,即使不要后面的g(只替换第一个找到的内容),最后一个特殊符号也不能省掉。
在替换表达式中可以使用 /1 这样的特殊参数来替代前面正则表达式中匹配的部分内容,例如:sed -n 's/.*/(movie_Play.asp?Id=[0-9]/+/).*/http:////www.kankan.com///1/p' 这里最后一个p把内容显示到屏幕上
进行多次处理,以简化表达式:grep "Id=[0-9]/+.*img" movie_list.htm | sed -n 's/.*/(movie_Play.asp?Id=[0-9]/+/).*/http:////www.kankan.com///1/p'
还有awk cut 等命令可以完成相似的功能,参见/etc 下的相应代码 以及 info awk , info cut
3、bash 脚本中的 流程控制:
if [[ ! -d /var/run/nscd ]] ; then
mkdir -p /var/run/nscd
chmod 755 /var/run/nscd
fi
for entry in $entries ; do
echo $entry
done
case $entry in
nisplus*)
echo "case nisplus"
*)
echo "default"
;;
esac
注意case语句中倒数第二行的两个分号是必需的
4、查看命令的位置,察看文件的类型
which which 察看命令文件的位置,这个是一个单独的文件
type type 察看命令文件的位置,这个是bash内置命令
file /dev/null 察看文件的格式信息
相关文章推荐
- 安卓学习笔记--bash脚本
- 安卓学习笔记--bash脚本
- Linux学习笔记:bash特性之多命令执行,shell脚本
- [linux学习笔记]第2天:时间管理,命令帮助信息,文本查看,权限及用户管理,BASH和变量,脚本
- bash脚本学习(实验楼笔记)
- Linux学习笔记--bash脚本编程之一变量、变量类型
- 27. Python脚本学习笔记二十七 测试及测试工具
- 5. Python脚本学习实战笔记五 茶话会
- Javascript开发常用脚本学习笔记---Update2
- Linux shell 脚本攻略学习笔记6
- Linux自学笔记——Bash脚本之数组以及内置字符串处理
- shell脚本学习笔记(目录)
- Linux 学习笔记 -- 第三部分 学习 shell 与 shell script -- 第11章 认识与学习 bash
- 8. Python脚本学习实战笔记八 使用XML-RPC进行文件共享
- 【安全牛学习笔记】手动漏洞挖掘-SQL注入XSS-简介、跨站脚本检测和常见的攻击利用手段
- shell脚本学习笔记:通过shell实现linux用户管理和监控
- linux shell脚本学习笔记
- bash shell笔记1 脚本基础知识
- Linux shell 脚本攻略 学习笔记-2
- Linux命令与shell脚本编程学习笔记-16创建函数