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

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

Minha pergunta está relacionada a outro abertopergunta. Meu echo $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"

ele correifconfigmas bloqueia outros comandos de Ruby Rails ou rvm.

Procurando ajuda como resolver isso. Também por que isso acontece?

Responder1

Experimente o comando abaixo

export PATH=$PATH:/usr/sbin

OU (se você quiser definir todos os caminhos)

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

Responder2

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/bine /bin. Como você já descobriu ifconfigestá dentro /sbin.

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

Vergemas de rubidocumentos sobre como fazer isso.

Responder3

/sbin normalmente faz parte do caminho. Outras distros como o fedora não o possuem no PATH para usuários normais, mas acho que o Ubuntu sempre o possui. Sugiro que você verifique seu arquivo /etc/environment e veja se ele é válido e se tem /sbin adicionado ao caminho. Quando eu corrogato /etc/ambiente, 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/sbinjá 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 neste 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

Responder4

Qual é a PATHvariável?

PATHé uma lista de caminhos de diretório. Quando o usuário digita um comando sem fornecer o caminho completo, esta lista é verificada para ver se 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 exista 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ê bloqueou outros comandos (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 PATHquenão contémas 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 /sbinao seu próprio arquivo PATH.

Como adicionar /sbinaPATH

Como o arquivo PATHestá basicamente sempre no ambiente, você não precisa exportá-lo, basta adicionar o /sbindiretório a ele. Para fazer isso você pode executar no seu bash

PATH="$PATH:/sbin"

seu caminho agora deve ser parecido com isto:

/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 mudança não será permanente, porém, uma vez encerrada, sua sessão atual PATHserá recarregada com o valor anterior. Para torná-lo permanente, você deve adicionar esta alteração ao seu ~/.profilearquivo. Uma maneira de fazer isso é a 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 começar, não apenas seu shell atual, mas todas as suas sessões futuras terão o PATHdiretório que contém.

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 quando fizer login (mas não programas gráficos, eles vão para um arquivo diferente) e
    definições de variáveis ​​de ambiente.

  • ~/.bashrcé o lugar para colocar coisas que se aplicam apenas ao próprio bash, como alias e definições de funções, opções de shell e configurações de prompt. (Você também pode colocar combinações de teclas lá, mas para o bash elas normalmente vão para ~/.inputrc.)

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

Você deveria ter /sbinem seu PATH?

Não vou discutir aqui se /sbindeveria ou não estar incluído PATHpor padrão, porque essa pode acabar não sendo uma discussão muito produtiva aqui. Eu tenho, você pode ficar com ele se quiser. Sua chamada.

informação relacionada