ifconfig: El comando 'ifconfig' está disponible en '/sbin/ifconfig'

ifconfig: El comando 'ifconfig' está disponible en '/sbin/ifconfig'

Mi pregunta está relacionada con otra abierta.pregunta. Mi echo $PATH me da una salida que es 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/

pero corriendo

ifconfig 

me da una salida 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

después de ejecutar el comando como se indica en otra pregunta

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

correifconfigpero bloquea otros comandos de Ruby Rails o RVM.

Buscando ayuda sobre cómo resolver esto. ¿Y por qué sucede esto también?

Respuesta1

Pruebe el siguiente comando

export PATH=$PATH:/usr/sbin

O (si desea configurar todas las rutas)

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

Respuesta2

Su original $PATH(la línea que publicó no es muy legible):

/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/

Tienes /usr/local/bin, /usr/biny /bin. Como ya habrás descubierto ifconfigestá dentro /sbin.

Entonces, donde se establece esa ruta también debes incluirla /sbin.

Verrubíesdocumentos sobre cómo hacer esto.

Respuesta3

/sbin normalmente es parte de la ruta. Otras distribuciones como Fedora no lo tienen en PATH para usuarios normales, pero creo que Ubuntu siempre lo tiene. Le sugeriré que revise su archivo /etc/environment y vea si es válido y si tiene /sbin agregado a la ruta. cuando corrogato /etc/entorno, obtengo el siguiente resultado:

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

Como se puede ver/sbinya es parte de la variable de entorno PATH. Si su archivo tiene el mismo contenido, verifique sus permisos; de lo contrario, agregue /sbin a la RUTA de este archivo. Para mi los permisos son:

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

Respuesta4

¿Cuál es la PATHvariable?

PATHes una lista de rutas de directorio. Cuando el usuario escribe un comando sin proporcionar la ruta completa, se verifica esta lista para ver si contiene una ruta que conduzca al comando. El orden de las rutas en esta variable indica el orden en el que se buscará el comando, en caso de que exista un programa con el mismo nombre en varios directorios se buscará el ubicado en la carpeta más cercana al inicio de la lista (lado izquierdo). ejecutado.

La razón por la que bloqueaste otros comandos (de Ruby Rails y rvm) es porque ejecutaste esto:

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

dando como resultado un PATHqueno contienelas carpetas de dichos 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

Lo que deberías hacer en su lugar es agregarlo /sbina tu propio archivo PATH.

como agregar /sbinaPATH

Como PATHbásicamente siempre está en el entorno, no es necesario exportarlo, solo necesita agregarle el /sbindirectorio. Para hacer eso puedes ejecutar en tu bash

PATH="$PATH:/sbin"

tu camino ahora debería verse así:

/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

Sin embargo, este cambio no será permanente; una vez que cierre su sesión actual, PATHse recargará con el valor anterior. Para hacerlo permanente, debe agregar este cambio a su ~/.profilearchivo. Una forma de hacerlo es la siguiente:

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

Ahora sólo necesita ejecutar el contenido de "~/.profile" en el shell actual.

source ~/.profile

Está listo para comenzar, no solo su shell actual sino todas sus sesiones futuras tendrán el PATHdirectorio que contiene.

¿Por qué utilicé ~/.profile en lugar de ~/.bashrc?

Este concepto puede resultarte útil:

  • ~/.profilees el lugar para colocar cosas que se aplican a toda su sesión, como programas que desea iniciar cuando inicia sesión (pero no programas gráficos, van a un archivo diferente) y
    definiciones de variables de entorno.

  • ~/.bashrces el lugar para colocar cosas que se aplican sólo al propio bash, como definiciones de alias y funciones, opciones de shell y configuraciones de mensajes. (También puede colocar combinaciones de teclas allí, pero para bash normalmente van a ~/.inputrc).

No puedes obtener más información sobre este tema aquí.

¿Deberías tenerlo /sbinen tu PATH?

No voy a discutir aquí si /sbindebería o no estar incluido PATHde forma predeterminada porque puede resultar que no sea una discusión muy productiva que se pueda tener aquí. Lo tengo, puedes tenerlo si quieres. Tu llamada.

información relacionada