Questão Como posso encontrar o binário que é executado ao digitar um comando?


Acabei de instalar o TeX-Live 2012, mas ainda assim recebo

moose@pc07:~$ latex --version
pdfTeX 3.1415926-1.40.10-2.2 (TeX Live 2009/Debian)
kpathsea version 5.0.0
Copyright 2009 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
Compiled with libpng 1.2.42; using libpng 1.2.42
Compiled with zlib 1.2.3.3; using zlib 1.2.3.3
Compiled with poppler version 0.12.4

Então, eu me pergunto se eu poderia descobrir onde o binário que é executado quando eu entro latex --version está localizado. Isso é possível?


6
2017-09-29 12:32


origem




Respostas:


o type o comando está embutido no bash (which é um programa autônomo).

type latex

o type comando também pode diferenciar entre aliases de shell, funções de shell e programas independentes se você passar -a opção: eu tenho um apelido para ls

$ type -a ls
ls is aliased to `ls -F'
ls is /bin/ls

7
2017-09-29 14:13





Você pode usar

which latex 

para descobrir a localização de uma binairy.


11
2017-09-29 12:46





Para comandos independentes simples o de cima  respostas estão perfeitamente corretos. No entanto, se você estiver executando scripts complexos e quiser saber o que está acontecendo nos bastidores, a melhor maneira é sempre:

ps afxu

que exibe toda a árvore de comando sendo executada.

Por exemplo, correndo ps afxu enquanto atualiza grub2 com os-prober enabled produz esta saída:

root      4304  0.0  0.0  27308  1700 ?        Ss   16:33   0:00 SCREEN -S update-grub
root      4305  0.9  0.1  23540  4648 pts/2    Ss   16:33   0:00  \_ /bin/bash
root      4371  0.0  0.0   4392   744 pts/2    S+   16:33   0:00      \_ /bin/sh /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg
root      5127  0.0  0.0   4396   756 pts/2    S+   16:33   0:00          \_ /bin/sh /etc/grub.d/30_os-prober
root      7029  0.0  0.0   4396   176 pts/2    S+   16:33   0:00              \_ /bin/sh /etc/grub.d/30_os-prober
root      7030  0.0  0.0   4396   464 pts/2    S+   16:33   0:00                  \_ /bin/sh /etc/grub.d/30_os-prober
root      7038  0.0  0.1  23660  4676 pts/2    D+   16:33   0:00                  |   \_ /usr/sbin/grub-probe --device /dev/sdb3 --target=fs_uuid
root      7031  0.0  0.0  11520   828 pts/2    S+   16:33   0:00                  \_ sed -e s/^/\t/

Desta forma, você pode saber exatamente o que está sendo chamado por um executável / script em cada fase de sua execução.


1
2017-09-29 14:38