Wie kombiniere ich mehrere Befehle im Terminal?

25

Ich habe die folgenden Befehle.

cd import
zcat urls1.sql.gz | mysql -u root -p urls
cd /var/www/project1/
nano 1.php

Ab sofort führe ich es eins nach dem anderen aus.

Gibt es eine Möglichkeit, diese Befehle in einer Zeile zu kombinieren?

Giri
quelle
3
Haben Sie zu dieser Frage recherchiert?
don.joey
Das war nicht meine Frage. Es ist nur eine halbe Minute googeln, die Ihnen die Antwort gegeben hätte. Daher habe ich mich gefragt, was Sie, wenn überhaupt, schon gefunden haben.
don.joey
Warum hast du gedacht, ich hätte deine Frage abgelehnt? Ich werde deine Wut vernachlässigen. Als Randnotiz ist die Frage ";&& Welches ist besser: Verwenden oder Ausführen mehrerer Befehle in einer Zeile" viel besser, hat mehr Nachforschungen und hätte wahrscheinlich sehr viele positive Stimmen hervorgerufen.
don.joey
Eine allgemeinere Variante dieser Frage finden Sie unter askubuntu.com/questions/334994/… . Es geht genau um die Frage, die ich im vorherigen Kommentar erwähnt habe.
don.joey
Mach dir keine Sorgen, Giri. Das Wesen der Frage ist interessant. Ich habe mir die Mühe gemacht, eine generische Variante davon zu machen.
don.joey

Antworten:

33

Ja, trennen Sie mit einem Semikolon wie folgt:

dir; ls -l

Die meisten Lanugauges / Muscheln verwenden das Semikolon, um das Ende eines Befehls zu kennzeichnen und neu zu beginnen, während von links nach rechts ausgewertet wird.

Oder verwenden Sie, wie von @RobieBasak empfohlen, && anstelle von; zum Schutz vor Codierungsunfällen.

dir && ls -l
Colyn1337
quelle
23
Es ist eine gute Idee, &&anstatt zu verwenden ;. Dies stellt sicher, dass nachfolgende Befehle nur ausgeführt werden, wenn vorherige Befehle nicht fehlgeschlagen sind. Dies vermeidet einige unangenehme Konsequenzen. Zum Beispiel: cd /somewhere_else; rm -Rf *könnte etwas Katastrophales tun, wenn es /somewhere_elsees nicht gibt oder du es falsch buchstabierst; cd /somewhere_else && rm -Rf *schützt dich davor.
Robie Basak
2
Die '&&' Lösung ist so gut, dass es die erste Empfehlung in dieser Antwort sein sollte. Bitte bearbeite deine Antwort und befördere die bessere Antwort auf den ersten Platz.
Kerem Baydoğan