Estoy tratando de establecer un alias sudo !!en Bash. Lo intenté alias sbb='sudo !!', pero lo interpreta como un literal !!e imprime
sudo: !!: command not found
Si uso comillas dobles, sustituye la explosión doble en la cadena en sí, por lo que no funciona.
¿Hay alguna manera de hacer funcionar esto? O un alias alternativo? ``
bash
sudo
alias
command-history
history-expansion
Manishearth
fuente
fuente

Respuestas:
!!se expande con bash cuando lo escribe. No se expande por sustitución de alias.Puede usar el
historyincorporado para hacer la expansión:Si el comando es más que un simple comando (por ejemplo, contiene redirecciones o tuberías), debe invocar un shell bajo sudo:
fuente
man tcshy descubrí que sí hace expansión de historial durante la expansión de alias "como si el comando original fuera la línea de entrada anterior". Interesante. Sin embargo,alias sbb 'sudo \!-2no funcionó como se esperaba (en realidad sustituyó la segunda entrada anterior);alias sbb 'sudo \!\!'funcionó como se esperaba (sustituidosbbpor!!); y al final resultó que lo que quería eraalias sbb 'sudo \!-1'lo que esperaba que fuera lo mismo\!\!. (tcsh 6.17.06 (Astron) 15/04/2011) YMMV. Buena suerte.sbbpreferiría elpreasealias sugerido por @jpschorrTratar:
Me gusta en realidad prefiero llamarlo 'por favor':
Información:
fces un comando incorporado en el shell bash. que enumera, edita y vuelve a ejecutar comandos ingresados previamente a un shell interactivo.fuente
pleasedefinitivamente es el camino a seguir!pleasehace que parezca que la terminal es una entidad con la que tengo que ser amable para poder hacer las cosas. Prefiero algo que da una mejor sensación de control, comofuck;)Ahora hay un repositorio para este propósito en GitHub, comprueba mágicamente si necesita derechos de superusuario, también corrige los errores tipográficos:
https://github.com/nvbn/thefuck
fuente
apt-get install thefuckcuál existe, pero no funciona en mi Ubuntu 15.10; (Esto se publicó originalmente en esta pregunta, pero luego se sugirió publicar aquí.
Aquí es cómo puede usar
fcyhistorycon alias para!-sustituciones similares. Supongamos que si desea utilizar!-n(donde n es el dígito para n º último comando utilizado), entonces usted puede utilizarfcyhistorycon el alias de la siguiente manera:Utilizando
history:Nota: Aquí
!-ndebe encerrarse con'o''.Utilizando
fc:Nota: aquí 1 st y 2 nd
-nse utilizan para especificar el rango de lista del historial.Aquí usé eco antes de ejecutar el comando para talar como
!-<n>.fuente
history -pyfc. ¿Algo nuevo aquí?-ln -n -nser intensamente confuso; también el bit sobre'o''(y también el bit sobre-<n>).$(fc -ln -1)fuente