Heim - Einrichten des Routers
Hintergrundprozesse starten und bearbeiten: Jobmanagement. Prozesse und Jobverwaltung im Linux-Hintergrundmodus
  1. Müssen Sie eine SQL-Abfrage ausführen, deren Ergebnis mehrere Stunden oder Tage warten muss?
  2. Müssen Sie eine Anwendung im Hintergrund ausführen?
  3. Müssen Sie ein Programm im Hintergrund ausführen und darauf zurückgreifen können?
  4. Benutzen Sie eine Linux-Konsole und arbeiten mit ssh?

Dann müssen Sie unbedingt Bescheid wissen Bildschirm.

Bildschirm-Grundlagen

Bildschirm unter Linux- Dies sind wie „Fenster in Windows“, die minimiert/erweitert werden können. Sie können in einem Fenster etwas tun, zum Beispiel Fotos ansehen. Wenn Sie jedoch zusätzlich zum Ansehen von Fotos auch Musik hören möchten, wird dies geöffnet neu Gehen Sie im Fenster (Explorer) in das Musikverzeichnis und öffnen Sie den Song im Audioprogramm.

Wenn es um die Linux-Konsole geht (insbesondere beim Arbeiten an ssh), dann wird es für uns äußerst unpraktisch, verschiedene Anwendungen in einer Konsole auszuführen. Oder vielleicht ist es überhaupt nicht möglich, den zweiten Vorgang durchzuführen, während der erste noch seine Arbeit fortsetzt. Das ist der erste Punkt. Der zweite Punkt ist, dass im Falle eines Fehlers Ihrerseits (auf Seiten des Kunden) der laufende Vorgang unterbrochen wird. Ein paar Beispiele, die Sie möglicherweise benötigen, wenn Sie mit SSH arbeiten Bildschirm:

  • wenn Sie eine große Menge Dateien von einem Verzeichnis in ein anderes kopieren oder verschieben
  • wenn Sie eine umfangreiche SQL-Abfrage ausführen
  • wenn Sie eine Anwendung ausführen müssen, die die Konsole „kapert“.

Sie wären wahrscheinlich sehr traurig, wenn aufgrund eines versehentlich geschlossenen Terminals oder eines Stromstoßes eine SQL-Abfrage unterbrochen würde, die bereits seit mehr als 10 Stunden ausgeführt wurde. Im Falle von screen läuft screen auf dem Server, der Initiator der Anfrage ist das Screen-Objekt und die Anfrage wird nicht mehr aufgrund von Clientproblemen abgebrochen. Bei einem Verbindungsabbruch werden die Prozesse nicht gestoppt, sondern laufen weiter und Sie können jederzeit zu ihnen zurückkehren.

Arbeiten mit dem Bildschirm

Zu erschaffen Bildschirm Um damit zu arbeiten, geben Sie in der Befehlszeile Folgendes ein:

Dabei ist test1 ein beliebiger Name für das Bildschirmobjekt. Sie können es der Einfachheit halber beliebig nennen.

Dadurch wird ein Bildschirm unter dem Namen erstellt test1. Jetzt können Sie alle lang andauernden Vorgänge ausführen. Führen Sie beispielsweise eine SQL-Abfrage aus:

Mysql -u ... select * from ... update ...

Bereits zu diesem Zeitpunkt, wenn Sie das Internet verlieren, versehentlich die Registerkarte „Terminal“ schließen, wird der Computer neu gestartet – Sie verlieren keine Daten und die SQL-Abfrage wird nicht unterbrochen.

Um den Bildschirm zu verlassen, drücken Sie die folgenden Tasten:

+ & – Verlassen Sie den Bildschirm. Die Anfrage wird weiterhin ausgeführt. Alle in den Bildschirmen laufenden Prozesse laufen weiter.

Um zu Ihrem Bildschirm oder einem anderen Bildschirmfenster zurückzukehren, können Sie alle verfügbaren Bildschirme anzeigen:

Bildschirm -r — Wählen Sie einen der Bildschirme aus und aktivieren Sie ihn.

