ftp ist ein fast auf jedem Betriebssystem verfügbarer interaktiver Terminal-Client für das Datenübertragungsprotokoll File Transfer Protocol (FTP). Der ursprünglich für Unix programmierte Client wurde schon bald auf andere Betriebssysteme (z. B. Windows NT) portiert.

Screenshot von ftp auf einem Unix-System

Benutzung und Funktionen Bearbeiten

Das Programm ftp wird meist mit einem Kommandozeilenbefehl gestartet, oft mit Angabe eines FTP-Servers als Argument, zu dem man Kontakt aufnehmen möchte:

ftp ftp.example.com

Bei erfolgreicher Verbindung fragt das Programm dann üblicherweise nach Benutzername und Passwort und gelangt nach abgeschlossenem Login in den Zustand, in dem es, einer Shell ähnlich, Kommandos vom Benutzer erwartet. Diese Kommandos werden jeweils mit der Enter-Taste bestätigt und anschließend ausgeführt. Erst nach der vollständigen Ausführung eines Kommandos erscheint wieder die Befehlszeile und der Benutzer kann fortfahren, Kommandos einzugeben.

Der Client ftp erlaubt das Definieren von sogenannten Makros, die dazu dienen eine komplexe Befehlskette mit einem einzigen Befehl auszuführen. Das Erstellen eines Makros geht folgendermaßen vor sich: Der Benutzer startet die Aufnahme des Makros mit dem Befehl macdef makroname. Daraufhin werden alle Zeilen, die der Benutzer eingibt aufgezeichnet, bis er die Aufzeichnung mit einer Leerzeile beendet. Die aufgezeichneten Befehle werden ausgeführt, sobald $makroname eingegeben wird. Es können höchstens 16 Makros definiert werden, die insgesamt nicht mehr als 4096 Zeichen enthalten dürfen.

Kommandos Bearbeiten

Die Eingabe der Befehle erfolgt analog zu der Eingabe von Befehlen in einem Terminal. Folgende Kommandos stehen zur Verfügung:

