Linux常用命令

1. 最普通的命令

image

最普通、简单的命令,平时肯定用过很多,但是有些非常有用,但平时不多用的,本次列出来,如下:

命令 示例 作用 示例
ls ls
ls -a
ls -A
ls -r
ls -t
ls -l
ls -h
查看文件夹内目录、文件等
包括隐藏文件
除 . 以及 .. 外的所有文件
反序排列
按时间倒序排练
查看包括权限、所有者、大小等详情
文件大小显示成B、K、M、G等易读文件
注意,命令可简写使用,如:ls -l -a,或者 ls -la
image
cd cd /dir 进入某个目录
mkdir mkdir test test2
mkdir -p test1/test2/test3
创建一个或多个文件夹
创建多个文件夹
image
cp cp test.log ./test/test.log
cp -i test.log ./test/test.log
cp -r ./test ./test2
复制文件
-i,如果有同名,则提示是否覆盖
复制文件夹
image
mv mv test.log test2.log
mv test.log test2.log ./test
重命名
一个或多个文件移动到文件夹内
rm rm *.log
rm -r -f -i ./test
删除文件
删除目录,-f表示强制删除,-i表示是否询问
vim vim test.log 编辑一个文件,具体进入vim之后命令,有很多
pwd pwd 查看当前路径
date date 查看当前时间

scp

linux系统下基于ssh登陆进行安全的远程文件拷贝命令:secure cp

  • 本地复制到远程

  • scp /home/xxx/test.txt root@172.18.140.109:/home/root/test2.txt:本地单文件复制到远程,带远程用户名,回车后需要输入密码指定文件名字

  • scp /home/xxx/test.txt 172.18.140.109:/home/root/test.txt:本地单文件复制到远程,不带用户名,回车后需要输入用户名、密码,指定文件名字

  • scp -r /home/xxx/test/ root@172.18.140.109:/home/root/:-r 参数,本地文件夹复制到远程

  • 远程复制到本地

  • scp root@172.18.140.109:/home/root/test.txt /home/xxx/:远程单文件复制到本地

  • scp -r root@172.18.140.109:/home/root/ /home/xxx/test/:-r参数,远程文件复制到本地

cal

终端上显示日历

  • cal:显示当前月份

  • cal 2019:只有一个参数,则为年,显示某年12个月的日历,与cal -y 2019 一样

  • cal 2 2019:两个参数,为月、年,显示某年某月的日历

  • cal -3:3为固定数,显示前一月、当月、后一月日历

  • cal -j:显示为当年的第几天

  • cal -y:显示某年的日历

144680148.png
144588603.png

zip

压缩文件为zip包

  • -r:压缩文件,-r表示递归处理子文件(夹)

zip -r test.zip ./test

  • -q :表示不显示执行过程信息

zip -r -q test.zip ./test

unzip

解压zip文件

  • unzip:解压文件

unzip test.zip

  • unzip -q:表示不显示执行过程信息

unzip -q test.zip

  • unzip -l:不解压,只查看压缩文件包括哪些文件

不解压,只查看压缩文件包括哪些文件

WX20190822-165948@2x.png

which、whereis

查看命令位置

  • which ls

查看可执行文件的位置,其实是查看的PATH中指定路径中搜索某个命令位置

  • whereis ls

用于程序名的搜索

144589380.png

history

查看命令历史记录

  • history:列出所有执行操作记录

  • history -c:清除命令执行操作历史记录

  • history 10:列出最近的10条记录,等同:history | tail -10

144635034.png

netstat|lsof

查看端口号

  • netstat

  • -a:all,显示所有连接端口

  • -n:不进行dns解析

  • -p:显示进程标识符、程序名称

  • -l:只显示listen状态套接字

  • netstat -anp:列出所有端口,一般配合grep使用,如:netstat -anp | grep 8080

  • lsof:list open files

  • -i:列出所有网络连接

    • lsof -i :8080
  • -i tcp:所有tcp网络连接信息

  • lsof -i tcp:8080

  • -i udp:所有udp网络连接信息

kill

操作进程

  • kill

  • -l:列出所有信号名称,顺序从1~n

  • kill -9 pid:强行终止进程

  • kill -KILL pid:同上

WX20190822-170147@2x.png

chmod

设置文件(夹)读写等权限

WX20190822-170235@2x.png

权限代号:

  • r:读,数字4表示

  • w:写,数字2

  • x:可执行,数字1

