Duvida sobre o shell

1. Duvida sobre o shell

Rodrigo S Cunha (Dallas)
ddallas

(usa Debian)

Enviado em 26/05/2008 - 16:07h

quero saber como funciona a leitura do shell.Como o shell sabe que a palavra que eu escrevo é um comando que executa um aplicativo.

Ex: ls -l --- comando listar

Como o shell relaciona o comando com o programa.

Alguém?!


  


2. Re: Duvida sobre o shell

Phillipe Smith
SmithuX

(usa Arch Linux)

Enviado em 26/05/2008 - 16:17h

O Shell reconhece o que estamos solicitando a ele devido ao PATH do sistema, ou seja, no arquivo /etc/profile, vc pode configurar o PATH, retirando ou adicionando novos caminhos e diretórios ao qual o Shell irá verificar se o que estamos solicitado é válido ou não, se existe ou não.
Por exemplo, se digitamos no shell:
$mplayer
Ele vai buscar no PATH se existe algum lugar que contenha algo executável referente ao mplayer entendeu. No caso o mplayer se encontra em /usr/bin/, então /usr/bin é um dos locais que estão definidos no PATH.


3. Re: Duvida sobre o shell

Rodrigo Ferreira Valentim
engos

(usa openSUSE)

Enviado em 26/05/2008 - 16:22h

Ele não faz isso, o que ele faz é primeiramente procurar o programa ls no local onde você está.

Como ele (normalemente) não encontra esse programa, ele consulta a variavel de ambiente setada para o sistema operacional, que tem o nome de PATH.

Você pode verificar qual a configuração dessa variavel em seu ambiente digitando:

echo $PATH


Como nessa variavel de ambiente tem (ou pode ter) varios caminhos de diretórios, o sistema sai procurando em cada um desses diretórios onde se encontra o programa ls (no seu caso) e o executa assim que o achar, parando a procura nos demais.


Veja que quando você executa o comando (ou programa padrão que existe em todas as distros linux já pré-configurados):

which ls

Ele te retorna um diretório que existe na variavel PATH, seguido do programa ls.

Agora mova o programa ls desse local para outro e tente executar, que você não vai conseguir, mas lembre-se de voltar ele para o local correto, por isso jamais o apague, apenas o mova de um lugar para outro.


Conseguiu testar e entender?


4. Re: Duvida sobre o shell

Bruno Araujo
bjaraujo

(usa Ubuntu)

Enviado em 26/05/2008 - 17:03h

Grosso modo, a primeira palavra será interpretada como um executável (programa ou script) o que vir depois do espaço ele "entende" que são os parâmetros do executável, estão tudo vir depois do espaço ele repassa ao executável chamado.
Era isso ou entendi mal?!


5. Sem palavras...

Rodrigo S Cunha (Dallas)
ddallas

(usa Debian)

Enviado em 26/05/2008 - 18:11h

Sem palavras para agradecer.
Postei hoje e hoje ja me responderam.Vou testar!


6. ...

Rodrigo S Cunha (Dallas)
ddallas

(usa Debian)

Enviado em 27/05/2008 - 19:01h

ele me respondeu isso

"/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/games
"
O que significa o caractere ":".
A meu ver,parece-me que ele está listando caminhos possiveis para encontrar o programa para depois roda-lo.

Correto?!


7. Re: Duvida sobre o shell

Phillipe Smith
SmithuX

(usa Arch Linux)

Enviado em 27/05/2008 - 20:00h

Pode ser entendido assim mesmo.

Os ":" é um método de separação. Vc pode adicionar mais caminhos se vc preferir, por exemplo, o último caminho da lista é /usr/games, basta fazer:

".....:/usr/games:/opt/bin" (Só um exemplo).






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts