La respuesta a su primera pregunta se puede encontrar en /proc/self/fd
. Contiene enlaces simbólicos a los archivos (u otras cosas, tuberías, conectores, etc.) a los que está conectada su instancia de bash.
[email protected]:~# ls -l /proc/self/fd
total 0
lrwx------ 1 root root 64 May 21 02:18 0 -> /dev/pts/3
lrwx------ 1 root root 64 May 21 02:18 1 -> /dev/pts/3
lrwx------ 1 root root 64 May 21 02:18 2 -> /dev/pts/3
lr-x------ 1 root root 64 May 21 02:18 3 -> /proc/15529/fd/
[email protected]:~# ls -l /proc/self/fd < /dev/null
total 0
lr-x------ 1 root root 64 May 21 02:18 0 -> /dev/null
lrwx------ 1 root root 64 May 21 02:18 1 -> /dev/pts/3
lrwx------ 1 root root 64 May 21 02:18 2 -> /dev/pts/3
lr-x------ 1 root root 64 May 21 02:18 3 -> /proc/15536/fd/
[email protected]:~# ls -l /proc/self/fd | cat
total 0
lrwx------ 1 root root 64 May 21 02:18 0 -> /dev/pts/3
l-wx------ 1 root root 64 May 21 02:18 1 -> pipe:[497711]
lrwx------ 1 root root 64 May 21 02:18 2 -> /dev/pts/3
lr-x------ 1 root root 64 May 21 02:18 3 -> /proc/15537/fd/
[email protected]:~#
En el primer ejemplo, se puede ver los 3 primeros descriptores de archivos (que son el estándar de salida, de entrada, y el error, respectivamente), apuntan a mi pseudo-terminal /dev/pts/3
. En el segundo ejemplo, he redirigido la entrada a /dev/null
, por lo que el descriptor de archivo de entrada estándar apunta a /dev/null
. Y en el último ejemplo he enviado la salida de ls
a cat
a través de una tubería, y el descriptor de archivo de entrada estándar refleja esto. Hasta donde yo sé, no hay forma de encontrar qué proceso tiene el otro extremo de la tubería. En todos los ejemplos, hay un cuarto descriptor de archivo que representa el identificador que ls
tiene para leer /proc/self/fd
. En este caso, dice /proc/15537
porque /proc/self
es de hecho un enlace simbólico a /proc/pid
donde pid
es el PID del proceso que accede a /proc/self
.
¿Cómo lo descubrió? –
simplemente escribiendo comandos que deberían enviarse a STDOUT y STDERR. – Sergey
¿Hay algo relevante en .bashrc? –