权限范围:

  • u:当前用户,所有者

  • g:当前群组

  • o:其他用户或群组

  • a:所有用户

命令:

  • chmod a+r test.txt:增加权限,针对文件,所有用户、可读

  • chmod o+x -R /test/:增加权限,针对目录,其他用户或群组、可执行权限

  • chmod 755 test.txt:设置权限,当前用户读+写+可执行,当前群组读+可执行,其他人读+可执行,7代表4+2+1,5代表4+1

WX20190822-170331@2x.png

chown

改变文件(夹)用户权限

  • chown guanliyuan:staff test.txt:改变文件权限为某用户,guanliyuan:staff 为 用户:群组

  • chown -R xxx /test/:改变文件夹权限为某用户

cat

查看或创建文件

  • cat test.txt:终端显示整个文件内容

  • cat test1.txt test2.txt:显示多个文件内容

  • cat -n test.txt:终端显示整个文件内容,带行号

  • cat > newtest.txt:创建一个新文件

  • cat test1.txt test2.txt > newtest.txt:多个文件合并为一个新文件

WX20190822-170442@2x.png

more

查看文件,类似cat,more会一页一页的显示,会加载整个文件,more查看后操作:

空格键:下一页

b键:上一页

=:显示当前行号、进度等

q:退出more

  • more text.txt:查看文件,下翻一次一屏

  • more +10 test.txt:从第十行开始查看文件

  • more -10 text.txt:查看文件,下翻一次10行

144681410.png

less

查看文件,与more类似,可以查看很大的文件,功能强大,加载部分文件,less查看文件后操作,与vim操作类似:

/字符串:向下搜索字符串

?字符串:向上搜索字符串

n:重复前一个搜索

N:反方向重复前一个搜索

u:向上滚动半屏

d:向下滚动半屏

q:退出less

  • less test.txt:查看某文件

  • -i:搜索时,忽略大小写

  • -N:显示每行的行号

  • -m:显示百分比

  • number:跳转到下面number行处

head

查看文件头内容,默认显示10行

  • head test.txt

  • -n:显示开头多少行,如:head -n 50 test.txt

144682017.png

tail

查看文件末尾内容,默认显示10行,一般用于查看log

  • tail test.txt

  • -f:循环读取,多用于查看一直递增的日志文件

  • -n:显示末尾多少行,如:tail -n 50 test.txt

-f应用:

  • ping 127.0.0.1 > ping.log &:ping一个地址,然后把输出放到一个ping.log文件中,&表示后台运行

  • tail -f ping.log:会看到递增的ping输出文件的内容

  • tail -n 5 test.txt:查看最后5行

  • tail -n +5 test.txt:从正数第5行开始查看,一直到结尾

  • tail -n +10 test.txt | head -n 3:输出test.txt文件的第10~13这三行

  • head -n 13 test.txt | tail -n 3:同上,输出test.txt文件的第10~13这三行

du

查看文件(夹)大小,默认显示当前目录所有文件以及文件夹内所有文件的大小

  • -k:以KB为单位显示

  • -m:以MB为单位显示

  • -g:以GB为单位显示

  • -h:文件大小显示成B、K、M、G等易读文件

  • -s:仅显示当前文件夹总和

如:du -h,或者 du -h /test/

如果只想查看当前文件夹下所有文件大小,不递归查看文件夹内的文件,可以如下:

du -h --max-depth=1(mac:du -h -d 1)

WX20190822-170659@2x.png

ln

对文件(夹)建立一个同步链接(软链接、硬链接),可以减少磁盘空间,软链接类似与windows的快捷方式,硬链接相当于一个副本,但是他们都与宿主源文件是同步的,即修改任意一个,其他的都会同步生效

  • ln test.txt test_hard.txt:建立一个硬链接

  • ln -s test.txt test_soft.txt:建立一个软链接

WX20190822-170744@2x.png

crontab

linux 定时服务,分两类:

  • 系统任务调度:系统周期性执行的工作,如写缓存数据到硬盘、清理日志,存储在 /etc/crontab 中

  • 用户任务调度:用户自定义的,定期执行的工作,存储在 /var/spool/cron/xxx 中

常用方法:

  • crontab -u:设定某个用户的crontab服务

  • crontab -e:编辑某个用户的crontab,不指定则为当前用户

  • crontab -l:查看某个用户的crontab,不指定则为当前用户

  • crontab -r:删除某个用户的crontab,不指定则为当前用户

内容,举例:

00 17 * * * /Users/xxx/xxx.sh >> /Users/xxx/xxx.log

分析:

  • 前面的 00 17 * * * 表示执行时间,一共5位:分、时、日、月、周,上面表示每天下午5点执行

  • 中间的 /Users/xxx/xxx.sh 为定时执行的命令

  • 后面的 >> /Users/xxx/xxx.log 指打印执行的日志到 xxx.log 中,可以没有

举例:

  • 5,15 * 10 * * /xxx/node app.js:每月10号的,每小时的第5、15分钟,执行命令

  • 00 14-16 */2 * * command:每隔2天的,14、15、16点执行command命令

wc

非厕所WC。。。word count,统计文件中行数、字数、字节数等

  • wc -l test.txt:统计文件中行数

  • wc -m test.txt:统计文件中字符数

  • wc -c test.txt:统计文件中字节数

  • ls | wc -l:查看当前文件夹中有多少个文件(夹)

管道符 |

  • 管道符:|

管道符在linux命令中大量使用,作用是:前一个的输出,可用当做下一个的输入,如:

echo 'foo' | cat,输出:foo

管道符前面是输出 ’foo',管道符后面 cat 接受输入,输入是之前的输出 'foo',所以运行结果是 foo。

举例:当前文件夹内有很多文件,想找出以'node_'开头的文件夹有哪些:

ls -l | grep node_

ls -l 会输出当前所有文件夹,grep接收之前的输入,然后过滤出 'node_'。

  • xargs:通过管道接收字符串,接收到的字符串默认以空白分割成多个参数,传递给后面的命令,作为后面命令的参数。

echo 'foo' | xargs cat,输出:cat: foo: No such file or directory

此时,通过xargs,cat接收到的参数是 foo,把 foo理解成一个文件,所以报错找不到foo这个文件,其实就是执行:cat foo。

echo 'test.txt' | xargs cat,相当于:cat test.txt

xargs参数:

  • -d:以什么来分割,默认是空白分割

    • echo '1@2@3@4' | xargs -d '@' echo:输出:1 2 3 4
  • -p:此时,不会马上执行命令,会询问是否执行,y执行,n不执行

  • echo 'test.txt' | xargs -p cat

  • -n:每次传递几个参数给后面的命令

  • echo 'test.txt' | xargs -n 3 echo:如果test.txt有10行,则会先打印3行,然后再打印之后的3行,直到最后全部打印完

find

在指定目录查找文件

find path -option

  • -name:指定文件名字进行查找

  • -path:指定查找的path路径

  • -size:查找指定大小的文件

  • -cmin -n:查找过去 n 分钟内被修改过的文件

  • -ctime -n:查找过去 n 天内被修改过的文件

举例:

  • find . -name '*.js':查找当前目录下的js文件

  • find . -ctime -3:查找过去3天内被修改过的文件

  • find ./test -size 0:查找大小为0的文件

  • find ./test -name '*.js' | xargs grep 'window':查找 ./test目录中包含"window"字符串的文件。

ps

process status,查看当前进程运行状态

  • -a:显示终端下所有进程

  • -e:显示环境变量

  • -f:显示进程之间关系

  • -aux:显示所有包含其它使用的进程

  • -ef:显示所有进程环境变量及进程间关系

  • ps -aux | grep 'node' / ps -ef | grep 'node':查看node进程

grep

grep:侧重单纯文本匹配、搜索

awk:侧重对匹配到的文本进行格式化

sed:侧重匹配到的文本进行编辑

强大的文本搜索功能,支持正则表达式搜索

  • -A<n>:显示匹配字符串的后n行

  • grep -A3 'test' test.txt

  • -B<n>:显示匹配字符串的前n行

  • grep -B2 'test' test.txt

  • -C<n>:显示匹配字符串的前、后n行

  • grep -C2 '^te' test.txt

  • -c:计算符合匹配字符串的列数

  • grep -c 'test' test.txt

  • -R:递归查找

  • grep -R 'test' ./:当前目录下递归查找文件中包含'test‘字符串的文件

  • grep -cR 'test' /test/

  • -i:匹配字符串时,忽略大小写

  • grep -iR 'test' ./

  • -l:只列出符合字符串的文件名称

  • grep -lR 'test' ./

  • -n:显示匹配字符串所在文件中的行数

  • grep -nR 'test' ./

  • -s:不显示错误信息

  • grep -sR 'test' ./

