linux常用命令
### 服务问题排查
1.netstat -nlp | grep 8080 当前运行的进程中是否有监听端口为8080
2.pwdx 49248 用于显示指定进程的当前工作目录。
3.netstat -naep | grep 8080查看哪些ip连接8080端口
4.netstat -tulnp | grep 11125 查看进程启动的端口号
lsof -Pan -p 11125 -i 也能看到进程启动的端口号,包含有哪些网络链接
```js
#查看哪些本地那个进程连接了zk
netstat -anp | grep -E '10.5.24.123:2181|10.5.24.124:2181|10.5.24.125:2181' | awk '{print $7}' | cut -d'/' -f1 | xargs -I {} pwdx {}
#只查看一个
netstat -anp | grep -E '10.5.24.123:2181|10.5.24.124:2181|10.5.24.125:2181' | awk '{print $7}' | cut -d'/' -f1 | head -n 1 | xargs -I {} pwdx {}
```
### vim命令
1.普通模式下,按下Shift + G:这会将光标直接跳转到文件的最后一行。
2.快速定位到行尾命令模式中使用快捷键"$"(Shift+4)
3.快速定位到行首命令模式中使用快捷键"^"(即Shift+6)
### 压缩,传输
5.zip -r tomcat8.zip ./apache-tomcat-8.5.32 压缩目录
unzip tomcat8.zip解压目录
6.cp -R /foo /bar copy目录
7.tar -czf compressed_files.tar.gz -C ./bin . 压缩目录打包为一个单独的压缩文件。
tar -xzf compressed_files.tar.gz -C ./bin 对上面的压缩文件进行解压缩(没有bin目录需要新建)
ln -s /data/pdlapi-statisfaction-logs /var/www/pdlapi-statisfaction/logs
软连接的建立logs(软连接的名称) /data/pdlapi-statisfaction-logs真实的路径。
3.传输
```shell
scp -r ./bin root@10.255.242.241:/home/stock_api/stock-api-order-transfer
rsync -avz --exclude 'logs/' ./bin/ root@10.255.242.241:/home/stock_api/stock-api-order-transfer/
```
### 日志查看
grep -m 1 -C 30 "error" info.2023-06-15.log 最近的一次异常
想统计一下 grep 29290890 main.2023-05-22.log | grep "2023-05-22 11:00" 输出的日志条数
```
grep 29290890 main.2023-05-22.log | grep "2023-05-22 11:00" | wc -l
#查询参数具体值
grep 'setPresaleInfo' dubbo.info.2023-10-10.log | grep '"shopId": 0'
#查询参数>0的
grep 'setPresaleInfo' dubbo.info.2023-10-10.log | grep -E '"shopId":[1-9][0-9]*'
```
但是requestId=47010685398-20230522110056472 这个有重复的,我想去重。
```
grep 29290890 main.2023-05-22.log | grep "2023-05-22 11:00" | grep -o 'requestId=[0-9]*-[0-9]*' | sort | uniq | wc -l
```
### 系统查看
1. nproc 查看CPU 核心数
2. lsb_release -a查看是啥系统centos还是啥
2. 查看内存大小
free -h #查看内存大小
m为单位 free -m | grep Mem | awk '{print $2/1024 " GB"}'
g为单位 free -m | grep Mem | awk '{print $2}'
### 磁盘清理
1.du -a / | sort -n -r | head -n 10 显示磁盘占用最大的前10个文件(这个命令有个缺点:就是在磁盘满了的情况下,这个排序需要占用磁盘空间,没空间会报错,使用下面的命令就可以)
find / -type f -size +1G -exec ls -lh {} \; | awk '{ print $NF ": " $5 }'
```js
一般先用df -h定位到磁盘再用du -sh /var/*
#命令用于显示文件系统的总体磁盘空间使用情况
df -h
#命令用于显示指定文件或目录的磁盘使用情况。
du -sh /var/*
```
2.lsof | grep '(deleted)' 把文件删除了,还占用空间,需要把这些文件也清除掉。
### 网络请求
curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1", "key2":"value2"}' http://platform.pdl.api:8017/pdlservice/platformApi.json
### nginx
重启 sudo ./nginx -s reload
判断配置文件是否正确 sudo ./nginx -t
nginx停止 首先查询nginx主进程号 ps -ef|grep nginx
正常停止 sudo kill -QUIT 主进程号
快速停止 sudo kill -TERM 主进程号
### consul检查命令
```js
ps -ef | grep consul
systemctl status consul
journalctl -u consul
curl http://localhost:8500/v1/catalog/services
```
### rockmq
```js
#查看所有机器
./mqadmin clusterList -n mqns1.stock.idc5:9876
telnet 10.255.244.47 9876
nc -zv 10.255.244.47 9876
```
公众号进入网站体验更佳

