.png)
wie kann ich mehrere Befehle gleichzeitig ausführen? (Betriebssystem = Sun Solaris)
Antwort1
Ich freue mich, dass Sie bereit sind, Shell zu lernen, wie ich bereits in einer anderen Frage vorgeschlagen habe. :-)
So legen Sie den Befehl in den Hintergrund und lassen ihn dort ausführen:
yourcommand &
So wechseln Sie zurück zu diesem Prozess (wenn nur ein Hintergrundprozess gestartet ist):
fg
So listen Sie alle im Hintergrund laufenden Prozesse auf:
jobs -l
Wenn Sie nur einen Befehl ausführen möchten, dann noch einen und dann noch einen …
yourcommand && yourothercommand && youryetanothercommand
Das obige Beispiel würde nur dann mit dem nächsten Befehl fortfahren, wenn der vorherige Befehl ohne Fehler erfolgreich war. Wenn es Ihnen egal ist, ob der vorherige Befehl erfolgreich war oder nicht, können Sie Folgendes tun:
yourcommand; yourothercommand; youryetanothercommand
Außerdem screen
wird command Ihr neuer bester Freund sein. Damit können Sie einen Prozess in seinem eigenen „Bildschirm“ starten, den Sie später trennen und wieder verbinden können. So können Sie beispielsweise von Ihrem Firmen-Desktop-Computer aus eine Verbindung zu einem Server herstellen, einen Bildschirm starten und dort einen Befehl mit langer Laufzeit ausführen lassen, die Sitzung trennen, zu Ihrem Firmen-Laptop gehen, sich damit mit diesem Server verbinden, die Sitzung wieder verbinden und sehen, was in der Zwischenzeit passiert ist.
Wie dem auch sei, all dies sind Grundlagen, die ich Ihnen nicht erklären sollte; lesen Sie ein Tutorial, um loszulegen! Suchen Sie einfach bei Google nachBash-Tutorials, wenn Ihre Shell Bash ist. Sie scheinen Solaris zu verwenden, also könnte Ihre Shell genauso gutcsh, dann googeln Sie nachCSH-Tutorials. Sie sind einander ähnlich, es gibt jedoch einige Unterschiede, zum Beispiel bei Umgebungsvariablen.
Antwort2
Sie versuchen nicht, zwei Befehle gleichzeitig auszuführen, sondern Sie möchten einen zweiten Befehl auf der Ausgabe des ersten ausführen. SvenW hat das Argument -exec für find bereits erwähnt, aber eine andere Möglichkeit besteht darin, xargs zu verwenden, wodurch Sie die Ausgabe eines weitergeleiteten Befehls als Argument für einen anderen Befehl verwenden können.
Angenommen, Sie möchten jedes Verzeichnis mit dem Namen „foo“ finden und die Berechtigungen für alle Dateien in diesem Verzeichnis anzeigen:
finden / -Typ d -name 'foo' -print0 | xargs -0 ls -la
(Informationen zur Verwendung von -print0 und -0 finden Sie bei Bedarf in den Manpages für find und xargs.)
Antwort3
Bitte erläutern Sie, was Sie tun möchten, da es hierfür zahlreiche Möglichkeiten gibt.
- Sie können Befehle verketten wie
command1; command2
- Sie können lang laufende Befehle mit & in den Hintergrund stellen.
command &
- Sie können screen verwenden (dringend empfohlen
man screen
), um mehrere virtuelle Konsolen gleichzeitig auszuführen, selbst nachdem Sie die Verbindung getrennt haben. - Sie können Shell-Skripte schreiben
- usw. usw.
Lesen Sie alle Linux/Unix-Anfängerhandbücher. Dort werden die Dinge sehr ausführlich erklärt.
Außerdem ist dies kein Anfängerforum, um die Grundlagen zu lernen. Die Art der Fragen, die Sie stellen, ist auf der Schwesterseite besser geeignetsuperuser.com.