Wenn Sie die Bildschirmsitzung nicht mehr benötigen, aktivieren Sie screen mit screen -r, um die Bildschirmsitzung vollständig zu beenden und klicken Sie hinein + oder Drucken beenden.

Die Verwaltung eines Linux-Servers geht oft mit mehrfachen Manipulationen von Befehlen im Terminalfenster einher. Dies ist ein vertrautes Bild für diejenigen, die Linux-Server verwalten, und in manchen Fällen ist es praktisch, Befehle im Hintergrund auszuführen. Dies kann durchaus in der Praxis verwendet werden, und es lohnt sich, die Gründe zu erwähnen, warum es nützlich sein könnte:
— Wenn das Terminal mit einer Menge Nachrichten überlastet ist und es nicht möglich ist, zusätzliche Aktionen parallel auszuführen;
— Wenn Sie das Terminal schließen, werden der aktuelle Prozess und seine untergeordneten Prozesse gestoppt;
Diese Probleme können einfach gelöst werden; vereinfacht ausgedrückt müssen wir den laufenden Prozess vollständig vom Steuerungsterminal trennen.

In diesem Beitrag werfen wir einen Blick auf die nützliche Fähigkeit von Linux, Befehle im Hintergrund auszuführen. Mit anderen Worten: Der von Ihnen gestartete Prozess wird getrennt vom Steuerterminal ausgeführt.

So führen Sie Befehle oder Prozesse im Hintergrund aus
Wenn Ihr Prozess in einem Terminalfenster ausgeführt wird, können Sie ihn mit dem Befehl anhalten Strg+Z, wahrscheinlich wissen das viele Leute und werden denken, na und. Und hier ist das Interessante: Nachdem wir den Vorgang auf diese Weise angehalten haben, können wir ihn im Hintergrund fortsetzen. Dazu müssen wir den Befehl eingeben

Nach Eingabe dieses Befehls wird der Vorgang fortgesetzt, jedoch im Hintergrund. Um alle im Hintergrund laufenden Prozesse anzuzeigen, können Sie den Befehl eingeben

Schauen wir uns ein einfaches Beispiel an, wie dies angewendet werden kann. Nehmen wir an, wir haben eine , die wir auspacken müssen, aber wir haben keine Zeit zum Warten und möchten parallel arbeiten.

Entpacken des Archivs im Hintergrund

$ tar -czf home.tar.gz .

Klicken Cntr+Z, und geben Sie dann die Befehle ein

$bg$jobs

Die zweite Möglichkeit besteht darin, am Ende des Befehls ein & hinzuzufügen. Dadurch wird das System angewiesen, den Befehl im Hintergrund auszuführen.

$ tar -czf home.tar.gz . &$jobs

Diese Methode ermöglicht jedoch die Ausführung von Prozessen im Hintergrund. STDIN, STDOUT, STDERR sind noch mit dem Terminal verbunden. Stellen wir nun sicher, dass der Prozess auch dann läuft, wenn das Terminal geschlossen ist.

Ausführen eines Prozesses nach Schließen des Terminalfensters
Um den Prozess auch nach dem Schließen des Terminalfensters am Laufen zu halten, können wir den Befehl verwenden verleugnen. Dadurch wird der Prozess von der Shell des Terminalfensters „ausgehakt“ und anschließend auch nach dem Schließen des Konsolenfensters ausgeführt.
Schauen wir uns ein Beispiel für die Verwendung des Standardbefehls an rsync Versuchen wir, es im Hintergrund auszuführen und die Verknüpfung des Prozesses mit dem Terminal aufzuheben.

