在 Linux 中,可以使用 ls -l /proc/<PID>/fd 命令來查看指定進程的所有打開的文件描述符。其中 <PID> 是要查看的進程的進程標(biāo)識符。
在 Linux 中,可以使用 ls -l /proc/<PID>/fd 命令來查看指定進程的所有打開的文件描述符。其中 <PID> 是要查看的進程的進程標(biāo)識符。
該命令將列出指定進程的所有文件描述符的詳細信息,包括文件描述符的名稱、類型、大小等。例如:
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)錯誤輸出。文件描述符 3 是一個套接字類型的文件描述符,它連接到另一個進程或服務(wù)器。

可以使用 lsof -p <PID> 命令查看指定進程打開的所有文件和套接字。該命令將顯示每個文件或套接字的名稱、類型、大小和狀態(tài)等詳細信息。例如:
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 列顯示進程的名稱,PID 顯示進程的進程標(biāo)識符,F(xiàn)D 列顯示文件描述符或套接字,TYPE 列顯示文件或套接字的類型。其他列則顯示與文件或套接字相關(guān)的詳細信息。