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 ```