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

6

Acabei de instalar o TeX-Live 2012, mas ainda 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, imaginei se poderia descobrir onde o binário executado quando eu digito latex --version está localizado. Isso é possível?

    
por Martin Thoma 29.09.2012 / 14:32

3 respostas

6

O comando type está embutido no bash ( which é um programa independente).

type latex

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

$ type -a ls
ls is aliased to 'ls -F'
ls is /bin/ls
    
por glenn jackman 29.09.2012 / 16:13
11

Você pode usar

which latex

para descobrir a localização de uma binairy.

    
por Rinzwind 29.09.2012 / 14:46
1

Para comandos independentes simples acima respostas estão perfeitamente corretas. 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 que está sendo executada.

Por exemplo, a execução de ps afxu ao atualizar grub2 com os-prober enabled produz essa 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.

    
por Avio 29.09.2012 / 16:38

Tags