ifconfig: O comando 'ifconfig' está disponível em '/ sbin / ifconfig'

6

A minha pergunta está relacionada com outra questão aberta . Meu eco $ PATH me dá uma saída que é como

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/sahil/.rvm/bin{}:/home/android-sdks/{}:/home/android-sdks/platform-tools/{}:/home/android-sdks/tools/{}:/home/sahil/android-sdks/tools{}:/home/sahil/android-sdks/tools:/home/sahil/android-sdks/platform-tools/

Mas correndo

ifconfig 

me dá uma saída como

Command 'ifconfig' is available in '/sbin/ifconfig'
The command could not be located because '/sbin' is not included in the PATH environment variable.
This is most likely caused by the lack of administrative privileges associated with your user account.
ifconfig: command not found

depois de executar o comando como dado em outra pergunta

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

roda ifconfig mas bloqueia outros comandos de rails ruby ou rvm.

Buscando ajuda sobre como resolver isso. Além disso, por que isso acontece?

    
por Sahil Grover 10.04.2012 / 09:01

5 respostas

6

Experimente o comando abaixo

export PATH=$PATH:/usr/sbin

OR (se você quiser definir todos os caminhos)

export PATH=$PATH:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/bin:/usr/games
    
por Manula Waidyanatha 10.04.2012 / 12:21
1

Seu original $PATH (a linha que você postou não é muito legível):

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:
/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:
/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin:
/usr/local/bin:/usr/bin:/bin:/usr/games:
/home/sahil/.rvm/bin{}:
/home/android-sdks/{}:
/home/android-sdks/platform-tools/{}:
/home/android-sdks/tools/{}:
/home/sahil/android-sdks/tools{}:
/home/sahil/android-sdks/tools:
/home/sahil/android-sdks/platform-tools/

Você tem /usr/local/bin , /usr/bin e /bin . Como você já descobriu, o ifconfig está dentro de /sbin .

Então, onde esse caminho está definido, você também precisa incluir /sbin .

Veja os rubygems sobre como fazer isso.

    
por Rinzwind 10.04.2012 / 11:32
1

/ sbin é normalmente parte do caminho. Outras distros como o fedora não o têm no PATH para usuários normais, mas acho que o Ubuntu sempre faz isso. Eu sugiro que você verifique seu arquivo / etc / environment e veja se ele é válido e se o / sbin foi adicionado ao caminho. Quando executo cat / etc / environment , recebo a seguinte saída:

adnan@adnan-laptop:~$ cat /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

Como você pode ver, o / sbin já faz parte da variável de ambiente PATH. Se o seu arquivo tiver o mesmo conteúdo, verifique suas permissões. Caso contrário, adicione / sbin ao PATH nesse arquivo. Para mim as permissões são:

adnan@adnan-laptop:~$ ls -l /etc/environment 
-rw-r--r-- 1 root root 79 2009-10-29 01:55 /etc/environment
    
por binW 10.04.2012 / 14:11
1

Você pode resolver isso facilmente adicionando /sbin a $PATH . O ponto mais importante é que, você não deve ter /sbin no caminho por padrão .

Veja esta página para uma descrição do motivo: /sbin definição do diretório

/sbin contém utilitários do sistema que devem ser executados por raiz ou usando a autoridade sudo. Então, se você quiser ver sua configuração de rede, basta digitar:

sudo /sbin/ifconfig

Você será solicitado a fornecer sua senha e, em seguida, ifconfig será executado.

    
por ZacSketches 24.05.2015 / 19:41
0

Qual é a variável PATH ?

PATH é uma lista de caminhos de diretório. Quando o usuário digita um comando sem fornecer o caminho completo, essa lista é verificada para ver se ele contém um caminho que leva ao comando. A ordem dos caminhos nesta variável indica a ordem em que o comando será pesquisado, caso haja um programa com o mesmo nome em vários diretórios aquele localizado na pasta mais próxima do início da lista (lado esquerdo) será executado.

A razão pela qual você tem outros comandos bloqueados (de ruby rails e rvm) é porque você executou isto:

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

resultando em um PATH que não contém as pastas de tais programas, a saber:

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin

O que você deve fazer é adicionar /sbin ao seu próprio PATH .

Como adicionar /sbin a PATH

Como o PATH é basicamente sempre no ambiente, você não precisa exportá-lo, basta adicionar o diretório /sbin nele. Para fazer isso, você pode executar no seu bash

PATH="$PATH:/sbin"

seu caminho agora deve ser algo assim:

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/sahil/.rvm/bin{}:/home/android-sdks/{}:/home/android-sdks/platform-tools/{}:/home/android-sdks/tools/{}:/home/sahil/android-sdks/tools{}:/home/sahil/android-sdks/tools:/home/sahil/android-sdks/platform-tools/:/sbin

Esta alteração não será permanente, uma vez que o fechamento da sua sessão atual PATH será recarregado com o valor anterior. Para torná-lo permanente, você deve adicionar essa alteração ao seu arquivo ~/.profile . Uma maneira de fazer isso é o seguinte:

echo 'PATH="$PATH:/sbin"' >> ~/.profile

Agora você só precisa executar o conteúdo de "~ / .profile" no shell atual.

source ~/.profile

Você está pronto para ir, não apenas o seu shell atual, mas todas as sessões futuras terão o PATH contendo o diretório.

Por que usei ~ / .profile em vez de ~ / .bashrc?

Este conceito pode ser útil para você:

  
  • ~/.profile é o lugar para colocar coisas que se aplicam a toda a sua sessão, como programas que você deseja iniciar ao fazer login (mas   não programas gráficos, eles vão para um arquivo diferente), e   definições de variáveis de ambiente.

  •   
  • ~/.bashrc é o local para colocar coisas que se aplicam apenas ao bash, como alias e definições de função, opções de shell e   configurações de prompt. (Você também pode colocar as teclas lá, mas para   Eles normalmente entram em ~ / .inputrc.

  •   

Você não pode obter mais informações sobre este tópico aqui.

Você deve ter /sbin em seu PATH ?

Não vou discutir aqui se /sbin deve ou não estar em PATH por padrão, porque isso pode não ser uma discussão muito produtiva. Eu tenho, você pode tê-lo se quiser. Sua chamada.

    
por Eduardo Almeida dos Santos 20.11.2015 / 17:26