awk*

对文本进行逐行处理的一种语言或者工具,主要用以格式化文本

命令:awk [options] 'pattern{action}' file

  • awk -F : '{print}' test.txt:以冒号为分隔符

  • awk '{print 1,2}' test.txt:打印第一列、第二列,每列之间默认用空白分割

  • awk '/^abc/{print}' test.txt:正则匹配’abc'开头的行,打印匹配的行

内置变量:

  • FS:输入域分隔符,默认是空白

  • NF:当前行($0)拥有字段总数

  • NR:目前处理的第几行

  • OFS:输出域分隔符

使用:

  • awk -v FS=":" '{print}' test.txt:以冒号为分隔符,类似 -F

  • awk '{print NF $0}' test.txt:每行打印出字段总数,以及整行数据

  • awk '{print NR $0}' test.txt:每行打印出当前行数,以及整行数据

  • awk -v OFS="#" '{print }' test.txt:打印出的输出,不再以空格分割,而是以#号分割

举例:

文件内容如下:

[2018-08-23 16:29:56] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
[2018-08-23 16:29:56] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
[2018-08-23 16:29:56] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:31] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
[2018-10-17 15:29:31] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:31] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:32] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
[2018-10-17 15:29:32] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:32] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
[2018-11-27 10:15:05] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
[2018-11-27 10:15:06] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
[2018-11-27 10:15:06] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
[2019-04-09 15:34:19] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
[2019-04-09 15:34:19] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
[2019-04-09 15:34:19] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns

只想列出来 10:15分的日志内容:awk '/10:15/{print}' warn.log

➜ awk awk '/10:15/{print}' warn.log
[2018-11-27 10:15:05] [src/log_metrics.cpp:34] WARN - can't find metrics type: conn_selectors
[2018-11-27 10:15:06] [src/log_metrics.cpp:34] WARN - can't find metrics type: thrift_flume_conns
[2018-11-27 10:15:06] [src/log_metrics.cpp:34] WARN - can't find metrics type: thrift_flume_conns

只想列出前面时间,以及后面的报错原因:awk '{print 1,2,6,7,8,9,$10}' warn.log

➜  awk awk '{print $1,$2,$6,$7,$8,$9,$10}' warn.log
[2018-08-23 16:29:56] can't find metrics type: conn_selectors
[2018-08-23 16:29:56] can't find metrics type: thrift_flume_conns
[2018-08-23 16:29:56] can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:31] can't find metrics type: conn_selectors
[2018-10-17 15:29:31] can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:31] can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:32] can't find metrics type: conn_selectors
[2018-10-17 15:29:32] can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:32] can't find metrics type: thrift_flume_conns
[2018-11-27 10:15:05] can't find metrics type: conn_selectors
[2018-11-27 10:15:06] can't find metrics type: thrift_flume_conns
[2018-11-27 10:15:06] can't find metrics type: thrift_flume_conns
[2019-04-09 15:34:19] can't find metrics type: conn_selectors
[2019-04-09 15:34:19] can't find metrics type: thrift_flume_conns
[2019-04-09 15:34:19] can't find metrics type: thrift_flume_conns

输如想以WARN来分割,以tab来当分割:awk -v FS='WARN' -v OFS='\t' '{print 1,2}' warn.log

➜  awk awk -v FS='WARN' -v OFS='\t'  '{print $1, $2}' warn.log
[2018-08-23 16:29:56] [src/log_metrics.cpp:34]    - can't find metrics type: conn_selectors
[2018-08-23 16:29:56] [src/log_metrics.cpp:34]    - can't find metrics type: thrift_flume_conns
[2018-08-23 16:29:56] [src/log_metrics.cpp:34]    - can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:31] [src/log_metrics.cpp:34]    - can't find metrics type: conn_selectors
[2018-10-17 15:29:31] [src/log_metrics.cpp:34]    - can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:31] [src/log_metrics.cpp:34]    - can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:32] [src/log_metrics.cpp:34]    - can't find metrics type: conn_selectors
[2018-10-17 15:29:32] [src/log_metrics.cpp:34]    - can't find metrics type: thrift_flume_conns
[2018-10-17 15:29:32] [src/log_metrics.cpp:34]    - can't find metrics type: thrift_flume_conns
[2018-11-27 10:15:05] [src/log_metrics.cpp:34]    - can't find metrics type: conn_selectors
[2018-11-27 10:15:06] [src/log_metrics.cpp:34]    - can't find metrics type: thrift_flume_conns
[2018-11-27 10:15:06] [src/log_metrics.cpp:34]    - can't find metrics type: thrift_flume_conns
[2019-04-09 15:34:19] [src/log_metrics.cpp:34]    - can't find metrics type: conn_selectors
[2019-04-09 15:34:19] [src/log_metrics.cpp:34]    - can't find metrics type: thrift_flume_conns
[2019-04-09 15:34:19] [src/log_metrics.cpp:34]    - can't find metrics type: thrift_flume_conns

