Linux Professional Institute Learning Logo.
Mετάβαση στο κύριο περιεχόμενο
  • Αρχική
    • Διαθέσιμοι Πόροι
    • Μαθησιακά Υλικά LPI
    • Γίνε Συνεργάτης
    • Συνεργάτες Εκδόσεων
    • Γίνε Συνεργάτης Εκδόσεων
    • Σχετικά
    • FAQ
    • Συνεργάτες
    • Roadmap
    • Επικοινωνία
  • LPI.org
2.1 Μάθημα 2
Θέμα 1: Η κοινότητα Linux και μια καριέρα στον Ανοιχτό Κώδικα
1.1 Εξέλιξη του Linux και Δημοφιλή Λειτουργικά Συστήματα
  • 1.1 Μάθημα 1
1.2 Κύριες Εφαρμογές Ανοιχτού Κώδικα
  • 1.2 Μάθημα 1
1.3 Λογισμικό Ανοιχτού Κώδικα και Αδειοδότηση
  • 1.3 Μάθημα 1
1.4 Δεξιότητες ICT και Εργασία στο Linux
  • 1.4 Μάθημα 1
Θέμα 2: Βρίσκοντας το Δρόμο σας σε ένα Σύστημα Linux
2.1 Βασικά Στοιχεία Γραμμής Εντολών
  • 2.1 Μάθημα 1
  • 2.1 Μάθημα 2
2.2 Χρήση της Γραμμής Εντολών για Λήψη Βοήθειας
  • 2.2 Μάθημα 1
2.3 Χρήση Καταλόγων και Παράθεση Αρχείων
  • 2.3 Μάθημα 1
  • 2.3 Μάθημα 2
2.4 Δημιουργία, Μετακίνηση και Διαγραφή Αρχείων
  • 2.4 Μάθημα 1
Θέμα 3: Η Δύναμη της Γραμμής Εντολών
3.1 Αρχειοθέτηση Αρχείων στη Γραμμή Εντολών
  • 3.1 Μάθημα 1
3.2 Αναζήτηση και Εξαγωγή Δεδομένων από Αρχεία
  • 3.2 Μάθημα 1
  • 3.2 Μάθημα 2
3.3 Μετατροπή Εντολών σε Σενάριο
  • 3.3 Μάθημα 1
  • 3.3 Μάθημα 2
Θέμα 4: Το Λειτουργικό Σύστημα Linux
4.1 Επιλογή Λειτουργικού Συστήματος
  • 4.1 Μάθημα 1
4.2 Κατανόηση του Υλικού του Υπολογιστή
  • 4.2 Μάθημα 1
4.3 Πού Αποθηκεύονται τα Δεδομένα
  • 4.3 Μάθημα 1
  • 4.3 Μάθημα 2
4.4 Ο Υπολογιστής σας στο Δίκτυο
  • 4.4 Μάθημα 1
Θέμα 5: Ασφάλεια και Δικαιώματα Αρχείων
5.1 Βασική Ασφάλεια και Αναγνώριση Τύπων Χρηστών
  • 5.1 Μάθημα 1
5.2 Δημιουργία Χρηστών και Ομάδων
  • 5.2 Μάθημα 1
5.3 Διαχείριση Δικαιωμάτων και Ιδιοκτησίας Αρχείων
  • 5.3 Μάθημα 1
5.4 Ειδικοί Κατάλογοι και Αρχεία
  • 5.4 Μάθημα 1
How to get certified
  1. Θέμα 2: Βρίσκοντας το Δρόμο σας σε ένα Σύστημα Linux
  2. 2.1 Βασικά Στοιχεία Γραμμής Εντολών
  3. 2.1 Μάθημα 2

2.1 Μάθημα 2

Πιστοποιητικό:

Linux Essentials

Έκδοση:

1.6

Θέμα:

2 Βρίσκοντας το Δρόμο σας σε ένα Σύστημα Linux

Σκοπός:

2.1 Βασικά Στοιχεία Γραμμής Εντολών

Μάθημα:

2 απο 2

Εισαγωγή

Όλα τα shells διαχειρίζονται ένα σύνολο πληροφοριών κατάστασης κατά την διάρκεια των sessions του shell. Αυτή η πληροφορία του χρόνου λειτουργίας [runtime] ενδέχεται να αλλάξει κατά τη διάρκεια του session και επηρεάζει τον τρόπο συμπεριφοράς του shell. Αυτά τα δεδομένα χρησιμοποιούνται επίσης από προγράμματα για να καθορίσουν τις πτυχές της παραμετροποίησης του συστήματος. Τα περισσότερα από αυτά τα δεδομένα αποθηκεύονται στις λεγόμενες μεταβλητές, τις οποίες θα καλύψουμε σε αυτό το μάθημα.

