Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

3.2. Orientação no sistema de arquivos‌‌


3.2.1. O caminho


Quando você deseja que o sistema execute um comando, quase nunca é necessário fornecer o caminho completo para esse comando. Por exemplo, sabemos que o ls o comando está no / bin diretório (verifique com qual -a ls), mas não precisamos inserir o comando / bin / ls para o computador listar o conteúdo do diretório atual.


O PATH a variável de ambiente cuida disso. Essa variável lista os diretórios no sistema onde os arquivos executáveis ​​podem ser encontrados e, assim, poupa ao usuário muita digitação e memorização de localizações de comandos. Portanto, o caminho contém, naturalmente, muitos diretórios contendo caixa em algum lugar em seus nomes, como o usuário abaixo demonstra. o eco comando é usado para exibir o conteúdo ("$") da variável PATH:


Roger:> echo $ PATH

/ opt / local / bin: / usr / X11R6 / bin: / usr / bin: / usr / sbin /: / bin

Roger:> echo $ PATH

/ opt / local / bin: / usr / X11R6 / bin: / usr / bin: / usr / sbin /: / bin

Neste exemplo, os diretórios / opt / local / bin, / usr / X11R6 / bin, / usr / bin, / usr / sbin e

/ bin são posteriormente pesquisados ​​para o programa necessário. Assim que uma correspondência for encontrada, a pesquisa será interrompida, mesmo que nem todos os diretórios do caminho tenham sido pesquisados. Isso pode levar a situações estranhas. No primeiro exemplo abaixo, o usuário sabe que existe um programa chamado Enviar SMS para enviar uma mensagem SMS, e outro usuário no mesmo sistema pode usá-lo, mas ela não pode. A diferença está na configuração do PATH variável:


[jenny @ blob jenny] $ Enviar SMS bash: sendms: command not found [jenny @ blob jenny] $ echo $ PATH

/ bin: / usr / bin: / usr / bin / X11: / usr / X11R6 / bin: / home / jenny / bin [jenny @ blob jenny] $ su - tony

Senha: tony: ~> que envia mensagens

Sendms é / usr / local / bin / Sendms


tony: ~> echo $ PATH

/home/tony/bin.Linux: / home / tony / bin: / usr / local / bin: / usr / local / sbin: \

/ usr / X11R6 / bin: / usr / bin: / usr / sbin: / bin: / sbin

[jenny @ blob jenny] $ Enviar SMS bash: sendms: command not found [jenny @ blob jenny] $ echo $ PATH

/ bin: / usr / bin: / usr / bin / X11: / usr / X11R6 / bin: / home / jenny / bin [jenny @ blob jenny] $ su - tony

Senha: tony: ~> que envia mensagens

Sendms é / usr / local / bin / Sendms


tony: ~> echo $ PATH

/home/tony/bin.Linux: / home / tony / bin: / usr / local / bin: / usr / local / sbin: \

/ usr / X11R6 / bin: / usr / bin: / usr / sbin: / bin: / sbin

Observe o uso do su facilidade (troca de usuário), que permite executar um shell no ambiente de outro usuário, desde que saiba a senha do usuário.


Uma barra invertida indica a continuação de uma linha na próxima, sem um Entrar separando uma linha da outra.


No próximo exemplo, um usuário deseja ligar para o wc (contagem de palavras) para verificar o número de linhas em um arquivo, mas nada acontece e ele tem que interromper sua ação usando o Ctrl+C combinação:


jumper: ~> teste wc -l


(Ctrl-C)

jumper: ~> qual wc

wc está com hash (/ home / jumper / bin / wc)


jumper: ~> echo $ PATH

/ home / jumper / bin: / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin: \

/ usr / bin: / usr / sbin: / bin: / sbin

jumper: ~> teste wc -l


(Ctrl-C)

jumper: ~> qual wc

wc está com hash (/ home / jumper / bin / wc)


jumper: ~> echo $ PATH

/ home / jumper / bin: / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin: \

/ usr / bin: / usr / sbin: / bin: / sbin

O uso do qual comando nos mostra que este usuário tem um caixa-diretório em seu diretório inicial, contendo um programa que também é chamado wc. Uma vez que o programa em seu diretório inicial é encontrado primeiro ao pesquisar o


caminhos após uma chamada para wc, este programa "feito em casa" é executado, com entradas que provavelmente não entende, portanto, temos que interrompê-lo. Para resolver esse problema, existem várias maneiras (sempre há várias maneiras de resolver um problema no UNIX / Linux): uma resposta pode ser renomear o usuário wc programa, ou o usuário pode fornecer o caminho completo para o comando exato que deseja, que pode ser encontrado usando o -a opção para qual comando.


Se o usuário usa programas em outros diretórios com mais frequência, ele pode alterar seu caminho para procurar em seus próprios diretórios por último:


jumper: ~> exportar PATH = / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin: \

/ usr / bin: / usr / sbin: / bin: / sbin: / home / jumper / bin

jumper: ~> exportar PATH = / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin: \

/ usr / bin: / usr / sbin: / bin: / sbin: / home / jumper / bin


imagemAs mudanças não são permanentes!

Top OS Cloud Computing na OnWorks: