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之间)
--------------------
从远程复制到本地
[email protected]:/data/dubbo/statistics/dao/data/dubbo/StatisticsDAO
-r为文件夹复制
从本地复制到远程
scp-r/data/dubbo/[email protected]:/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
不同主机间复制文件
--------------------
[email protected]:/abc/abc.
这是基本用于,从174复制abc(文件或文件夹)到当前目录
[email protected]:"/a\bc/a\bc".
或
[email protected]:'/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