Descubra se um comando resolve para um alias, um arquivo de disco, uma função de shell, um comando interno ou uma palavra reservada. Use type
para descobrir como seus comandos do Linux são executados e entender melhor seu sistema.
Índice
Faça meu lance
Quando abrimos uma janela de terminal e começamos a emitir comandos para nosso computador Linux, raramente paramos para pensar quais componentes de software dentro do sistema operacional estão reagindo aos nossos comandos e os executando para nós. Nós digitamos o comando, obtemos o resultado e continuamos com nossa carga de trabalho.
Saber como os comandos são executados nos dá uma melhor compreensão de como nosso Linux ou outro sistema operacional semelhante ao Unix é construído. Dar uma espiada embaixo do capô pode nos tornar um motorista mais informado.
As instruções que emitimos para a linha de comando estão em uma das seguintes categorias:
- Alias : Um comando definido pelo usuário (ou sistema) que faz com que outras sequências de comando, geralmente longas ou complexas, ocorram.
- Arquivo de disco : um arquivo executável binário, como
/usr/bin/top
. - Função shell : uma função definida pelo usuário (ou sistema) que pode ser usada na linha de comando ou incluída em scripts.
- Comando embutido : um comando executado pelo próprio shell, como
pwd
. - Palavra reservada : uma palavra reservada pela shell, como
if
eelif
. Eles também são chamados de palavras-chave.
O type
comando nos diz a qual categoria qualquer um dos comandos do Linux pertence. Aqui está um tutorial rápido para entender a saída do comando.
O tipo Command
Vamos examinar alguns exemplos rápidos para cada uma das categorias de comando.
tipo data
O date
comando é um arquivo de disco executável.
tipo ls
O ls
comando é um alias, envolvendo o ls
comando subjacente para usar a --color=auto
opção por padrão.
digite lowdown
O lowdown
comando é uma função definida pelo usuário que foi configurada no comutador usado para pesquisar este artigo. Ele fornece um instantâneo rápido de alguns recursos do sistema. É uma combinação de whoami
, w
, free
e df
.
digite pwd
O pwd
comando é um comando interno do shell Bash.
digite elif
O elif
comando é uma palavra reservada do shell Bash.
Usando vários comandos
Você pode dar type
vários comandos para identificar de uma vez.
digite data top ls
A opção -t
Nenhuma das opções type
aceitas tem nomes. Assim, podemos pegar nosso livro de nomes e batizá-los nós mesmos. Se você acha que a -t
opção significa “conciso”, não se enganará. Ele reduz as respostas de type
para respostas de uma única palavra.
tipo -t data
tipo -t pwd
digite -t lowdown
A opção -a
Vamos chamar isso de opção “todos”. Ele lista todos os locais onde o comando está localizado. Observe que esta opção não funcionará se você também usar a -p
opção.
Por exemplo, se você tiver um alias com o mesmo nome do comando subjacente, poderá obter informações sobre o alias e o comando.
digite -a ls
A opção -f
A -f
opção força type
a não pesquisa de funções definidas pelo usuário ou sistema. Pense nesta opção como “função de pesquisa desativada”. Observe que se o comando for uma função, type
irá relatar que o comando não pode ser encontrado.
digite -f top
tipo -f lowdown
A opção -P
Se você usar a -P
opção, type
pesquisará apenas os diretórios em $ PATH . Portanto, podemos chamar essa opção de “caminho”. Observe que esta opção usa um “P” maiúsculo
tipo -P data chmod adduser
A opção -p
Se você usar a -p
opção, type
só responderá se o comando for um arquivo do disco rígido. Observe que esta opção usa um “p” minúsculo.
tipo -p montagem
digite -p ls
digite -p -a ls
type
não dá nenhuma resposta para ls
porque ls
um alias, e não um arquivo de disco.
Mas se incluirmos a -a
opção para que type
procure todas as instâncias do ls
comando, ela lista o arquivo de disco subjacente que o ls
alias utiliza.
Resumo
Isso foi bom e simples, mas esclarecedor ao mesmo tempo.
Tendemos a pensar em qualquer coisa que digitamos em uma janela de terminal como um “comando” e deixamos por isso mesmo. Mas, na verdade, os comandos são implementados de várias maneiras no sistema Linux. E type
permite que você descubra qual é.