Πού κ πώς μπορώ να βρώ βοήθεια, πληροφορίες κ παραδείγματα για προγράμματα κ εντολές του Linux;

Μια από τις βασικές προϋποθέσεις επιβίωσης στο κόσμο του linux είναι το να ξέρεις που μπορείς να βρείς οδηγίες χρήσης, πληροφορίες, παραδείγματα κλπ. Τα διάφορα φόρουμ, ιστολόγια, κ λοιπές σελίδες στο διαδίκτυο είναι η πρώτη γραμμή του πυρός, κ δεν πρέπει να τα ξεχνάς ποτέ, αλλά εξίσου σημαντική είναι κ η τεκμηρίωση που συνοδεύει τις εφαρμογές σου.

Στις σύγχρονες διανομές που περιλαμβάνουν προεπιλεγμένα γραφικά περιβάλλοντα όπως το kde κ το gnome, υπάρχει ένα συγκεντρωτικό σύστημα βοήθειας κ πληροφόρησης, το γνωστό κ από άλλα λειτουργικά συστήματα ως "help" (το πλήκτρο F1 έχει καταντήσει συνώνυμο του help).

Δεν τελειώνει όμως εκεί. Υπάρχουν πολλά ακόμα που χρειάζεται να ψάξεις λίγο για να τα βρεις.


 

Το πρώτο κ πιο σημαντικό είναι η όποια τεκμηρίωση συνοδεύει τα πακέτα που έχουν εγκατασταθεί για να έχεις τα προγράμματα που έχεις. Στη διαχείρηση πακέτων του συστήματος σου, μπορείς να βρεις τη λίστα με τα ονόματα των διάφορων πακέτων. Κάθε πακέτο κατά την εγκατάσταση του δημιουργεί ένα φάκελο με το όνομα του στην τοποθεσία /usr/share/doc (πχ το πακέτο gawk θα φτιάξει το φάκελο /usr/share/doc/gawk) και αποθηκεύει εκεί την όποια τεκμηρίωση έχει.

Πρόκειται για ένα μαγικό κουτί! Σε κάποια πακέτα δε θα βρείς τίποτα, ενώ σε άλλα θα βρείς από κείμενα text, μέχρι ολόκληρα βιβλία σε pdf. Επίσης μπορεί να βρείς αναλυτικά παραδείγματα από configuration αρχεία που χρειάζεται να φτιάξεις ή να πειράξεις για κάποια προγράμματα (όπως το πολύ καλό παράδειγμα του αρχείου menu.lst για το grub μέσα στο φάκελο /usr/share/doc/grub/examples).

Αλλα κ πάλι δεν τελειώνει εκεί. Άργα ή γρήγορα (ή κ ποτέ, ανάλογα με το τι κάνεις με τον υπολογιστή σου), το linux θα σε φέρει αντιμέτωπο με το ...τερματικό (μπαίνει μουσική εκκλησιαστικού όργανου). Μια ταινία το είπε καλύτερα απ'ό,τι άλλο μπορώ να σκεφτώ:

"You take the blue pill and the story ends. You wake in your bed and believe whatever you want to believe. You take the red pill and you stay in Wonderland and I show you how deep the rabbit-hole goes."

Μπορείς να την αγνοήσεις λοιπόν, ή να ασχοληθείς μαζί της περαιτέρω. Η επιλογή είναι καθαρά δική σου, κ δεν υπάρχει σωστή κ λάθος. Αν αποφασίσεις να τη ψάξεις, τότε έχεις ένα ακόμα ισχυρό όπλο στη ανεύρευση πληροφοριών, τα man pages.

Σχεδόν κάθε εντολή ή πρόγραμμα στο linux έχει τη man σελίδα του. Είναι ιδιαίτερα χρήσιμη για προγράμματα που εκτελούνται από τερματικό (όπως πχ το gawk), αλλά μερικές φορές βοηθάει ακόμα κ για γραφικές εφαρμογές.

Τα man pages οργανώνονται σε 8 κατηγορίες:

  1. Προγράμματα πάσης φύσεως
  2. Κλήσεις συστήματος
  3. Βιβλιοθήκες κ συναρτήσεις
  4. Ειδικά αρχεία
  5. Configuration αρχεία
  6. Παιχνίδια
  7. Λοιπά
  8. Διαχείρηση συστήματος

 

Πολλά από τα συγκεντρωτικά συστήματα βοήθειας (πχ το help του Gnome) έχουν κ τις σελίδες man, αλλά οι περισσότεροι νέοι χρήστες τις αγνοούν, καθότι -όπως είπα παραπάνω- οι περισσότερες είναι για εντολές/προγράμματα του τερματικού. Μπορείς να τις κοιτάξεις από τη συγκεντρωτική βοήθεια του συστήματος σου, αλλά το τερματικό σου προσφέρει κάποιες παραπάνω "διευκολύνσεις", κ ιδίως ταχύτατες αναζητήσεις.

Σημείωση: Τα παρακάτω έχει νόημα να τα δοκιμάζεις σε ένα τερματικό καθώς τα διαβάζεις.

Καταρχήν, για να δείς μια σελίδα σε κάποια κατηγορία, δίνεις στο τερματικό "man [αριθμός κατηγορίας] όνομα προγράμματος". Τα "[ ]" δεν τα γράφεις πραγματικά, τα έβαλα για να υποδηλώσω ότι ο αριθμός κατηγορίας είναι προαιρετικός. Περισσότερα γι'αυτό σε λίγο. Για να δείς πχ τη σελίδα της εντολής mkdir (η οποία φτιάχνει νέους φάκελους) στη πρώτη κατηγορία, θα δώσεις:

man 1 mkdir 

Και πώς ξέρεις θα μου πεις τώρα ότι το mkdir είναι στο 1 κ όχι στο 7 ή 8; Η λύση είναι απλή κ ακούει στο όνομα whatis. Δίνοντας πχ "whatis mkdir" θα δούμε όλες τις σχετικές σελίδες με την εντολή mkdir:

dimitris@gibbons:~$ whatis mkdir
mkdir (1) - make directories
mkdir (2) - create a directory

Όπως βλέπεις, η mkdir υπάρχει σε δύο κατηγορίες. Στην (1) είναι σαν εντολή του συστήματος, ενώ στη (2) μπορείς να μάθεις πώς να τη συμπεριλάβεις σε δικά σου προγράμματα.

Μπορείς επίσης να παραλείψεις τον αριθμό κατηγορίας. Σε αυτή την περίπτωση η man θα επιστρέψει τη πρώτη σελίδα που θα βρει. Στο παράδειγμα του mkdir, αν δίναμε:

man mkdir

θα μας επέστρεφε τη σελίδα από την κατηγορία (1). Όπως καταλαβαίνεις, η σειρά των κατηγοριών δεν είναι τυχαία.

Κ έτσι κάνουμε συνήθως. Επειδή -ούτως ή άλλως- οι περισσότερες εντολές εμφανίζονται μόνο σε μια κατηγορία (το mkdir ήταν εξαίρεση), παραλείπουμε τον αριθμό κατηγορίας.

Σημείωση: Για να υπάρχει μια σελίδα man, πρέπει πρώτα να έχεις εγκαταστήσει το αντίστοιχο πρόγραμμα/πακέτο!

Όταν λοιπόν ανοίξεις μια man σελίδα, η πρώτη γραμμή είναι η επικεφαλίδα. Στην επικεφαλίδα φαίνεται το όνομα της εντολής κ η κατηγορία στην οποία ανήκει. Πχ για τη mkdir, η αντίστοιχη man σελίδα λέει "MKDIR(1)". Από εκεί κ πέρα, υπάρχει μια (σχετικά) πάγια δομή για όλες τις σελίδες man, κ αποτελείται (τουλάχιστον) από τις ακόλουθες ενότητες:

1. NAME: Εδώ φαίνεται (πάλι) το όνομα της εντολής, μαζί με μια σύντομη περιγραφή, συνήθως μια γραμμή.

2. SYNOPSIS: Εδώ θα μάθεις πώς συντάσσεται η εντολή που κοιτάς. Χρειάζεται λίγο συνήθεια να μάθεις να διαβάζεις σωστά αυτό το κομμάτι, αλλά αν του πάρεις τον αέρα δε θα το ξεχάσεις ποτέ. Το πιο σημαντικό που πρέπει να θυμάσαι είναι πως οτιδήποτε περικλύεται μέσα σε [ ], είναι προαιρετικό. Αφαίρεσε από την "εικόνα" που βλέπεις όσα είναι μέσα σε αγκύλες, κ θα δεις ότι δεν είναι κ τόσο περίπλοκο αυτό που απομένει... Επίσης όταν κάτι αναφέρεται με κεφαλαία γράμματα στη σύνταξη της εντολής, συνήθως επεξηγείται κάπου παρακάτω.

3. DESCRIPTION: Εδώ θα βρεις αναλυτική περιγραφή του τί κάνει αυτή η εντολή, καθώς κ πλήρη λίστα με τις παράμετρους που δέχεται κ τι κάνουν αυτές. Έτσι, την επόμενη φορά που θα αναρωτηθείς τη διαφορά έχει το σκέτο "mkdir" από το "mkdir -p", ρίξε μια ματιά στη σελίδα man του mkdir κ θα μάθεις.

4. OPTIONS: Κάποια προγράμματα επιλέγουν να βάλουν εδώ τις παράμετρους που δέχονται, ιδιαίτερα αν η αναλυτική περιγραφή είναι μεγάλη από μόνη της.

5. FILES: Λίστα με αρχεία που εμπλέκονται στη λειτουργία του προγράμματος που κοιτάζεις (πχ τα αρχεία για το σετάρισμα του grub).

6. EXAMPLES: Το πιο σημαντικό απ'όλα! Αν η σελίδα που κοιτάς έχει παραδείγματα, μη παραλήψεις να τα διαβάσεις!

7. BUGS: Εδώ μπορείς να βρεις γνωστά προβλήματα του προγράμματος

8. SEE ALSO: Πάντα τελευταία ενότητα, περιλαμβάνει άλλες σελίδες σχετικές με αυτή που κοιτάς.

Όπως είπα ήδη, δεν είναι υποχρεωτικό ότι θα υπάρχουν όλες οι παραπάνω ενότητες, ενώ είναι πιθανόν να υπάρχουν κ άλλες που δεν αναφέρονται εδώ.


 

Μια άλλη πολύ χρήσιμη εντολή είναι η apropos (σε ελεύθερη μετάφραση, "σχετικά με"). Μπορείς να ψάξεις με αυτό τον τρόπο για οποιοδήποτε θέμα κ να βρεις όλες τις σχετικές σελίδες man. Πχ, αν σε ενδιαφέρει η εγγραφή δίσκων DVD, μπορείς να γράψεις στο τερματικό σου:

dimitris@gibbons:~$ apropos dvd burn
brasero (1)          - Simple and easy to use CD/DVD burning application for the Gnome Desktop
btcflash (8 )        - firmware flash utility for BTC DRW1008 DVD+/-RW recorder.
cdlabelgen (1)       - CD/DVD labels, jewel case inserts, and envelopes creator.
dvd+rw-booktype (1)  - format DVD+-RW/-RAM disk with a logical format
dvd+rw-format (1)    - format DVD+-RW/-RAM disk
dvd+rw-mediainfo (1) - display information about dvd drive and disk
dvd::rip (1p) [dvdrip] - GUI for copying DVDs
dvdauthor (1)        - assembles multiple mpeg program streams into a suitable DVD filesystem
dvdbackup (1)        - Tool to backup DVDs
dvddirdel (1)        - Deletes a previously authored DVD directory structure in DIR
dvdrip (1p)          - GUI for copying DVDs
dvdunauthor (1)      - Removes DVD-Video file structure
growisofs (1)        - combined genisoimage frontend/DVD recording program.
lsdvd (1)            - read the content info of a DVD
lxdvdrip (1)         - a command line dvd backup tool
play_cell (1)        - DVD cell player for vamps
rpl8 (8 )            - Firmware loader for DVD drives
vamps (1)            - Tool to recompress and modify the structure of a DVD
Video::DVDRip (3pm)  - GUI for copying DVDs, based on an open Low Level API
Video::DVDRip::CPAN::Scanf (3pm) - emulate sscanf() of the C library

 

To παραπάνω μας επέστρεψε όλα τα σχετικά με dvd ή burn. Αν θες μόνο τα αποτελέσματα που περιλαμβάνουν και τις δύο λέξεις, τότε δίνεις:

dimitris@gibbons:~$ apropos -a dvd burn
brasero (1)          - Simple and easy to use CD/DVD burning application for the Gnome Desktop

Πώς ήξερα να βάλω το -a για να το καταφέρω αυτό; Μα φυσικά διάβασα τη man σελίδα του ...apropos! (man apropos ;))


Αυτά λοιπόν κ με τις σελίδες man. Πριν κλείσω, θέλω να αναφέρω κ μερικούς πιο "φιλικούς" τρόπους για να ανατρέχετε στις σελίδες man (πέρα από το συγκεντρωτικό help για το οποίο μίλησα στην αρχή):

1) Όσοι δουλεύουν KDE, ο konqueror μπορεί να δείξει κ σελίδες man! Για να ανοίξετε πχ τη σελίδα του mkdir, αρκεί να πείτε στον konqueror να πάει στη "διεύθυνση" man:mkdir. Μα όλα τα κάνει πια αυτός ο konqueror; :?

2) Μπορείς επίσης να δεις τις σελίδες κ με οποιονδήποτε περιηγητή ιστοσελίδων (λέγε με firefox, opera, κλπ), αρκεί να εγκαταστήσεις το πακέτο man2html κ ... ένα web server. Για όσους θέλουν να το δοκιμάσουν αλλά δεν έχουν καμία όρεξη να στήνουν apache γι'αυτό το λόγο, προτείνω την εναλλακτική του boa. Απλώς εγκαθιστάς το πακέτο του κ ανοίγεις τον περιηγητή σου στην τοπική διεύθυνση: http://localhost/cgi-bin/man/man2html

3) Υπάρχει κ το σχετικά αρχαίο tkman.

4) Το G-Man ,ένα απλό εργαλείο για εύκολη κ γρήγορη ανάγνωση σελίδων MAN στο GNOME.

5) Το deskbar-plugin-gman, ένα plugin για το deskbar-applet για ακόμα πιο εύκολη αναζήτηση και ανάγνωση σελίδων MAN.

6) ... (συμπληρώστε εδώ τις δικές σας "εξωτικές" λύσεις για ανάγνωση των σελίδων man)

Κάπου εδώ θα σε αφήσω ελπίζοντας ότι, με αυτά που είπα, την επόμενη φορά που θα συναντήσεις κάποιο πρόβλημα, απορία, ή άγνωστη εντολή, η αναζήτηση της λύσης θα είναι μια πιο ευχάριστη διαδικασία. Καλό διάβασμα λοιπόν!

Δώσε αστέρια!

MO: 3.5 (ψήφοι: 2)

Comments

Το άρθρο αυτό το είχα γράψει στο blog μου κ το μετέφερα στο faq γιατί νομίζω ότι είναι πιο σωστή η οργάνωση της ύλης έτσι. Αν κάποιος διαφωνεί, το λέει φυσικά!

-- gnu_labis

Το Linux ΔΕΝ είναι Windows!!!