¿Cómo escribo en la siguiente línea en la Terminal?

16

Estoy usando Ubuntu 12.10 y quiero ejecutar un conjunto de comandos en la terminal, y por lo que veo en las instrucciones, cada uno de estos comandos comienza en una nueva línea. No sé cómo hacer esto en la terminal. No puedo encontrar qué tecla presionar para hacer el retorno de carro a la siguiente línea.

Debbie Poole
fuente
44
Puede separar los comandos utilizando el punto y coma ";", como cd home; prueba de mkdir; ls -la
LnxSlck
99
@LnxSlck: Sin embargo, a menudo es preferible separar los comandos con en &&lugar de ;. De esta manera, si uno de los comandos falla, los comandos restantes no se ejecutarán. Entonces, usando su ejemplo, si homeno existe, no creará accidentalmente un testdirectorio en el directorio actual.
hammar

Respuestas:

16

Los comandos que ve en cada línea deben ejecutarse uno por uno.

Entonces, después de ingresar una línea, presione enter para ejecutar y luego ejecute el siguiente comando.

Ejemplo:

sudo apt-get update
sudo apt-get upgrade

Estos son dos comandos que se ejecutarán uno por uno.

Para ejecutar de una vez será como sudo apt-get update && sudo apt-get upgrade(también hay otros métodos), pero esto generalmente no requiere. Entonces no te preocupes. Escriba una línea y presione Intro, hará su trabajo.

Nosotros somos
fuente
Muchas gracias por tu consejo, ¡ojalá hubiera sabido esto antes! Aún así, vivimos y aprendemos :-)
Debbie Poole
44
@ user113090 Si Web-E respondió su pregunta, no olvide marcar su respuesta como la respuesta aceptada.
Dean
12

Como Web-E explica la forma más directa de hacer lo que quiere con dos comandos diferentes, pensé en mostrar que hay varias formas de ejecutar múltiples comandos o continuar comandos en otra línea sin ejecutarlos de inmediato.

Comandos largos continuos:

1) La forma más común de construir un comando largo es ingresar sus comandos, luego usar una barra diagonal inversa \, presionar Intro , y luego Bash le proporcionará otro aviso en lugar de ejecutar el comando. Este aviso secundario se llama PS2 y espera su entrada:

find /home/mike/Downloads -type f -iname '*.jpg' \
> 

Puede seguir agregando barras invertidas y presionando la tecla Intro todo el tiempo que desee, siempre que crea que el comando general tendrá sentido.

Puede cancelar este mensaje secundario con el Ctrl+ habitual C.

2) Bash reconoce algunos comandos, como for loops (para i in ....) y la solicitud aparecerá de inmediato; tal como ocurrirá si omite una comilla de un comando:

apt-cache search 'libgimp*
> 

Múltiples comandos :

3) Como señala Lxnslck , puede separar los comandos con punto y coma:

which vlc; whereis vlc

/usr/bin/vlc
vlc: /usr/bin/vlc /etc/vlc /usr/lib/vlc /usr/bin/X11/vlc /usr/share/vlc /usr/share/man/man1/vlc.1.gz

4) O puedes usar el ampersand &&para unir dos comandos:

./configure && make
Comunidad
fuente
4

Puede presionar la tecla ENTRAR después de cada línea y si el comando no finaliza (comandos mutiline como forbucles, por ejemplo), el terminal esperará a que ingrese el resto del comando. Si el comando se termina, se ejecutará y luego ingresará el siguiente comando, no hay problema.

Si está copiando los comandos de un tutorial, puede copiar todo el grupo de comandos y pegarlo directamente en el terminal y funcionará.

Laurent
fuente
1

Cuando se trata de un conjunto de comandos que espera utilizar más de una vez, debe colocarlos en un archivo de script bash . Por ejemplo,

xrandr --newmode "1280x960_80.00" 139.25  1280 1368 1504 1728  960 963 967 1008 -hsync +vsync
xrandr --verbose --addmode VGA1 "1280x960_80.00"
xrandr --output HDMI1 --off --output LVDS1 --mode 1366x768 --pos 1280x512 --rotate normal --output DP1 --off --output VGA1 --mode "1280x960_80.00" --pos 0x0 --rotate normal
sleep 3
xfce4-panel -r

no es nada que le gustaría escribir nunca más, pero resulta que necesito esta secuencia particular de comandos con mucha frecuencia. Por lo tanto, va en un archivo llamado 1280x980-2head.sh, puede crearlo con cualquier editor de su elección. Para hacer que la escritura ejecutable , se pone la línea de #!/bin/bashfrente de todo (un tinglado ), y configurar la ejecución en permisos: chmod +x 1280x980-2head.sh. Luego, solo escribe ./128<tab>(autocompletar) y <enter>ejecuta todos los comandos.

leftaroundabout
fuente
0

Puedes poner todo entre paréntesis; por ejemplo:

(sudo add-apt-repository ppa:foo/bar
sudo apt-get update
sudo apt-get install my-package)

Los comandos se ejecutarán uno tras otro en un sub-shell.

Si no desea que se ejecuten en un sub-shell, puede poner un punto y coma entre un comando y el otro; por ejemplo:

sudo add-apt-repository ppa:foo/bar; sudo apt-get update; sudo apt-get install my-package

En cambio, si coloca "&&" entre cada comando, el comando que sigue al "&&" se ejecutará solo si el comando anterior ha finalizado sin error, por lo que no tiene que usarlo para concatenar comandos; use punto y coma en su lugar. Por el contrario, si coloca "||", el siguiente comando se ejecutará solo si el primero sale con un error. Ejemplo: (el comando "which" verifica si existe un programa y si no sale con un error)

which apt-get && echo "No error" || echo "Error"    # Will print "No error"
which jdhdsd && echo "No error" || echo "Error"  # Will print "Error"
Depau
fuente