4.7.2 Διαχείριση αρχείων σε περιβάλλον CLI (Command line Interface)
4.7.2 Διαχείριση αρχείων σε περιβάλλον CLI (Command line Interface)
Η εντολή εμφάνισης του τρέχοντος καταλόγου εργασίας είναι η pwd (print working directory).
Το αποτέλεσμα /home/user εδώ είναι το ονομαζόμενο home directory και αποτελεί τον κατάλογο που τοποθετείται ο χρήστης user κατά την είσοδό του στο σύστημα.
Το αποτέλεσμα της pwd είναι ένα μονοπάτι που ξεκινά από τη ρίζα "/" και καταλήγει στο τρέχοντα κατάλογο.
Λίστα αρχείων - καταλόγων
Για να δούμε τι υπάρχει στον τρέχοντα κατάλογο χρησιμοποιούμε την εντολή ls (list).
Παρατηρούμε
ότι η εντολή ls εμφάνισε ορισμένα (9) αρχεία.
Δεν είναι σαφές όμως αν τα αρχεία αυτά είναι κανονικά αρχεία, ειδικά αρχεία ή
κατάλογοι. Αυτό θα το δείξει η εντολή ls με την
παράμετρο l (long).
Εικόνα 4.7.4 - Αποτέλεσμα της εντολής ls -l
Παρατηρούμε ότι τώρα βρέθηκαν 36 αρχεία. Τα αρχεία αυτά δεν εμφανίζονται όλα γιατί η εντολή υπολογίζει και αυτά που υπάρχουν μέσα σε καταλόγους.
Κάθε γραμμή που εμφανίζεται αντιστοιχεί σε αν αρχείο. Το πρώτο γράμμα - σύμβολο κάθε γραμμής χαρακτηρίζει το είδος του αρχείου. Αν είναι το "d" τότε το αρχείο είναι κατάλογος (directory), Αν είναι η παύλα "-" τότε το αρχείο είναι ένα κανονικό αρχείο (π.χ αρχείο κειμένου, αρχείο της python κ.λπ). Αν είναι κάποιο άλλο γράμμα τότε πρόκειται για κάποιο ειδικό αρχείο (αρχείο συσκευής κ.α)
Μετά από το πρώτο γράμμα κάθε γραμμής ακολουθούν 9 χαρακτήρες που καθορίζουν τα δικαιώματα του αρχείου. Τα δικαιώματα αυτά θα αναπτυχθούν στην επόμενη ενότητα.
Υπάρχουν επίσης και τα λεγόμενα "κρυφά" αρχεία τα οποία είναι αρχεία που τα χρησιμοποιεί το σύστημα και δεν θα ήθελε να τα "πειράζουν" οι χρήστες. Στο Linux κρυφά αρχεία είναι εκείνα που το όνομά τους αρχίζει από τελεία.
Το κρυφά αρχεία μπορούμε να τα εμφανίσουμε αν μαζί με την ls χρησιμοποιήσουμε την παράμετρο a (all). Αν θέλουμε και πλήρεις πληροφορίες τότε χρησιμοποιούμε την εντολή ls -al :
Εικόνα 4.7.5 - Αποτέλεσμα της εντολής ls -al
Παρατηρούμε ότι τα αρχεία αυξήθηκαν σε 100.
Όταν αναφερόμαστε σε ιδιότητες αρχείων (file attributes) αναφερόμαστε στα μεταδεδομένα (meta-data) τα οποία το σύστημα διατηρεί για κάθε αρχείο και κατάλογο. Αυτές οι ιδιότητες μπορούν να περικλείουν πληροφορίες όπως αν ένα αρχείο είναι ορατό (visible) ή κρυφό (hidden), αν μπορεί είναι τροποποιήσιμο (modifiable) ή όχι κ.α. Στη συνέχεια θα κάνουμε εκτενέστερη αναφορά στις ιδιότητες των αρχείων σε περιβάλλοντα Linux υπενθυμίζοντας ότι μερικές από τις ιδιότητες αρχείων στα Windows είναι:
- Κρυφό (Hidden)
- Read-only
- Compressed
- Encrypted
- Directory
Ιδιότητες αρχείων στο Linux
Στα λειτουργικά συστήματα που προέρχονται από Unix κάθε αρχείο έχει τη δική του κατάσταση (mode) Η κατάστασή του εκφράζει τα δικαιώματα που έχουν οι χρήστες του συστήματος σε αυτό. Τα δικαιώματα είναι τρία τα εξής:
- Δικαίωμα ανάγνωσης (r - read): Ο κάτοχος μπορεί να διαβάσει το αρχείο (να δει τα περιεχόμενα του).
- Δικαίωμα εγγραφής (w - write): Ο κάτοχος μπορεί να γράψει (να επεξεργαστεί) το αρχείο.
- Δικαίωμα εκτέλεσης (x - execute): Ο κάτοχος μπορεί να εκτελέσει το αρχείο.
Οι χρήστες του συστήματος ως προς ένα αρχείο του χωρίζονται σε τρείς κατηγορίες
- Ιδιοκτήτης (owner): Συνήθως είναι ο χρήστης που δημιούργησε το αρχείο.
- Ομάδα (group): Η ομάδα χρηστών στην οποία ανήκει ο κάτοχος του αρχείου
- Υπόλοιποι (others): Οι υπόλοιποι χρήστες που δεν ανήκουν σε μια από τις δύο προηγούμενες κατηγορίες.
Τα δικαιώματα αυτά εμφανίζονται στο αρχείο /etc/passwd στη αρχή της γραμμής κάθε χρήστη. Για παράδειγμα η γραμμή του αρχείου Desktop (από την εικόνα 4.7.4 της εκτέλεσης της εντολής ls -l) είναι:
Έχει αναφερθεί ότι ο πρώτο χαρακτήρας "d" της γραμμής δείχνει ότι το αρχείο είναι ένα κατάλογος.
Οι επόμενοι τρείς χαρακτήρες "rwx" δείχνουν ότι ο ιδιοκτήτης (owner) έχει δικαίωμα ανάγνωσης, εγγραφής και εκτέλεσης (έχει όλα τα δικαιώματα).
Οι επόμενοι τρείς χαρακτήρες "r-x" δείχνουν ότι η ομάδα του ιδιοκτήτη έχει δικαίωμα ανάγνωσης και εκτέλεσης αλλά όχι δικαίωμα εγγραφής (λείπει το "w").
Οι επόμενοι τρείς χαρακτήρες "r-x" δείχνουν ότι και οι υπόλοιποι χρήστες έχουν δικαίωμα ανάγνωσης και εκτέλεσης αλλά όχι δικαίωμα εγγραφής (λείπει το "w").
![]() |
Για εκτελέσιμα αρχεία μπορούν να καθοριστούν ειδικά δικαιώματα που διαφοροποιούν το δικαίωμα εκτέλεσης. Τα δικαιώματα αυτά αναφέρονται με τα ονόματα setuid, setgid και sticky bit. Η παρουσίαση αυτών των δικαιωμάτων ξεφεύγει από το σκοπό του βιβλίου. |
Δημιουργία ενός αρχείου
Ο κλασικός τρόπος δημιουργίας ενός αρχείου είναι μέσω ενός συντάκτη κειμένου. Στο ubuntu ο εξ ορισμού συντάκτης που χρησιμοποιεί είναι ο nano.
Τέλος μπορούμε να δημιουργήσουμε "στιγμιαία" ένα κενό αρχείο με την εντολή touch:
$ touch testfile
|
Υπάρχει όμως η δυνατότητα "γρήγορης" δημιουργίας ενός αρχείου μέσω της εντολής cat. Η εντολή cat χρησιμοποιείται συνήθως για την εμφάνιση των περιεχομένων ενός αρχείου (χωρίς δυνατότητα επεξεργασίας) στην οθόνη. Για παράδειγμα η εντολή: $ cat names.txt Θα εμφανίζει τα περιεχόμενα του αρχείου names.txt. Στην πράξη η cat παίρνει κάτι σαν είσοδο και το εμφανίζει σε μια έξοδο. Στην παραπάνω περίπτωση η είσοδος ήταν το αρχείο names.txt και η έξοδος δεν είχε οριστεί άρα το εμφανίζει στην προκαθορισμένη έξοδο που είναι η οθόνη. Η προκαθορισμένη είσοδος είναι το πληκτρολόγιο. Άρα τι θα συμβεί αν δώσουμε την εντολή $ cat >names2.txt Στην περίπτωση αυτή καθορίζουμε την έξοδο (με το >) στο αρχείο names2.txt αλλά δεν έχουμε καθορίσει την είσοδο. ¨Έτσι η εντολή θα θεωρήσει ότι η είσοδος είναι το πληκτρολόγιο. Πρακτικά αυτό σημαίνει πως ότι γράφουμε πληκτρολογούμε θα εισάγεται στο αρχείο names2.txt. Για τον τερματισμό της εισαγωγής θα πρέπει να πιεστεί ο συνδυασμός CTRL + D.. |
Υλοποιήστε τη δραστηριότητα 4.7.3
Δημιουργία καταλόγου
Για να δημιουργήσουμε ένα κατάλογο (μέσα στον τρέχοντα κατάλογο που βρισκόμαστε) η εντολή είναι η mkdir (make directory). Έτσι η εντολή:
$ mkdir sounds
Θα δημιουργήσει τον (υπο) κατάλογο sounds. Αν ο κατάλογος που βρισκόμαστε είναι ο /home/Giannis o sounds θα έχει διεύθυνση (path) /home/Giannis/sounds.
Διαγραφή αρχείων και καταλόγων
Προσοχή: Η διαγραφή αρχείων και καταλόγων μπορεί να αποδειχθεί μια πολύ επικίνδυνη εργασία γιατί μπορείτε κατά λάθος να διαγράψετε όλα τα αρχεία σας. Για το λόγο αυτό θέλει ιδιαίτερη προσοχή το τι ακριβώς διαγράφουμε.
Η εντολή διαγραφής αρχείων και καταλόγων είναι η rm (remove). Έτσι η εντολή:
$ rm test1
Θα διαγράψει το test1 είτε αυτό είναι αρχείο είτε είναι κατάλογος.
Αν το test1 είναι κατάλογος για να διαγραφεί θα πρέπει να βρισκόμαστε στον γονικό του κατάλογο (πάνω από αυτόν και φυσικά όχι μέσα σε αυτόν)
Ειδικά για καταλόγους υπάρχει η εντολή διαγραφής rmdir (remove directory). Δηλαδή θα μπορούσαμε να γράψουμε
$ rmdir testdir
Στην περίπτωση αυτή ο κατάλογος testdir θα διαγραφόταν μόνο αν ήταν κενός. Συνεπώς rmdir χρησιμοποιείται μόνο για τη διαγραφή κενών καταλόγων και για το λόγο αυτό έχει αδρανήσει η χρήση της rmdir.
