Tabla de contenidos
/proc Resumen
En este capítulo se presentan distintos comandos y procedimientos mediante los cuales puede analizarse el estado del sistema. Además se describen varias herramientas junto con sus opciones más importantes que pueden resultar de utilidad en el trabajo diario.
Cada vez que se comenta un comando, se incluye su correspondiente salida en
pantalla. La primera línea corresponde al comando en sí (ubicado tras el
carácter que representa la línea de comandos, en este caso el signo del
dólar). Los fragmentos omitidos se indican mediante corchetes
([...]) y, si es necesario, se dividen las líneas demasiado
extensas. Esta división se simboliza mediante una barra inversa
(\):
$ command -x -y
output line 1
output line 2
output line 3 is annoyingly long, so long that \
we have to break it
output line 3
[...]
output line 98
output line 99
Asimismo, se adjunta una descripción concisa de cada comando en la que se
incluye un resumen de todas sus funciones. Puede encontrar información más
detallada acerca de los comandos en las páginas del manual correspondientes.
La mayoría de comandos admite también el parámetro --help,
mediante el cual podrá visualizar una lista de todas las opciones posibles.
Si desea visualizar el listado de todos los archivos que mantiene abiertos
un determinado ID de proceso (PID), puede
utilizar la opción -p. Por ejemplo, para mostrar todos los
archivos utilizados por la shell actual, ejecute:
$ lsof -p $$ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME zsh 4694 jj cwd DIR 0,18 144 25487368 /suse/jj/t (totan:/real-home/jj) zsh 4694 jj rtd DIR 3,2 608 2 / zsh 4694 jj txt REG 3,2 441296 20414 /bin/zsh zsh 4694 jj mem REG 3,2 104484 10882 /lib/ld-2.3.3.so zsh 4694 jj mem REG 3,2 11648 20610 /usr/lib/zsh/4.2.0/zsh/rlimits.so [...] zsh 4694 jj mem REG 3,2 13647 10891 /lib/libdl.so.2 zsh 4694 jj mem REG 3,2 88036 10894 /lib/libnsl.so.1 zsh 4694 jj mem REG 3,2 316410 147725 /lib/libncurses.so.5.4 zsh 4694 jj mem REG 3,2 170563 10909 /lib/tls/libm.so.6 zsh 4694 jj mem REG 3,2 1349081 10908 /lib/tls/libc.so.6 zsh 4694 jj mem REG 3,2 56 12410 /usr/lib/locale/de_DE.utf8/LC_TELEPHONE [...] zsh 4694 jj mem REG 3,2 59 14393 /usr/lib/locale/en_US/LC_NUMERIC zsh 4694 jj mem REG 3,2 178476 14565 /usr/lib/locale/en_US/LC_CTYPE zsh 4694 jj mem REG 3,2 56444 20598 /usr/lib/zsh/4.2.0/zsh/computil.so zsh 4694 jj 0u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 1u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 2u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 10u CHR 136,48 50 /dev/pts/48
En el ejemplo se ha utilizado la variable $$, cuyo valor es
el ID de proceso de la shell.
Si no se indica ninguna opción, lsof enumera todos los archivos abiertos en ese momento. Puesto que no es raro que haya miles de archivos abiertos, una lista de todos ellos no suele resultar de utilidad. No obstante, es posible combinar la lista de todos los archivos con funciones de búsqueda para generar listas útiles, como por ejemplo un listado de todos los dispositivos de caracteres (character devices) utilizados:
$ lsof | grep CHR sshd 4685 root mem CHR 1,5 45833 /dev/zero sshd 4685 root mem CHR 1,5 45833 /dev/zero sshd 4693 jj mem CHR 1,5 45833 /dev/zero sshd 4693 jj mem CHR 1,5 45833 /dev/zero zsh 4694 jj 0u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 1u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 2u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 10u CHR 136,48 50 /dev/pts/48 X 6476 root mem CHR 1,1 38042 /dev/mem lsof 13478 jj 0u CHR 136,48 50 /dev/pts/48 lsof 13478 jj 2u CHR 136,48 50 /dev/pts/48 grep 13480 jj 1u CHR 136,48 50 /dev/pts/48 grep 13480 jj 2u CHR 136,48 50 /dev/pts/48