[[Vorlage(Getestet, general)]] 


{{{#!vorlage Wissen
[:Pakete_installieren: Installation von Programmen] 
[:Terminal: Ein Terminal öffnen] 
[:Editor: Einen Editor öffnen] 
}}}
[[Inhaltsverzeichnis(2)]] 

[[Bild(Wiki/Icons/terminal.png, 48, left)]]zftp ist ein Modul der [:Zsh:Z-Shell] für das [wikipedia:File_Transfer_Protocol:File Transfer Protocol], kurz ftp. Das Modul kann einzeln geladen oder fest eingebunden werden. In diesem Artikel ist ein Mittelweg beschrieben: die Einbindung für einen einzelnen Benutzer. Zudem sind einfache Befehle für die Sitzungsverwaltung und den Dateitransfer beschrieben. 


= Einrichtung =
Ist [:Zsh:] nicht die Standard-Shell des Benutzers, so startet man im Terminal mit der Eingabe des Befehls `zsh` [2] und ergänzt mit einem Editor im Zsh-Benutzerprofil '''.zshrc''' folgende Zeilen: 

{{{
fpath=(~/myfns $fpath)
autoload -U zfinit && zfinit
}}}

Damit das Benutzerprofil neu geladen wird, muss die Z-Shell verlassen und neu gestartet werden. 

= Benutzung =

== Sitzung ==
Eine einzelne Sitzung wird wie folgt gestartet: 

{{{#!vorlage Befehl
zfopen host benutzer
}}}

Wobei `host` durch den Server-Namen und `benutzer` durch den Benutzernamen des eigenen Account zu ersetzen sind. Hierauf wird das Passwort abgefragt. 

Die Sitzung wird mit `zfclose` beendet. 


=== Anonym ===
Ein Anonymer ftp-Zugang wird wie folgt genutzt: 

{{{#!vorlage Befehl
zfanon host
}}}

{{{#!vorlage Experten
Dabei wird der Benutzername `anonymous` verwendet und ein Passwort in der Form `user@host` generiert und in der Variable `$EMAIL_ADDR` hinterlegt, die man auch manuell auf einen sinnvollen Eintrag ändern kann. 

}}}

== Verwaltung ==

=== Lesezeichen ===
Um die aktuellen Verbindungsdaten einer Sitzung als Lesezeichen zu speichern, dient folgender Aufruf: 

{{{#!vorlage Befehl
zfmark lesezeichen-titel
}}}

Dieses Lesezeichen kann von da an mit folgendem Befehl aufgerufen werden: 

{{{#!vorlage Befehl
zfgoto lesezeichen-titel
}}}

Ruft man den Befehl `zfmark` ohne weitere Optionen auf, werden die bereits gespeicherten Lesezeichen angezeigt. Die Lesezeichen werden in der Datei '''.zfbkmarks''' im Homeverzeichnis gespeichert und können auch in einem Editor bearbeitet werden [3]. Folgende Form muss dabei eingehalten werden: 

{{{
lesezeichen-titel benutzer@host:/
}}}

{{{#!vorlage Experten
Durch setzten der Variable `$ZFTP_BMFILE` kann statt der Datei '''.zfbookmarks''' eine andere Datei zum Speichern der Lesezeichen festgelegt werden. 
}}}

=== Sitzungen ===
Um mehrere ftp-Sitzungen gleichzeitig zu nutzen, dient der Befehl `zfsession`, der mit dem Sitzungsnamen als Parameter aufgerufen wird.

{{{#!vorlage Befehl
zfsession sitzung1
}}}

Wird kein Sitzungsname angegeben, wird der Name `default` benutzt. Zu jeder Sitzung werden die Verbindungsdaten gespeichert und können mit dem Befehl `zfparams` überprüft und geändert werden. 


== Verbindungs-Einstellungen ==
Der Befehl `zfstats` zeigt Status-Informationen zur Verbindung, der Befehl `zftype` gibt den Transfer-Modus (`A` = `ASCII`, `B` = `binary`) an und dient zu dessen Einstellung. 


= Dateimanagment =

== Browsing ==
Zum Navigieren durch die Ordnerstruktur und für die Anzeige der Inhalte wird den üblichen Befehlen `ls` und `cd` jeweils nur `zf` vorangestellt. Zusätzlich kann mit `zfhere` auf dem Server zur selben Ordner-Adresse gewechselt werden, bei der man sich lokal befindet. 


== Datentransfer ==
Mit `zfget` werden Dateien vom Server geholt, mit `zfuget` werden nur die aktualisierten Dateien im jeweiligen Verzeichnissen aufgefrischt und neue Dateien werden ergänzt. Analog dazu funktionieren die Befehle `zfput` und `zfuput` für das Hochladen auf den Server. 


=== Zwischen Sitzungen ===
Mit dem Befehl `zftransfer` können Dateien zwischen Sitzungen ausgetauscht werden, die beispielhafte Syntax lautet: 

{{{#!vorlage Befehl
zftransfer sitzung1:datei1 sitzung2:datei2
}}}

= Links =

{{{#!vorlage Hinweis
Weiterführende Informationen zum `zftp`-Modul und seinen zahlreichen Funktionen bietet die [:man:Manpage]. 
}}}

 * [sourceforge:zsh:SourceForge-Projektseite] {en} 
 * [https://zshwiki.org/home/ ZshWiki] {en} 

# tag: Netzwerk, Shell, FTP