![command]
Führt ein Shell-Kommando aus bzw. wechselt zur Shell (ohne [command]).
?
Äquivalent zu help.
account
Sendet das account Kommando an den Server.
append [local_file] [remote_file]
Kopiert den Inhalt einer lokalen Datei [local_file] an das Ende der Datei [remote_file] auf dem Server.
ascii
Einstellen von ASCII als Übertragungsmodus. Dies ist der Standardübertragungsmodus. Dateien, die in diesem Modus übertragen werden, erfahren eine Konvertierung zwischen den verschiedenen Zeilenumbruchvarianten der an der Übertragung beteiligten Betriebssysteme. Dieser Modus ist nur sinnvoll, wenn zwei Betriebssysteme mit unterschiedlicher Zeilenumbruchskodierung als Server bzw. Client agieren.
bell
Schaltet den Signalton nach Befehlsausführung ein/aus.
binary
Einstellen von binary als Übertragungsmodus. Der Standardübertragungsmodus ist ASCII. Für Binärdateien sollte zu diesem Modus umgeschaltet werden, damit nicht versehentlich zufällige Bytekombinationen, die die zu konvertierenden Zeilenumbruch-Bytes darstellen, verändert werden und damit die Binärdatei im schlimmsten Fall unbrauchbar gemacht wird.
bye
Schließt die Verbindung zum Server und beendet das Programm.
cd [remote_directory]
Wechselt in das Arbeitsverzeichnis [remote_directory] in der Verzeichnisstruktur auf dem Server. Vgl. das gleichlautende Unix-Kommando cd
cdup
Wechselt in die nächsthöhere Verzeichnisebene auf dem Server. Vgl. das ähnlichlautende Unix-Kommando cd ..
chmod [datei]
Verändert die Unix-Dateirechte der Datei [datei], der Syntax entspricht dabei dem des Unix-Kommandos chmod.
close
Schließt die Verbindung zum Server und löscht alle Makros. Das ftp-Programm wird jedoch nicht beendet, sodass man anschließend beispielsweise mit dem open-Kommando eine neue FTP-Verbindung herstellen kann.
delete [remote_file]
Löscht die Datei [remote_file] auf dem Server.
dir
Zeigt den Inhalt des aktuellen Arbeitsverzeichnisses auf dem Server an. Gleichlautend mit dem Befehl der Windows-Eingabeaufforderung dir. Äquivalent zu dem Befehl ls
disconnect
Äquivalent zu close.
get [remote_file] ([local_file])
Kopiert die Datei [remote_file] vom Server auf den Client und speichert sie unter dem Namen [local_file]. Ist [local_file] nicht gegeben, wird sie unter dem ursprünglichen Namen abgespeichert.
hash
Stellt ein, dass für jeden übertragenen Datenblock ein Doppelkreuz (#) ausgegeben werden soll. Sinnvoll bei der Übertragung von großen Dateien, da ftp ansonsten keinerlei Informationen über den Fortschritt der Datenübertragung ausgibt.
help ([Kommando])
Gibt Informationen über das Client-Kommando [Kommando] aus. Ist kein Kommando gegeben, wird eine Liste aller verfügbaren Kommandos ausgegeben. Siehe auch remotehelp.
lcd ([local_directory])
Wechselt in das Verzeichnis [local_directory] auf dem Client. Ist kein Verzeichnis angegeben, wird in das Heimatverzeichnis des aktuellen Benutzers gewechselt. Die Funktionsweise ist auf diese Weise synonym zu dem Unix-Kommando cd.
ls [remote_directory] ([local_file])
Gibt eine Kurzform des Verzeichnisses [remote_directory] aus und leitet die Ausgabe, wenn gegeben, in die Datei [local_file] auf dem Client-Rechner um. Vgl. das gleichlautende Unix-Kommando ls
mget [remote_files]
Kopiert mehrere Dateien vom Server auf den Client. Wildcards sind erlaubt. Im interaktiven Modus muss eine Bestätigung jedes Dateitransfers erfolgen.
mkdir [remote_directory]
Erstellt das Verzeichnis [remote_directory] auf dem Server. Vgl. das gleichlautende Unix-Kommando mkdir
mput [local_files]
Kopiert mehrere Dateien vom Client auf den Server. Wildcards sind erlaubt. Im interaktiven Modus muss eine Bestätigung jedes Dateitransfers erfolgen.
open [host] ([port])
Baut eine Verbindung zum FTP-Server [host] auf TCP-Port [port] auf.
passive
Schaltet den passiven FTP-Modus ein bzw. aus.
prompt
Schaltet den interaktiven Modus ein/aus, der bei einigen Kommandos (z. B. mget) zu Nachfragen führt. Standardmäßig wird der Benutzer gefragt.
put [local_file] ([remote_file])
Kopiert eine Datei [local_file] zum Server und legt sie dort unter dem Namen [remote_file] ab. Ist [remote_file] nicht gegeben, wird der ursprüngliche Dateiname beibehalten.
pwd
Gibt das aktuelle Arbeitsverzeichnis auf dem Server aus. Vgl. das gleichlautende Unix-Kommando pwd.
quit
Äquivalent zu bye.
remotehelp ([Kommando])
Gibt Informationen über das Server-Kommando [Kommando] aus. Ist kein Kommando gegeben, wird eine Liste aller verfügbaren Kommandos ausgegeben. Siehe auch help.
rename [from] [to]
Benennt die auf dem Server liegende Datei [from] in [to] um.
rmdir [remote_directory]
Löscht das Verzeichnis [remote_directory] auf dem Server. Wie üblich auf Unix-Systemen können nur leere Verzeichnisse gelöscht werden. Daher muss der Client vorher rekursiv das Verzeichnis durchgehen und alle Dateien darin löschen.
runique
Verbietet das Überschreiben von Dateien auf dem Client-Rechner, indem an den Dateinamen eine Endung in Form von .Zahl angehängt wird.
send [local_file] ([remote_file])
Äquivalent zu put.
status
Gibt Statusinformationen aus.
sunique
Wie runique nur für Dateien auf dem Server.
type ([type])
Festlegen des Übertragungsmodus (ASCII,IMAGE). Fehlt [type], wird der aktuell verwendete Übertragungsmodus ausgegeben. Vgl. die Kommandos binary und ascii weiter oben, die die gleiche Aufgabe erfüllen.
user [username] [password]
Anmelden am FTP-Server mit dem Benutzernamen [username] und dem Passwort [password].
verbose
Schaltet den ausführlichen Anzeigemodus ein/aus.

Implementierungen Bearbeiten

Es existieren diverse Implementierungen für verschiedenste Unix-Derivate sowie für Windows ab Windows 95. Für Windows für Workgroups 3.11 waren FTP und Telnet im nachzuinstallierenden TCP/IP-Paket enthalten.

Weblinks Bearbeiten