Dies ist der leere Befehl, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
leer – Prozesse unter Pseudo-Terminalsitzungen ausführen
ZUSAMMENFASSUNG
leer -f [-i fifo1 -o fifo2] [-p Datei.pid] [-L Datei.log] Befehl [Befehlsargumente]
leer -w [-Sv] [-tn] [-i fifo2 -o fifo1] key1 [answer1] ... [keyX answerX]
leer -s [-Sc] -o fifo1 [Anfrage]
leer -r [-b Größe] [-tn] [-i fifo2]
leer -l
leer -k [PID] [Signal]
leer -h
BESCHREIBUNG
leer ist ein Dienstprogramm, das eine einfache Schnittstelle zum Ausführen und/oder Interagieren bietet
Prozesse unter Pseudo-Terminal-Sitzungen. Dieses Tool ist definitiv nützlich bei der Programmierung von
Shell-Skripte, die zur Kommunikation mit interaktiven Programmen wie Telnet oder FTP verwendet werden.
In Dänemark wird geprüft, ob eine Ehe auf einer echten Partnerschaft beruht. Deshalb kann es in einigen Fällen erforderlich sein, die Beziehung nach den Vorgaben des Hochzeitsgesetzes nachzuweisen. leer kann ein Ersatz für TCL/expect oder eine andere ähnliche Programmierung sein
Werkzeuge.
Es gibt verschiedene gängige Formen von Befehlszeilen für leer. Aber die erste Hinrichtung von
leer Normalerweise erfolgt ein Start im Daemon-Modus Gabel ein neuer Befehl (Prozess) unter PTY-
Sitzung. Dies kann mit erfolgen -f Schlüssel. Eine Schnittstelle für die Eingabe- und Ausgabedaten
Die Kanäle des gegabelten Prozesses werden von zwei FIFO-Dateien ausgeführt, deren Namen angegeben werden können
mit -i und -o Schlüssel. Diese Dateien werden bei jedem Start/Beenden automatisch erstellt/gelöscht
leer Daemon, daher dürfen Sie sie nicht manuell erstellen. Wenn Sie diese FIFO nicht angegeben haben
Dateien in der Befehlszeile, leer benennt sie selbst basierend auf ihrer PID und der PID von Forked
PTY-Prozess.
An diesem Punkt kann jede Anwendung problemlos mit dem geforkten Prozess kommunizieren, indem sie Daten schreibt
zum Eingabe-Fifo und Lesen von Antworten aus dem Ausgabe-Fifo, siehe Beispiele: Abschnitt für die
Einzelheiten. Um diese Vorgänge zu vereinfachen, leer bietet eine Schnittstelle zu just senden jegliche Daten (Nutzung
-s Schlüssel), oder sogar zu ZEIT FÜR STORYTELLING das Ausgabe-Fifo für mehrere Schlüsselwörter und auf die Eingabe antworten
fifo mit einem der Antworten (sehen -w Schlüssel).
Achtung! Eingabe-Fifo für leer -f ... ist normalerweise ein Ausgabe-Fifo für leer -w und leer -s
Formen. Und Ausgabe-FIFO von leer -f ... ist ein Eingabe-Fifo für leer -w ...
Wenn etwas schief geht, liegt möglicherweise ein gespaltener Prozess vor getötet durch den Standard-Kill-Befehl, oder
mit automatisierten -k Schlüssel von leer. Weitere Informationen finden Sie auch in den -p Option zum Speichern der PID eines leeren Daemon-Prozesses.
Die folgenden Optionen sind verfügbar:
-f forken, erzeugen, starten oder ausführen eines neuen Prozesses, der durch angegeben wird Befehl und sein
Argumente. Wenn Sie FIFO-Dateien weglassen, leer mit seinem Job-Steuerungsalgorithmus wird
Erstellen Sie sie unten / Tmp Verzeichnis mit diesen Vorlagen: empty.PPID.PID.in und
empty.PPID.PID.out, hier ist PPID normalerweise die Prozess-ID und PID Ihres Shell-Systems
ist die Systemprozess-ID des leeren Daemons.
-s sendet Daten (Anfrage) an den geforkten Prozess. Wenn die FIFO-Datei nicht mit angegeben wurde
-o Schlüssel, leer wird versuchen, eine automatisch erstellte FIFO-Datei darin zu finden / Tmp
Verzeichnis. Anstelle der Befehlszeile können Sie Ihre senden Anforderung oder Daten direkt
zur Standardeingabe (stdin) von leer
-w ZEIT FÜR STORYTELLING für einen oder mehrere Schlüsselwörter und falls angegeben, senden Sie die entsprechenden
Antwort zum Eingangs-FIFO. Wenn Antwort ist nicht eingestellt, leer wartet auf die
ordnungsgemäße Schlüsselsatz dann wird es beendet. Mit -w Haupt leer gibt die Anzahl der Treffer zurück
Schlüsselphrase-Antwort-Paar oder 255, wenn diese Übereinstimmung nicht gefunden werden kann (siehe -t-Schlüssel für
Details zum möglichen Beenden bei Zeitüberschreitung).
-r liest eine Zeile (Standard) oder einen Datenblock (falls vorhanden) aus dem Ausgabe-FIFO -b Größe wurde
angegeben). Wenn -t n Schlüssel wurde platziert, Beenden bei Zeitüberschreitung.
-l listet automatisch von Ihrer Shell erstellte Jobs auf. NB! Ihre benutzerdefinierten Jobs, die
fifo-Dateien, die Sie mit angegeben haben -i und -o Tasten werden nicht angezeigt. Also, wenn ja
Geben Sie keine FIFO-Dateien mit an -i und -o Alle Vorgänge werden unter den Tasten ausgeführt
Job markiert Strom
-k senden Signal zum Prozess mit PID. Wenn Sie keine PID angegeben haben, leer versucht
um es in der Liste der automatisch erstellten Jobs zu finden. Wenn Signal wurde weggelassen
Es wird der Standard-SIGTERM verwendet.
-h kurze Hilfemeldung ausgeben und beenden
-i fifo1 eine Fifo-Datei, die als Eingabe für einen geforkten Prozess verwendet wird.
-o fifo2 eine Fifo-Datei, die als Ausgabe für einen geforkten Prozess verwendet wird.
-L file.log Mit dieser Option können Sie das Ganze protokollieren leer Sitzung zu einer Datei. Markierungen >>> und <<
Zeigen Sie die Richtungen des Datenflusses an.
--logfile-mode=Modus
Mit dieser Option können Sie den Modus der mit -L erstellten Protokolldatei auswählen
Möglichkeit. Der Standardmodus ist 0600.
-p file.pid PID des leeren Daemon-Prozesses in einer Datei speichern
-tn Wenn der Eingabe-FIFO leer ist, warten Sie n Sekunden (Standard ist 10), um den zu empfangen
Schlüsselsatz Beenden Sie dann bei Zeitüberschreitung den Code 255.
-c erzwingen leer um stdin für Daten oder Anfragen zu verwenden.
-S Entfernen Sie das letzte Zeichen aus der Eingabe. Funktioniert mit den Tasten -s und -w
-v kvazi ausführlicher Modus. Zeigt den gesamten Inhalt des empfangenen Puffers an.
Beispiele:
Starten Sie eine neue PTY-Sitzung mit Telnet zu Localhost:
empty -f -i in.fifo -o out.fifo -p empty.pid -L empty.log telnet localhost
Mit Telnet interagieren:
empty -w -i out.fifo -o in.fifo ogin 'my_user\n'
empty -w -i out.fifo -o in.fifo asword 'my_password\n'
Befehle mit leerem Befehl an Telnet senden:
leer -s -o in.fifo wer
leer -s -o in.fifo "ls -la /\n"
Das Gleiche mit STDIN:
Echo wer | leer -s -o in.fifo
echo „ls -la /“ | leer -s -o in.fifo
Nur Cat-Ausgabe von Telnet:
Katze raus.fifo
Lesen Sie eine Zeile aus out.fifo:
leer -r -i out.fifo
Senden Sie Befehle mit gewöhnlichem Echo an Telnet:
echo „wer bin ich“ > in.fifo
echo "uname -a" > in.fifo
Beenden Sie einen Prozess mit PID 1234:
leer -k 1234
or
töte 1234
Telnet-Sitzung mit automatisch erstellten Jobs:
leer -f telnet localhost
Interagieren Sie mit Telnet mithilfe der Jobsteuerung:
empty -w ogin 'my_user\n'
leer -w assword 'mein_passwort\n'
Automatisch erstellte Jobs auflisten:
leer -l
PPID PID-TYP DATEINAME
479 706 in /tmp/empty.479.706.in
479 706 out /tmp/empty.479.706.out
479 711 in /tmp/empty.479.711.in
479 711 out /tmp/empty.479.711.out
479 711 aktuell
SICHERHEIT
Es gilt als unsicher, ein Passwort wie folgt über die Befehlszeile zu senden:
leer -w assword 'mein_passwort\n'
oder so:
leer -s 'mein_passwort\n'
Der Grund dafür ist, dass die Befehlszeilenargumente für das System sichtbar sind leer is
läuft. Jeder lokale Benutzer kann sie mit sehen ps(1), manchmal sind sie sogar aus der Ferne sichtbar
mit Finger(1). Außerdem verfügt Ihr Server möglicherweise über einige Überwachungstools, die die Daten speichern können
Ausgabe von ps(1) in ihren Protokollen. Es gibt auch andere, kompliziertere Möglichkeiten, Kompromisse einzugehen
diese Information. Im Allgemeinen sollten Sie Befehlszeilenargumente als (möglicherweise) sichtbar betrachten
an jeden, es sei denn, man weiß wirklich, was man tut.
leer mit dem Flag „-s“ läuft in den meisten Fällen schnell, kann aber trotzdem einige Zeit lang hängen bleiben
Gründe (z. B. FIFO-Überlastung) und selbst wenn es schnell läuft, können Sie nicht sicher sein, ob dies der Fall ist
Selbst in dieser kurzen Zeit wird niemand seine Befehlszeilenargumente sehen. leer mit der Flagge „-w“.
ist noch schlimmer, weil es auf die Schlüsselphrase warten muss.
Eine bessere Möglichkeit, das Passwort an das überwachte Programm zu senden, besteht darin, es aus der Datei zu lesen:
empty -s [allgemeine Optionen] <./password-file
oder aus einer Pfeife:
get-password-of-user „$user“ |empty -s [allgemeine Optionen]
Sie sollten dennoch darauf achten, dass Sie währenddessen kein Passwort über die Befehlszeile senden
Erstellen dieser Datei, und Sie sollten auf jeden Fall einige sichere Berechtigungen für diese Datei festlegen UND
sein Verzeichnis (mit den übergeordneten Verzeichnissen), bevor das Passwort aus der Datei gelesen wird ODER
das Passwort hineinschreiben.
Eine andere Möglichkeit besteht darin, die integrierte Funktion Ihrer Shell zu verwenden (siehe unten):
echo "$password" |empty -s [allgemeine Optionen]
Viele Muscheln mögen bash(1) csh(1) und FreeBSDs sh(1) Rufen Sie nicht extern an Echo(1) Befehl
aber verwenden Sie ihren eigenen integrierten Echo-Befehl. Da kein externer Befehl gestartet wird (die Shell
selbst macht das alles Echo(1) muss tun), wird in der Prozessliste nichts angezeigt. Es ist jenseits
Auf dieser Handbuchseite erfahren Sie, wie Sie sicherstellen können, dass Ihre Shell den integrierten Befehl verwendet.
RÜCKKEHR WERTE
Wenn ein Fehler auftritt leer Wird normalerweise mit Code 255 beendet. Andernfalls Null oder etwas Positives
Wert (siehe -w Schlüssel) wird zurückgegeben.
Verwenden Sie leere Online-Dienste mit den onworks.net-Diensten