Μεταβλητές

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

Στα περισσότερα Linux shells, υπάρχουν δύο τύποι μεταβλητών:

Τοπικές μεταβλητές

Αυτές οι μεταβλητές είναι διαθέσιμες μόνο για το τρέχον shell process. Εάν δημιουργήσετε μια τοπική μεταβλητή και στη συνέχεια ξεκινήσετε ένα άλλο πρόγραμμα από αυτό το shell, η μεταβλητή δεν είναι πλέον προσβάσιμη σε αυτό το πρόγραμμα. Επειδή δεν κληρονομούνται από subprocesses, αυτές οι μεταβλητές ονομάζονται τοπικές μεταβλητές.

Μεταβλητές περιβάλλοντος

Αυτές οι μεταβλητές είναι διαθέσιμες τόσο σε ένα συγκεκριμένο shell session όσο και σε subprocesses που αναδημιουργήθηκαν από αυτό το shell session. Αυτές οι μεταβλητές μπορούν να χρησιμοποιηθούν για τη μεταφορά δεδομένων παραμετροποίησης σε εντολές που εκτελούνται. Επειδή αυτά τα προγράμματα έχουν πρόσβαση σε αυτές τις μεταβλητές, ονομάζονται περιβαλλοντικές μεταβλητές. Η πλειοψηφία των μεταβλητών περιβάλλοντος είναι με κεφαλαία γράμματα (π.χ. PATH, DATE, USER). Ένα σύνολο προεπιλεγμένων μεταβλητών περιβάλλοντος παρέχει, για παράδειγμα, πληροφορίες σχετικά με τον κατάλογο αφετηρίας του χρήστη ή τον τύπο τερματικού. Μερικές φορές το πλήρες σύνολο όλων των μεταβλητών περιβάλλοντος αναφέρεται ως περιβάλλον.

Αυτοί οι τύποι μεταβλητών είναι επίσης γνωστές ως πεδίο εμβέλειας μεταβλητής [variable scope].

Note

Οι μεταβλητές δεν είναι διαρκείς. Όταν κλείσει το shell στο οποίο ορίστηκαν, όλες οι μεταβλητές και το περιεχόμενό τους χάνονται. Τα περισσότερα shells παρέχουν αρχεία διαμόρφωσης που περιέχουν μεταβλητές που ορίζονται κάθε φορά που ξεκινά ένα νέο shell. Οι μεταβλητές που πρέπει να οριστούν μόνιμα πρέπει να προστεθούν σε ένα από αυτά τα αρχεία διαμόρφωσης.

Χειρισμός Mεταβλητών

Ως διαχειριστής συστήματος, θα χρειαστεί να δημιουργήσετε, να τροποποιήσετε ή να αφαιρέσετε τόσο τοπικές όσο και μεταβλητές περιβάλλοντος.

Εργασία με Τοπικές Mεταβλητές

Μπορείτε να ορίσετε μια τοπική μεταβλητή χρησιμοποιώντας τον τελεστή = (ίσον). Μια απλή ανάθεση θα δημιουργήσει μια τοπική μεταβλητή:

$ greeting=hello
Note

Μην τοποθετείτε κανένα κενό χαρακτήρα διαστήματος πριν ή μετά τον τελεστή =.

Μπορείτε να εμφανίσετε οποιαδήποτε μεταβλητή χρησιμοποιώντας την εντολή echo. Η εντολή εμφανίζει συνήθως το κείμενο που της δίνεται ως όρισμα:

$ echo greeting
greeting

Για να αποκτήσετε πρόσβαση στην τιμή της μεταβλητής, θα πρέπει να χρησιμοποιήσετε το $ (σύμβολο δολαρίου) μπροστά από το όνομα της μεταβλητής.

$ echo $greeting
hello

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

$ echo $greeting

Δεν εμφανίζεται τίποτα. Αυτό δείχνει ότι οι μεταβλητές υπάρχουν πάντα μόνο σε ένα συγκεκριμένο shell.

