Verder Terug Inhoud

3. Beginnersgids in het gebruik van ftp

Een snelle leidraad voor het gebruik van ftp.

Het standaard ftp-programma is de oorspronkelijke ftp-client. Het wordt standaard met de meeste Linux-distributies meegeleverd. Het verscheen voor het eerst in 4.2BSD, dat werd ontwikkeld door de Universiteit van California, Berkeley.

3.1 Uitvoeren van het ftp programma

Het gebruik van ftp is eenvoudig. Stel dat je een verbinding wilt maken met de anonieme ftp-site metalab.unc.edu om de laatste Linux-kernelsource te downloaden.

Typ achter de opdrachtregel:

$ ftp metalab.unc.edu

Het ftp-programma zal proberen een verbinding tot stand te brengen met metalab.unc.edu. Een andere manier om dit te doen is ftp zonder parameters vanaf de opdrachtregel op te starten en gebruik te maken van het open commando, met als argument de naam van de site:

$ ftp
ftp> open metalab.unc.edu

3.2 Op een FTP-server inloggen

Wanneer je een verbinding met een FTP-site hebt, zal het je vragen om een login (de enter-toets indrukken zal je inloggen met je lokale gebruikersnaam, in dit geval foo: We loggen in als anonymous of ftp, om bij het publieke archief te komen.

220 helios.oit.unc.edu FTP server (Version wu-2.6.0(2) Wed Nov 17 14:44:12
EST 1999) ready.
Name (metalab.unc.edu:foo): 

Nu voeren we als wachtwoord een volledig e-mailadres in (dit vereisen de meeste publieke FTP-sites).

331 Guest login ok, send your complete e-mail address as password.
Password:

Na een succesvolle login, wordt de volgende informatie gegeven:

Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

3.3 Bestandstypen bij het transporteren

Nadat je op een ftp-site bent ingelogd, zal ftp het bestandstype voor het transport afdrukken. In onze situatie is dit binair. In binaire mode worden de bestanden bit voor bit getransporteerd, zoals ze op de FTP-server staan. In ascii-mode zal de tekst echter direct worden gedownload. Je kunt door het intikken van ascii of binary tussen de twee typen wisselen.

Je wilt de kernelsource downloaden dus laat je het bestandstype op binary staat. Het binaire type is ook hetgeen je zou gebruiken voor enige niet-tekst bestanden -- zoals grafische afbeeldingen, zip/gzip archieven, uitvoerbare programma's, enz. Gebruik de binary-mode als je twijfelt.

3.4 Door directory's navigeren en ze weergeven

Je geeft de opdracht ls om een lijst met de bestanden te zien te krijgen. Het commando ls op ftp-servers wordt op de remote-server uitgevoerd, dus de opties die je op de opdrachtregel kunt gebruiken, variëren van server tot server. De meest gebruikelijke opties zijn in het algemeen wel beschikbaar, kijk in de manpage van ls voor de details.

ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 33590
-r--r--r--   1 root     other    34348506 Dec 03 03:53 IAFA-LISTINGS
lrwxrwxrwx   1 root     other           7 Jul 15  1997 README -> WELCOME
-rw-r--r--   1 root     other         890 Nov 15 13:11 WELCOME
dr-xr-xr-x   2 root     other         512 Jul 15  1997 bin
dr-xr-xr-x   2 root     other         512 Jul 15  1997 dev
dr-xr-xr-x   2 root     other         512 Jul 18  1997 etc
drwxrwxrwx  11 ftp      20           4608 Nov 28 16:00 incoming
lrwxrwxrwx   1 root     other          13 Jun 04  1998 ls-lR -> IAFA-LISTINGS
dr-xr-xr-x  17 root     root          512 Jun 08 11:43 pub
dr-xr-xr-x   3 root     other         512 Jul 15  1997 unc
dr-xr-xr-x   5 root     other         512 Jul 15  1997 usr
226 Transfer complete.

Als de opdracht ls zoveel bestanden weergeeft dat ze van het scherm scrollen, dan kun je gebruik maken van de Shift-PageUp om naar boven te scrollen. Dit werkt in de Linux console mode als ook in een xterm of rxvt.

Op publieke FTP-archieven worden de te downloaden bronnen meestal in de directory /pub bewaard. In dit voorbeeld weet je al dat de kernelsources in de directory /pub/Linux/kernel staan, dus typ je het volgende om in die directory terecht te komen:

ftp> cd pub/Linux/kernel
250-README for kernel
250-
250-What you'll find here: kernel sources and patches
250-
250-
250 CWD command successful.

De berichten die je te zien krijgt, die met "250" beginnen, bestaan uit informatie die door de server zijn verzonden. In dit geval is de ftp-server zodanig geconfigureerd dat het je automatisch het README-bestand stuurt als je naar de directory gaat.

3.5 Downloaden en uploaden van bestanden

Na nu nog een ls, zie je dat je met cd naar de v2.2 directory wilt gaan. Je geeft nogmaals de opdracht ls, en vindt dan het bestand dat je wilt downloaden. Het is linux-2.2.13.tar.gz. Dus tik je in:

ftp> get linux-2.2.13.tar.gz
local: linux-2.2.13.tar.gz remote: linux-2.2.13.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
bytes).

Het ftp-programma is begonnen met het opslaan van het remote bestand linux-2.2.13.tar.gz als het lokale bestand linux-2.2.13.tar.gz.

Als je het als het lokale bestand foo.tar.gz op zou willen slaan, zou je dit als volgt aan kunnen hebben geven:

ftp> get linux-2.2.13.tar.gz foo.tar.gz
local: foo.tar.gz remote: linux-2.2.13.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
bytes).

Als je meer dan één bestand tegelijkertijd wilt downloaden, dan zal je de opdracht mget (meerdere get's) moeten gebruiken. Je kunt mget met een door spaties gescheiden lijst met de te downloaden bestandsnamen gebruiken, óf je kunt de opdracht mget met wildcards gebruiken. Bijvoorbeeld:

ftp> mget linux*

Hiermee zouden alle bestanden beginnend met de string "linux" worden opgehaald. Normaal gesproken zal mget voor ieder bestand om bevestiging vragen alvorens het wordt gedownload. Je kunt dit met het prompt-commando aan- of uitzetten.

Stel nu dat je wat software hebt geschreven en dat je het naar Metalab wilt uploaden voor opname in hun Linux software-archief. Als eerste ga je naar de directory /incoming (op de meeste FTP-servers komt een directory voor die meestal incoming of uploads wordt genoemd, waar bestanden kunnen worden geupload), vervolgens gebruik je de opdracht put:

ftp> cd /incoming
ftp> put foo.tar.gz
local: foo.tar.gz remote: foo.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for foo.tar.gz.
226 Transfer complete.
10257 bytes sent in 0.00316 secs (3.2e+03 Kbytes/sec)

Het commando put werkt op dezelfde wijze als de opdracht get, dus je kunt mput gebruiken om tegelijkertijd meerdere bestanden te uploaden. Je kunt ook een lokaal bestand met een andere bestandsnaam naar de server uploaden door als argument de remote bestandsnaam en/of de naam van het pad op te geven.

Wat als het bestand foo.tar.gz zich niet in je huidige directory bevindt wanneer je het probeert te uploaden? Je kunt met de opdracht lcd (local change directory) naar een andere lokale directory overschakelen:

ftp> lcd /home/foo/
Local directory now /home/foo

3.6 Shell-opdrachten uitvoeren

De ftp-client ondersteunt het gebruik van het uitroepteken (!) voor het uitvoeren van lokale opdrachten. Om bijvoorbeeld een lijst met bestanden in je huidige lokale directory te krijgen, geef je op:

ftp> !ls

De wijze waarop dit werkt is dat ftp de shell aanroept (aangegeven in de omgevingsvariabele $SHELL), en het is de shell die ls uitvoert. Dus je kunt iedere opdrachtregel uitvoeren die met je shell werkt, door er gewoon een "!" aan te laten voorafgaan (de standaardshell onder de meeste Linux-distributies is bash, de Bourne Again SHell). Houdt er alsjeblieft rekening mee dat !cd niet werkt zoals je wellicht verwacht, daarom bestaat er een commando lcd.

3.7 Hash markeringen en tick

Zou het niet fijn zijn als je de voortgang kon bekijken op het moment dat je een bestand met ftp aan het downloaden bent? Je kunt bij het downloaden van een bestand de opdracht hash gebruiken, waardoor er hash markeringen worden weergegeven:

ftp> hash
Hash mark printing on (1024 bytes/hash mark).

Zoals je kunt zien, zal ftp voor iedere 1024 bytes aan gedownloade data een hash markering afdrukken.

Er is ook een tick optie.

ftp> tick           
Tick counter printing on (10240 bytes/tick increment).

Dit heeft als effect dat er bij het downloaden van een bestand iets dergelijks
als het volgende wordt afgedrukt:

Bytes transferred: 11680

3.8 Andere ftp-opdrachten

Er zijn nog veel andere ftp-opdrachten. Als je hier permissie voor hebt (wat zo zou moeten zijn, als je met je eigen privé shell-account een verbinding hebt gemaakt), kun je met de opdracht mkdir een directory op de remote-server aanmaken. Met de opdracht delete kun je een bestand van de remote server verwijderen, of met rmdir een directory verwijderen. Je kunt ook de bestandspermissies wijzigen met het commando chmod.

Zie de online help in het ftp-programma (toegankelijk door het intikken van help zonder argumenten voor een lijst met opdrachten, of help <commandonaam> voor specifieke hulp over een commando) voor uitgebreidere informatie over het gebruik van ftp. Je kunt ook de Unix manpage over ftp lezen door het achter de opdrachtprompt intikken van man ftp.


Verder Terug Inhoud