¿Cómo habilitar la sugerencia si no se encuentra el comando (característica "quiso decir ...") en el shell "bash"?


15

Similar a esta pregunta: ¿Cómo elimino la función "quiso decir ..." en el shell?

Al escribir mal un comando, obtienes algo como:

root@pc:~# sido
No command 'sido' found, did you mean:
 Command 'sudo' from package 'sudo' (main)
 Command 'sudo' from package 'sudo-ldap' (universe)
sido: command not found
root@pc:~# 

¿Hay un complemento de shell para Linux o Ubuntu que recomienda la primera suposición y solo tengo que presionar enter?

Entonces debería ser como:

root@pc:~# sido
No command 'sido' found, did you mean:
 Command 'sudo' from package 'sudo' (main)
 Command 'sudo' from package 'sudo-ldap' (universe)
sido: command not found
Did you mean 'sudo' [Y/n]?

Entonces solo necesito presionar enter y el comando sudo se ejecuta en lugar de sido.


44
¿Es el zshshell una opción para ti?
AB

Respuestas:


14

Si estás dispuesto a cambiar de caparazón, zshofrece esto sin complementos:

$ setopt correct 
$ sido -i
zsh: correct 'sido' to 'sudo' [nyae]? 
y
[sudo] password for muru: 

De los documentos :

CORRECTactiva la corrección ortográfica para los comandos y la CORRECTALLopción activa la corrección ortográfica para todos los argumentos.

% setopt correct
% sl
zsh: correct `sl' to `ls' [nyae]? y
% setopt correctall
% ls x.v11r4
zsh: correct `x.v11r4' to `X.V11R4' [nyae]? n
/usr/princton/src/x.v11r4 not found
% ls /etc/paswd
zsh: correct to `/etc/paswd' to `/etc/passwd' [nyae]? y
/etc/passwd

Si presiona ycuando el shell le pregunta si desea corregir una palabra, se corregirá. Si presiona n, se quedará solo. Al presionar se acancela el comando, y al presionar se evuelve a alinear para editar, en caso de que esté de acuerdo con que la palabra se escribe mal pero no le gusta la corrección.


Bien, esto se ve bien! Lo miraré. ¿Hay otra solución usando el estándar / bin / bash?
Stefan Profanter

1
@SailAvid no que yo sepa. Bash solo ofrece corrección para rutas (para usar con cd: cdspello directorios en general:) dirspell.
muru

sudo apt-get install sl/brew install sl
kenorb

@kenorb demonios no! Me parece slmás molesto que útil.
Muru

22

Si zsh no es una opción, eche un vistazo a thefuck

Se puede instalar con:

sudo pip install thefuck

Uno de los ejemplos en el archivo Léame es casi exactamente lo que está solicitando:

 puthon
No command 'puthon' found, did you mean:
  Command 'python' from package 'python-minimal' (main)
  Command 'python' from package 'python3' (main)
zsh: command not found: puthon

 fuck
python
Python 3.4.2 (default, Oct  8 2014, 13:08:17)
...

También hace otras cosas útiles como:

 apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

 fuck
sudo apt-get install vim
[sudo] password for nvbn:
Reading package lists... Done
...

o

 git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master


 fuck
git push --set-upstream origin master
Counting objects: 9, done.
...

¡Esto es asombroso!
muru

No ayuda , ya que suelen utilizar slpara castigar a mi auto-con el fin de curar mi mal hábito de escribir mal
kenorb
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.