Entiendo que puedo escribir \ enteral final de una bashlínea de comando para continuar ese comando en otra línea. Pero, ¿cómo puedo dividir una línea de comando de solicitud , que ya se ha escrito completamente, en dos?
Por ejemplo, ¿cómo puedo romper esta línea justo antes thensin tener que cortar el resto y escribirlo de nuevo?
$ if true; then ls; fi

fccomando: está disponible en casi todos los shells.Respuestas:
Un carácter de nueva línea es LF (avance de línea), también conocido como Control-J. Si presiona Ctrl+ J, esto ejecuta el comando
accept-line, igual que la Returntecla. Para insertar un carácter LF literal, presione Ctrl+ V Ctrl+ J. El comando Ctrl+ V(quoted-insert) inserta el siguiente carácter literalmente. Por lo tanto, para dividir una línea, puede ingresar \ Ctrl+ V.Si haces esto a menudo, puedes convertirlo en una macro:
fuente
Puede usar
edit-and-execute-command, generalmente asignado a Ctrl+ x+ e, para abrir el comando actual en un editor . Al salir del editor, se ejecutará el comando.fuente
vima la mía, así:export EDITOR=vim.:q!o no,ZQpero fue en vano.ggdG:wqo:%d|wq, etc.). El comando permanecerá en el historial (posiblemente como un duplicado si lo recuperó de una entrada anterior), pero no se ejecutará.Nota: esta respuesta es específica para vi y vim
Para editar la línea mecanografiada actual, golpeó
ESC(para entrar enviovimmodo de comando), a continuación, escribavovi.Tenga en cuenta que todos los comandos de edición vi / vim funcionan. p.ej
ESC+Apone al final de la línea escrita actual.ESC+0coloca el cursor al comienzo de la línea.fuente
CTRL+vluegoCTRL+jpara lanzar una nueva línea debería funcionar.