Bash脚本
Nov
6
bash环境下,以“-”或“--”开头的参数称选项参数。可以使用bash内置命令getopts或外部命令getopt进行传递。getopts的时候可参考《》,以下用getopt的范例进行说明。
Jul
16
花费了几天的时间,写了一个把红旗CD安装光盘整合成DVD光盘的脚本。顺便也复习了一次bash脚本的知识。理论部分的介绍,请参考前面的几篇日志,这里就不详细说明了。
一、参数使用
脚本以红旗DC 5.0 for x86 sp2为范例进行编写。而考虑到兼容过去和其他的版本,也加入了一下简单的参数,命令:
usage:
参数:
一、参数使用
脚本以红旗DC 5.0 for x86 sp2为范例进行编写。而考虑到兼容过去和其他的版本,也加入了一下简单的参数,命令:
usage:
引用
dvdtogether.sh [-a x86|x86_64] [-c copy|release] [-v dc4.1|dc5.0] SOURCEPATH TARGETPATH
参数:
引用
-a 可选择两个架构: x86;x86_64
-v 可选择操作系统的版本: dc4.1;dc5.0
-c 决定对工具盘是拷贝还是一同释放到安装光盘中: copy;release
(释放后,就不需要单独安装工具光盘了)
-i 定义iso的名称,例如:
假设RedFlag DC 5.0 for x86's CD盘名称为:redflag-dc5.0-sp2-x86-release-disc{1234}.iso
那么,可使用参数: -i redflag-dc5.0-sp2-x86-release
(这主要是为了兼容更多的iso,请注意写法,不要写错)
-p 定义patch的版本,例如:sp2
-h 帮助信息
SOURCEPATH 定义原CD安装盘的iso路径
TARGETPATH 定义生成DVD的存放路径
-v 可选择操作系统的版本: dc4.1;dc5.0
-c 决定对工具盘是拷贝还是一同释放到安装光盘中: copy;release
(释放后,就不需要单独安装工具光盘了)
-i 定义iso的名称,例如:
假设RedFlag DC 5.0 for x86's CD盘名称为:redflag-dc5.0-sp2-x86-release-disc{1234}.iso
那么,可使用参数: -i redflag-dc5.0-sp2-x86-release
(这主要是为了兼容更多的iso,请注意写法,不要写错)
-p 定义patch的版本,例如:sp2
-h 帮助信息
SOURCEPATH 定义原CD安装盘的iso路径
TARGETPATH 定义生成DVD的存放路径
Mar
23
昨天说明了如何给驱动增加一个自定义页面。未免以后需要多次修改驱动,临时写了一个简单的脚本方便使用。目前该脚本只能对指定的EPSON-LQ-300K+.ppd.gz驱动有用。若你希望用于其他驱动,请自行修改Driver变量。注意,该脚本只能修改页面大小,而不能增加自定义页面,要增加的话,请参考昨天的文章吧。
脚本如下:
脚本如下:
Mar
22
这几天在项目中,软件开放商提出需要在应用系统中,对打印发票的功能提供帮助,也就是需要根据发票的大小,定义打印机打印页的尺寸。但该功能系统中默认是没有的,经过cjacker的协助,可以通过修改打印机驱动文件.ppd实现。
Dec
28
Nov
23
今天遇到有朋友问几个问题,总结一下:
1、因为本地磁盘空间不够了,怎么把数据快速的备份出来?
答:可以使用tar命令,或rsync命令。例如:
把A机器上的/opt目录通过tar命令,并通过管道直接打包到B服务器的/opt目录下。
如果网速足够快的话,不要使用z参数,否则会影响速度。
2、如何利用ssh远程导向文本文件?
其实这也是利用了ssh命令的参数,只是中间完全没有中间文件,速度更快。
3、ssh窗口关闭,运行的程序也同时关闭了。该如何为此?
对于这个问题,其实用nohup就可以解决。
不要忘了最后的&号哦。否则程序就会停在当前屏幕了。(当然,可以使用下面的前台和后台指令调整他)
4、如何把当前工作扔到后台?
我们经常会在运行一个命令后,才发现他不会自动跳出运行状态,例如:
他就一直占用当前屏幕,如果我们把当前窗口关闭,wget命令也会终止了。
此时,你可以按下Ctrl+Z,屏幕会显示:
[1]就是工作代码。已经把wget动作放到后台了,并暂停了。他等于为wget指令增加了一个&的参数。
使用bg,或bg 1可以把指定的任务在后台继续工作。
使用fg 1就可以把[1]拿回到当前屏幕(也可以用fg循环)。
※小心,虽然工作在后台,但如果当前是远程ssh窗口,关闭该窗口,后台的命令也会同时终止的。
5、备份含空格的文件
先用find找出需要备份的文件,然后使用tar的-T参数备份。
(-T后的“-”号不能忽略,其表示前面从管道过来的文件列表)
※2006-09-04 修改bg命令的部分错误
※2007-11-01 增加备份含空格文件的描述
1、因为本地磁盘空间不够了,怎么把数据快速的备份出来?
答:可以使用tar命令,或rsync命令。例如:
A#tar cvf - /opt | (ssh B "tar xvf - -C /opt")
把A机器上的/opt目录通过tar命令,并通过管道直接打包到B服务器的/opt目录下。
如果网速足够快的话,不要使用z参数,否则会影响速度。
2、如何利用ssh远程导向文本文件?
A#cat id_rsa.pub | (ssh B "cat > /root/.ssh/authorized_keys")
其实这也是利用了ssh命令的参数,只是中间完全没有中间文件,速度更快。
3、ssh窗口关闭,运行的程序也同时关闭了。该如何为此?
对于这个问题,其实用nohup就可以解决。
#nohup wget http://www.realvnc.com/dist/vnc-4.0b5-x86_linux.tar.gz &
不要忘了最后的&号哦。否则程序就会停在当前屏幕了。(当然,可以使用下面的前台和后台指令调整他)
4、如何把当前工作扔到后台?
我们经常会在运行一个命令后,才发现他不会自动跳出运行状态,例如:
# wget http://www.realvnc.com/dist/vnc-4.0b5-x86_linux.tar.gz
他就一直占用当前屏幕,如果我们把当前窗口关闭,wget命令也会终止了。
此时,你可以按下Ctrl+Z,屏幕会显示:
[1]+ Stopped ncftp
[1]就是工作代码。已经把wget动作放到后台了,并暂停了。他等于为wget指令增加了一个&的参数。
使用bg,或bg 1可以把指定的任务在后台继续工作。
使用fg 1就可以把[1]拿回到当前屏幕(也可以用fg循环)。
※小心,虽然工作在后台,但如果当前是远程ssh窗口,关闭该窗口,后台的命令也会同时终止的。
5、备份含空格的文件
find . -mtime -1 ! -type d -print | tar cvfz /backup/1/backup-week1.tgz -T -
先用find找出需要备份的文件,然后使用tar的-T参数备份。
(-T后的“-”号不能忽略,其表示前面从管道过来的文件列表)
※2006-09-04 修改bg命令的部分错误
※2007-11-01 增加备份含空格文件的描述
Nov
17
Linux 正规表示法和相关工具的介绍v1.0
(2005-10-10)
目录
1 原理 4
2 grep的参数 4
2.1 示例 4
3 正规表示法 5
3.1 延伸型的正规表示法 6
3.2 POSIX字符类 7
3.3 示例 7
4 sed命令 8
4.1 范围 8
4.2 参数 8
4.2.1 前缀参数 8
4.2.2 动作说明 9
4.2.3 简单例子 10
4.2.4 复杂用法 11
4.2.5 脚本 13
5 awk命令 13
5.1 命令格式 14
5.1.1 [options] 14
5.1.2 "script" 14
5.1.2.1 pattern 15
5.1.2.2 {action} 15
5.2 记录和域 15
5.2.1 记录 15
5.2.2 域 16
5.2.3 域的分隔符 16
5.2.3.1 输入域的分隔符 16
5.2.3.2 输出域的分隔符 16
5.3 简单例子 16
5.4 awk内部编程 17
5.4.1 BEGIN模块 17
5.4.2 END模块 17
5.4.3 重定向和管道 17
5.4.4 条件语句 19
5.4.5 数组 19
6 参考文档 20
本说明旨在对linux正规表示法的一些使用做一个总结描述,由于水平不够,可能会出现缺漏,请纠正,谢谢!
(2005-10-10)
目录
1 原理 4
2 grep的参数 4
2.1 示例 4
3 正规表示法 5
3.1 延伸型的正规表示法 6
3.2 POSIX字符类 7
3.3 示例 7
4 sed命令 8
4.1 范围 8
4.2 参数 8
4.2.1 前缀参数 8
4.2.2 动作说明 9
4.2.3 简单例子 10
4.2.4 复杂用法 11
4.2.5 脚本 13
5 awk命令 13
5.1 命令格式 14
5.1.1 [options] 14
5.1.2 "script" 14
5.1.2.1 pattern 15
5.1.2.2 {action} 15
5.2 记录和域 15
5.2.1 记录 15
5.2.2 域 16
5.2.3 域的分隔符 16
5.2.3.1 输入域的分隔符 16
5.2.3.2 输出域的分隔符 16
5.3 简单例子 16
5.4 awk内部编程 17
5.4.1 BEGIN模块 17
5.4.2 END模块 17
5.4.3 重定向和管道 17
5.4.4 条件语句 19
5.4.5 数组 19
6 参考文档 20
本说明旨在对linux正规表示法的一些使用做一个总结描述,由于水平不够,可能会出现缺漏,请纠正,谢谢!





