登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

fyzjhh的博客

データベース管理者 の ブログ 、江です

 
 
 

日志

 
 

linux shell notes  

2011-06-08 17:13:14|  分类: linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


linux shell 字符串操作


x="abc def" 当x中有空格的时候 ,在使用的时候要加 ""

得到长度
expr length $x
expr "$x" : ".*"
${#x}

查找子串
expr index "$x" "bc"

得到子字符串
expr substr <string> startpos length
expr substr "$x" 2 4
echo ${string:position:length}

匹配正则表达式
expr match "$x" "abc"

字符串的掐头去尾
${string#substring} 从变量$string的开头, 删除最短匹配$substring的子串
${string##substring} 从变量$string的开头, 删除最长匹配$substring的子串
${string%substring} 从变量$string的结尾, 删除最短匹配$substring的子串
${string%%substring} 从变量$string的结尾, 删除最长匹配$substring的子串


var1="abc/aaa/ccc/dddd"
echo ${var1##*/} dddd
echo ${var1#*/} aaa/ccc/dddd
echo ${var1%%/*} abc
echo ${var1%/*} abc/aaa/ccc
echo ${var1##*/aa*/} dddd

% 表示从右边到左边匹配 一般是/×
# 表示从左边到右边匹配 一般是×/
两个(% or #)的话 表示匹配最大
一个(% or #)的话表示匹配最小

字符串的替换
${string/substring/replacement} 替换第一个匹配的
${string//substring/replacement} 替换所有匹配的




linux date 命令

date "+%F %X" -d "-2 days"    显示前两天日期
date "+%F %X" -d "-2 hours"    显示前两个小时
% T 时间(24小时制)(hh:mm:ss)
% X 显示时间的格式(%H:%M:%S)
%s  显示1970年以来的秒
%Y - %m - %d %H:%M:%S
date -d  @1325347200 +"%F %T"
date +"%Y-%m-%d %H:%M:%S"


获取系统的启动时间和发生错误的时间


offset=0
startts=`date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%s"`
errortime=`expr $startts + $offset`
echo `date -d @$errortime`



linux shell 前台 后台运行程序


一。& 最经常被用到
   这个用在一个命令的最后,可以把这个命令放到后台执行
二。ctrl + z
     可以将一个正在前台执行的命令放到后台,并且暂停
三。jobs
     查看当前有多少在后台运行的命令
四。fg
     将后台中的命令调至前台继续运行
   如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
五。bg
     将一个在后台暂停的命令,变成继续执行
   如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
  



linux shell 测试

test -n string : string 不为空 -n 测试非空
test -z string : string 为空 -z 测试为空
test -r filename   : 用户对文件filename有读权限
test -w filename  : 用户对文件filename有写权限
test -x filename   : 用户对文件filename有可执行权限
test -f filename   : 文件filename为普通文件
test -d filename  : 文件filename为目录
test -s filename  : 文件filename大小不为零
test -t fnumb      : 与文件描述符fnumb(默认值为1)相关的设备是一个终端设备
test -c filename  : 文件filename为字符设备文件
test -b filename  :文件filename为块设备文件



linux shell 数组


A=(a b c def)
echo ${A[@]} //取全部元素
echo ${A[0]} //取第一个元素
echo ${#A[@]} //取得数组元素的个数
a=(this is a test)
echo ${a[*]} 输出为: this is a test
echo ${a[@]} 输出为: this is a test
for i in `seq 1 ${#arr[@]}` ; do echo $(($i-1)) ${arr[$(($i-1))]} ; done //遍历数组中元素



linux 进制转换

将其他进制的数字转换成10进制 ,将8,16进制转换成十进制,以及bc


printf %d 0x52

printf %x 52
$((expr))
echo $((base#num))
$ echo $((013))
$ echo $((0xA4))
echo 'obase=10; ibase=16; A3' | bc


rsync的使用


1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync -a /data /backup
2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync -avz *.c foo:src
3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync -avz foo:src/bar /data
4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av root@172.16.78.192::www /databack
5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack root@172.16.78.192::www
6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://172.16.78.192/www

-v, --verbose 详细模式输出
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-z, --compress 对备份的文件在传输时进行压缩处理

  评论这张
 
阅读(186)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018