Comment puis-je taper sur la ligne suivante dans le terminal?

16

J'utilise Ubuntu 12.10 et je veux exécuter un ensemble de commandes dans le terminal, et d'après ce que je vois dans les instructions, ces commandes démarrent chacune sur une nouvelle ligne. Je ne sais pas comment faire cela dans le terminal. Je ne trouve pas la touche sur laquelle appuyer pour effectuer le retour chariot à la ligne suivante.

Debbie Poole
la source
4
Vous pouvez séparer les commandes en utilisant le point-virgule ";", comme cd home; test mkdir; ls -la
LnxSlck
9
@LnxSlck: Cependant, il est souvent préférable de séparer les commandes avec &&au lieu de ;. De cette façon, si l'une des commandes échoue, les commandes restantes ne seront pas exécutées. Donc, en utilisant votre exemple, s'il homen'existe pas, vous ne créerez pas accidentellement un testrépertoire dans le répertoire courant.
hammar

Réponses:

16

Les commandes que vous voyez sur chaque ligne doivent être exécutées une par une.

Donc, après avoir entré une ligne, appuyez sur Entrée pour exécuter puis exécutez la commande suivante.

Exemple:

sudo apt-get update
sudo apt-get upgrade

Ce sont deux commandes à exécuter une par une.

Pour exécuter à la fois ce sera comme sudo apt-get update && sudo apt-get upgrade(il existe aussi d'autres méthodes), mais ces choses ne nécessitent généralement pas. Alors ne t'inquiète pas. Tapez une ligne et appuyez sur Entrée, elle fera son travail.

Web-E
la source
Merci beaucoup pour vos conseils, j'aurais aimé le savoir plus tôt !!! Pourtant, nous vivons et apprenons :-)
Debbie Poole
4
@ user113090 Si Web-E a répondu à votre question, n'oubliez pas de marquer sa réponse comme réponse acceptée.
Dean
12

Comme Web-E explique la façon la plus directe de faire ce que vous voulez avec deux commandes différentes, j'ai pensé que je montrerais qu'il existe plusieurs façons d'exécuter plusieurs commandes ou de continuer des commandes sur une autre ligne sans les exécuter immédiatement.

Poursuite des commandes longues:

1) La façon la plus courante de construire une longue commande est d'entrer vos commandes, puis d'utiliser une barre oblique inverse \, d'appuyer sur Entrée , puis Bash vous fournira une autre invite au lieu d'exécuter la commande. Cette invite secondaire est appelée PS2 et attend votre entrée:

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

Vous pouvez continuer à ajouter des barres obliques inverses et à appuyer sur Retour aussi longtemps que vous le souhaitez, tant que vous pensez que la commande globale aura du sens.

Vous pouvez annuler cette invite secondaire avec le signe Ctrl+ habituel C.

2) Bash reconnaît certaines commandes comme pour les boucles (pour i dans ....) et l'invite apparaîtra immédiatement; tout comme si vous manquez un guillemet d'une commande:

apt-cache search 'libgimp*
> 

Commandes multiples :

3) Comme le note Lxnslck , vous pouvez séparer les commandes par des points-virgules:

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) Ou vous pouvez utiliser l'esperluette &&pour joindre deux commandes:

./configure && make
Communauté
la source
4

Vous pouvez appuyer sur la touche ENTER après chaque ligne et si la commande n'est pas terminée (commandes mutilines comme les forboucles par exemple), le terminal attendra que vous entriez le reste de la commande. Si la commande est terminée, elle sera exécutée et vous entrez la commande suivante après, pas de problème.

Si vous copiez les commandes d'un didacticiel, vous pouvez copier tout le groupe de commandes et le coller directement dans le terminal et cela fonctionnera.

laurent
la source
1

Lorsqu'il s'agit d'un ensemble de commandes que vous prévoyez d'utiliser plus d'une fois, vous devez les placer dans un fichier de script bash . Par exemple,

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

n'est rien que vous aimeriez taper à nouveau, mais il m'arrive d'avoir besoin de cette séquence particulière de commandes très souvent. Il va donc dans un fichier appelé 1280x980-2head.sh, vous pouvez le créer avec n'importe quel éditeur de votre choix. Pour ce script exécutable , vous mettez la ligne #!/bin/bashen face de tout (un tralala ), et définir l'exécution-autorisation: chmod +x 1280x980-2head.sh. Ensuite, il suffit de taper ./128<tab>(auto-complétion) et d' <enter>exécuter toutes les commandes.

à gauche
la source
0

Vous pouvez tout mettre entre parenthèses; par exemple:

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

Les commandes seront exécutées l'une après l'autre dans un sous-shell.

Si vous ne voulez pas qu'ils soient exécutés dans un sous-shell, vous pouvez mettre un point-virgule entre une commande et l'autre; par exemple:

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

Au lieu de cela, si vous mettez "&&" entre chaque commande, la commande qui suit le "&&" ne sera exécutée que si la commande précédente s'est terminée sans erreur, vous n'avez donc pas à l'utiliser pour concaténer des commandes; utilisez plutôt des points-virgules. Inversement, si vous mettez "||", la commande suivante ne sera exécutée que si la première se termine avec une erreur. Exemple: (la commande "which" vérifie si un programme existe et si ne se termine pas avec une erreur)

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