Comando locate

Localizando comandos

25 25America/Sao_Paulo dezembro 25America/Sao_Paulo 2017 Off Por Sidney silva santos

Agora que já digitou alguns comandos, talvez você esteja querendo saber onde eles estão localizados e como o shell encontra esses comandos digitados. Para localizar comandos que você digita, o shell procura no que é chamado de “caminho” (path).

Para comandos que não estão em seu caminho, você pode digitar a identidade completa da localização deles.

Se você sabe o diretório que contém o comando que deseja executar, uma maneira de executá-lo é digitar o caminho completo, ou absoluto, para o comando. Por  exemplo, você executa o comando date do diretório /bin, digitando:

$ /bin/date

Captura de tela de 2017-12-25 02-55-05
Obviamente isso pode ser inconveniente, especialmente se o comando reside em um diretório com um caminho longo. A melhor maneira é ter comandos armazenados em diretórios bem conhecidos e depois adicioná-los para a variável de ambiente PATH do seu shell. O caminho consiste em uma lista de diretórios em que os comandos que você insere são verificados sequencialmente. Para ver seu caminho
atual, digite o seguinte:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Captura de tela de 2017-12-25 02-58-18
Os resultados exibe o conteúdo da variável PATH que tem um caminho padrão comum para um usuário normal do Linux. Os diretórios na lista de caminho são separados por dois-pontos. A maioria dos comandos do usuário que vêm com Linux são armazenadas nos diretórios /bin, /usr/bin ou /usr/local/bin. Os diretórios /sbin e /usr/sbin contêm comandos administrativos (alguns sistemas Linux não colocam esses diretórios em caminhos de usuários regulares). O último diretório mostrado é o bin no diretório home do usuário.

Ao contrário de alguns outros sistemas operacionais, por padrão, o Linux não verifica o diretório atual para um arquivo executável antes de procurar o caminho.

Ele imediatamente começa a procurar o caminho, e executáveis no diretório atual são executados somente se eles estiverem na variável PATH ou você der o endereço absoluto (como /home/sidney/scriptx.sh) ou relativo (por exemplo, ./scriptx.sh) deles.

A ordem do diretório de caminho é importante. Os diretórios são verificados da  esquerda para a direita.

Assim, nesse exemplo, se houver um comando chamado foo localizado em ambos os /bin e /usr/bin diretórios, o que está em /bin é executado. Para executar outro  comando foo,  digite o caminho completo para o comando ou altere sua variável PATH.

Nem todos os comandos que você executa estão localizados em diretórios em sua variável PATH. Alguns comandos estão predefinidos no shell. Outros comandos podem ser anulados criando aliases que definemquaisquer comandos e opções que você quer que o comando execute. Há também maneiras de definir uma função que consiste em uma série armazenada de comandos. Eis a ordem em que o shell verifica os comandos digitados:

1. Aliases. Nomes definidos pelo comando alias que representam um determinado comando e um conjunto de opções. Digite alias para ver quais aliases estão definidos.

Muitas vezes, os aliases permitem que você defina um nome curto para um comando longo e complicado.

2. Palavra reservada do shell. Palavras reservadas pelo shell para uso especial.

Muitas dessas são palavras que você usaria na função de digitação de programação, como do, while, case e else.

3. Função. Um conjunto de comandos que são executados juntos no shell atual.
4. Comando predefinido. Um comando predefinido no shell. Como resultado, não há nenhuma representação do comando no sistema de arquivos. Alguns dos  comandos mais comuns que você vai usar são os de shell predefinidos, tais como cd (para mudar de diretórios), echo (para a saída de texto para a tela), exit (para sair de um shell), fg (para trazer um comando executado em segundo plano para o primeiro plano), history (para ver uma lista de comandos que foram executados anteriormente), pwd (para listar o diretório de trabalho atual), set (para definir as opções de shell) e type (para exibir a localização de um comando).

5. Comando do sistema de arquivos. Esse comando é armazenado e executado dentro do sistema de arquivos do computador. (Esses são os comandos que são  indicados pelo valor da variável PATH.)

Para saber de onde um determinado comando é retirado, você pode usar o comando type. (Se você estiver usando um shell que não seja bash, use o comando which.) Por exemplo, para descobrir onde o comando shell bash está localizado, digite o  seguinte:

$ type bash
bash is /bin/bash

Captura de tela de 2017-12-25 03-16-13
Experimente essas poucas palavras com o comando type para ver outros locais dos comandos: que, which, case e return Se um comando reside em vários locais, você pode adicionar a opção -a para obter todos os locais conhecidos do comando. Por exemplo, o comando type -a ls deve mostrar um alias e localização do sistema de arquivos para o comando ls.

Se um comando não está na sua variável PATH, você pode usar o comando locate para tentar encontrá-lo. Usando locate, é possível pesquisar qualquer parte do sistema que seja acessível para você (alguns arquivos são acessíveis apenas para o usuário root). Por exemplo, se quisesse encontrar a localização do comando firefox, você pode digitar o seguinte:

$ locate firefox

Comando loate

Observe que locate não só encontrou o comando firefox, mas também encontrou o comando firefox e uma variedade de páginas man associadas com firefox para diferentes idiomas. O comando locate procura em todo seu sistema de arquivos e não apenas em diretórios que contêm comandos.

Por enquanto, espero que você se familiarize com a maneira como o shell em si funciona. Então, discuto em seguida os recursos para lembrar e completar comandos, utilizar variáveis e criar aliases.

Anúncios