$ sudo rsync Templates/* /var/www/html/ & $ jobs $ disown -h %1 $ jobs

Sie können auch den Befehl verwenden neinhup Dadurch kann der Prozess auch dann weiter ausgeführt werden, wenn der Benutzer die System-Shell verlässt.

$ nohup tar -czf iso.tar.gz Templates/* & $ jobs

So trennen Sie einen Prozess vom Linux-Steuerterminal
Um den Prozess vollständig vom Steuerterminal zu trennen, können Sie auch einen Befehl verwenden, der bei Verwendung einer grafischen Benutzeroberfläche (GUI), beispielsweise des Firefox-Browsers, wirksam ist.

$firefox/dev/null &

Unter Linux (und praktisch allen Unix-Systemen) ist /dev/null eine spezielle Gerätedatei, auch „Null-Gerät“ genannt. Das Schreiben darauf wird unabhängig von der Menge der geschriebenen Informationen erfolgreich durchgeführt. Das Lesen davon entspricht dem Lesen des Endes der Datei (EOF).

Der Linux-Terminaldienst läuft standardmäßig im Single-Tasking-Modus. Dies bedeutet, dass jede gestartete Besatzung das Terminal blockiert, bis es fertiggestellt ist. Dieser Ansatz ist nicht praktisch, wenn Programme ausgeführt werden, die eine lange Ausführungszeit erfordern. Dieses Problem kann auf zwei Arten gelöst werden: Öffnen Sie ein zusätzliches Terminalfenster und führen Sie darin einen anderen Befehl aus oder verwenden Sie den Hintergrundmodus. Alle aktuellen Betriebssysteme, einschließlich Linux, sind Multitasking-fähig, also die Fähigkeit, mehrere Programme gleichzeitig auszuführen.

Wie kann ich eine Brigade im Hintergrund betreiben, damit ich sofort auf die Befehlszeilenschnittstelle zugreifen kann? Eine Crew, die zur Flucht gezwungen wurde, wird als Hintergrundprozess bezeichnet. Hintergrundprozesse werden nicht auf dem Bildschirm angezeigt. Beispielsweise läuft der Apache HTTPD-Server im Hintergrund, um Webseiten bereitzustellen. Sie können ein Shell-Skript oder einen beliebigen Befehl in den Modus mit niedriger Priorität versetzen. Eine Aufgabe (z. B. ein Team oder ein Skript) kann in den Hintergrund gestellt werden, indem am Ende der Befehlszeile ein „&“ hinzugefügt wird. Diese Anweisung stellt den Befehl in den Hintergrund und gibt Speicherplatz im Terminal frei. Ein Team, das im Hintergrund läuft, wird als Job bezeichnet. Während der Hintergrundbefehl ausgeführt wird, ist es möglich, beliebige andere Befehle auszuführen. Die Syntax lautet wie folgt:

Befehl & Skriptname & /Pfad/zu/Befehl arg1 arg2 & Befehl-1 | Befehl-2 arg1 & Befehl-1 | command-2 -arg1 -arg2 >/path/to/output &

Um Programme im Hintergrund auszuführen, ohne das Terminalfenster zu blockieren, müssen Sie den speziellen „&“-Instruktor verwenden. Platzieren Sie dieses Zeichen ganz am Ende der Zeile, nachdem Sie den Befehlsnamen, die Optionen und die Eingabeparameter angegeben haben. Im Allgemeinen kann diese Sequenz als „Befehlsname -Option Eingabeparameter &“ geschrieben werden.

ls ~/* > ~/test-file.txt &
18960

Nach Drücken der Enter-Taste startet das Programm automatisch im Hintergrund. In diesem Fall zeigt das Terminal eine Zeile mit dem Inhalt „[task_number] Process_identifier“ an und fordert Sie zur Eingabe eines neuen Befehls auf.

Finden Sie Befehle, die unter Linux im Hintergrund ausgeführt werden

Führen Sie den folgenden Befehl aus:

Beispiel einer Datenausgabe:

Ausführen von find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
+ Ausführen von grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

Wo sind die Bestellkennungen?

Um zusätzlich zu den Standardumwandlungen Prozess-IDs für Job-IDs anzuzeigen, übergeben Sie die Option -l:

Beispiel einer Datenausgabe:

7307 Ausführen von find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
+ 7324 Ausführen von grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

Um nur Prozess-IDs anzuzeigen, geben Sie Folgendes ein:

Beispiel einer Datenausgabe:

Stoppen Sie die Ausführung von Befehlen, die im Hintergrund ausgeführt werden

Um einen Prozess erzwungen oder ordnungsgemäß zu beenden, verwenden Sie den Befehl kill. Die Syntax lautet wie folgt:

PID töten
kill -15 PID
kill -9 PID
killall Prozess-Name-Hier
killall -15 Prozessname-hier
killall -9 Prozessname-hier

Zurücksetzen eines Programms in den Vordergrundmodus unter Linux

Unter Linux können Sie Programme nicht nur im Hintergrund ausführen, sondern auf Wunsch auch wieder in den normalen Ausführungsmodus versetzen. Dafür gibt es zwei Tools: den Befehl ( Ein Team ist eine Gruppe von Menschen, die durch gemeinsame Motive und Interessen verbunden sind.) fg und der %-Operator. Das Prinzip ihrer Bemühungen ist äußerst einfach. fg erfordert die Angabe der Jobnummer als Parameter und muss % direkt nach dem Operator ohne Leerzeichen ersetzt werden.

find / -name .ini 2> ~/results.txt &
19090
fg 1
bash: fg: Aufgabe beendet
+ Exit 1 find / -name .ini 2> ~/results.txt

Wie jedes andere Multitasking-System führt Linux mehrere Prozesse gleichzeitig aus. Im Allgemeinen möchte ich Sie nicht in die Irre führen, denn ein normaler Einzelprozessor-Computer kann jeweils nur eine Aufgabe ausführen, weshalb Linux Prozesse zur Ausführung in die Warteschlange stellt.

Es gibt mehrere grundlegende Befehle zum Verwalten von Prozessen

  • PS- Zeigt eine Liste der laufenden Prozesse an
  • töten- sendet ein Signal an einen oder mehrere Prozesse (im Grunde, um sie zu „töten“)
  • Arbeitsplätze- eine alternative Möglichkeit, von Ihnen ausgeführte Prozesse anzuzeigen
  • bg- stellt die Prozessausführung in den Hintergrund
  • fg- bringt die Prozessausführung aus dem Hintergrund

Obwohl dieses Wissen recht abstrakt erscheinen mag, kann es selbst für den durchschnittlichen Benutzer, der eine grafische Benutzeroberfläche verwendet, praktische Anwendungen haben. Möglicherweise wissen Sie noch nicht, dass die meisten grafischen Programme (wenn nicht alle) über die Befehlszeile gestartet werden können. Versuchen wir zum Beispiel, einen Browser zu starten. Ich denke, die meisten Linux-Geräte verfügen entweder über Google Chrome oder Firefox

Enej@linux:/home/pub/www/vv$ google-chrome Neues Fenster in vorhandener Browsersitzung erstellt.

Sie können die URL angeben, die Sie öffnen möchten

Enej@linux:/home/pub/www/vv$ google-chrome http://site Neues Fenster in bestehender Browsersitzung erstellt.

Ich habe Chrome bereits über die GUI ausgeführt, sodass der Browser meldet, dass in einer bestehenden Sitzung ein neues Fenster erstellt wird, und die Steuerung an die Befehlszeile übergibt. Oder wenn Sie beispielsweise einen grafischen Dateimanager mit Root-Rechten öffnen müssen (das Beispiel funktioniert für die grafische Gnome-Shell mit installiertem Nautilus).

Enej@linux:/home/pub/www/vv$ sudo nautilus /root/ Passwort für enej:

Da der Prozess nicht im Hintergrund gestartet wurde, können Sie in diesem Terminalfenster keine Aktionen mehr ausführen (Sie können den Prozess mit STRG + C beenden).

Hintergrundmodus

Um das Leben einfacher zu machen, wird bei der Ausführung grafischer Programme oder Prozesse, die über einen längeren Zeitraum ausgeführt werden können, deren Ausführung normalerweise in den Hintergrund verschoben. Lassen Sie uns beispielsweise den Browser im Hintergrund ausführen

Enej@linux:/home/pub/www/vv$ google-chrome http://site & 9248

kaufmännisches Und-Zeichen ( & ) am Ende des Befehlsaufrufs bedeutet, dass die Prozessausführung im Hintergrund erfolgen soll. In diesem Fall ist es weiterhin möglich, mit diesem Terminalfenster zu arbeiten.

Aber plötzlich haben Sie vergessen, am Ende des Anrufs ein Ampresant zu setzen, dann gibt es einen anderen Weg. Sie müssen die Ausführung zunächst durch Drücken von STRG + Z stoppen, dann erhalten wir die Kontrolle über die Befehlszeile und können den Befehl aufrufen bg, wodurch der zuletzt laufende Prozess in den Hintergrund verschoben wird. Am Beispiel erzählt

Enej@linux:/home/pub/www/vv$ google-chrome http://site ^Z + Gestoppt google-chrome http://site enej@linux:/home/pub/www/vv$ bg + google- chrome http://site &

Team fg Bringt den zuletzt ausgeführten Prozess aus dem Hintergrund.

Liste der laufenden Prozesse

Da Sie jetzt wissen, wie man Befehle im Hintergrund ausführt, war es gut, eine Liste davon zu sehen. Verwenden Sie dazu den Befehl Arbeitsplätze oder stärker PS

Enej@linux:/home/pub/www/vv$ Jobs – nm-applet & (wd: ~/bin) ausführen + google-chrome http://site & enej@linux:/home/pub/www/vv ausführen $ ps PID TTY TIME CMD 2304 Punkte/0 00:00:02 Bash 11104 Punkte/0 00:00:01 Chrome 11108 Punkte/0 00:00:00 Chrome 11110 Punkte/0 00:00:00 Chrome 11132 Punkte/0 00:00:00 Chrome 12088 Punkte/0 00:00:00 PS 21165 Punkte/0 00:00:27 nm-Applet

Wie kann man einen Prozess „töten“?

Wenn ein Prozess nicht mehr reagiert (d. h. hängt), muss er zwangsweise „getötet“ werden. Ich denke, diejenigen, die FireFox verwenden, sind darauf gestoßen. Für solche Aufgaben wird der Befehl verwendet töten. Aber zuerst müssen Sie den Prozess irgendwie definieren. Dazu können Sie den Befehl verwenden Arbeitsplätze oder PS. Mit dem ersten können Sie die Prozessnummer ermitteln, mit dem zweiten dessen Kennung.

Enej@linux:/home/pub/www/vv$ google-chrome http://freaksidea..com & 15181 enej@linux:/home/pub/www/vv$ ps PID TTY TIME CMD 2304 pts/0 00: 00:02 bash 15181 Punkte/0 00:00:00 chrome 15238 Punkte/0 00:00:00 ps 21165 Punkte/0 00:00:27 nm-applet enej@linux:/home/pub/www/vv$ kill 15181

Mannschaften fg Und bg Als erstes Argument können sie die Nummer des laufenden Prozesses für dessen nachfolgende Ein-/Ausgabe in/aus dem Hintergrund übernehmen.

Erfahren Sie mehr über Töten

Eigentlich das Team töten Wird verwendet, um verschiedene Signale an Prozesse zu senden. In den meisten Fällen teilt dieses Signal dem Befehl lediglich mit, dass er beendet werden soll. Wenn Programme richtig geschrieben sind, achten sie auf verschiedene Signale des Betriebssystems und reagieren darauf. Beispielsweise muss ein Texteditor auf jedes Signal achten, das mitteilt, dass Benutzer abgemeldet werden oder der Computer heruntergefahren wird. Wenn er (der Texteditor) ein solches Signal „hört“, muss er die geöffneten Dokumente speichern, bevor er seine Arbeit beendet. Team töten kann verschiedene Arten von Signalen senden, um herauszufinden, welche, geben Sie ein töte -l. Nachfolgend finden Sie eine Liste der am häufigsten verwendeten Signale (die Zahl in Klammern gibt die Signalnummer an).

Standardbefehl töten sendet SIGTERM Signal, Sie können aber auch die Signalnummer oder seinen Namen angeben. Nehmen wir an, Ihr Chrome ist eingefroren (manchmal funktioniert mein Flash-Player nicht mehr ordnungsgemäß).

Enej@linux:/home/pub/www/vv$ google-chrome http://site & 22066 enej@linux:/home/pub/www/vv$ jobs – nm-applet & ausführen (wd: ~/bin) + Ausführen von google-chrome http://site & enej@linux:/home/pub/www/vv$ kill -SIGTERM %2 enej@linux:/home/pub/www/vv$ kill -SIGKILL %2 enej@linux :/home/pub/www/vv$ kill -9 %2

P.S.: Ich denke, 2 Befehle werden für Anfänger sehr interessant sein: benachrichtigen-senden(sendet eine Nachricht über die grafische Shell, erscheint oben rechts in Gnome) und espeak(Sprachsynthesizer). Wenn Sie keine davon haben, können Sie sie mit dem Befehl installieren apt-get

Enej@linux:/home/pub/www/vv$ sudo apt-get install espeak notify-send

Im Wesentlichen besteht das Betriebssystem aus einem Kernel und einer Vielzahl von Programmen, die verschiedene Aufgaben ausführen, das System warten und die Bedürfnisse des Benutzers erfüllen sollen. Fast die gesamte Interaktion zwischen dem Benutzer und dem Betriebssystem erfolgt über Programme. Daher ist es für Anfänger wichtig zu verstehen, wie man ein Programm unter Linux ausführt, was beim Start passiert und welche Startmethoden es gibt.

Bevor wir mit dem Starten von Programmen fortfahren, müssen wir zunächst verstehen, was ein Programm ist. Unter Linux unterscheiden sich Programme von anderen Dateien nur dadurch, dass sie über ein gesetztes Executable-Flag verfügen. Darüber habe ich im Artikel bereits ausführlich geschrieben, daher werde ich es nicht wiederholen.

Alle Programme können in verschiedene Typen unterteilt werden:

  • Binäre Programme- Anweisungen an den Prozessor enthalten, die zur Ausführung bereit sind; die meisten Programme haben dieses Format, sie sind schnell und werden sofort vom System ausgeführt;
  • Bytecode-Programme- Dies sind keine Prozessoranweisungen mehr, sondern Anweisungen einer bestimmten virtuellen Maschine, die sie ohne eine virtuelle Maschine ausführen können. Solche Programme verbrauchen mehr Ressourcen, sind aber auch recht schnell, ihr Vorteil ist, dass sie ohne Modifikation überall dort ausgeführt werden können, wo sie funktionieren virtuelle Maschine. Zu diesen Programmen gehören Java-Programme.
  • Skriptprogramme- Diese Programme bestehen aus einer Reihe von Befehlen im Klartext, die von einem speziellen Interpreter ausgeführt werden. Solche Programme sind langsamer, dafür aber einfacher zu entwickeln und ihr Code lässt sich einfach und schnell ändern.

Kommen wir nun zum Starten von Programmen.

Ausführen von Programmen im Terminal

Zunächst in Betriebssysteme Unix und Linux hatten keine grafische Oberfläche, daher wurden Programme über Befehle vom Terminal gestartet. Mittlerweile ist dies auch möglich und wird von erfahrenen Anwendern recht rege genutzt. Die Programmstartsyntax sieht folgendermaßen aus:

/Pfad/zur/Datei/Programm Parameter

Parameter werden nur dann angegeben, wenn sie benötigt werden, die Shell muss jedoch immer den vollständigen Pfad zum Programm kennen. Alles nach dem Programmnamen und einem Leerzeichen sind Parameter. Sie haben wahrscheinlich bereits bemerkt, dass wir beim Ausführen von Programmen normalerweise nicht den vollständigen Pfad angeben. Es wäre sehr langwierig und umständlich.

Die Entwickler haben einen Workaround gefunden. Es wurde eine PATH-Variable erstellt, die alle Pfade zu den Ordnern speichert, in denen sich Programme normalerweise befinden – /bin, /sbin, /usr/bin, /usr/sbin und so weiter. Sie können den Inhalt mit dem folgenden Befehl anzeigen:

Wenn Sie den Namen eines Programms eingeben, sucht das System in allen Ordnern im PATH nach einer ausführbaren Datei mit diesem Namen und führt sie aus, wenn es sie findet. Wenn keine solche Datei vorhanden ist, wird eine Meldung angezeigt – Befehl nicht gefunden. Also, um eines davon auszuführen Systemprogramme Geben Sie einfach den Namen der ausführbaren Datei ein, zum Beispiel:

Und Sie können Parameter nach einem Leerzeichen übergeben:

Wenn sich das Programm nicht in diesen Verzeichnissen befindet, müssen Sie den vollständigen Pfad dazu angeben:

/usr/local/bin/ls1

Wenn Sie das Programm über das Ubuntu-Terminal ausführen möchten, das sich im aktuellen Ordner befindet, sieht die Situation etwas anders aus. Das System durchsucht nur Ordner von PATH-Variable, wird nicht im aktuellen Verzeichnis gesucht. Wenn Sie daher den Namen der ausführbaren Datei eingeben, erhalten Sie eine Fehlermeldung. Sie müssen den vollständigen Pfad angeben, so wie Sie ihn sich merken./:

Manchmal ist es notwendig, etwas Besonderes zu übertragen. Beispielsweise gibt die Variable EDITOR an, welche Texteditor sollte als Standard verwendet werden. Sie können einen Variablennamen und seinen Wert vor dem Befehlsnamen angeben, indem Sie die folgende Syntax verwenden:

Variablenname = Wertbefehl

Zum Beispiel:

HERAUSGEBER=Nanovisudo

Standardmäßig öffnet dieser Befehl die Einstellungen im Vim-Editor, aber mit dieser Umgebungsvariablen werden die Einstellungen im Nano-Editor geöffnet.

Programme als anderer Benutzer ausführen

Sie wissen bereits, wie man ein Programm in einem Linux-Terminal ausführt, aber was ist mit anderen Benutzern? Unter Windows ist es durchaus üblich, Programme als Administrator auszuführen, damit das Programm mehr Zugriffsrechte im System erhält. Unter Linux wird hierfür das Dienstprogramm sudo verwendet. Ihr Name kann als entziffert werden S Hexe u ser Tun- Benutzer wechseln und ausführen. Standardmäßig führt das Dienstprogramm den Befehl als Root-Superuser aus:

sudo-Befehl
Sudo whoami

Mit der Option -u können Sie das Programm jedoch als jeder am System angemeldete Benutzer ausführen:

sudo -u Benutzername-Befehl
sudo -u postgres whoami

Der Befehl whoami (wer bin ich) zeigt den Namen des aktuellen Benutzers an.

So führen Sie ein Programm im Hintergrund aus

Manchmal ist es notwendig, ein Programm mit langer Laufzeit im Terminal auszuführen, damit es die weitere Arbeit nicht beeinträchtigt. Dazu können Sie den Programmstart in verwenden Hintergrund Linux:

Programmname &

Zum Beispiel:

dd if=/dev/zero of=~/file count=100000 &

Das System gibt die PID aus, die eindeutige Kennung des Programms, mit der Sie es dann schließen können:

So führen Sie ein Skript unter Linux aus

Wir haben bereits gesagt, dass Programme in binäre und interpretierte Programme unterteilt werden. Bisher haben wir nur über Binärprogramme gesprochen. Um interpretierte Programme auszuführen, benötigen Sie direkt einen Interpreter. Zu diesen Programmen gehören Programme, die in Sprachen wie Java, Python, Perl, Ruby, PHP, NodeJS und vielen anderen geschrieben sind. Die Syntax zum Starten eines solchen Programms ist anders:

Interpreter /Pfad/zur/Datei/Programm Parameter

Verschiedene Interpreter verhalten sich unterschiedlich, daher ist es besser, sofort den vollständigen Pfad zum Programm anzugeben. Python übernimmt normalerweise Skripte von aktuellen Ordner ohne Angabe des vollständigen Pfades:

Python hellowrld.py

A Java-Programme Sie müssen es so ausführen:

java -jar program.jar

Für interpretierte Programmdateien ist das Ausführbarkeitsflag optional, da sie als Parameter an das Hauptprogramm übergeben werden. Nur Bash-Skripte sind eine Ausnahme. Sie können das Skript mit einem Interpreter ausführen:

Oder geben Sie einfach den Pfad zum Skript ein:

Die Shell selbst bestimmt ihre Skripte über das Execuability-Flag und führt sie aus. Wenn das Ausführbarkeitsflag nicht gesetzt ist, sollten Sie es hinzufügen:

sudo chmod u+x ./script.sh

Daher wurden für die meisten interpretierten Programme einfache SH-Skripte erstellt, die schnell gestartet werden können.

Ausführen von Linux-Programmen in einer GUI

Es ist viel bequemer, Programme über eine grafische Oberfläche auszuführen. Wenn Konsolenprogramme Es ist nicht möglich, auf diese Weise zu starten. Für alle grafischen Dienstprogramme gibt es Verknüpfungen, die Sie im Hauptmenü des Systems finden:

Alternativ können Sie das Programm auch von ausführen Dateimanager, per Doppelklick mit der Maus, allerdings muss dafür dann das Ausführbarkeitsflag gesetzt sein.

Das Ausführen von Skripten in einer GUI funktioniert auf die gleiche Weise. Sie finden alle Menüverknüpfungen im Verzeichnis /usr/share/applications/. Von hier aus kann jedes Programm per Doppelklick gestartet werden. Aber sehen wir uns an, was in der Verknüpfung enthalten ist. Öffnen Sie sie dazu in einem Texteditor:


Die Exec-Zeile gibt unter anderem den Befehl an, der ausgeführt wird Linux-Programme wenn Sie auf eine Verknüpfung doppelklicken. Sie können eine der vorhandenen Verknüpfungen verwenden und darauf basierend Ihre eigene erstellen. Dies ist einfach der Name des Programms. Es ist jedoch wichtig zu beachten, dass es besser ist, an Stellen wie Verknüpfungen, Skripten, Cron usw. den vollständigen Pfad anzugeben. Dadurch wird die Anzahl der Fehler verringert, da Sie nicht wissen können, ob das System in diesem Fall PATH überprüft oder Suche nach dem Programm nur im aktuellen Verzeichnis. Jetzt wissen Sie alles darüber, wie man ein Programm unter Linux ausführt.

Schlussfolgerungen

In diesem Artikel haben wir uns angeschaut, wie man ein Programm über das Ubuntu-Terminal oder anderswo ausführt Linux-Distributionen. Auch wenn dies ein sehr einfaches Thema zu sein scheint, gibt es einige interessante Punkte, die nützlich sein können. Aber Sie kennen sie bereits. Wenn Sie Fragen haben, stellen Sie diese in den Kommentaren!



 


Lesen:



Verwenden von Stilen in Excel So erstellen Sie Ihren eigenen neuen Stil

Verwenden von Stilen in Excel So erstellen Sie Ihren eigenen neuen Stil

Wenn Sie in Ihren Tabellenkalkulationen immer dieselben Optionen zum Formatieren von Arbeitsblattzellen verwenden, ist es möglicherweise sinnvoll, einen Formatierungsstil zu erstellen ...

Welche Fehler treten bei der Installation auf?

Welche Fehler treten bei der Installation auf?

Hinweis: AutoLISP-Programme sind nur auf der Vollversion von AutoCAD lauffähig, sie funktionieren nicht unter AutoCAD LT. (ausgenommen Ladefälle...

Sozialer Status einer Person in der Gesellschaft

Sozialer Status einer Person in der Gesellschaft

Schlagen Sie vor, was die Wahl einer Person für ihren Hauptstatus bestimmt. Treffen Sie anhand des Texts und der Fakten des gesellschaftlichen Lebens zwei Annahmen und ...

Vollständige Interpretation von Fehlern

Vollständige Interpretation von Fehlern

Nicht wenige Benutzer sind auf das Phänomen des Blue Screen of Death gestoßen. Was zu tun ist (Windows 7 ist am häufigsten für dieses Problem anfällig) ...

Feed-Bild RSS