sed*

一种流编辑器,主要用以数据处理,匹配一行后,数据放在缓冲区,然后进行sed操作,然后再输出屏幕,直到租后一行。

  • -n:使用安静模式,只输出匹配的行

  • -e:多项编辑

  • -i:写入文件,修改文件内容

命令:

  • a:新增字符串,会在匹配的下一行出现

  • c:替换字符串,替换匹配的行,为其他字符串

  • d:删除某行

  • i:插入字符串,会在匹配的上一行插入字符串

  • p:打印匹配的行

  • s:取代,一般配合正则使用

使用:

  • sed -n '5p' test.txt:输出第五行

  • sed -n '$p' test.txt:输出最后一行

  • sed -n '3,5p' test.txt:输出3~5行

  • sed -n '10,$' test.txt:输出第10~最后一行

  • sed -n '/test/p' test.txt:输出匹配‘test’的行

  • sed -n '/test1/,/test2/p' test.txt:输出匹配字符串test1~test2之间的所有行

  • sed -n -e '/^test1/p' -e '/^test2/p' ttt.txt:输出开头匹配test1或者test2的行

  • sed -n '/$/p' test.txt:需要转义,输出包含字符的行

  • sed '2d' test.txt:删除第2行

  • sed '3,5d' test.txt:删除3~5行

  • sed '3,5c xxx' test.txt:第3~5行替换为xxx

  • sed -i '/test/d' test.txt:修改文件,匹配到test字符串的行,删除

  • sed -n '2,3p' ttt.txt | sed 's/test1/test2/g':把2~3行的test1字符串,替换为test2字符串

举例:

warn.log文件内容:

1 [2018-08-23 16:29:56] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
2 [2018-08-23 16:29:56] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
3 [2018-08-23 16:29:56] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
4 [2018-10-17 15:29:31] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
5 [2018-10-17 15:29:31] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
6 [2018-10-17 15:29:31] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
7 [2018-10-17 15:29:32] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
8 [2018-10-17 15:29:32] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
9 [2018-10-17 15:29:32] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
10 [2018-11-27 10:15:05] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
11 [2018-11-27 10:15:06] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
12 [2018-11-27 10:15:06] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
13 [2019-04-09 15:34:19] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
14 [2019-04-09 15:34:19] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
15 [2019-04-09 15:34:19] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns

➜  sed sed -n '5p' warn.log
5 [2018-10-17 15:29:31] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns

➜  sed sed -n '3,5p' warn.log
3 [2018-08-23 16:29:56] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
4 [2018-10-17 15:29:31] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
5 [2018-10-17 15:29:31] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns

➜  sed sed -n '/10:15/p' warn.log
10 [2018-11-27 10:15:05] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
11 [2018-11-27 10:15:06] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
12 [2018-11-27 10:15:06] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
➜  sed sed  '3,10d' warn.log

1 [2018-08-23 16:29:56] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
2 [2018-08-23 16:29:56] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
11 [2018-11-27 10:15:06] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
12 [2018-11-27 10:15:06] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
13 [2019-04-09 15:34:19] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
14 [2019-04-09 15:34:19] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
15 [2019-04-09 15:34:19] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns

➜  sed sed -n '2,5p' warn.log| sed 's/2018/8888/g'
2 [8888-08-23 16:29:56] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
3 [8888-08-23 16:29:56] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
4 [8888-10-17 15:29:31] [src/log_metrics.cpp:34] WARN  - can't find metrics type: conn_selectors
5 [8888-10-17 15:29:31] [src/log_metrics.cpp:34] WARN  - can't find metrics type: thrift_flume_conns
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容