Debian: comando "comando" no encontrado

Debian: comando "comando" no encontrado

Mi shell bash me da un bash : ... : command not founderror y no sé cómo empezar a solucionarlo. Además, no tenía idea de que se debían seleccionar etiquetas excepto "bash" "Debian".

Soy root, además esos dos programas ya están instalados. El sistema operativo es Debian Buster y está recién instalado. Durante el proceso de instalación, desmarqué todas las opciones en el paso de configuración de Tasksel. Creo que está más vinculado a mi Shell. Más tarde, utilizo para instalar ventanas en mosaico Awesome.

Aquí el resultado de mi camino: root@machine:~# echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Aquí dos ejemplos: Primero intenté ejecutar el programa. En segundo lugar, compruebo si el programa está instalado.

root@machine:~# modprobe --verbose
bash: modprobe: command not found

root@adrien:~# apt-get install kmod 
Reading package lists... 
Done Building dependency tree
Reading state information... 
Done kmod is already the newest version (26-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

root@machine:~# openvpn 
bash: openvpn: command not found

root@adrien:~# apt-get install openvpn 
Reading package lists... Done Building dependency tree
Reading state information... 
Done openvpn is already the newest version (2.4.7-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Respuesta1

Revise su $PATHy vea si estos programas están en él.

$ echo $PATH

debería mostrar cuál es la ruta de búsqueda de su sistema. compararlo con lo que

$ dpkg-query -L <package_name>

te mostrará.

$ command -v program

le indicará la ruta completa/absoluta al programa.

Si no puede encontrarlo de esta manera, intente:

find /sbin modprobe
find /usr/sbin modprobe

Modprobe reside /sbin(o podría estar en /usr/sbin) y es un enlace simbólico a /bin/kmod. Si no tiene la ruta al directorio donde se encuentra modprobe, no podrá usarlo a menos que proporcione una ruta completa como $ /sbin/modprobe.

Puede enviar el resultado $ set | grep PATHy podremos ver qué tiene de malo.

Como su resultado PATHindica que no tiene /sbiny /usr/sbinen él, debe agregarlo en su archivo $HOME/.bashrc. Para probarlo por primera vez:

$ export PATH=$PATH:/sbin:/usr/sbin

y comprobar si funciona. Si es así, agréguelo $HOME/.bashrcy si desea que esté disponible para todos los usuarios, agréguelo /etc/profilecomo lo sugirió @GAD3R.

PD. $es el símbolo del sistema, no lo coloca en la consola, muestra que el comando se usa en el shell. En general, para el usuario normal $se utiliza como indicador del símbolo del shell y #para root. Debido a que puede ser un problema general, no solo de root, utilicé $. Tenga en cuenta que en su caso, cuando sea root$ "se convierte en" # pero como ya inició sesión como root, no cambiará nada.

Respuesta2

Tenga en cuenta que Debian cambió a otra rama del sucomando en Debian 10 ("Buster"). A diferencia de versiones anteriores de Debian, ya no agrega automáticamente archivos /sbin, /usr/sbiny /usr/local/sbinautomáticamente $PATHcuando usas simple supara convertirte en root.

Esto ha sorprendido a bastantes personas.

En su lugar, puede utilizar su -para reinicializar explícitamente por completo el entorno al cambiar al usuario raíz: esto hará que los .../sbindirectorios se incluyan en $PATH.

Alternativamente, puede automatizar la adición de directorios cada $PATHvez que se convierta en root,como se sugiere en la respuesta de GAD3R.


También noté el hecho de que puedo reiniciar mi computadora con:

root@máquina:~# reiniciar

en lugar de.

root@máquina:~# systemctl reiniciar

(Nota: la convención en Stack Exchange es hacer solo una pregunta en cada publicación de preguntas. Preguntas múltiples como esta harán que a otras personas con el mismo problema les resulte más difícil encontrar respuestas aplicables).

Este es un contenedor de compatibilidad que le permite seguir usando los comandos de apagado/reinicio del estilo clásico SysV, que pueden estar profundamente arraigados en la memoria muscular de muchos administradores de Linux/Unix a largo plazo.

Respuesta3

Puede verificar la ubicación del ejecutable: $ which modprobey$ which openvpn

Con sulos comandos son

# /usr/sbin/modprobe
# /sbin/openvpn

Con su -ello se convierte

# modprobe
# openvpn

Es decir, solo su -proporcionará privilegios completos de root/RUTA del root. Que se requiere para algunos /sbin/comandos /usr/sbin/: Debian 10.

Respuesta4

Edite su /etc/profilede la siguiente manera (las primeras 6 líneas):

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH

Luego reinicie su sistema.

información relacionada