
Shell编程
junmail
实事求是、坦诚稳重、团结自信、务实创新
展开
-
Shell常用命令整理
1、 ls: 类似于dos下的dir命令ls最常用的参数有三个: -a -l -F。ls –aLinux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示一般文件名外,连隐藏文件也会显示出来。ls –l该参数显示更详细的文件信息。ls –F使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@原创 2009-09-27 23:19:00 · 83870 阅读 · 6 评论 -
将通过find命令找到的文件拷贝到一个新的目录中
有这样的一个需求,需要将一部分符合条件的文件从一个目录拷贝到另一个目录中,我通过find命令从源目录查找到符合条件的文件然后使用cp命令拷贝到目标目录: 方法一命令如下:find src_dir -name "access.log.2011102[2-6]*" -exec cp {} dst_dir \; 拷贝文件到远程主机上的目标目录的命令:find src_dir ...原创 2012-11-15 00:28:14 · 460 阅读 · 0 评论 -
使用find命令查找文件链接的问题
如果task是一个软链接,例如指向磁阵上的目录1、使用如下方法不能查询出结果find ./task -name "*.sh" 2、使用如下方法可以查询出结果find ./task/ -name "*.sh"find ./task -name "*.sh" -follow...原创 2013-05-10 17:26:10 · 848 阅读 · 0 评论 -
SHELL编程-流程控制
linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法。一、shell条件语句(if用法)if语句结构[if/then/elif/else/fi] if 条件测试语句thenaction[elif 条件actionelseaction]...原创 2012-10-07 15:52:27 · 114 阅读 · 0 评论 -
SHELL编程-函数
1. 函数定义shell允许将一组命令集或语句形成一个可用块,这些块称为shell函数 定义函数的格式: function-name (){ command1 ........ } 或 function function-name(){ #函数名前面多了个function关键字 command1 ...原创 2012-10-07 16:58:30 · 112 阅读 · 0 评论 -
SHELL编程-条件测试
1. 基本语法test condition或[ condition ]使用括号方式时,条件与括号之间要加空格。2. 测试文件状态例:测试文件 scores.txe 是否可执行。[root@localhost ~]# [ -x scores.txt ] [root@localhost ~]# echo $? 1 条件测试可以使用以下条件表达式:-d 目录-f 文本文件-L...原创 2012-10-07 17:34:27 · 122 阅读 · 0 评论 -
rm -rf 提示参数列表过长
在linux中删除大量文件时,直接用rm会出现:-bash: /bin/rm: 参数列表过长的错误。 rm提示参数列表过长及find&xargs遇到含空格文件名的解决办法在linux中删除大量文件时,直接用rm会出现:-bash: /bin/rm: 参数列表过长,的错误。1、rm * -rf 改为:find . -name "*" -print | xargs rm -rf ...原创 2014-05-05 13:59:48 · 3688 阅读 · 0 评论 -
shell 后台运行程序
1. & 最经常被用到这个用在一个命令的最后,可以把这个命令放到后台执行2. ctrl + z可以将一个正在前台执行的命令放到后台,并且暂停3. jobs查看当前有多少在后台运行的命令4. fg将后台中的命令调至前台继续运行 如果后台 中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)5....原创 2014-05-23 23:42:04 · 432 阅读 · 0 评论 -
shell编程常用的注意小技巧(持续更新)
1、给变量赋值时,=前后不能有空格2、expr 1 + 2,加号前后要有空格3、eof必须放在每行的最前面,而不能为了格式放在后面原创 2014-01-22 10:08:23 · 133 阅读 · 0 评论 -
awk NR与FNR
NR,表示awk开始执行程序后所读取的数据行数.FNR,与NR功用类似,不同的是awk每打开一个新文件,FNR便从0重新累计. 下面看两个例子: 1,对于单个文件NR 和FNR 的 输出结果一样的 :# awk '{print NR,$0}' file1 1 a b c d2 a b d c3 a c b d #awk '{print FNR,$0...原创 2014-02-14 14:15:59 · 123 阅读 · 0 评论 -
linux shell 中的 eval
语法:eval cmdLineeval会对后面的cmdLine进行两遍扫描,如果第一遍扫描后,cmdLine是个普通命令,则执行此命令;如果cmdLine中含有变量的间接引用,则保证间接引用的语义。 举例如下:set 11 22 33 44如果要输出最近一个参数,即44,可以使用如下命令,echo $4但是如果我们不知道有几个参数的时候,要输出最后一个参数,大家可能会...原创 2013-11-03 21:58:27 · 105 阅读 · 0 评论 -
xargs的i参数
xargs与find经常结合来进行文件操作,平时删日志的时候只是习惯的去删除,比如 # find . -type f -name "*.log" | xargs rm -rf *就将以log结尾的文件删除了,如果我想去移动或者复制就需要使用参数来代替了。 xargs -i 参数或者-I参数配合{}即可进行文件的操作。man了一下看的还是不太懂,通过例子,做作实验将我的理解写一下。 ###...原创 2012-11-15 00:23:09 · 319 阅读 · 0 评论 -
常用命令-eval
1. 工作原理及用法用法:eval command-line原理:eval主要用在对参数的特殊处理上面的,一般的命令行,shell处理参数就只执行一遍,像转义和变量转变;但加上eval后就可以对参数经行两遍处理;网上有说是对command-line处理两遍,我认为是不合理的。一个eval只能使shell对参数多一次处理,因此有几个eval就可以多加几次,即eval eval comm...原创 2012-11-04 00:18:36 · 149 阅读 · 0 评论 -
常用命令-DATE
1、常用格式%D 短时间格式 date (mm/dd/yy)%F 文件时间格式 same as %Y-%m-%d%T 24小时制时间表示 time, 24-hour (hh:mm:ss) %Y 四位的年(1970…)%y 两位的年last two digits of year (00..99)%m 双位月份 month (01..12)%d 两位的天day of m...原创 2012-11-03 00:33:20 · 114 阅读 · 0 评论 -
Shell脚本调试技术
一. 前言shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路。脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等。但与其它高级语言相比,shell解释器缺乏相应的调试机转载 2009-11-04 10:06:00 · 1007 阅读 · 0 评论 -
shell编程常用的注意小事项
1、 给变量赋值时,=前后不能有空格2、 expr 1 + 2,加号前后要有空格原创 2009-11-19 19:48:00 · 854 阅读 · 0 评论 -
tr命令使用
tr是translate的简写,亦即翻译,但是遗憾的是,它不能翻译句子,只能翻译单个字符。tr是Unix系统非常实用的工具,其实用tr做到的事情,几乎都可用sed做到,你可以把tr当作是实现sed许多基本功能的sed“简体”。我认为tr是简单的“字符”处理工具,而sed是功能非常强大的“字符串”处理工具。 tr的工作原理是什么?先记住一点,tr命令不接受指定的文件参数,而只是对标原创 2009-11-17 14:51:00 · 3680 阅读 · 0 评论 -
$()和``的区别
$()和``的区别 反引号和$()的功能是命令替换,将反引号或$()中的字符串做为命令来执行,我们在用shell编程时经常用的到将系统命令的执行结果赋给一个变量 但反引号内不能再引用反引号,而$()中可以引用反引号 [root@music b]# cat aa 13 45 mimi bibi [root@music b]# data=`cat `l原创 2009-11-18 17:30:00 · 1307 阅读 · 0 评论 -
shell正则表达式整理
1、(pattern)的使用 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到例子:> echo "a=3 b=4" | sed s/.*/(4/).*//1/ /1就是取的前面正则表达式(4)的值原创 2009-11-19 19:56:00 · 789 阅读 · 0 评论 -
使用while和read命令读取文件内容
1、准备数据文件$cat a.txt200:2300:3400:4500:5 2、用while循环从文件中读取数据#!/bin/kshwhile read linedo echo $linedone 运行shell,结果如下:200:2300:3400:4500:5 3、使用IFS读文件说明:默认情况下IF原创 2009-12-01 09:05:00 · 31417 阅读 · 0 评论 -
getopts使用介绍
1、getopts使用方式:g e t o p t s一般格式为:getopts option_string variable g e t o p t s读取o p t i o n s t r i n g,获知脚本中使用了有效选项。g e t o p t s查看所有以连字符开头的参数,将其视为选项,如果输入选项,将把这与o p t i o n s t r i n g对比,如果匹原创 2009-12-09 16:57:00 · 2833 阅读 · 2 评论 -
linux umask命令
例如,对于u m a s k值0 0 2,相应的文件和目录缺省创建权限是什么呢?第一步,我们首先写下具有全部权限的模式,即7 7 7 (所有用户都具有读、写和执行权限)。第二步,在下面一行按照u m a s k值写下相应的位,在本例中是0 0 2。第三步,在接下来的一行中记下上面两行中没有匹配的位。这就是目录的缺省创建权限。稍加练习就能够记住这种方法。第四步,对于文件来说,在创建时不能具有文件权限原创 2009-12-09 17:41:00 · 1227 阅读 · 0 评论 -
awk中NR与FNR
awk中NR与FNR比较,备查原创 2010-08-06 14:31:00 · 3303 阅读 · 0 评论 -
AWK简单教程
一、AWK简介 AWK名字来源于三位创造者Aho、Weinberger和Kernighan统称。 AWK擅长处理文本数据。二、AWK的调用方式 awk [-Ffs] [-v var=value] [program | -f progfile ...] [file ...] 1、命令行方式 例如:转载 2012-04-17 23:04:48 · 5382 阅读 · 2 评论 -
shell格式化日志输出
#!/bin/ksh init_variables(){ if [ -s $HOME/.profile ] then . $HOME/.profile fi if [ -s $HOME/.bash_profile ] then . $HOME/.bash_profile fi if [ `uname | tr ...原创 2013-11-04 00:12:02 · 668 阅读 · 0 评论