linux 工作常用命令小结(1)
参考链接
## 参考链接:
http://man.linuxde.net/
http://linuxtools-rst.readthedocs.io/zh_CN/latest/index.html
检查机器配置
# linux CPU大小,对于双核的cpu,在cpuinfo中会看到两个cpu,通过Physical Processor ID来区分单核和双核
cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id"
# 内存大小
cat /proc/meminfo |grep MemTotal
# 硬盘大小
fdisk -l | grep Disk
# 查看内核/操作系统/CPU信息的linux系统信息命令
uname -a
# 查看操作系统版本,是数字1不是字母L
head -n 1 /etc/issue
# 查看CPU信息的linux系统信息命令
cat /proc/cpuinfo
# 列出加载的内核模块
lsmod
# 查看环境变量资源
env
# 查看内存使用量和交换区使用量
free -m
# 查看各分区使用情况
df -h
# 查看指定目录的大小
du -sh *
# 查看系统运行时间、用户数、负载
uptime
# 查看系统负载磁盘和分区
cat /proc/loadavg
# 查看挂载的分区状态
mount | column -t
# 查看所有分区
fdisk -l
# 查看所有网络接口的属性
ifconfig
# 查看防火墙设置
iptables -L
# 查看路由表
route -n
# 查看所有监听端口
netstat -lntp
# 查看所有已经建立的连接
netstat -antp
# 查看网络统计信息进程
netstat -s
# 查看所有进程
ps -ef
# 查看系统所有用户
cut -d: -f1 /etc/passwd
# 查看系统所有组
cut -d: -f1 /etc/group
# 查看当前用户的计划任务服务
crontab -l
日志查看
more /path/logfiles
less /path/logfiles
tail -f /path/logfiles
机器监控命令
## 查看系统进程/cpu/内存/线程等信息
top
文本处理操作
# 批量的文件转换为linux的换行符号
find dir/ -name "*.py" |xargs sed -i 's/\r//'
# 单个文件
sed -i 's/\r//' filename
查看当前服务IP
# 出口IP
curl http://members.3322.org/dyndns/getip
# 内网IP 以及 服务的网卡信息
ifconfig
查看端口占用的进程
lsof –i:port
域名操作工具
# dig命令是常用的域名查询工具,可以用来测试域名系统工作是否正常
dig www.baidu.com
# nslookup,是常用域名查询工具,就是查DNS信息用的命令
nslookup www.baidu.com
# host命令是常用的分析域名查询工具,可以用来测试域名系统工作是否正常
host www.baidu.com
追踪网络数据包信息
# traceroute命令用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节
traceroute www.baidu.com
# tcpdump,可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析
tcpdump tcp port 80 # 监控本机器的80端口数据包流量
# 抓包命令
ngrep -d any -W byline port port_num | head
## tcpdump抓取http的请求头和响应信息
## tcpdump过滤HTTP的GET请求:
sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
## tcpdump过滤HTTP的POST请求:
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
## tcpdump过滤HTTP的请求和响应头信息&请求和响应消息体信息:
tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
## 客户端抓包
## 客户端发起请求进行抓包
tcpdump -i eth0 port 11004 -s 1024 -l -A
动态查看监控变化
#### watch命令
watch -n 1 -d redis-cli -h hostName -p portNum info Stats
服务常用排查
## 查看redis的连接对应的进程
lsof -i:6379 | awk '{print $1}' | sort |uniq -c
## 查看进程对应的信息
lsof -p:pid
大日志查询
## 已知关键字
grep keyword logfile | less -n
## 查询关键字前后
grep 'key word' log.txt -A 20 # 列出包括匹配行之后 20 的行。
grep 'key word' log.txt -B 20 # 列出包括匹配行之前 20 的行。
grep 'key word' log.txt -C 20 # 列出包括匹配行前后各 20 行。
## 查询滚动
tail -n +10000 | less # 从第 10000 开始,使用 less 查看。
tail -n 10000 | less #查看倒数第 1000 行到文件最后的数据。
tail -f main.log.6960.2020110615 | grep -n content?.*sp=pcweb.*Turkey
查看进程占用的内存
ps aux | sort -k4,4nr | head -n 10
查日志
cat ~/logs/recommend-server/main.log.3510.2020120419 | grep -n "grpc GetStrategyInfo cost" | awk -F " " '{print $8}' | sort -nr | less