Linux 常用命令 二

查看进程运行时间
ps -p [pid] -o lstart,etime
查看物理CPU个数
grep 'physical id' /proc/cpuinfo | sort -u

查看核心数量
grep 'core id' /proc/cpuinfo | sort -u | wc -l

通过进程号获取进程启动路径
  • 获取进程PID,然后进入/proc/进程PID,然后 ls -l


    通过进程号获取进程启动命令.png
  • 或者使用pwdx命令

    pwdx [pid]
    

pstack

pstack 可用来跟踪进程栈,这个命令在排查进程假死的问题时非常有用。可以在一段时间内,多次执行pastck查看堆栈,若发现代码总是停留在同一个位置,那么很可能就是出问题的地方。

pstack pid > log

通过命令快速找到进程号
pidof [xxx]

获取进程线程数量
  • psTree
    psTree -p [进程号]
    
  • ps
    ps -mp [进程号] -o THREAD,tid
    

ifconfig 命令

ifconfig // 显示网卡信息
ifconfig eth0 up // 开启eth0网卡
ifconfig eth0 down // 关闭eth0网卡

route 命令

  • 输出路由表

ping

确定网络主机的连通状态

  • 发指定个数ping包
    • linux
      ping -c 4 www.baidu.com 
      
    • windows
  • 指定ping报文数据包大小
    
    
    
    
    
    
    
    ping -s 512 www.baidu.com
    

telnet

用于确定目标主机端口是否打开

telnet www.baicu.com 80

nc

  • 规则
  • 连接服务器某端口
    可用来测试对方端口是否打开
    nc -v 127.0.0.1 12345
    
  • 在某个端口开启监听
    nc -v -l 12345
    
  • 用nc来发送接收文件
    • 接收端
      nc -l ip地址 端口号 > 接收的文件名
      
    • 发送端
      nc ip地址 端口号 < 发送的文件名
      

lsof(list opened fd)

lsof(list open files)是一个列出当前系统打开文件的工具:

  • 可用来查看当前进程加载的动态库。


    lsof.png
    • COMMAND
      进程的名称
    • PID
      进程标识符
    • USER
      进程所有者
    • FD
      文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等
    • TYPE
      文件和目录分别称为 REG 和 DIR。而CHR 和 BLK,分别表示字符和块设备;或者 UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。
    • DEVICE
      指定磁盘的名称
    • SIZE
      文件的大小
    • NODE
      索引节点(文件在磁盘上的标识)
    • NAME
      打开文件的确切名称
  • 查看谁在使用某个文件或者某个目录

    lsof abc.txt
    
  • 查看指定进程打开的文件句柄

    lsof -c mysql
    lsof -p 222  
    
  • 列出TCP连接网络连接信息

    lsof -i tcp -Pn 
    
  • 列出UDP连接网络连接信息

    lsof -i udp
    
  • 查找谁在使用某个端口

    lsof -i tcp:80
    
  • 查看文件删除但确被其他进程占用

    lsof | grep deleted
    

nload

  • 使用 nload 命令查看网卡带宽
    # nload
    
    image.png
  • 指定网卡名称,监控指定网卡的带宽
    # nload ens38
    

nethogs

nethogs 可以显示每个进程所使用的带宽,并对列表排序,将耗用带宽最多的进程排在最上面。如果出现带宽使用突然激增的情况,可以迅速打开nethogs,就可以找到导致带宽使用激增的进程。nethogs可以报告程序的进程编号(PID)、用户和路径。


iftop


netstat

netstat -[atunlp]

-a:列出目前系统上所有的连接,监听,socket
-t:列出tcp网络数据包数据
-u:列出udp网络数据包数据
-n:不列出进程的服务名称,以端口号来显示
-l:列出目前正在监听的网络
-p:列出网络服务的PID
查看某个端口是否被占用
netstat -anp | grep 80
统计TCP套接字各状态信息
netstat -ant | awk '/^tcp/ {++S[$NF]} END {for(a in S) print (a,S[a])}'
netstat 中Recv-Q 和 Send-Q的意义
  • 当套接字处于连接状态时

    • Recv-Q 表示套接字缓冲还没有被应用程序取走的字节数(即接收队列长度)
    • Send-Q 表示还没有被远端主机确认的字节数(即发送队列长度)
  • 当套接字处于监听状态时

    • Recv-Q 表示全连接队列的长度。
    • Send-Q 表示全连接队列的最大长度。

    全连接,是指服务器收到了客户端的 ACK,完成了 TCP 三次握手,然后就会把这个连接挪到全连接队列中。这些全连接中的套接字,还需要被 accept() 系统调用取走


curl

curl 是一个工具,用于传输来自服务器或者到服务器的数据。

-i

在输出的内容中包含HTTP 头信息。

curl -i https://www.baidu.com
-o

抓取页面内容并将其保存到本地文件

curl https://www.baidu.com -o baidu
-s

静默模式,不输出到终端。

-X

指定HTTP请求方法。

-H

(HTTP) 要发送到服务端的自定义请求头。

curl -H 'Connection: keep-alive' -H 'Referer: https://sina.com.cn' http://www.baidu.com
-G

-G 参数用来构造URL的查询字符串

curl -G -d 'q=kitties' -d 'count=20' http://baidu.com/search

上面命令会发出一个 GET 请求,实际请求的 URL 为http://baidu.com/search?q=kitties&count=20。如果省略-G,会发出一个 POST 请求。

curl -G --data-urlencode 'comment=hello world' https://www.baidu.com
-d

-d参数用于发送请求的数据体。

  • 提交json数据

    curl -H "Content-Type: application/json" -d '{"username":"tom", "password":"123456"}' http://localhost/login
    
  • 提交表单

    curl -F "username=tom" -F "password="1234456" http://localhost/register
    
  • 如果回应响应是json数据,那么我们还可以使用格式化json数据

    curl -X GET http://xxx -s | python -m json.tool
    

同时内容还可以从文件中读取:

curl -d '@data.txt' https://google.com/login  # 读取data.txt文件的内容,作为数据体向服务器发送。

比如发起带json内容的 put 请求:

curl -X PUT -H "Content-Type: application/json" -d '@data.txt' https://google.com/login
--local-port

指定本地的一个端口去连接

curl --local-port 9000 http://www.baidu.com/
-A

(HTTP) 指定要发送到HTTP服务端的User-Agent字符串,当然也可以使用 -H, --header 选项来设置。

curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/75.0.3770.999" http://www.baidu.com


参考资料

  1. linux lsof命令详解
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容