今天写数据迁移脚本用到的一些命令
1、常用命令
1.1 find命令
find /home/admin/datas/dragoon2.5监控报警/*/10.20.136.15 -name 'jstat*'
在/home/admin/datas/dragoon2.5监控报警/这个目录任意子目录的10.20.136.15文件夹下查找含有jstat的文件
或
find .|xargs grep "app_env"
或grep 'app_env' -rs .
查找当前文件夹中文件及其子文件夹中包含app_env的文件
查找替换
find -name '*.java' | xargs perl -pi -e 's|cn.trinea.app.customlayout.R|cn.trinea.gamecenter.R|g'
1.2 rm命令
rm -rf表示递归删除且不提示
find . -mtime +3 -exec rm -rf {} \;表示删除当前目录下所有3天前被修改的文件夹
find . -mtime +3 -exec rm -f {} \;表示删除当前目录下所有3天前被修改的文件
find . -mtime +3 -type f -name *.mail[12] -exec rm -f {} \;表示删除当前目录下所有3天前被修改且文件名包含mail1或mail2的文件
其中.表示当前目录,-mtime +3表示修改时间在3天前的,-exec rm -f --查找完毕后执行删除操作
-name *.mail[12] 表示适合这个规则的文件
1.3 查看大小
查看磁盘大小,执行df -h
查看文件夹大小,cd到文件夹所在目录下,执行du -sh
2、shell判断列举一个文件夹下所有文件(包括空文件)
listFileInDir() { for file in $1/* # judge file do if [ -f $file ] && [ ! -d $file ]; then echo $file fi done }
判断文件和文件夹
-f file如果file存在,则为真
-s file如果file存在且内容字节数大于0,则为真。包含目录
-d directory如果文件存在且为目录,则为真
3、shell正则匹配
if [ -d $ipFolder ] && [[ "$ipFolder" =~ "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" ]]; then
用=~ 来匹配正则,且两边必须是双括号。用[]括起来
关于ip正则更精确的见
http://blogold.chinaunix.net/u3/117878/showart_2304920.html
4、shell字符串
4.1按字符查找子串
${varible##*string} 从左向右截取最后一个string后的字符串
${varible#*string}从左向右截取第一个string后的字符串
${varible%%string*}从右向左截取最后一个string后的字符串
${varible%string*}从右向左截取第一个string后的字符串
“*”只是一个通配符可以不要
vajra=home/monitor/datas/20101223202241/10.20.142.49 echo ${vajra##*\/} echo ${vajra#*\/} echo ${vajra%%\/*} echo ${vajra%\/*}
结果
10.20.142.49 monitor/datas/20101223202241/10.20.142.49 home home/monitor/datas/20101223202241
4.2 按下标查找子串
${varible:n1:n2}:截取变量varible从n1到n2之间的字符串。
EXCLAIM=cowabunga echo ${EXCLAIM:0:3} echo ${EXCLAIM:3:7}
结果
cow abunga
4.3 字符串拼接
ipFolder=10.20.136.24 dirName= ${ipFolder}/jstat_gc echo $dirName echo $dirName$ipFolder
5、vi删除一个单词快捷键dw
修改vi tab为4个空格set tabstop=4
显示行号set nu
Y复制一行,p粘贴
ctrl +r 恢复,u撤销
vi文件比较、多屏查看文件
如比较a.txt和b.txt
首先:vi a.txt
然后:split b.txt便两屏查看两个文件,用ctrl+w切换视图
:set diff便可查看异同,用不同颜色高亮显示相关信息
6、shell变量初始化两边不能含空格
fileName = "a" # error fileName= "a" # error fileName ="a" # error fileName="a" # right
7、shell写文件
shell写文件真是比java、c什么的都简单的多。。
monitorItemFolder=aaaaa echo $monitorItemFolder >> ~/jstatFile.txt
8、shell变量自增
i=1 ((i++))
变量比较
if [ ${pidCount} -gt 0 ]; then
参考:http://blog.csdn.net/zhrmghl/archive/2006/10/22/1345115.aspx
9、神奇的dollar符($)
9.1 $0, $1, $2,…${10}
$0表示当前脚本的文件名,$1表示第一个位置参数,以此类推,${10}表示第10个位置参数,10必须用{}括起来
9.2 $@ $*
都可以用于显示所有的位置参数,但$*将所有的位置参数当作一个整体,$@仍保持每个位置参数的独立性,只是一起显示而已
9.3 $#表示位置参数的个数
9.3 $?
表示前面最后一个命令的退出状态,如wget是否成功,或是自定义脚本调用是否成功。
一般来说,UNIX(linux) 系统的进程以执行系统调用exit() 来结束的。这个回传值就是status值。回传给父进程,用来检查子进程的执行状态。一般系统指令程式倘若执行成功,其回传值为 0;失败为 1。脚本的返回值可以自定义
9.4 $$脚本运行的当前进程号
9.5 $!最后一个后台运行的进程进程号
9.6 $-显示当前shell的选项
示例代码如下:
#!/bin/bash echo "\$0输出脚本名:$0" echo "\$1输出第一个个位置参数:$1" echo "\$*所有参数一个整体:$*" echo "\$@所有参数,让保持独立性:$@" echo "\$#参数总个数:$#" wget "http://www.baidu.com" >> a.txt 2>&1 & echo "\$?上一条命令状态:$?" echo "\$\$当前进程号:$$" echo "\$!最后一个后台运行进程的进程号:$!" echo "\$-当前shell可选项:$-"
保存为文件ceShi.sh,执行命令./ceShi.sh p1 p2 p3 p4 结果如下:
$0输出脚本名:./ceShi.sh $1输出第一个个位置参数:p1 $*所有参数一个整体:p1 p2 p3 p4 $@所有参数,让保持独立性:p1 p2 p3 p4 $#参数总个数:4 $?上一条命令状态:0 $$当前进程号:28501 $!最后一个后台运行进程的进程号:28502 $-当前shell可选项:hB
10、强制kill一些列进程
ps -ef|grep monitor|awk '{print $2}'|xargs kill -9
相关推荐
linux详解 shell编程教学文档
这是一款linux的常用命令及shell编程
Linux命令与shell 脚本大全,内容丰富,包含了shell脚本的技术命令 以及大量的实践内容
Shell编程详细教程、Linux命令大全、Unix命令大全
详细讲解linux常用命令 shell编程的基础知识,案例分析
权限终于到达了170M,赶紧上传。。。 ...6.《Linux命令、编辑器与Shell编程》覆盖超过80个核心工具、shell编程、编辑器和编程工具,能使您成为真正的Linux高手,它是掌握强大的Linux命令行的捷径。
linux基础命令讲解 shell编程讲解 LINUX与UNIX Shell编程指南 脚本例子 正则表达式
本书共分五部分 ,详细介绍了SHELL编程技巧,各种UNIX命令及语法,还涉及了UNIX的文字处理以及少量的系统管理问题。本书内容全面,文字简洁流畅,适合SHELL编程人员学习、参考。 目录 第一部分 SHELL 第一章 文件...
第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...
linux 命令、编程器与shell编程 第一版,对于需要提高linux水平的人来说,很有用
LINUX命令编辑器与SHELL编程(中文)
LINUX命令编辑器与SHELL编程(中文)07
Linux常用命令 (vim,快捷键,权限), shell编程,awk编程 命令整理。shell条件判断流程控制等。快速入门。
linux命令、编辑器、shell编程实例大全 linux入门必备
本书共分五部分 ,详细介绍了SHELL编程技巧,各种UNIX命令及语法,还涉及了UNIX的文字处理以及少量的系统管理问题。本书内容全面,文字简洁流畅,适合SHELL编程人员学习、参考。 目录 第一部分 SHELL 第一章 文件...
LINUX命令、编辑器与SHELL编程.part1.rar LINUX命令、编辑器与SHELL编程.part2.rar LINUX命令、编辑器与SHELL编程.part3.rar 将三部分都下载下来,放在同一文件夹下,只需解压第一部分即可得到
LINUX命令编辑器与SHELL编程(中文)05
《linux与unix shell编程指南》linux,shell命令与脚本开发学习资料
LINUX命令编辑器与SHELL编程(中文)04
linux命令编辑器和shell编程光盘 原书光盘 内含源代码