Posted on

起头

Linux 是我最喜欢的操作系统之一,平时用的最多的是 CentOS,Linux 的强悍不是我只言片语能描述清楚的,这篇博文将以事件记录的形式随时收集记录我平时所遇到的一些工具、命令、故障等。

网络工具包

host、nslookup、dig 等

平时经常用的几个命令 hostnslookupdig 等,新装的 CentOS 虚拟机运行 host 命令既然报 “找不到这个命令”

sudo yum install host,并没有这个包的安装,谷歌后发现 host 命令属于网络工具包中的一个。

下面列出各个发行版对应的包安装方式:

Ubuntu:# sudo apt-get install dnsutils

Debian: # apt-get install dnsutils

Fedora / Centos:  # yum install bind-utils

tcpdump

抓包分析 Vanilla 单次请求 sudo tcpdump -i any port 9110 -X -s 0 -S

  • -X表明当分析和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制和ASCII码形式打印出每个包的数据(但不包括连接层的头部)。
  • -S表明打印TCP 数据包的顺序号时, 使用绝对的顺序号, 而不是相对的顺序号.比如我第一次用tcpdump查看tcp的三次握手时发现第三次握手的ack=1,这个ack就是相对的,因为tcpdump只在SYN包中显示绝对顺序号,而非SYN包则显示相对的,为了便于观察,在抓包时都采用来绝对的顺序号。

http://www2.meps.tp.edu.tw/documents/memo/TCP%EF%BC%8FIP%E6%A6%82%E8%AB%96/index.htm http://xstarcd.github.io/wiki/shell/tcpdump_TCP_three-way_handshake.html http://linuxwiki.github.io/NetTools/tcpdump.html tcp

json 命令行解析工具 jq

来自 IBM 的文档 项目 官方文档

curl -s 'http://register.kailash.weibo.com:80/naming/service?action=lookup&service=yf-api-core&cluster=com.weibo.api.grpc.service.Statuses/service' |jq -r  .body|jq ".nodes|.working[]"echo '{"name":"tom"}' |jq .
echo '{"name":"tom"}' |jq -r .
echo '{"name":"tom"}' |jq -c .
echo '{"name":"tom"}' |jq -R .
echo '{"name":"tom"}' '{"name":"tom"}' |jq -s .
jq -n '([1,2]|.[])+([4,6]|.[])'
jq -n  'a={"a":{"b":1}}, b={"a":{"c":2}}'
echo '[1,2,3,4]'| jq -r 'map(.+1)'
jq -nr '[1,2,3]|length as $arraylen|$arraylen+1'
jq -nr '{"firstname":"tom","lastname":"clancy"}|. as {firstname:$fn, lastname:$ln}|"author is "+$fn+"*"+$ln'
jq -nr '{"firstname":"tom","lastname":"clancy"}|def fname:. as {firstname:$fn, lastname:$ln}|$fn; fname|$fn'
jq -nr '{"firstname":"tom","lastname":"clancy"}|def fname:. as {firstname:$fn, lastname:$ln}|$fn; fname'
jq -nr '{"firstname":"tom","lastname":"clancy"}|def fname:. as {firstname:$fn, lastname:$ln}|$fn + "----" + $ln; fname'
jq -nr 'reduce ([1,2,3]|.[]) as $item (0; .+$item)'
jq -nr '[1,2,3]|.[]'
jq -cnr 'reduce ([1,2,3]|.[]) as $item (0; .+$item)'
jq -nr '0 | (3 as $item|.+$item)|(2 as $item | . + $item)|(1 as $item | . + $item)'
jq -cnr 'reduce (["x1","x2","x3"]|.[]) as $item ("xx"; .+$item)'
jq -nr 'foreach ([1,2,3]|.[]) as $item (0; .+$item;.)'
jq -nr 'first([1,2,3]|.[])'

待消化的工具 http://linuxtools-rst.readthedocs.io/zh_CN/latest/index.html

comments powered by Disqus