linux 常用命令

查看内存

--------------------

top-c

查看进程

--------------------

-i忽略大小写

ps-ef|grep-itomcat

查看文件,目录

--------------------

ls,ll

翻屏

ll|more

ll|less

size按k,m,g单位显示,即给人看的

ll-h

按时间排序降(从最近到最远,2016-2000)

ll-t

按时间排序升(从最远到最近,2000-2016)

ll-rt

ll-t|tac

查看所有带空格的文件,空格与通匹符并存(如:'weloopneo_v3.08_ios.bin'),空格用\转义

llwloop\neo*

移动文件,包括重命名

--------------------

mvsrcdist

删除文件

--------------------

-f强制,不问

rm-fabc.log

-r整个目录

rm-r/ys

查找文件内容

--------------------

grep-itomcAttomcat-users.xml

-o只打印匹配的内容

-P正则表达式

grep-oP"\"deviceId\":\d{1,}"$1|sort-u-nk2-t:>$2

打印日志里所有的,"deviceId":1235234

去重并排序

awk,$5,20:58:01,统计每秒的tps

awk'{print$5}'access.log.20170714|uniq-c|sort-rn>tps.0714

vim里面

--------------------

/\v\d{5}$

(使用了\v,就不用\d\{5\}了)

文件复制(linux之间)

--------------------

从远程复制到本地

scp-rroot@xxx.xxx.xxx.xxx:/data/dubbo/statistics/dao/data/dubbo/StatisticsDAO

-r为文件夹复制

从本地复制到远程

scp-r/data/dubbo/StatisticsDAOroot@xxx.xxx.xxx.xxx:/data/dubbo/statistics/dao

查看进程启动时间

--------------------

ps-p9965-olstart

查看并发,连接数,通过端口号

--------------------

一般tomcat是8080

netstat-na|grepESTAB|grep8080|wc-l

一般nginx是80

netstat-na|grepESTAB|grep80|wc-l

文件排序,日志数据处理分析

--------------------

catlizw.10.log|awk-F,'{print$(NF)}'>lizw.10-1.log

把日志里每行的最后一列打印到新的文件

-F,以","作为分隔符

$(NF),倒数第1列,如果是$(NF-1),则是倒数第2列

sort-ulizw.10.log>lizw.10.u.log

文件去重,相同的行只留唯一

sort-nk2-t:lizw.10.u.log>lizw.10.sun.log

-nk2按数值排序,以第2列为准

-t:以":"作为列的分隔符

查询文件|批量查找文件里的内容

--------------------

find.-name'*.xml'|xargsgrep-i"xadatasource"

*.xml要用单引号包起来

查询文件|批量替换文件里的内容

--------------------

find.-namedubbomonitor.properties-execsed-i"s/localhost/10.30.181.22/"{}\;

要有-i才会执行替换,否则只是模块替换结果并输出到screen

不同主机间复制文件

--------------------

scp-rroot@139.129.202.174:/abc/abc.

这是基本用于,从174复制abc(文件或文件夹)到当前目录

scp-rroot@139.129.202.174:"/a\bc/a\bc".

scp-rroot@139.129.202.174:'/a\bc/a\bc'.

这是处理空格的办法,用单引号或双引号都行,空格前面要加转义符\

10进制<->16进制

--------------------

10->16

printf"%x\n"2579728

输出:275d10

16->10

printf"%d\n"0x275d10

输出:2579728

筛选文件里匹配关键字的行

--------------------

cataccess.log.20170713|grep"deviceId"

筛选文件里匹配关键字的行里的内部(-o)

cataccess.log.20170713|grep-o"deviceId\":\w\{1,10\}"

或标准正则表达式写法(-P)

cataccess.log.20170713|grep-oP"deviceId\":\d{1,10}"

awk

--------------------

awk-F'''{print$1""$(NF-1)}'localhost_access_log.txt>abc.log

-F''

使用空格当分隔符

'{print$1""$(NF-1)}'

打印第1行,倒数第1行,这2行之间间隔一个空格

使用多个分隔符,如空格和逗号

-F'[,]'

使用多个分隔符,正则表达式

-F'one|two'

-F'[:]+'

#统计deviceId数量(去重)

--------------------

#使用方法:

#shxxxsrcdst

#xxx本脚本名称

#srcnetty的accesslog,如access.log.20170714

#dst统计后deviceId输出文件,如result.20170714

#示例:shabc.shaccess.log.21070714result.20170714

grep-oP"\"deviceId\":\d{1,}"$1|sort-u-nk2-t:>$2

或者直接在控制台打印数量

grep-oP"\"deviceId\":\d{1,}"access.log.20170717|sort-u-nk2-t:|wc-l

#统计tps

$5为"2017-07-1823:59:59"或"23:59:59"

--------------------

awk'{print$5}'access.log.20170714|uniq-c|sort-rn>tps.0714

相关推荐