2.2 Μάθημα 1
Πιστοποιητικό: |
Linux Essentials |
---|---|
Έκδοση: |
1.6 |
Θέμα: |
2 Βρίσκοντας το Δρόμο σας σε ένα Σύστημα Linux |
Σκοπός: |
2.2 Χρήση της Γραμμής Εντολών για Λήψη Βοήθειας |
Μάθημα: |
1 απο 1 |
Εισαγωγή
Η γραμμή εντολών είναι ένα πολύ περίπλοκο εργαλείο. Κάθε εντολή έχει τις δικές της μοναδικές επιλογές, επομένως οι οδηγίες αποτελούν κλειδί όταν εργάζεστε με ένα σύστημα Linux. Εκτός από τον κατάλογο /usr/share/doc/
, ο οποίος αποθηκεύει το μεγαλύτερο μέρος των οδηγιών, διάφορα άλλα εργαλεία παρέχουν πληροφορίες σχετικά με τη χρήση εντολών Linux. Αυτό το κεφάλαιο εστιάζει σε μεθόδους πρόσβασης σε αυτές τις οδηγίες, με σκοπό τη λήψη βοήθειας.
Υπάρχουν πολλές μέθοδοι για να λάβετε βοήθεια στη γραμμή εντολών Linux. man
, help
και info
είναι μόνο μερικά από αυτά. Για το Linux Essentials, θα επικεντρωθούμε στο man
και info
, καθώς είναι τα πιο συχνά χρησιμοποιούμενα εργαλεία για την απόκτηση βοήθειας.
Ένα άλλο θέμα αυτού του κεφαλαίου θα είναι ο εντοπισμός αρχείων. Θα εργάζεστε κυρίως με την εντολή locate
.
Λήψη Βοήθειας στη Γραμμή Εντολών
Ενσωματωμένη Βοήθεια
Όταν ξεκινούν με την παράμετρο --help
, οι περισσότερες εντολές εμφανίζουν μερικές σύντομες οδηγίες σχετικά με τη χρήση τους. Παρόλο που δεν παρέχουν όλες οι εντολές αυτόν τον διακόπτη, είναι ακόμα μια καλή πρώτη προσπάθεια να μάθετε περισσότερα σχετικά με τις παραμέτρους μιας εντολής. Λάβετε υπόψη ότι οι οδηγίες από τον διακόπτη --help
είναι μάλλον σύντομες σε σύγκριση με τις άλλες πηγές οδηγιών που θα συζητήσουμε στο υπόλοιπο αυτού του μαθήματος.
Σελίδες Man
Οι περισσότερες εντολές παρέχουν μια σελίδα εγχειριδίου [manual] ή μια σελίδα "man". Αυτές οι οδηγίες εγκαθίσταται συνήθως με το λογισμικό και είναι προσβάσιμες με την εντολή man
. Η εντολή της οποίας η σελίδα εγχειριδίου πρέπει να εμφανίζεται προστίθεται στο man
ως όρισμα:
$ man mkdir
Αυτή η εντολή ανοίγει τη σελίδα man για το mkdir
. Μπορείτε να χρησιμοποιήσετε τα επάνω και κάτω βέλη ή το πλήκτρο κενού διαστήματος για να περιηγηθείτε στη σελίδα του εγχειριδίου. Για έξοδο από τη σελίδα man, πατήστε Q.
Κάθε σελίδα εγχειριδίου χωρίζεται σε έως και 11 ενότητες, αν και πολλές από αυτές τις ενότητες είναι προαιρετικές:
Ενότητα | Περιγραφή |
---|---|
NAME |
Όνομα εντολής και σύντομη περιγραφή |
SYNOPSIS |
Περιγραφή της σύνταξης της εντολής |
DESCRIPTION |
Περιγραφή των συνεπειών της εντολής |
OPTIONS |
Διαθέσιμες επιλογές |
ARGUMENTS |
Διαθέσιμα ορίσματα |
FILES |
Βοηθητικά αρχεία |
EXAMPLES |
Ένα δείγμα της γραμμής εντολών |
SEE ALSO |
Διασταυρούμενες παραπομπές σε σχετιζόμενα θέματα |
DIAGNOSTICS |
Μηνύματα Προειδοποίησης και Σφάλματος |
COPYRIGHT |
Συντάκτης(ες) της εντολής |
BUGS |
Τυχόν γνωστοί περιορισμοί της εντολής |
Στην πράξη, οι περισσότερες σελίδες εγχειριδίου δεν περιέχουν όλα αυτά τα μέρη.
Οι σελίδες εγχειριδίου man οργανώνονται σε οκτώ κατηγορίες, αριθμημένες από 1 έως 8:
Κατηγορία | Περιγραφή |
---|---|
1 |
Εντολή χρήστη |
2 |
Συστημικές κλήσεις |
3 |
Λειτουργίες της library C |
4 |
Οδηγοί και αρχεία συσκευών |
5 |
Αρχεία παραμετροποίησης και μορφές αρχείων |
6 |
Παιχνίδια |
7 |
Διάφορα |
8 |
Εντολές διαχειριστή συστήματος |
9 |
Λειτουργίες πυρήνα (μη τυπικές) |
Κάθε σελίδα εγχειριδίου man ανήκει σε μία ακριβώς κατηγορία. Ωστόσο, πολλές κατηγορίες μπορούν να περιέχουν σελίδες με το ίδιο όνομα. Ας πάρουμε την εντολή passwd
ως παράδειγμα. Αυτή η εντολή μπορεί να χρησιμοποιηθεί για την αλλαγή του κωδικού πρόσβασης ενός χρήστη. Δεδομένου ότι το passwd
είναι μια εντολή χρήστη, η σελίδα εγχειριδίου του man βρίσκεται στην κατηγορία 1. Εκτός από την εντολή passwd
, το αρχείο βάσης δεδομένων κωδικών πρόσβασης /etc/passwd
έχει επίσης μια σελίδα εγχειριδίου που ονομάζεται passwd
. Καθώς αυτό το αρχείο είναι αρχείο παραμετροποίησης, ανήκει στην κατηγορία 5. Όταν γίνεται αναφορά σε μια σελίδα εγχειριδίου man, η κατηγορία συχνά προστίθεται στο όνομα της σελίδας man, όπως στο passwd (1)
ή passwd (5)
για να αναγνωριστεί η αντίστοιχη σελίδα εγχειριδίου.
Από προεπιλογή, το man passwd
εμφανίζει την πρώτη διαθέσιμη σελίδα εγχειριδίου, στην περίπτωση αυτή passwd (1) `. Η κατηγορία της σελίδας που επιθυμείτε μπορεί να καθοριστεί σε μια εντολή όπως `man 1 passwd
ή man 5 passwd
.
Έχουμε ήδη συζητήσει πώς να πλοηγηθείτε σε μια σελίδα man και πώς να επιστρέψετε στη γραμμή εντολών. Εσωτερικά, το man
χρησιμοποιεί την εντολή less
για να εμφανίσει το περιεχόμενο της σελίδας εγχειριδίου man. Το less
σάς επιτρέπει να αναζητάτε κείμενο σε μια σελίδα man. Για να αναζητήσετε τη λέξη linux
, μπορείτε απλώς να χρησιμοποιήσετε το /linux
για εμπρόσθια αναζήτηση από το σημείο που βρίσκεστε στη σελίδα ή ?linux
για να ξεκινήσετε μια προς τα πίσω αναζήτηση. Αυτή η ενέργεια επισημαίνει όλα τα αποτελέσματα που ταιριάζουν και μετακινεί τη σελίδα στην πρώτη αντιστοίχιση που έχει επισημανθεί. Και στις δύο περιπτώσεις μπορείτε να πληκτρολογήσετε N για μετάβαση στο επόμενο ταίριασμα. Για να βρείτε περισσότερες πληροφορίες σχετικά με αυτές τις πρόσθετες λειτουργίες, πατήστε H και θα εμφανιστεί ένα μενού με όλες τις πληροφορίες.
Σελίδες Info
Ένα άλλο εργαλείο που θα σας βοηθήσει ενώ εργάζεστε με το σύστημα Linux είναι οι σελίδες πληροφοριών. Οι σελίδες πληροφοριών είναι συνήθως πιο λεπτομερείς από τις σελίδες man και έχουν μορφοποίηση σε υπερκείμενο, παρόμοια με τις ιστοσελίδες στο Διαδίκτυο.
Οι σελίδες πληροφοριών μπορούν να εμφανιστούν ως εξής:
$ info mkdir
Για κάθε σελίδα πληροφοριών, το info
διαβάζει ένα αρχείο πληροφοριών που είναι δομημένο σε μεμονωμένους κόμβους μέσα σε ένα δέντρο. Κάθε κόμβος περιέχει ένα απλό θέμα και η εντολή info
περιέχει υπερσυνδέσμους που μπορούν να σας βοηθήσουν να μετακινηθείτε από το ένα στο άλλο. Μπορείτε να αποκτήσετε πρόσβαση στον σύνδεσμο πατώντας enter ενώ τοποθετείτε τον κέρσορα σε έναν από τους αστερίσκους.
Παρόμοια με το man
, το εργαλείο info
έχει επίσης εντολές πλοήγησης σελίδων. Μπορείτε να μάθετε περισσότερα σχετικά με αυτές τις εντολές πατώντας ? ενώ βρίσκεστε στη σελίδα πληροφοριών. Αυτά τα εργαλεία θα σας βοηθήσουν να περιηγηθείτε ευκολότερα στη σελίδα καθώς και να κατανοήσετε πώς να αποκτήσετε πρόσβαση στους κόμβους και να μετακινηθείτε μέσα στο δέντρο κόμβων.
Ο κατάλογος /usr/share/doc/
Όπως αναφέρθηκε προηγουμένως, ο κατάλογος /usr/share/doc/
αποθηκεύει τις περισσότερες οδηγίες των εντολών που χρησιμοποιεί το σύστημα. Αυτός ο κατάλογος περιέχει έναν κατάλογο για τα περισσότερα πακέτα που είναι εγκατεστημένα στο σύστημα. Το όνομα του καταλόγου είναι συνήθως το όνομα του πακέτου και περιστασιακά η έκδοσή του. Αυτοί οι κατάλογοι περιλαμβάνουν ένα αρχείο README
ή readme.txt
που περιέχει τις βασικές οδηγίες του πακέτου. Παράλληλα με το αρχείο README
, ο φάκελος μπορεί επίσης να περιέχει άλλα αρχεία οδηγιών, όπως τον κατάλογο αλλαγών [changelog] που περιλαμβάνει λεπτομερώς το ιστορικό του προγράμματος ή παραδείγματα αρχείων παραμετροποίησης για το συγκεκριμένο πακέτο.
Οι πληροφορίες στο αρχείο README
διαφέρουν από το ένα πακέτο στο άλλο. Όλα τα αρχεία είναι γραμμένα σε απλό κείμενο, επομένως μπορούν να διαβαστούν με οποιονδήποτε προτιμώμενο επεξεργαστή κειμένου. Ο ακριβής αριθμός και τα είδη των αρχείων εξαρτώνται από το πακέτο. Ελέγξτε μερικούς από τους καταλόγους για να έχετε μια επισκόπηση του περιεχομένου τους.
Εντοπισμός αρχείων
Η εντολή locate
Ένα σύστημα Linux είναι χτισμένο από πολυάριθμους καταλόγους και αρχεία. Το Linux διαθέτει πολλά εργαλεία για να εντοπίσει ένα συγκεκριμένο αρχείο μέσα σε ένα σύστημα. Η πιο γρήγορη είναι η εντολή locate
.
Η εντολή locate
αναζητά σε μια βάση δεδομένων και στη συνέχεια εξάγει κάθε όνομα που ταιριάζει με τη δεδομένη συμβολοσειρά:
$ locate note /lib/udev/keymaps/zepto-znote /usr/bin/zipnote /usr/share/doc/initramfs-tools/maintainer-notes.html /usr/share/man/man1/zipnote.1.gz
Η εντολή locate
υποστηρίζει επίσης τη χρήση wildcards [χαρακτήρες αναπλήρωσης] και regular expressions, επομένως η συμβολοσειρά αναζήτησης δεν χρειάζεται να ταιριάζει με ολόκληρο το όνομα του επιθυμητού αρχείου. Θα μάθετε περισσότερα για τις regular expressions σε ένα επόμενο κεφάλαιο.
Από προεπιλογή, το locate
συμπεριφέρεται σαν το μοτίβο να περιβάλλεται από αστερίσκους, οπότε το locate ΜΟΤΙΒΟ
είναι το ίδιο με locate *ΜΟΤΙΒΟ*
. Αυτό σας επιτρέπει να παρέχετε απλώς μερικές συμβολοσειρές αντί για το ακριβές όνομα αρχείου. Μπορείτε να τροποποιήσετε αυτήν τη συμπεριφορά με τις διαφορετικές επιλογές που μπορείτε να βρείτε να εξηγούνται στη σελίδα εγχειριδίου man του locate
.
Επειδή το locate
διαβάζει από μια βάση δεδομένων, ενδέχεται να μην βρείτε ένα αρχείο που δημιουργήσατε πρόσφατα. Η διαχείριση της βάσης δεδομένων γίνεται από ένα πρόγραμμα που ονομάζεται updatedb
. Συνήθως εκτελείται περιοδικά, αλλά εάν έχετε δικαιώματα root και χρειάζεστε άμεση ενημέρωση της βάσης δεδομένων, μπορείτε να εκτελέσετε μόνοι σας την εντολή updatedb
ανά πάσα στιγμή.
Η εντολή find
Το find
είναι ένα άλλο πολύ δημοφιλές εργαλείο που χρησιμοποιείται για την αναζήτηση αρχείων. Αυτή η εντολή έχει διαφορετική προσέγγιση, σε σύγκριση με την εντολή locate
. Η εντολή find
αναζητά αναδρομικά ένα δέντρο καταλόγου, συμπεριλαμβανομένων των υποκαταλόγων του. Το find
κάνει μια τέτοια αναζήτηση σε κάθε επίκληση, δεν διατηρεί μια βάση δεδομένων όπως το locate
. Παρόμοια με το locate
, το find
υποστηρίζει επίσης wildcards και regular expressions.
Το find
απαιτεί τουλάχιστον τη διαδρομή που πρέπει να αναζητήσει. Επιπλέον, οι λεγόμενες εκφράσεις μπορούν να προστεθούν για να παρέχουν κριτήρια φίλτρου για τα αρχεία που θα εμφανίζονται. Ένα παράδειγμα είναι η έκφραση -name
, η οποία αναζητά αρχεία με συγκεκριμένο όνομα:
~$ cd Downloads ~/Downloads $ find . -name thesis.pdf ./thesis.pdf ~/Downloads $ find ~ -name thesis.pdf /home/carol/Downloads/thesis.pdf
Η πρώτη εντολή find
αναζητά το αρχείο στον τρέχοντα κατάλογο Downloads
, ενώ η δεύτερη αναζητά το αρχείο στον κατάλογο αφετηρίας του χρήστη.
Η εντολή `find`είναι πολύ περίπλοκη, επομένως δεν θα καλυφθεί στην εξέταση Linux Essentials. Ωστόσο, είναι ένα ισχυρό εργαλείο που είναι ιδιαίτερα βολικό στην πράξη.
Καθοδηγούμενες Ασκήσεις
-
Χρησιμοποιήστε την εντολή
man
για να μάθετε τι κάνει κάθε εντολή:Εντολή Περιγραφή ls
Εμφάνιση των περιεχομένων ενός καταλόγου.
cat
cut
cd
cp
mv
mkdir
touch
wc
passwd
rm
rmdir
more
less
whereis
head
tail
sort
tr
chmod
grep
-
Ανοίξτε τη σελίδα πληροφοριών
ls
και προσδιορίστε το MENU.-
Τι επιλογές έχετε;
-
Βρείτε την επιλογή που σας επιτρέπει να ταξινομήσετε την έξοδο κατά χρόνο τροποποίησης.
-
-
Εμφανίστε το path προς τα πρώτα 3 αρχεία
README
. Χρησιμοποιήστε την εντολήman
για να προσδιορίσετε τη σωστή επιλογή για τοlocate
. -
Δημιουργήστε ένα αρχείο που ονομάζεται
test
στον κατάλογο αφετηρίας σας. Βρείτε τo απόλυτo path του με την εντολήlocate
. -
Το βρήκατε αμέσως; Τι έπρεπε να κάνετε για να το εντοπίσει η εντολή
locate
; -
Αναζητήστε το δοκιμαστικό αρχείο που δημιουργήσατε προηγουμένως, χρησιμοποιώντας την εντολή
find
. Τι σύνταξη χρησιμοποιήσατε και ποιό είναι το απόλυτο path;
Ασκήσεις Εξερεύνησης
-
Υπάρχει μια εντολή στον παραπάνω πίνακα που δεν έχει σελίδα
man
. Ποιά είναι αυτή και γιατί πιστεύετε ότι η εντολή δεν έχει σελίδα εγχειριδίου; -
Χρησιμοποιώντας τις εντολές στον παραπάνω πίνακα, δημιουργήστε το ακόλουθο δέντρο αρχείων. Τα ονόματα που ξεκινούν με κεφαλαίο είναι Κατάλογοι και αυτά που είναι πεζά είναι αρχεία.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
-
Εμφανίστε στην οθόνη τον τρέχοντα κατάλογο εργασίας, συμπεριλαμβανομένων των υποφακέλων.
-
Αναζητήστε μέσα στο δέντρο όλα τα αρχεία που τελειώνουν με έναν αριθμό.
-
Αφαιρέστε ολόκληρο το δέντρο καταλόγου με μία μόνο εντολή.
Σύνοψη
Σε αυτό το μάθημα μάθατε:
-
Πώς να λάβετε βοήθεια
-
Πώς να χρησιμοποιήσετε την εντολή
man
-
Πώς να πλοηγηθείτε στη σελίδα
man
-
Διαφορετικές ενότητες της σελίδας
man
-
Πώς να χρησιμοποιήσετε την εντολή
info
-
Πώς να πλοηγηθείτε μεταξύ διαφορετικών κόμβων
-
Πώς να αναζητήσετε αρχεία μέσα στο σύστημα
Εντολές που χρησιμοποιήθηκαν στις ασκήσεις:
man
-
Εμφάνιση μιας σελίδας εγχειριδίου.
info
-
Εμφάνιση μιας σελίδας πληροφοριών.
locate
-
Αναζητήστε στη βάση δεδομένων
locate
αρχεία με συγκεκριμένο όνομα. find
-
Αναζητήστε στο σύστημα αρχείων ονόματα που ταιριάζουν με ένα σύνολο κριτηρίων επιλογής.
updatedb
-
Ενημερώστε τη βάση δεδομένων
locate
.
Απαντήσεις στις Καθοδηγούμενες Ασκήσεις
-
Χρησιμοποιήστε την εντολή
man
για να μάθετε τι κάνει κάθε εντολή:Εντολή Περιγραφή ls
Εμφάνιση των περιεχομένων ενός καταλόγου
cat
Συνδέει ή προβάλλει αρχεία κειμένου
cut
Αφαιρεί ενότητες από ένα αρχείο κειμένου
cd
Αλλάζει σε διαφορετικό κατάλογο
cp
Αντιγράφει ένα αρχείο
mv
Μετακινεί ένα αρχείο (μπορεί επίσης να χρησιμοποιηθεί για μετονομασία)
mkdir
Δημιουργεί έναν νέο κατάλογο
touch
Δημιουργεί ένα αρχείο ή τροποποιεί την τελευταία ώρα και ημερομηνία τροποποίησης ενός υπάρχοντος αρχείου
wc
Μετράει τον αριθμό των λέξεων, γραμμών ή byte ενός αρχείου
passwd
Αλλάζει τον κωδικό πρόσβασης ενός χρήστη
rm
Διαγράφει ένα αρχείο
rmdir
Διαγράφει έναν κατάλογο
more
Προβάλλει αρχεία κειμένου μία οθόνη τη φορά
less
Προβάλλει αρχεία κειμένου, επιτρέπει την κύλιση πάνω και κάτω, μια γραμμή ή σελίδα κάθε φορά
whereis
Εμφανίζει το path αρχείου σε ένα καθορισμένο πρόγραμμα και σχετικά αρχεία εγχειριδίου
head
Εμφανίζει τις πρώτες γραμμές ενός αρχείου
tail
Εμφανίζει τις τελευταίες γραμμές ενός αρχείου
sort
Διατάσσει ένα αρχείο αριθμητικά ή αλφαβητικά
tr
Μεταφράζει ή αφαιρεί χαρακτήρες ενός αρχείου
chmod
Αλλάζει τα δικαιώματα ενός αρχείου
grep
Αναζητά μέσα σε ένα αρχείο
-
Ανοίξτε τη σελίδα πληροφοριών
ls
και προσδιορίστε το MENU.*-
Τι επιλογές έχετε;
-
Ποια αρχεία παρατίθενται
-
Ποιές πληροφορίες παρατίθενται
-
Ταξινόμηση της εξόδου
-
Λεπτομέρειες σχετικά με την έκδοση ταξινόμησης
-
Γενική μορφοποίηση εξόδου
-
Μορφοποίηση των χρονοσημάνσεων των αρχείων
-
Μορφοποίηση των ονομάτων αρχείων
-
-
Βρείτε την επιλογή που σας επιτρέπει να ταξινομήσετε την έξοδο κατά χρόνο τροποποίησης.
-t
or--sort=time
-
-
Εμφανίστε το path προς τα πρώτα 3 αρχεία
README
. Χρησιμοποιήστε την εντολήman
για να προσδιορίσετε τη σωστή επιλογή για τοlocate
.$ locate -l 3 README /etc/alternatives/README /etc/init.d/README /etc/rc0.d/README
-
Δημιουργήστε ένα αρχείο που ονομάζεται
test
στον κατάλογο αφετηρίας σας. Βρείτε τo απόλυτo path του με την εντολήlocate
.$ touch test $ locate test /home/user/test
-
Το βρήκατε αμέσως; Τι έπρεπε να κάνετε για να το εντοπίσει η εντολή
locate
;$ sudo updatedb
Το αρχείο δημιουργήθηκε πρόσφατα, επομένως δεν υπάρχει εγγραφή αυτού στη βάση δεδομένων.
-
Αναζητήστε το δοκιμαστικό αρχείο που δημιουργήσατε προηγουμένως, χρησιμοποιώντας την εντολή
find
. Τι σύνταξη χρησιμοποιήσατε και ποιό είναι το απόλυτο path;$ find ~ -name test
ή
$ find . -name test /home/user/test
Απαντήσεις στις Ασκήσεις Εξερεύνησης
-
Υπάρχει μια εντολή στον παραπάνω πίνακα που δεν έχει σελίδα
man
. Ποιά είναι αυτή και γιατί πιστεύετε ότι η εντολή δεν έχει σελίδα εγχειριδίου;Η εντολή
cd
. Δεν έχει σελίδα εγχειριδίου γιατί είναι μια ενσωματωμένη εντολή shell. -
Χρησιμοποιώντας τις εντολές στον παραπάνω πίνακα, δημιουργήστε το ακόλουθο δέντρο αρχείων. Τα ονόματα που ξεκινούν με κεφαλαίο είναι Κατάλογοι και αυτά που είναι πεζά είναι αρχεία.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
Η λύση είναι ένας συνδυασμός των εντολών
mkdir
καιtouch
. -
Εμφανίστε στην οθόνη τον τρέχοντα κατάλογο εργασίας, συμπεριλαμβανομένων των υποφακέλων.
$ ls -R
-
Αναζητήστε μέσα στο δέντρο όλα τα αρχεία που τελειώνουν με έναν αριθμό.
$ find ~ -name "*[0-9]" $ locate "*[0-9]"
-
Αφαιρέστε ολόκληρο το δέντρο καταλόγου με μία μόνο εντολή.
$ rm -r Documents Downloads Test test