Como muchas personas que trabajan con máquinas Linux, prefiero usar la interfaz de línea de comandos cuando sea posible y tenga sentido. En algunos casos, es más fácil encontrar, inspeccionar y modificar algunas configuraciones con los dedos porque simplemente "saben" los comandos que necesita escribir y es más rápido que abrir una GUI y buscar la secuencia de menús que necesita. haga clic.
Claro, hay algunos casos en los que usar la GUI es más rápido y solo estás haciendo esa tarea una o dos veces, así que a quién le importa, ¿verdad? Pero si es algo que necesitará hacer varias veces, tal vez con algunas variaciones, su cerebro de administrador de sistemas reflexiona:"¿Puedo automatizar esto?" En muchos casos, la respuesta será sí, pero el esfuerzo de automatizar la tarea no vale la pena en otras situaciones.
[ También te puede interesar: truco del terminal de Linux:piratea el comando cd para recordar dónde has estado]
Si pudiera reutilizar los comandos recientes que escribí.
Historia
La opción más sencilla a la hora de recuperar los últimos comandos que escribiste en la consola de Linux es usar history
. En este ejemplo, está trabajando con el servidor HTTP y está deteniendo repetidamente el servicio, editando el httpd.conf
y luego reiniciar httpd
para comprobar los resultados en el navegador.
El siguiente comando le mostrará los últimos 10 comandos utilizados:
❯ history | tail -10
10057 systemctl stopt httpd.service
10058 systemctl stop httpd.service
10059 sudo systemctl stop httpd.service
10060 sudo systemctl start httpd.service
10061 systemctl status httpd.service
10062 history
10063 systemctl status httpd.service
10064 ps -ef|grep httpd
10065 man httpd.conf
10066 view /etc/httpd/conf/httpd.conf
Desde allí, puede copiar y pegar la línea (si necesita editar el comando o usarlo en otra terminal) o escribir el signo de exclamación seguido de la secuencia del comando en el historial:
> !10061
Esta línea recuerda el comando systemctl status httpd.service
desde el historial, y luego solo presiona ENTER (o edite el comando antes de volver a ejecutarlo).
Esto no está mal, pero aún necesita escribir la secuencia o copiar y pegar con el mouse. No es un enorme trato, pero desea concentrarse en su tarea principal.
Algunas buenas alternativas
Puede recuperar los comandos anteriores del historial usando el ARRIBA Tecla de flecha. Navegue por la lista usando ARRIBA y ABAJO llaves.
Este enfoque está bien, pero ¿qué sucede si desea recuperar algo que sabe que usó hace 15 minutos? Seguro que estará en la lista del historial, pero es posible que debas hacer algo de minería.
Por ejemplo, podría usar history
, envía la salida a grep
y enumere solo los comandos que coincidan con sus necesidades. En este ejemplo, muestro todos los comandos en history
que incluyen el http cadena:
> history | grep http
10544* systemctl status httpd.service
10545* systemctl stopt httpd.service
10546* systemctl stop httpd.service
10547* sudo systemctl stop httpd.service
10548* sudo systemctl start httpd.service
10549* systemctl status httpd.service
10551* systemctl status httpd.service
10552* ps -ef|grep httpd
10553* man httpd.conf
10554* view /etc/httpd/conf/httpd.conf
10561* systemctl status httpd.service
Entonces, desde aquí, puede usar el signo de exclamación y el número de secuencia nuevamente. Por ejemplo:!10546
Pero puede pensar:"Esto está bien, pero mi conexión entre el cerebro y los dedos es tan rápida que no quiero distraerme. Lo sé exactamente el comando que estoy buscando."
De acuerdo, también hay una solución para eso.
Cuando tu cerebro y tus dedos saben lo que están buscando
Continuando con este ejemplo, desea recuperar comandos relacionados con httpd
rápidamente.
La opción para ti es usar CTRL+R , que le pedirá una subcadena. Úsalo para recordar el último comando que escribiste que contiene esa cadena.
A medida que escribe la cadena de su comando, se mostrará el último comando que usó esa cadena. Si el comando es lo que está buscando, presione ENTER , y se ejecutará.
Si en este punto sigues presionando CTRL+R , el penúltimo Se mostrará el comando que contiene esa cadena de búsqueda, que en este ejemplo es view /etc/httpd/conf/httpd.conf
comando.
Puede navegar hacia atrás (CTRL+R ) y adelante (CTRL+S ).
[ ¿Quiere poner a prueba sus habilidades de administrador de sistemas? Tome una evaluación de habilidades hoy. ]
Resumir
Cuando sepa parte del comando que ejecutó recientemente, puede usar los accesos directos que se describen aquí para recuperarlo rápidamente. Esto puede ser especialmente útil si usó el comando hace mucho tiempo y todavía está en el historial del shell, pero sus dedos lo "recuerdan".
Obviamente, hay formas más eficientes de realizar tus tareas diarias que escribir:crear alias para los comandos que usas mucho, crear scripts, automatizar, etc. Pero cuando es necesario escribir, es mejor hacerlo de manera eficiente.