Για να επαληθεύσετε ότι η μεταβλητή είναι στην πραγματικότητα μια τοπική μεταβλητή, προσπαθήστε να αναδημιουργήσετε ένα νέο process και ελέγξτε εάν αυτή η διαδικασία μπορεί να έχει πρόσβαση στη μεταβλητή. Μπορούμε να το κάνουμε ξεκινώντας ένα άλλο shell και αφήνοντας αυτό το shell να εκτελέσει την εντολή echo. Καθώς το νέο shell εκτελείται σε ένα νέο process, δεν θα κληρονομήσει τοπικές μεταβλητές από το parent process του:

$ echo $greeting world
hello world
$ bash -c 'echo $greeting world'
world
Note

Βεβαιωθείτε ότι χρησιμοποιείτε μονά εισαγωγικά στο παραπάνω παράδειγμα.

Για να καταργήσετε μια μεταβλητή, θα χρειαστεί να χρησιμοποιήσετε την εντολή unset:

$ echo $greeting
hey
$ unset greeting
$ echo $greeting
Note

Η εντολή unset απαιτεί το όνομα της μεταβλητής ως όρισμα. Επομένως, δεν μπορείτε να προσθέσετε $ στο όνομα, καθώς αυτό θα επιλύσει τη μεταβλητή και θα περάσει την τιμή της μεταβλητής στην εντολή unset αντί για το όνομα της μεταβλητής.

Εργασία με Καθολικές [Global] Μεταβλητές

Για να κάνετε μια μεταβλητή διαθέσιμη σε subprocesses, μετατρέψτε την από τοπική σε μεταβλητή περιβάλλοντος. Αυτό γίνεται με την εντολή export. Όταν καλείται με το όνομα της μεταβλητής, αυτή η μεταβλητή προστίθεται στο περιβάλλον του shell:

$ greeting=hello
$ export greeting
Note

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

Ένας ευκολότερος τρόπος δημιουργίας της μεταβλητής περιβάλλοντος είναι ο συνδυασμός και των δύο παραπάνω μεθόδων, αναθέτοντας την τιμή της μεταβλητής στο τμήμα ορίσματος της εντολής.

$ export greeting=hey

Ας ελέγξουμε ξανά εάν η μεταβλητή είναι προσβάσιμη σε subprocesses:

$ export greeting=hey
$ echo $greeting world
hey world
$ bash -c 'echo $greeting world'
hey world

Ένας άλλος τρόπος χρήσης μεταβλητών περιβάλλοντος είναι η χρήση τους μπροστά από εντολές. Μπορούμε να το δοκιμάσουμε με τη μεταβλητή περιβάλλοντος TZ που διατηρεί τη ζώνη ώρας. Αυτή η μεταβλητή χρησιμοποιείται από την εντολή date για να καθορίσει ποια ζώνη ώρας θα παρουσιάσει:

$ TZ=EST date
Thu 31 Jan 10:07:35 EST 2019
$ TZ=GMT date
Thu 31 Jan 15:07:35 GMT 2019

Μπορείτε να εμφανίσετε όλες τις μεταβλητές περιβάλλοντος χρησιμοποιώντας την εντολή env.

Η Μεταβλητή PATH

Η μεταβλητή PATH είναι μία από τις σημαντικότερες μεταβλητές περιβάλλοντος σε ένα σύστημα Linux. Αποθηκεύει μια λίστα καταλόγων, χωρισμένων με άνω και κάτω τελεία, που περιέχουν εκτελέσιμα προγράμματα που είναι κατάλληλα ως εντολές από το Linux shell.

$ echo $PATH
/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Για να προσθέσετε έναν νέο κατάλογο στη μεταβλητή, θα χρειαστεί να χρησιμοποιήσετε το σύμβολο άνω και κάτω τελεία (:).

$ PATH=$PATH:new_directory

Εδώ ένα παράδειγμα:

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$ PATH=$PATH:/home/user/bin
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/user/bin

Όπως βλέπετε, το $PATH χρησιμοποιείται στη νέα τιμή που έχει ανατεθεί στο`PATH`. Αυτή η μεταβλητή αναλύεται κατά την εκτέλεση της εντολής και διασφαλίζει ότι διατηρείται το αρχικό περιεχόμενο της μεταβλητής. Φυσικά, μπορείτε να χρησιμοποιήσετε και άλλες μεταβλητές στην ανάθεση:

$ mybin=/opt/bin
$ PATH=$PATH:$mybin
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/user/bin:/opt/bin
Η μεταβλητή PATH πρέπει να αντιμετωπίζεται με προσοχή, καθώς είναι ζωτικής σημασίας για την εργασία στη γραμμή εντολών. Ας εξετάσουμε την ακόλουθη μεταβλητή PATH
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Για να μάθετε πώς το shell καλεί μια συγκεκριμένη εντολή, η εντολή which μπορεί να εκτελεστεί με όρισμα το όνομα της εντολής. Μπορούμε, για παράδειγμα, να προσπαθήσουμε να μάθουμε πού αποθηκεύεται το nano:

