在 Linux 中,可以使用 ls -l /proc/<PID>/fd 命令來查看指定進(jìn)程的所有打開的文件描述符。其中 <PID> 是要查看的進(jìn)程的進(jìn)程標(biāo)識符。
 在 Linux 中,可以使用 ls -l /proc/<PID>/fd 命令來查看指定進(jìn)程的所有打開的文件描述符。其中 <PID> 是要查看的進(jìn)程的進(jìn)程標(biāo)識符。
該命令將列出指定進(jìn)程的所有文件描述符的詳細(xì)信息,包括文件描述符的名稱、類型、大小等。例如:
lrwx------ 1 user user 64 Aug 31 18:42 0 -> /dev/pts/0
lrwx------ 1 user user 64 Aug 31 18:42 1 -> /dev/pts/0
lrwx------ 1 user user 64 Aug 31 18:42 2 -> /dev/pts/0
lrwx------ 1 user user 64 Aug 31 18:42 3 -> socket:[315245]
其中,第一列表示文件模式和權(quán)限,第二列表示硬鏈接數(shù),第三列表示擁有者,第四列表示擁有組,第五列表示文件大小,第六列表示最后修改日期,第七列表示文件名。
在上面的例子中,文件描述符 0、1 和 2 都指向 /dev/pts/0,即標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出。文件描述符 3 是一個(gè)套接字類型的文件描述符,它連接到另一個(gè)進(jìn)程或服務(wù)器。

可以使用 lsof -p <PID> 命令查看指定進(jìn)程打開的所有文件和套接字。該命令將顯示每個(gè)文件或套接字的名稱、類型、大小和狀態(tài)等詳細(xì)信息。例如:
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF     NODE NAME
bash    3272 root  cwd    DIR              253,0       93 17057427 /home/shenshixi/ctest
bash    3272 root  rtd    DIR              253,0      238      128 /
bash    3272 root  txt    REG              253,0  1219248 50411954 /usr/bin/bash
bash    3272 root  mem    REG              253,0  2586930 50377323 /usr/lib/locale/en_US.utf8/LC_COLLATE
bash    3272 root  mem    REG              253,0    83760    82001 /usr/lib64/libnss_files-2.28.so
bash    3272 root  mem    REG              253,0  8406312 34695765 /var/lib/sss/mc/passwd
bash    3272 root  mem    REG              253,0    38160  2089406 /usr/lib64/libnss_sss.so.2
bash    3272 root  mem    REG              253,0  3167872    81989 /usr/lib64/libc-2.28.so
bash    3272 root  mem    REG              253,0    28856    81991 /usr/lib64/libdl-2.28.so
bash    3272 root  mem    REG              253,0   208616    81901 /usr/lib64/libtinfo.so.6.1
bash    3272 root  mem    REG              253,0   278512    81962 /usr/lib64/ld-2.28.so
bash    3272 root  mem    REG              253,0   337024 51059433 /usr/lib/locale/en_US.utf8/LC_CTYPEbash    3272 root  mem    REG              253,0       54 51059435 /usr/lib/locale/en_US.utf8/LC_NUMERIC
bash    3272 root  mem    REG              253,0     3316  1432404 /usr/lib/locale/en_US.utf8/LC_TIME
bash    3272 root  mem    REG              253,0      286  1432401 /usr/lib/locale/en_US.utf8/LC_MONETARY
bash    3272 root  mem    REG              253,0       57    81955 /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
bash    3272 root  mem    REG              253,0       34 33791042 /usr/lib/locale/en_US.utf8/LC_PAPERbash    3272 root  mem    REG              253,0       77 50377326 /usr/lib/locale/en_US.utf8/LC_NAME
bash    3272 root  mem    REG              253,0      167    81938 /usr/lib/locale/en_US.utf8/LC_ADDRESS
bash    3272 root  mem    REG              253,0       59  1432403 /usr/lib/locale/en_US.utf8/LC_TELEPHONE
bash    3272 root  mem    REG              253,0       23  1432400 /usr/lib/locale/en_US.utf8/LC_MEASUREMENT
bash    3272 root  mem    REG              253,0    26998 51037172 /usr/lib64/gconv/gconv-modules.cache
bash    3272 root  mem    REG              253,0      368  1432391 /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION
bash    3272 root    0u   CHR              136,1      0t0        4 /dev/pts/1
bash    3272 root    1u   CHR              136,1      0t0        4 /dev/pts/1
bash    3272 root    2u   CHR              136,1      0t0        4 /dev/pts/1
bash    3272 root    3r   REG              253,0  8406312 34695765 /var/lib/sss/mc/passwd
bash    3272 root    4u  unix 0xffff95f041aef500      0t0    65549 type=STREAM
bash    3272 root  255u   CHR              136,1      0t0        4 /dev/pts/1

其中,COMMAND 列顯示進(jìn)程的名稱,PID 顯示進(jìn)程的進(jìn)程標(biāo)識符,F(xiàn)D 列顯示文件描述符或套接字,TYPE 列顯示文件或套接字的類型。其他列則顯示與文件或套接字相關(guān)的詳細(xì)信息。