Monday 14 January 2008

Linux Terminal - Μάθημα 3ο - Πλοήγηση στο συστημα αρχειων

Εντολές του κελύφους για πλοήγηση στο συστήμα αρχείων

  • pwd : pwd [-PL]

    Η εντολή pwd, τυπώνει των τρέχων κατάλογο που εργαζόμαστε. Με το όρισμα -P τυπώνει τον φυσικό κατάλογο χωρίς συμβολίκες συντομεύσεις. Ενώ με το όρισμα -L ακολουθεί και τις συμβολίκες σύντομεύσεις.

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

    Παράδείγμα:

        $ pwd   (πατάμε enter) 
    /home/username
  • cd : cd [-PL] dir

    Η εντολή cd αλλάζει τον τρέχων κατάλογο στον κατάλογο με το όνομα dir. Η μεταβλητή $HOME είναι ο προεπιλεγμένος τρέχων κατάλογος, αν δεν δώσουμε ορίσματα. Αν δώσουμε για κατάλογο την . τότε εννοούμε τον τρέχων κατάλογο, αν δώσουμε για κατάλογο .. τότε εννοούμε τον προηγούμενο στην ιεραρχία κατάλογο, ενώ με / εννοούμε τον κατάλογο root.

    Το όρισμα -P λέει στην εντόλη να ακολουθήσει την δομή του φυσικού καταλόγου, ενώ με το όρισμα -L αναγκάζει την εντόλη να ακολουθήσει τις συμβολίκες συντομεύσεις.

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

    Παραδείγματα:

        $ cd / (μας πάει στην κορύφη του δέντρου)
    $ cd home (μας πάει στον κατάλογο /home)
    $ cd username (μας πάει στον κατάλογο /home/username)
    $ cd /mnt/cdrom (μας πάει στον κατάλογο /mnt/cdrom)
    $ cd ../floppy (μας πάει στον κατάλογο /mnt/floppy)
    κτλ
  • dirs : dirs [-clpv] [+N|-N]

    Εμφανίζει την λίστα με τους καταλόγους που έχουν απομνημονευθεί. Οι κατάλογοι τοποθετούνται σε αυτή τη λίστα με την εντόλη pushd και πηγαίνουμε σε αυτούς με την εντολή popd.

    Το όρισμα -l προσδιορίζει οτι η εντόλη δεν θα πρέπει να τυπώσει συντμημένα τα όνοματα των καταλόγων που βρίσκονται σε σχετική θέση με τον κατάλογο /home/username. Αυτό σημαίνει οτι αντί για ~/tmp θα τυπώσει /home/username/tmp.
    Με το όρισμα -v η εντολή dirs τυπώνει τον σωρό των καταλόγων γραμμή-γραμμή και πριν από καθέ γραμμή υπάρχει ένα νούμερο που προσδιορίζει τη θέση του καταλόγου στο σωρό.
    Το όρισμα -p κάνει το ίδιο με το -v, αλλά δεν τύπωνει το νούμερο της θέση του καταλόγου στο σωρό.
    Το όρισμα -c σβήνει τα περιεχόμενα το σώρου των καταλόγων.

    Το +Ν εμφανίζει την Νιοστή είσοδο στην λίστα θεωρώντας την αρχή της λίστας ως το μηδέν στοιχείο. Το -Ν εμφανίζει την Νιοστή είσοδο στη λίστα θεωρώντας το τέλος της λίστας ως το μηδέν στοιχείο.

  • popd : popd [+N|-N] [-n]

    Αφαιρεί εισόδους από τον σωρό καταλόγων. Χωρίς ορίσματα αφαιρεί τον πρώτο κατάλογο από τον σώρο και αλλάζει τον τρέχων κατάλογο σε αυτόν.

    To +N αφαιρεί τον Νιοστό κατάλογο της σωρού, θεωρώντας την αρχή του σωρού ως το μηδέν στοιχείο. Το -Ν αφαιρεί τον Νιοστό κατάλογο της σωρού, θεωρώντας το τέλος του σωρού ως το μηδέν στοιχείο.

    To όρισμα -n αποτρέπει την αλλάγη του καταλόγου σε αυτόν που αφαιρέθηκε απο τον σωρό, αλλά τον αφαίρει από το λίστα.
    Η λίστα αυτή είναι ορατή με την εντόλη dirs

  • pushd : pushd [dir|+N|-N] [-n]

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

    Το +Ν αλλάζει την θέση στα στοιχεία του σωρού, ώστε ο Νιοστος κατάλογος από αρίστερα να είναι στην κορυφή. Το -Ν αλλάζει την θέση στα στοιχεία του σωρού, ώστε ο Νιοστος κατάλογος από δεξία να είναι στην κορυφή.

    Το όρισμα -n προκαλεί την μη αλλάγη καταλόγου όταν προσθέτουμε στοιχεία στον σωρό καταλόγων.

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

    Παραδείγματα:

        $pwd
    /home/user/
    $pushd tmp
    $pwd
    /home/user/tmp/
    $cd /mnt
    $dirs
    ~tmp
    $dirs -l
    /home/user/tmp
    $pwd
    /mnt/
    $popd
    $pwd
    /home/user/tmp