$ which nano
/usr/bin/nano

Όπως φαίνεται, το εκτελέσιμο nano βρίσκεται μέσα στον κατάλογο /usr/bin. Ας αφαιρέσουμε τον κατάλογο από τη μεταβλητή και να ελέγξουμε αν η εντολή εξακολουθεί να λειτουργεί:

$ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin:/usr/games
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin:/usr/games

Ας αναζητήσουμε ξανά την εντολή nano:

$ which nano
which: no nano in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin:/usr/games)

Όπως φαίνεται, η εντολή δεν βρίσκεται, επομένως δεν εκτελείται. Το μήνυμα σφάλματος εξηγεί επίσης τον λόγο για τον οποίο η εντολή δεν βρέθηκε και σε ποιες τοποθεσίες αναζητήθηκε.

Ας προσθέσουμε ξανά τους καταλόγους και να προσπαθήσουμε να εκτελέσουμε ξανά την εντολή.

$ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$ which nano
/usr/bin/nano

Τώρα η εντολή μας λειτουργεί ξανά.

Tip

Η σειρά των στοιχείων στο PATH ορίζει επίσης τη σειρά αναζήτησης. Εκτελείται το πρώτο εκτελέσιμο που βρέθηκε να ταιριάζει κατά την προσπέλαση των paths.

Καθοδηγούμενες Ασκήσεις

  1. Δημιουργήστε μια τοπική μεταβλητή number.

  2. Δημιουργήστε μια μεταβλητή περιβάλλοντος ORDER, χρησιμοποιώντας μία από τις δύο παραπάνω μεθόδους.

  3. Εμφανίστε τόσο τα ονόματα των μεταβλητών όσο και το περιεχόμενό τους.

  4. Ποια είναι τα πεδία εμβέλειας των μεταβλητών που δημιουργήθηκαν προηγουμένως;

Ασκήσεις Εξερεύνησης

  1. Δημιουργήστε μια τοπική μεταβλητή nr_files και αναθέστε τον αριθμό των γραμμών που βρίσκονται στο αρχείο /etc/passwd. Συμβουλή: Κοιτάξτε την εντολή wc και την υποκατάσταση εντολών και μην ξεχνάτε τα εισαγωγικά.

  2. Δημιουργήστε μια μεταβλητή περιβάλλοντος ME. Αναθέστε την τιμή της μεταβλητής USER σε αυτήν.

  3. Προσθέστε την τιμή της μεταβλητής HOME στο ME, έχοντας ως οριοθέτη το :. Εμφανίστε τα περιεχόμενα της μεταβλητής ME.

  4. Χρησιμοποιώντας το παραπάνω παράδειγμα ημερομηνίας, δημιουργήστε μια μεταβλητή που ονομάζεται today και αναθέστε την ημερομηνία για μία από τις ζώνες ώρας.

  5. Δημιουργήστε μια άλλη μεταβλητή που ονομάζεται today1 και αντιστοιχίστε την ημερομηνία του συστήματος σε αυτήν.

Σύνοψη

Σε αυτό το εργαστήριο μάθατε:

  • Τύποι μεταβλητών

  • Πώς να δημιουργήσετε μεταβλητές

  • Πώς να χειριστείτε μεταβλητές

Εντολές που χρησιμοποιήθηκαν στις ασκήσεις:

env

Εμφάνιση του τρέχοντος περιβάλλοντος.

echo

Έξοδος κειμένου.

export

Κάντε διαθέσιμες τις τοπικές μεταβλητές σε subprocesses.

unset

Καταργήστε μια μεταβλητή.

Απαντήσεις στις Καθοδηγούμενες Ασκήσεις

  1. Δημιουργήστε μια τοπική μεταβλητή number.

    $ number=5
  2. Δημιουργήστε μια μεταβλητή περιβάλλοντος ORDER, χρησιμοποιώντας μία από τις δύο παραπάνω μεθόδους.

    $ export ORDER=desc
  3. Εμφανίστε τόσο τα ονόματα των μεταβλητών όσο και το περιεχόμενό τους.

    $ echo number
    number
    $ echo ORDER
    ORDER
    $ echo $number
    5
    $ echo $ORDER
    desc
  4. Ποια είναι τα πεδία εμβέλειας των μεταβλητών που δημιουργήθηκαν προηγουμένως;

    • Το πεδίο εμβέλειας της τοπικής μεταβλητής number είναι το τρέχον shell μόνο.

    • Το πεδίο εμβέλειας της μεταβλητής περιβάλλοντος ORDER είναι το τρέχον shell και όλα τα subshells που δημιουργήθηκαν απο αυτό.

Απαντήσεις στις Ασκήσεις Εξερεύνησης

  1. Δημιουργήστε μια τοπική μεταβλητή nr_files και αναθέστε τον αριθμό των γραμμών που βρίσκονται στο αρχείο /etc/passwd. Συμβουλή: Κοιτάξτε την εντολή wc και την υποκατάσταση εντολών και μην ξεχνάτε τα εισαγωγικά.

    $ nr_files=`wc -l /etc/passwd`
  2. Δημιουργήστε μια μεταβλητή περιβάλλοντος ME. Αναθέστε την τιμή της μεταβλητής USER σε αυτήν.

    $ export ME=$USER
  3. Προσθέστε την τιμή της μεταβλητής HOME στο ME, έχοντας ως οριοθέτη το :. Εμφανίστε τα περιεχόμενα της μεταβλητής ME.

    $ ME=$ME:$HOME
    $ echo $ME
    user:/home/user
  4. Χρησιμοποιώντας το παραπάνω παράδειγμα ημερομηνίας, δημιουργήστε μια μεταβλητή που ονομάζεται today και αναθέστε την ημερομηνία για μία από τις ζώνες ώρας.

    Τα παρακάτω χρησιμοποιούν τις ζώνες ώρας GMT και EST ως παράδειγμα, αλλά οποιαδήποτε επιλογή ζώνης ώρας είναι έγκυρη.

    $ today=$(TZ=GMT date)
    $ echo $today
    Thu 31 Jan 15:07:35 GMT 2019

    or

    $ today=$(TZ=EST date)
    $ echo $today
    Thu 31 Jan 10:07:35 EST 2019
  5. Δημιουργήστε μια άλλη μεταβλητή που ονομάζεται today1 και αντιστοιχίστε την ημερομηνία του συστήματος σε αυτήν.

    Υποθέτοντας ότι είστε στο GMT:

    $ today1=$(date)
    $ echo $today1
    Thu 31 Jan 10:07:35 EST 2019

Linux Professional Insitute Inc. All rights reserved. Επισκεφθείτε την ιστοσελίδα των Μαθησιακών Υλικών: https://learning.lpi.org
Αυτό το έργο έχει άδεια βάσει της Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Επόμενο Μάθημα

2.2 Χρήση της Γραμμής Εντολών για Λήψη Βοήθειας (2.2 Μάθημα 1)

Διάβασε το επόμενο μάθημα

Linux Professional Insitute Inc. All rights reserved. Επισκεφθείτε την ιστοσελίδα των Μαθησιακών Υλικών: https://learning.lpi.org
Αυτό το έργο έχει άδεια βάσει της Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Το LPI είναι ένας μη κερδοσκοπικός οργανισμός.

© 2023 Το Linux Professional Institute (LPI) είναι το παγκόσμιο πρότυπο πιστοποίησης και οργανισμός υποστήριξης σταδιοδρομίας για επαγγελματίες ανοιχτού κώδικα. Με περισσότερους από 200.000 κατόχους πιστοποίησης, είναι ο πρώτος και μεγαλύτερος στον κόσμο ουδέτερος οργανισμός πιστοποιήσεων Linux και ανοιχτού κώδικα. Το LPI έχει πιστοποιημένους επαγγελματίες σε περισσότερες από 180 χώρες, παραδίδει εξετάσεις σε πολλές γλώσσες και έχει εκατοντάδες συνεργάτες εκπαίδευσης.

Σκοπός μας είναι να επιτρέψουμε σε όλους οικονομικές και δημιουργικές ευκαιρίες καθιστώντας καθολικά προσβάσιμη την πιστοποίηση γνώσεων και δεξιοτήτων ανοιχτού κώδικα.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Επικοινωνήστε Μαζί Μας
  • Πολιτική Απορρήτου και Πολιτική Cookie

Εντοπίσατε ένα λάθος ή θέλετε να βοηθήσετε στη βελτίωση αυτής της σελίδας; Παρακαλούμε ενημερώστε μας.

© 1999–2023 The Linux Professional Institute Inc. All rights reserved.