2:44pm 2 ~ >ftp
ftp> open princeton.edu Connected to princeton.edu. Ξέρει τη μηχανή από το όνομά της... 220-Princeton.EDU FTP server (Widener 3.55) ready. Ακολουθούν μηνύματα..Παρατηρήστε ότι κάθε είδος μηνύματος από το FTP έχει έναν τριψήφιο αριθμό μπροστά του
220-Report any problems to ftp@Princeton.EDU. 220-If you are on an IBM mainframe and you are having trouble 220-logging into Princeton.EDU, we suggest you execute 220- term chardel off 220 on your machine and then reestablish the ftp connection to Princeton.EDU.Εδώ είναι μιά ενδιαφέρουσα για πολλούς λεπτομέρεια: αυτή η μηχανή (όπως κι άλλες πολλές στο Internet) επιτρέπει σε χρήστες που δεν έχουν λογαριασμό σε αυτή να μεταφέρουν αρχεία από και πρός αυτή. Αυτός ο τρόπος αποκαλείται "anonymous ftp", και θα δείτε παρακατω γιατί:
Name (princeton.edu:nfotis): anonymousΟ λογαριασμός 'anonymous' είναι ειδικός όπως θα δείτε. Η μηχανή ζητάει παρασύνθημα. Επειδή δεν έχουμε λογαριασμό σε αυτή τη μηχανή, θεωρείται καλή συμπεριφορά να δίνουμε την ηλεκτρονική μας διεύθυνση, πχ. user_name@theseas.ntua.gr Ο βασικός λόγος είναι για να κάνουν πιό εύκολη τη παρακολούθηση γιά τη περίπτωση πχ. που υπάρξει κάποιο πρόβλημα με το FTP ή να ξέρουν ποιός πήρε το πακέτο που μεταφέρει αυτή η μηχανή, κλπ. Γενικά, θεωρείται καλή συμπεριφορά να δίνετε την ηλεκτρονική σας διεύθυνση.
331 Guest login ok, send "user@host" as password. Password: Το παρασύνθημα δεν φαίνεται, για λόγους ασφαλείας. Και τελικά μας καλωσορίζει στον ειδικό χώρο γιά όσους κάνουν anonymous ftp. Δεν επιτρέπεται (από το σύστημα) να πηγαίνουμε στον χώρο που είναι οι κανονικοί χρήστες. Φυσικά, αν μπαίναμε σαν κανονικοί χρήστες, θα μας πήγαινε στον χώρο του λογαριασμού μας (home directory).
230 Guest login ok, access restrictions apply. ftp>pwd Ζητάμε να μάθουμε σε ποιό σημείο είμαστε στη μηχανή του Princeton /ftp is the current directory Μας λέει η απομακρυσμένη μηχανή που βρισκόμαστε ftp>dir Τώρα μπορούμε να ""σκαλίσουμε"" το μέρος. Κοιτάμε τι έχει εδώ που είμαστε 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 11 drwxr-xr-x 4 root 1 512 Jan 21 15:55 archives drwxr-xr-x 2 root 1 512 Aug 4 1990 bin drwxr-xr-x 2 root 1 512 Aug 3 1991 dev drwxr-xr-x 2 root 1 512 Aug 4 1990 etc drwxr-xr-x 2 root 0 512 Jul 10 1990 lost+found drwxrwxrwx 43 ftp 45 3584 Mar 31 14:09 pub drwxr-xr-x 2 102 1 512 Feb 18 14:05 sendmail.satellite drwxr-xr-x 3 root 1 512 Aug 4 1990 usr 226 Transfer complete. 509 bytes received in 0.6 seconds (0.83 Kbytes/s) ftp>cd pub Το pub directory είναι ένα συμβατικό μέρος γιά τους χρήστες του anonymous ftp 250 CWD command successful. Πηγαίνουμε εκεί ftp>dir Κοιτάμε τι έχει εδώ 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 28374 -rw-r--r-- 1 ftp 45 0 Aug 12 1990 .pnewsexpert -rw-r--r-- 1 ftp 45 399308 Jan 16 1989 2.20.ps -rw-r--r-- 1 ftp 45 58087 Jan 16 1989 2.20.ps.Z -rw-r--r-- 1 root 45 369880 Mar 23 1989 7.0-0015-csc1 drwxrwxrwx 2 ftp 45 512 Sep 17 1991 ASD drwxrwxrwx 13 ftp 45 512 Jan 29 22:35 BT -rw-rw-rw- 1 ftp 45 58535 Oct 21 20:07 CWISP-Draft-4.sea.hqx -rw-r--r-- 1 ftp 45 89984 Jul 5 1990 EulerBitmaps -rw-r--r-- 1 ftp 45 11008 Jul 5 1990 EulerMetrics drwxrwxrwx 12 343 34 1024 Mar 14 16:03 Graphics .... -rw-r--r-- 1 ftp 45 129874 Mar 14 16:49 ls-lR.Z ....και δεκάδες άλλα αρχεία.. Ενα αρχείο πoυ έχει το όνομα ls-lR.Z είναι συνηθισμένο φαινόμενο: αποτελεί την έξοδο του ls -lR του Unix, και είναι ουσιστικά μιά λίστα με όλα τα αρχεία που είναι διαθέσιμα εδώ μέσα. Θα μπορούσατε να πάρετε την ίδια λίστα εκτελώντας 'ls -lR' μέσα στο FTP, αλλά θα έπαιρνε ΠΟΛΥ χρόνο.
Βλέπετε ότι υπάρχουν μερικά αρχεία με περίεργες καταλήξεις (.Z, sea.hqx, κτλ.). Είναι κι αυτό μιά από τις συμβάσεις του FTP: πολλά αρχεία είναι συμπιεσμένα. Ακολουθεί ένας μικρός οδηγός με μερικές τέτοιες καταλήξεις, και το όνομα του προγράμματος (οι κεφαλαίοι χαρακτήρες) που το διαβάζει:
.Z Συμπιεσμένο; εξάγεται με το uncompress .tar.Z Συμπιεσμένο 'Tape ARchive'; Αποσυμπιέστε, μετά untar ή tar -xvf .gz or .z Gnu gzip; χρησιμοποιείστε το gunzip .sit (Mac) StufIt archive .zip (Unix,PC,Amiga) Εξαγωγή με το Zip ή το Unzip .zoo (PC,Unix,Amiga) Αλλο ένα πρόγραμμα αρχειοθέτησης/συμπίεσης .lha (Amiga,Unix) Χρησιμοποιείστε το lha γιά εξαγωγή .exe (PC) Συνήθως αρχεία που εξάγονται μόνα τους. .uue or .UUE Μεταφέρτε τα σαν κείμενο, χρησιμοποιείστε το uudecode γιά μετατροπή σε δυαδικό αρχείο. .hqx (Mac) BinHex φορμά, μεταφέρεται σαν κείμενο.Αν συναντήσετε μιάν κατάληξη που δεν είναι γνωστή σας, κοιτάξτε αν υπάρχει κανένα σχετικό README αρχείο που να εξηγεί τι είναι.
250 CWD command successful. ftp>dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 0 Αδειο... 226 Transfer complete. 9 bytes received in 0.5 seconds (0.017 Kbytes/s) ftp> cd .. Ανεβαίνω ένα επίπεδο πάνω... 250 CWD command successful. ftp>dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 3781 drwxr-xr-x 4 343 34 512 Sep 29 1991 GraphicsGems drwxr-xr-x 2 343 34 512 Jul 25 1991 Images drwxr-xr-x 3 343 34 512 Feb 3 20:39 Papers -rw-r--r-- 1 343 34 1154 Feb 8 07:15 README drwxr-xr-x 2 343 34 512 Nov 18 20:07 RTNews drwxr-xr-x 2 343 34 512 Sep 7 1991 Rayinput -rw-r--r-- 1 343 34 47883 Dec 18 1990 SPD.3.0.shar.Z -rw-r--r-- 1 343 34 32025 Dec 5 1989 colorquant.shar -rw-r--r-- 1 343 34 256983 Jul 10 1990 fbm.tar.Z drwxrwxrwx 2 343 34 512 Mar 28 15:50 incomingκι άλλα αρχεία... Παρατηρήστε ότι το incoming (εισερχόμενα) directory επιτρέπει σε όλους την εγγραφή. Αυτό το όνομα αποτελεί μιά σύμβαση, και είναι το μέρος όπου κάποιος "κατεβάζει" πράγματα γιά τη συγκεκριμένη μηχανή.
Σημείωση: καλό είναι να ρίχνετε μια ματιά (δηλ. να παίρνετε) πρώτα στο αρχείο README σε κάθε directory που φαίνεται να έχει κάτι ενδιαφέρον. Ετσι θα γλιτώσετε από σπατάλη χρόνου επειδή πήρατε κάτι που δεν ήταν αυτό που θέλατε....
ftp>close Βγαίνουμε απο το μηχάνημα, αλλά όχι από το πρόγραμμα του FTP. 221 Ciao. ftp> ftp>open macedonia Μπαίνω σε μιά μηχανή του ΕΜΠ... Connected to macedonia.ntua.gr. 220 macedonia FTP server (Version 16.2 Thu Jan 17 03:41:57 GMT 1991) ready. Name (macedonia:nfotis): nfotis 331 Password required for nfotis. Password: 230 User nfotis logged in. Επειδή μπαίνω σαν κανονικός χρήστης, με βάζει στο directory μου ftp>dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 14300 -rw-r--r-- 1 nfotis other 791 Oct 10 14:05 .aliases -rw-r--r-- 1 nfotis other 92 Oct 10 14:04 .aliases.sysv drwxr-xr-x 2 nfotis other 512 Dec 8 15:50 .bin.hp-850 drwxr-xr-x 2 nfotis other 512 Dec 8 14:23 .bin.sun3 κτλ... .ft C ftp>lcd src Αλλάζω directory στην τοπική μηχανή (phgasos) Local directory now /n/phgasos/var/home/ugrads/nfotis/src ftp>cd src Αλλάζω directory στην απομακρυσμένη μηχανή (macedonia). 250 CWD command successful. Τυχαίνει να έχουν το ίδιο όνομα... Κοιτάω ποιό είναι το τρέχον directory στην remote μηχανή ftp> pwd 257 "/home/users/ugrads/nfotis/src" is current directory.Αλλάζω σε binary transfer mode, δηλαδή καμμιά αλλαγή στα δεδομένα που μεταφέρονται. Αν η μεταφορά αφορούσε αρχεία κειμένου από Unix σε MS-DOS (πχ.), θα χρειαζόταν να ζητήσουμε ASCII mode.
ftp>binΑντί να χρειαστεί να γράψω ολόκληρη τη λέξη 'binary', το ftp καταλαβαίνει την εντολή από τους πρώτους χαρακτήρες που ξεχωρίζουν αυτή την εντολή από άλλες
200 Type set to I. ftp>put taxlaw.tar.Z Στέλνω από την τοπική μηχανή στην απομακρυσμένη ένα αρχείο 200 PORT command successful. 150 Opening BINARY mode data connection for taxlaw.tar.Z. 226 Transfer complete. local: taxlaw.tar.Z remote: taxlaw.tar.Z 4774 bytes sent in 0.06 seconds (77 Kbytes/s) ftp>del taxlaw.tar.Z Αλλαξα γνώμη, και σβήνω το αντίγραφο που άφησα στην απομακρυσμένη μηχανή" 250 DELE command successful. ftp>dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 4 -rw-r--r-- 1 nfotis users 673 Sep 6 1991 split.c 226 Transfer complete. 72 bytes received in 0.52 seconds (0.14 Kbytes/s)Μπορώ στην ίδια γραμμή να στείλω/πάρω περισσότερα από ένα αρχεία Εδώ παίρνω πολλαπλά αρχεία με την mget (Multiple GET). Η mget ρωτάει κάθε φορά αν θέλετε το 1ο, 2ο, ... αρχείο, αλλά αν θέλετε να μη σας ρωτάει γιά το κάθε αρχείο, μπορείτε να χρησιμοποιήσετε την εντολή prompt.
ftp>mget * mget split.c? y 200 PORT command successful. 150 Opening BINARY mode data connection for split.c (673 bytes). 226 Transfer complete. local: split.c remote: split.c 673 bytes received in 0.051 seconds (13 Kbytes/s)Εδώ λέω ότι θέλω η μεταφορά να γίνει σε ASCII mode, δηλαδή: Οι χαρακτήρες τέλους γραμμής θα μεταφράζονται ανάλογα με τις μηχανές στα 2 άκρα της σύνδεσης Το σύνολο των χαρακτήρων θα μεταφράζεται, πχ. από EBCDIC σε ASCII και τ'ανάπαλιν. Θα μπαίνουν οι κατάλληλοι χαρακτήρες γιά το τέλος αρχείου, κτλ. Ο τρόπος αυτός συνιστάται ΜΟΝΟ για μεταφορά κειμένων μεταξύ διαφορετικών υπολογιστικών συστημάτων. Γενικά, μεταξύ UNIX μηχανών θεωρείται ασφαλής η χρήση του binary mode γιά κάθε περίπτωση.
ftp>asc 200 Type set to A. ftp>put loop.c Αντίστοιχη της get είναι η put, ενώ για την mget η mput (Multiple PUT)" 200 PORT command successful. 150 Opening ASCII mode data connection for loop.c. 226 Transfer complete. local: loop.c remote: loop.c 819 bytes sent in 0.066 seconds (12 Kbytes/s) ftp>help Ζητώ βοήθεια από το FTP" Commands may be abbreviated. Commands are: ! cr macdef proxy send $ delete mdelete sendport status account debug mdir put struct append dir mget pwd sunique ascii disconnect mkdir quit tenex bell form mls quote trace binary get mode recv type bye glob mput remotehelp user case hash nmap rename verbose cd help ntrans reset ? cdup lcd open rmdir close ls prompt runique ftp>help bin Ζητώ περισσότερες λεπτομέρειες για την υποεντολή 'bin' binary set binary transfer type ftp>quit 221 Goodbye.Οσοι βρίσκουν βαρετό το απλό FTP, υπάρχει το "ncftp" με πιό εφφετζίδικο στυλ λειτουργίας, καθώς και προγράμματα που λειτουργούν κάτω από X Windows και παρέχουν ένα πιό εκσυγχρονισμένο στυλ στο FTP.
Υπάρχουν πάνω από 2.000 anonymous FTP servers, και ο αριθμός μεγαλώνει καθημερινά. Μερικοί από τους πιό γνωστούς είναι:
Μερικοί καλοί ευρωπαϊκοί servers είναι οι ακόλουθοι (λόγω της τεχνικής mirroring που αναφέραμε επάνω έχουν μιάν ικανοποιητική ποικιλία από όλα τα είδη προγραμμάτων):
Πριν πάτε να πάρετε όλα αυτά τα πράγματα, βεβαιωθείτε πρώτα ότι δεν υπάρχουνε εδώ (είναι πολύ συνηθισμένο να φέρνουνε νέοι χρήστες ένα πακέτο, μόνο γιά να ανακαλύψουν ότι έχει ήδη εγκατασταθεί), κι ότι είναι απαραίτητα γιά σας. Η διαδικασία του σχετικού ελέγχου είναι απλή (μιλάμε γιά το Εργαστήριο Λογισμικού):
locate file_name_you_want_to_find (πχ. locate gnuplot)και αν υπάρχουν αρχεία που έχουν αυτό το όνομα μέσα στις μηχανές του Εργαστηρίου, θα σας τα απαριθμήσει.
Αν δεν βρήκατε τίποτα όμοιο (και ψάχνετε γιά πχ. ένα πρόγραμμα γιά PCs), ελέξτε αν έχει ήδη έρθει μέσα από το USENET (δείτε παρακάτω γιά μιά εισαγωγή στο USENET). Πηγαίνετε στο directory /n/kentayros/var/usenet. Εκεί είναι τα προγράμματα που έρχονται μέσα από το USENET, τα οποία αποθηκεύονται αυτόματα. Υπάρχουν αρχεία με τον τίτλο Index, που είναι μιά λίστα των αρχείων που περιλαμβάνονται στους υποκαταλόγους κάτων από αυτά (και κάθε υποκατάλογος περιέχει τη δική του λίστα, μέχρι το επίπεδο των επιμέρους πακέτων).
Αν αποτύχει και αυτό, *τότε* πηγαίνετε να το πάρετε μέσω FTP. Πάντα να θυμάστε: είναι κι άλλοι στην ίδια γραμμή, οπότε το να παίρνετε ταυτόχρονα από 5 μηχανές με ισάριθμα FTP είναι κακή συμπεριφορά προς τους συναδέλφους σας, που μπορεί να θέλουν απλά να μπούν σε μιά μηχανή στο εξωτερικό (το FTP καταπονεί αρκετά τη γραμμή, ειδικά όταν υπάρχουν περισσότερα από 2-3).