前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell脚本方便操作记录(持续添加)

shell脚本方便操作记录(持续添加)

作者头像
bear_fish
发布2018-09-20 15:29:47
1.2K0
发布2018-09-20 15:29:47
举报
文章被收录于专栏:用户2442861的专栏

http://blog.csdn.net/richerg85/article/details/44001501

工作中经常用到的方便操作的shell命令,记录如下:

全局替换:

:%s/tmp\/\"/tmp\/\$dev_id\"\_/g

:%s/\$log_time_format /

\`date\+%Y%m%d%H%M\`

/g

打包

tar -czvf /data/third_part_new_bak/third_part_201406161044.tar.gz --exclude=*.apk 360Safe/ common

tar -czvf /data/third_part_new_bak/third_part_201406171627.tar.gz --exclude=*.apk --exclude=third_part_new/sdk/* --exclude=third_part_new/test third_part_new/

49.157服务器:

tar -czvf /data/scanSystem201406301025.tar.gz --exclude=*.apk --exclude=*.img --exclude=*.gz --exclude=tools/* scanSystem/

tar -czvf /data/emulator_scan201407031747.tar.gz --exclude=*.apk --exclude=.android/* --exclude=*.gz --exclude=temp/* --exclude=sdcard/* emulator_scan/

tar -czvf emulator_scan201407081806_48189.tar.gz --exclude=*.apk --exclude=*.img --exclude=*.gz --exclude=log/* --exclude=temp/* --exclude=SafeManager/log/* --exclude=Tencent/log/* --exclude=Trustgo/log/* --exclude=360Safe/log/   .

find . -mtime 0   # find files modified between now and 1 day ago                   # (i.e., within the past 24 hours) find . -mtime -1  # find files modified less than 1 day ago                   # (i.e., within the past 24 hours, as before) find . -mtime 1   # find files modified between 24 and 48 hours ago find . -mtime +1  # find files modified more than 48 hours ago find . -mmin +5 -mmin -10 # find files modifed between                           # 6 and 9 minutes ago

time:

date -d -2day +%Y%m%d 

date -d 1day +%Y%m%d

查看守护进程:

ps xj

判断字符串为空的方法有三种: 

if [ "$str" =  "" ]   if [ x"$str" = x ]  if [ -z "$str" ] 

统计文章中某字出现的次数:

① awk  '{s+=gsub(/level/,"&")}END{print s}' fileName

gsub(r,s)

在整个$0中用s替代r

gsub(r,s,t)

在整个t中用s替代r

② cat file | grep -o "level" |wc -l

-o, --only-matching

              Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.

    打印匹配行的匹配部分,每一个匹配作为一行

liujl@ubuntu:~$ cat /etc/passwd | grep www www-data:x:33:33:www-data:/var/www:/bin/sh liujl@ubuntu:~$ cat  /etc/passwd | grep -o "www" www www www liujl@ubuntu:~$ cat  /etc/passwd | grep -o "www" |wc -l

查看文件中文件中的指定内容:

find ./ -name "unknownlist_*" | xargs grep "62aa180a3d5957cec348f25b953e8d60"

去除文件中重复的行:

sort -u test

计算百分比,expr不支持浮点除法

所以用awk格式输出:

virus_rate=`awk 'BEGIN{printf "%.2f%\n",('$not_contain_apksnum'/'$total_virus_apksnum')*100}'` 2>/dev/null

tar 打包相关:

tar --exclude=./sys.log -jcv -f bak.tar.bz2 ./*.log  将当前目录下除sys.log以外所有log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包; tar -N "2010/10/08" -jcv -f bak.tar.gz ./*.log 将当前目录下所有修改日期比"2010/10/08"新的log文件打成一个用gzip压缩生成的包名为bak.tar.gz的包; tar --newer-mtime="2010/10/08" -jcv -f bak.tar.bz2 ./*.log 将当前目录下所有修改日期比"2010/10/08"新的log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包;

${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ${varible%%string*}从右向左截取最后一个string后的字符串

${varible%string*}从右向左截取第一个string后的字符串

awk 用法:awk ' pattern {action} '  

FS 输入域分隔符,默认为一个空格  RS 输入记录分隔符  NF 当前记录里域个数  NR 到目前为止记录数  OFS 输出域分隔符 

ORS 输出记录分隔符 

shell,变量的变量获取:

engine_name=360

engine_num_360=2

engine_num=`eval echo '$'engine_num_$engine_name`

数组for循环的两种方法:

for port in ${port_list[@]}

直接访问port

for ((index=0;index<${#port_list[@]};index++))

访问 ${port_list[$index]}

例如 a=1,2,3,4 转化为数组:

OLD_IFS="$IFS"     IFS=","     port_list=($port_list)     device_names=($device_names)     IFS="$OLD_IFS"

2015-03-01

记录log文件,在配置中无意在每个需要生成的文件后面多添加了一个空格,

例如 exception_2015-03-01.log------>"exception_2015-03-01.log "(多出一个空格)

这个空格如何批量去掉?

[plain] view plaincopy

  1. ls *.log\  | awk '{printf "mv \t \"%s\"\t",$0;gsub(/[[:blank:]]/,"");print "\t"$0}' > a.list  

通过awk的gsub来实现替换

执行上个命令,a.list为:

mv "xxxx_log_2015-02-28.log "xxxx_log_2015-02-28.log

然后用shell执行这个a.list,就可以去掉后面的空格!

删除修改时间在30天之前的所有文件

代码语言:javascript
复制
find . -type f -mtime +30 -exec rm -v {} \;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年03月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 删除修改时间在30天之前的所有文件
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档