Για να δούμε τα περιεχόμενα των φακέλων ---> εντολή ls

H ls είναι εξωτερίκη εντόλη και σκοπός της είναι να τυπώσει πληροφορίες σχετίκα με τα αρχεία. Οπως βλεπετε εχει αρκετα ορισματα:

  -a, --all                  εμφάνιση και των κρυφών αρχείων (κρύφα είναι τα αρχεία που αρχίζουν με .)
-A, --almost-all εμφανίση και των κρυφών αρχείων αλλα οχι των καταλόγων . και ..
-b, --escape εκτύπωση των οκταδικών κωδικών για τους μη εκτυπώσιμους χαρακτήρες
--block-size=Ν χρήση blocks μεγέθους Ν Bytes
-B, --ignore-backups Μην εμφανίσεις αρχεία που τελείωνουν με ~
-c με το -lt: ταξινόμησε κάτα, και δείξε, την ώρα που αλλάξε για τελευταία φορά το αρχείο.
με το -l: δείξε την ώρα που άλλαξε το αρχείο αλλά ταξινόμησε κατά όνομα
αλλίως: ταξινόμησε σύμφωνα με την ώρα που άλλαξε για τελευταία φορά το αρχείο
-C Δείξε τα αρχεία κάτα στήλες
--color[=Πότε?] Έλεγχος για το αν θα εμφανιστεί χρώμα για διαφορετικούς τύπούς αρχείων
Το Πότε? μπορεί να είναι `never'(ποτέ), `always'(πάντα), ή `auto'(αυτόματα)
-d, --directory Λίστα με τους κατάλογους αντί τα περιεχόμενα
-D, --dired Δημιούργησε έξοδο ειδική για Emacs' dired mode
-f Μην ταξινομήσεις, ενεργοποίησε -aU, απενεργοποίησε -lst
-F, --classify κατέταξε (με κάτι από τα */=@|) τα αρχεία
--format=ΛΕΞΗ οπου ΛΕΞΗ: across -x, commas -m, horizontal -x, long -l,
single-column -1, verbose -l, vertical -C
--full-time Δείξε την πλήρη ώρα και ημερομηνία
-g (αγνοείται)
-G, --no-group Μη δείξεις πληροφορίες για το group
-h, --human-readable Τύπωσε τα νούμερα σε ΚΒ,ΜΒ,GB,TB ... (πχ 1K 234M 2G)
--si ομοίως αλλά με δυνάμεις του 1000 και όχι του 1024
-H ίδιο με το `--si' για τώρα όμως σύντομα θα αλλάξει για να ικανοποιήσει το POSIX
--indicator-style=ΛΕΞΗ Βάλε δείκτη με στυλ τη ΛΕΞΗ στα ονόματα:
none (προεπιλογή), classify (-F), file-type (-p)
-i, --inode Τυπώσε των δείκτη κόμβου για κάθε αρχείο
-I, --ignore=Σχεδιο Μη τυπώσεις τα αρχεία που ακολουθούν το "Σχεδίο".
-k, --kilobytes οπώς --block-size=1024
-l Τύπωσε αναλυτικό κατάλογο
-L, --dereference Τύπωσε τα αρχεία με το συμβολίκο τους σύνδεσμο
-m Γεμίσε το πλάτος με είσοδους χωριζόμενες με ,
-n, --numeric-uid-gid Τυπώσε τα νουμερα UID και GID αντι για ονόμα χρήστη και ομάδα
-N, --literal Τύπωσε τα ονόματα αρχείων ως έχουν (μη χειριστείς πχ τους χαρακτηρες ^ διαφορετικά)
-o Τύπωσε αναλυτικό κατάλογο αλλά χωρις πληροφορίες για την ομάδα
-p, --file-type κατέταξε (με κάτι από τα */=@|) τα αρχεία
-q, --hide-control-chars τύπωσε ? αντι για μη τυπώσιμους χαρακτήρες
--show-control-chars δείξε τους μη γραφικούς χαρακτήρες ως έχουν (προεπιλεγμένο)
-Q, --quote-name Βαλέ τα ονόματα σε "
--quoting-style=ΛΕΞΗ χρησιμοποίησε για στυλ τη ΛΕΞΗ για τα όνοματα:
literal, locale, shell, shell-always, c, escape
-r, --reverse Ανάστρεψε τη σείρα ταξινόμησης
-R, --recursive Δείξε τους υποκαταλόγους αναδρομίκα
-s, --size Τύπωσε το μέγεθος των αρχέιών σε Blocks
-S Ταξινόμησε κατα μέγεθος αρχείου,
--sort=ΛΕΞΗ κατά τυπο ΛΕΞΗ extension -X, none -U, size -S, time -t, version -v
status -c, time -t, atime -u, access -u, use -u
--time=ΛΕΞΗ Δείξε την ωρα βαση της ΛΕΞΗ αντί της ώρας αλλάγης:
atime, access, use, ctime ή status; χρησιμοποίσε
την δωσμένη ώρα ως κλειδί ταξινόμησης αν --sort=ΩΡΑ
-t Ταξινόμησε βάση της ώρας που άλλαξε το αρχείο
-T, --tabsize=ΣΤΗΛΕΣ Τα διαστήματα όσα οι ΣΤΗΛΕΣ και όχι 8
-u με -lt: ταξίνομησε κατά, και δείξε, την ώρα πρόσβασης
με -l: δείξε την ώρα πρόσβασης και ταξίνομησε κάτα όνομα
αλλίως: ταξινόμησε κάτα ώρα πρόσβασης
-U μη ταξινομήσεις; τύπωσε απλά τα αρχεία
-v ταξινόμηση κατά έκδοση
-w, --width=ΣΤΗΛΕΣ Θεώρησε οτι η οθόνη έχει πλατός ΣΤΗΛΕΣ αντι για το προεπιλεγμένο
-x Δείξε τα αρχεία κατά γραμμές αντί για στήλες
-X Ταξινομήσε αλφαβητίκα βάση προέκτασης
-1 Δείξε ένα αρχείο κατά γραμμή
--help η λίστα με τις παραμέτρους (στα αγγλίκα βέβαια)
--version Τυπωσε την εκδοση του ls

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

$ls

financial analysis/ jeniffer.jpeg journal@ personal data/ tmp/


$ls -l

total 8
drwxrwxr-x 2 spyros spyros 1024 Jan 7 11:53 financial analysis/
-rw-rw-r-- 1 spyros spyros 4508 Jan 1 2001 jeniffer.jpeg
lrwxrwxrwx 1 spyros spyros 24 Oct 16 2000 journal -> personal data/my journal
drwxrwxr-x 2 spyros spyros 1024 Jan 11 12:01 personal data/
drwx------ 2 spyros spyros 1024 Jan 11 12:02 tmp/

$ls -la

total 18
drwx------ 5 spyros spyros 1024 Jan 11 12:01 ./
drwxr-xr-x 4 root root 1024 Dec 7 15:55 ../
-rw-r--r-- 1 spyros spyros 24 Dec 7 15:55 .bash_logout
-rw-r--r-- 1 spyros spyros 191 Dec 7 15:55 .bash_profile
-rw-r--r-- 1 spyros spyros 124 Dec 7 15:55 .bashrc
drwxrwxr-x 2 spyros spyros 1024 Jan 7 11:53 financial analysis/
-rw-rw-r-- 1 spyros spyros 4508 Jan 1 2001 jeniffer.jpeg
lrwxrwxrwx 1 spyros spyros 24 Oct 16 2000 journal -> personal data/my journal
-rw-r--r-- 1 spyros spyros 141 Dec 7 15:55 .mailcap
drwxrwxr-x 2 spyros spyros 1024 Jan 11 12:01 personal data/
-rw-r--r-- 1 spyros spyros 3511 Dec 7 15:55 .screenrc
drwx------ 2 spyros spyros 1024 Jan 11 12:02 tmp/

$ls -Rl

.:
total 8
drwxrwxr-x 2 spyros spyros 1024 Jan 11 11:53 financial analysis/
-rw-rw-r-- 1 spyros spyros 4508 Jan 1 2001 jeniffer.jpeg
lrwxrwxrwx 1 spyros spyros 24 Oct 16 2000 journal -> personal data/my journal
drwxrwxr-x 2 spyros spyros 1024 Jan 11 12:01 personal data/
drwx------ 2 spyros spyros 1024 Jan 11 12:02 tmp/

./financial analysis:
total 0

./personal data:
total 1
-rw-rw-r-- 1 spyros spyros 222 Oct 16 2000 my journal

./tmp:
total 2
-rw-rw-r-- 1 spyros users 1280 Mar 12 1994 list

Ας εξηγήσουμε όμως τι σημαίνει καθε στοιχείο σε μια γραμμή του καταλόγου:

(Τμήμα 1) (Τμήμα 2) (Τμήμα 3) (Τμήμα 4) (Τμήμα 5) (Τμήμα 6)
-rw-rw-r-- 1 spyros users 1280 Mar 12 1994 list


Τμήμα 2: Το όνομα του χρήστη στον οποίο ανήκει το αρχείο.

Τμήμα 3: Το όνομα της ομάδας χρήστων που ανήκει το αρχείο.

Τμήμα 1: Τα δικαίωματα χρήσης του αρχείου.

A B C
-rwx rwx rwx

To r σημαίνει δικαίωμα ανάγνωσης, το w δικαίωμα εγγραφής και το x δικαίωμα εκτέλεσης.
Η περίοχη Α δείχνει τα δικαιώματα του χρήστη, η περιοχή Β τα δικαίωματα της ομάδας, και
η περιοχή C τα δικαίωματα ολών των αλλών πάνω στο αρχείο αυτό.

Έτσι στο παραδείγμα μας, το -rw-rw-r-- σημαίνει οτι ο χρήστης spyros που του ανήκει το
αρχείο μπορεί να το διαβάσει και να γράψει σε αυτό. Οι χρήστες στην ίδια όμαδα με αυτόν
οι users, μπορούν να διαβάσουν το αρχείο και να γράψουν σε αυτό, Ενώ όλοι οι υπολοίποι
χρήστες μπορούν μόνο να το διαβάσουν.

Τμήμα 4: Το μέγεθος του αρχείου σε bytes.

Τμήμα 5: Η ημερομήνια που άλλαξε για τελευταία φορά το αρχείο.

Τμήμα 6: Το όνομα του αρχείου.

Στο επομενο μαθημα θα συνεχισουμε με τις εντολες για εργασια στο συστημα αρχειων...

Keywords: Linux Commands, Terminal, Shell, Commands, Syntax, Tips n Tricks, Terminal Series,
permissions, ls, pwd, dirs, cd, popd, pushd

No comments: