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

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

Linux常用命令分享(一)  

来自韩延玲   2016-04-01 11:06:35|  分类: Linux相关 |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近分类梳理了以前工作中常用的linux命令,提供了部分命令的使用场景,作为以后工作中的参考手册。由于命令较多,分几篇文章发布。若有命令错误,请及时联系我~ 

常用命令

awk

问题:根据ip得到机器名,去掉后缀” .server.163.org”,只去机器名字部分;

解决方法:

host ip地址|awk -F ".server.163.org " '{print $1}'|awk '{print $NF}'

 

问题:多台机器进行上一个问题的操作

解决方法:

for i in `cat jpbak.list`

do

       host $i |awk -F ".server.163.org " '{print $1}'|awk '{print $NF}'

done

或者

while read i

do

       host $i |awk -F ".server.163.org " '{print $1}'|awk '{print $NF}'

done < jpbak.list

 

当文件数据量较大时,推荐使用while

 

问题:计算文件中某一列总和

解决方法:

awk -F'\t' -v sum=0 '{sum += $n} END{print sum}' file_name
统计最后一列的总和:
cat result | awk -F'\t' -v sum=0 '{sum += $NF} END{print sum}'

 

awk -F'\t' -v sum=0 '{sum += $n} END{print sum}' file_name

统计输出结果的最后一列之和:
cat result | awk -F'\t' -v sum=0 '{sum += $NF} END{print sum}'

 

sed

问题:删除指定的行

解决方法:

删除从100000行到131736行:

cat parser.conf.status | sed '100000,131736d' > parser.conf.status.1

删除文件最后一行:

sed –i ‘$d’ file

删除匹配行:

sed -i "/mac1/d" /home/work/.ssh/authorized_keys

-i 插入,对源文件进行操作。

 

问题:追加字符

解决方法:

在文件每行的末尾追加字符的方法

sed 's/.*/&xxxx/' file

或者

awk '{print $0"xxxx"}' file

 

在匹配的行末尾追加字符:

cat cc.txt | sed -n '/Brown/s/$/**VASA**/p'
过程为先匹配Brown的行,然后替换末尾$符号为替换的内容;

 

grep

问题:按照机器名中的数字排序:

解决方法:

grep keyword filename | awk -F"." '{printf $1 "\n"}' | sort -n | xargs echo

 

问题:匹配多个关键字

解决方法:

grep -E "searchA|searchB" file

 

 

文件比较

问题1:两个文件进行比较,以一个文件为基准,输出不同的部分:

解决方法:

vi -d jpbak_mac.list aaa.list

或者

for i in `cat jpbak_mac.list`

 do

 grep -q $i aaa.list ||echo $i

done

或者

fgrep -v -f 小文件 大文件  

 

问题:合并使用注意事项

解决方法:

如果grepawk合用是,grep不能带-q参数,否则awk将得不到输出;

如果grepecho合用时,需要带上-q,否则检查出来的信息将会打印到屏幕上;

例子:

cpu_v=`cat /proc/cpuinfo | grep "model name" | uniq | awk '{printf $7}'`

rc_local=`cat /etc/rc.local | grep -q start.sh && echo 0 || echo 1`

 

vivim

问题:将全文的换行符转换成分号

解决方法:

:%s/\n/;/g

 

问题:当前行匹配字符SEARCH使用字符REPLACE替换

解决方法:

:s/SEARCH/REPLACE/

 

问题:查看是否有全角字符和特殊字符

解决方法:

:set list

 

screen

问题:当前执行的命令不受网络情况的影响

解决方法:

1.     使用后台命令&

2.     使用screen

a)       创建screen命令: screen –dmS screenname

b)      读入screenscreen –rd screennamescreen –x <pid>

c)       新增screen窗口:Ctrl+a+c

d)      screen压后台(退出):Ctrl+a Ctrl+d

e)       列出所有screen任务:screen –ls

f)        关闭当前的窗口:Ctrl+a Shift+Kctrl+d

g)       多个窗口间切换:

                      i.            移向前一个窗口:Ctrl+a+p

                    ii.            移向下一个窗口:Ctrl+a+n

                   iii.            移向第N个窗口:Ctrl+a+数字

 

问题:如果创建完screen后,无法读入

解决方法:

启动一个script script /dev/null

在里面读入刚才创建的screenscreen –rd screenname

 

同步文件

问题:rsync

解决方法:

排除掉部分文件,限制下载速度,并在远程机器上创建目录:

rsync -aP --bwlimit=20000 --exclude-from=/home/work/file_list –e ssh /home/work/jap-index jp01-snapshot40.jp01:/home/work/data/* $host:${dir}

 

rsync的使用方式是rsync [OPTION] SRC DEST:

参数-a:相当于-rlptgoDr是递归,l是拷贝链接文件,p是保持文件权限,t是保持文件时间,g是保持文件用户组,o是保持文件所有者,D是保持设备文件。

参数-P:相当于--partoal --progress,就是可以看文件的传输过程。

 

--bwlimit=XX,就是限制I/O速度为XXKB每秒。

--exclude=XX,就是排除所有符合XX的文件都排除。

--exclude-from=file,这个文件定义的是一些规则,如不同步log目录的话是:log/*

 

 

问题:wget

解决方法:

下载目录,在本地不创建目录结构,只有该目录:

wget -rx -nH --cut-dirs=4 remoteHost:${dir}

 

常用参数:

--cut-dirs忽略层数从主机名开始

--limit-rate=30m 单位为k或者m

-l inf 不限制目录层次

 

解压与压缩文件

问题:解压文件

解决方法:

解压tar.gz文件:

tar -xzvf backup_all.tar.gzz用于解压gz结尾的,x是解压 v详细过程 f文件必须要带的

解压bz2后缀的文件命令:

tar –jxvf Python-2.5.2.tar.bz2

 

 

问题:压缩

解决方法:

压缩目录:需要先进入该目录,然后执行:tar -zcf name.tar.gz *

压缩文件,执行tar -zcf file.tar.gz filename

 

  评论这张
 
阅读(326)| 评论(2)
推荐 转载

历史上的今天

评论

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

页脚

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