Dr.Paneas

Terminal Browser Tutorial

Recommended Posts

Αρκετός κόσμος φοβάται την χρήση του τερματικού. Όμως πολλές φορές θα είναι ο σωτήρας σας, σε περίπτωση που κάτι θα έχει πάει στραβά. Το πρώτο και πιο βασικό που πρέπει να γνωρίζετε, είναι η εντολή ls (ελ ες) - προέρχεται από την λέξη list - που σας επιτρέπει να βλέπετε τα περιεχόμενα ενός directory.

Για να μεταβείτε σε κάποιο dir χρησιμοποιείται την εντολή cd .

Αλλά όλα αυτά είναι πολύ γενικά. Ας πάμε να εμβαθύνουμε:

Σε αυτό το tutorial θα προσπαθησω να σας μάθω τις βασικές λειτουργίες του shell του Linux. Γνωστό ως bash (Bourne Again Shell). Θα δειξω παραδειγμα έτσι ώστε να μπορείτε να διαβαζετε το κείμενο χωρίς να μπαίνετε στον σκόπο να εκτελείτε τα παραδείγμα που έχω. Παρόλα αυτά σας συνιστώ να το κάνετε, γιατί έτσι θα μάθετε καλύτερα. Πάμε λοιπόν.

Η πρώτη εντολή που θα μάθουμε είναι η εντολή ls (προφέρεται ελ ες - το γράφω γιατι ίσως μερικοί να μπερδεύουν το μικρό l με το κεφαλαίο I τα οποία είναι σχεδόν ίδια το Unix shell) και είναι συντομογραφία της λέξης list. Αν μιλούσαμε αγγλικά, τότε δεν θα ήθελε περεταίρω επεξήγηση το θέμα, γιατί θα ήταν προφανές ότι η ls κάνει list τα δεδομένα. Στα ελληνικά τώρα, η εντολή αυτή δείχνει σε μορφή λίστας τα δεδομένα που υπάρχουν τον καταλόγο που βρισκόμαστε. Για παράδειγμα εγω βρίσκομαι στον φακελο home και θα δωσω τωρα ls. Θα μου εμφανίσει ότι υπάρχει μεσα.

$ ls
amsn_received  Desktop  mailtext.odt  myScripts  none

Μπορείτε να δείτε και περιεχόμενα άλλων φακέλων χωρίς να χρειάζεται να βρίσκεστε ήδη μέσα τους. Πχ εγω ειμαι οπως ειπα και πριν στο home dir, και θελω να δω τα περιεχόμενα το /etc/apt/ .

$ ls /etc/apt
apt.conf.d  secring.gpg  sources.list  sources.list.d  trustdb.gpg  trusted.gpg

Ας υποθέσουμε ότι θέλετε να κάνετε κάτι σαν αναζήτηση. Δηλαδή πχ θελω να μου δείξει η ls μονάχα τα *.odt αρχεία που υπάρχουν μέσα στο home dir μου και τίποτα άλλο άσχετο με αυτα. Βρίσκομαι ήδη στο dir άρα γράφω:

$ ls *.odt
mailtext.odt

Οπως βλεπετε το μονο odt αρχειο που ειχα στο home ηταν το mailtext.odt . Επίσης, πάλι, μπορείτε να κάνετε το ίδιο και για άλλους φακέλους, χωρίς να χρειάζεται να είστε βρίσκεστε σε αυτούς. Πχ έσω ότι θέλω να δω πόσα αρχεία *.conf υπάρχουν μεσα στο καταλογο /etc/X11 .

$ ls /etc/X11/*.conf
/etc/X11/xorg.conf

Το μονο αρχείο που υπάρχει ειναι το xorg.conf . Επίσης, μπορούμε να κάνουμε και το άλλο, να θελουμε να βρούμε όλα τα αρχεία τα οποία έχουν στο όνομά τους, την λέξη πχ config και βρίσκονται στο /boot dir.

$ ls /boot/*config*
/boot/config-2.6.27-10.slh.1-sidux-amd64
/boot/config-2.6.28-0.slh.2-sidux-amd64

Οπως βλεπετε τα παραπανω δυο αρχεία, έχουν μέσα στο όνομά του την λέξη config. Ολη την δουλειά την κάνει αυτός ο αστερίσκος που βάζουμε *. Λέγεται wildmark και ειναι τρομερά καλός για τετοιες χρήσεις της ls.

Ας πάμε τώρα και στις παραμέτρους που παίρνει η ls.

Ας δοκιμασουμε να δούμε τα δεδομένα που είδαμε πριν στο home σε καταγεγραμένα σε στήλες με αλφαβητική σειρά. Αυτο γίνεται χρησιμοποιώντας την παράμετρο -1 (αριθμός ένα) ή αλλιώς γράφοντας ολόκληρη την εντολή --format=single-column .

$ ls -1
amsn_received
Desktop
mailtext.odt
myScripts
none

ή όπως ειπα με ολοκληρο το path

$ ls --format=single-column
amsn_received
Desktop
mailtext.odt
myScripts
none

Τώρα πάμε να δούμε ξανά τα ίδια περιεχόμενα αλλά με κόμμα ανάμεσα τους. Γι αυτό θα κανουμε χρήση της παραμέτρου -m ή αλλιως format=commas .

$ ls -m
amsn_received, Desktop, mailtext.odt, myScripts, none

Τωρα θα μου πειτε, ποιος ο λογος να μπω στον κοπο να βλεπω ενα κομμα. klein mein δηλαδη. Αλλα αν γραφετε ενα script τότε μπορεί πραγματικά να χρειάζεται να είναι χορισμένα με κομμα και τότε είναι που θα με θυμηθείτε (-m απο την λέξη mnemonic).

Πάμε τώρα σε κάτι καινουριο που δεν είδαμε μέχρι τώρα. Τα κρυφά αρχεία. Για να δείτε τα κρυφά αρχεία (που αρχίζουν με μια τελεία μπροστά απο το ονομά τους ) θα κάνετε χρήση της παραμέτρου -a ή αλλιώς -all.

$ ls --all
.              .DCOPserver_pontos__0  .gnupg               myScripts
..             .DCOPserver_pontos_:0  .ICEauthority        none
.adobe         Desktop                .kde                 .openoffice.org2
.amsn          .dmrc                  .kword.autosave.odt  .profile
amsn_received  .elinks                .local               .qt
.bash_history  .fluxbox               .macromedia          .thumbnails
.bash_logout   .fontconfig            mailtext.odt         .viminfo
.bashrc        .gconf                 .mc                  .Xauthority
.config        .gconfd                .mcop                .xsession-errors
.covers        .gnome2                .mcoprc
.dbus          .gnome2_private        .mozilla

πολύ πράγμα τελικά εχω κρυφο στο home ε ; Χεχε, τωρα ομως βλεπουμε τα παντα - κρυφα και ακρυφα. Αν θελετε μονο τα κρυφα δεν εχετε παρα να γράψετε:

$ ls -a .
.              .DCOPserver_pontos__0  .gnupg               myScripts
..             .DCOPserver_pontos_:0  .ICEauthority        none
.adobe         Desktop                .kde                 .openoffice.org2
.amsn          .dmrc                  .kword.autosave.odt  .profile
amsn_received  .elinks                .local               .qt
.bash_history  .fluxbox               .macromedia          .thumbnails
.bash_logout   .fontconfig            mailtext.odt         .viminfo
.bashrc        .gconf                 .mc                  .Xauthority
.config        .gconfd                .mcop                .xsession-errors
.covers        .gnome2                .mcoprc
.dbus          .gnome2_private        .mozilla

Και τώρα κάτι σημαντικό, αν θελετε να δείτε ποια απο αυτα τα αρχεία είναι κατάλογοι, εκτελέσιμα, συντομεύσεις κλπ . . . Δεν έχετε παρα να χρησιμοποιήσετε την παράμετρο -F ή --classify.

Οπου θα πρεπει να ξερετε τον παρακατω πινακα:

Χαρακτήρας Εννοια

* Εκτελέσιμο

/ Κατάλογος

@ Συμβολικός Σύνδεσμος (Συντόμευση)

| FIFO

= Socket

Στο home μου έχω φακέλους. Για να δούμε:

$ ls -F
amsn_received/  Desktop/  mailtext.odt  myScripts/  none/

Στο /bin θα πρέπει να υπάρχουν πολλα εκτελέσιμα αλλά και symbolic links

για να δούμε:

$ ls -F /bin
bash*          dash*           kill*        ping6*       touch*
bunzip2*       date*           ln*          ps*          true*
busybox*       dd*             loadkeys*    pwd*         umount*
bzcat*         df*             login*       rbash@       uname*
bzcmp@         dir*            ls*          readlink*    uncompress*
bzdiff*        dmesg*          lsmod*       rm*          unicode_start*
bzegrep@       dnsdomainname*  mkdir*       rmdir*       vdir*
bzexe*         dumpkeys*       mknod*       rnano@       which*
bzfgrep@       echo*           mktemp*      run-parts*   zcat*
bzgrep*        egrep*          more*        sed*         zcmp*
bzip2*         false*          mount*       setfont*     zdiff*
bzip2recover*  fgconsole*      mountpoint*  setupcon*    zegrep*
bzless@        fgrep*          mt@          sh@          zfgrep*
bzmore*        fuser*          mt-gnu*      sh.distrib@  zforce*
cat*           grep*           mv*          sleep*       zgrep*
chgrp*         gunzip*         nano*        stty*        zless*
chmod*         gzexe*          netstat*     su*          zmore*
chown*         gzip*           open@        sync*        znew*
chvt*          hostname*       openvt*      tailf*
cp*            ip*             pidof@       tar*
cpio*          kbd_mode*       ping*        tempfile*

Αυτος ο τρόπος είναι visual απεικόνιση του τύπου αρχείου. Υπάρχει και ο άλλος τρόπος που γίνεται με το χρωμα. Δηλαδή ανάλογα με το τι χρώμα θα είναι το αρχείο θα ξερουμε τι τύπος είναι. Αυτο γίνεται γράφοντας --color . Θα πρέπει όμως να ξέρετε τον παρακάτω πίνακα:

Χρώμα Εννοια

default shell color Κανονικό Αρχείο

Πράσινο Εκτελέσιμο

Μπλε Κατάλογος

Magenta Symbolic Link

Κίτρινο FIFO

Magenta Socket

Κόκκινο Συμπιεσμένο (tar,zip, deb, rpm)

Magenta Φωτογραφία(jpg,gif,png, tiff)

Magenta Μουσική(mp3,ogg,wav)

Για να δείτε την πληρη λίστα dircolors --print-database(αν και αυτα που γραφω ειναι υπεραρκετα).

Το πιο γαμάτο της υπόθεση είναι να συνδιάσετε την -F με την --color. Εκει αξίζει το θέαμα.

$ ls -F --color
amsn_received/  Desktop/  mailtext.odt  myScripts/  none/

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

$ ls -R
.:
amsn_received  Desktop  mailtext.odt  myScripts  none

./amsn_received:

./Desktop:
konqbrowser.desktop  sidux-irc.desktop     trash.desktop
media.desktop        sidux-manual.desktop

./myScripts:
example1.sh  if.sh    script1.sh  script3.sh  script5.sh
hello.sh     loop.sh  script2.sh  script4.sh  script6.sh

./none:

Οπως βλέπετε, εχουμε 4 φακέλους (amsn_received, Desktop, myScripts, none) και βλέπετε και τα περιέχομενα αυτών. Επίσης αν υπάρχαν και φάκελοι σε αυτους τότε θα τους βλέπατε και αυτούς.

Και τωρα αρχίζουν τα δύσκολα. Μην μασας όμως, τι hardcore geek θα γίνεις αν δεν ξέρεις file δικαίωμαs και ownerships. Χμ ; Η Εντολή που ειναι η πιο συχνή της ls είναι η παράμετρος -l γνωστή και ως --format=long ).

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

$ ls -l
total 52
drwx------ 2 blackslash13 blackslash13  4096 2008-12-28 23:30 amsn_received
drwxr-xr-x 2 blackslash13 blackslash13  4096 2008-12-27 13:00 Desktop
-rw-r--r-- 1 blackslash13 blackslash13 34459 2008-12-29 15:23 mailtext.odt
drwxr-xr-x 2 blackslash13 blackslash13  4096 2008-12-28 23:08 myScripts
drwxr-xr-x 2 root         root          4096 2008-12-27 09:35 none

Ας πάρουμε την "drwx------ 2 blackslash13 blackslash13 4096 2008-12-28 amsn_received"

Κοιτάμε απο Δεξιά προς τα Αριστερά.

Το αρχείο λέγεται amsn_received. Τροποποιήθηκε ή δημιουργήθηκε στις 23:30 τον Δεκέμβριο στις 28, έτους 2008 (2008-12-28). Το μέγεθος που καταλαμβάνει στον δίσκο είναι 4096 bytes. Πιο δίπλα έχουμε τον owner που είναι ο blackslash13(εγώ) και το group (blackslash13) . Αλλα άτομα που ειναι στο group εκτός απο μενα έχουν κ αυτά κάποια πρόσβαση στο αρχείο. Το τελευταίο μέρος ειναι ένας κωδικός μιας σκοτεινής εποχής. Υπάρχουν 10 αλφαριθμητικά εκει, χωρισμενα σε 4 ομάδες.

Πρώτη ομάδα: Ενα γράμμα (εδω ειναι το d)

Δευτερη ομάδα: 3 γράμματα (εδώ είναι rwx)

Τριτη ομάδα: 3 γράμματα (εδώ είναι --- δηλαδη τιποτα)

Τεταρτη ομάδα: 3 γράμματα (εδώ είναι --- δηλαδη παλι τιποτα)

Η πρώτη ομάδα σου λέει για τον τύπο του αρχείου (directory, exacutable κλπ). Το οποίο μπορείς να το δείς και αλλιώς γράφοντας εναν συνδιασμό ls- lF --color . Αλλιώς θα πρέπει να ξερετε τον παρακάτω πίνακα:

Χαρακτήρας Εννοια

- κανονικο αρχειο

- Εκτελέσιμο

d Κατάλογος (directory)

l Συντόμευση (symbolic link)

s Socket

b block device (πχ sda1 κλπ)

c character device

p Named pipe

για να παρετε μια ιδέα κάντε ενα ls -l /dev να δείτε τι παίζει.

$ ls -l /dev
total 0
crw-rw---- 1 root video    10, 175 2008-12-29 16:31 agpgart
crw-rw---- 1 root audio    14,   4 2008-12-29 16:31 audio
drwxr-xr-x 2 root root          80 2008-12-29 16:30 bsg
drwxr-xr-x 3 root root          60 2008-12-29 16:30 bus
lrwxrwxrwx 1 root root           4 2008-12-29 16:30 cdrom -> scd0
lrwxrwxrwx 1 root root           4 2008-12-29 16:30 cdrw -> scd0
crw------- 1 root root      5,   1 2008-12-29 14:31 console
lrwxrwxrwx 1 root root          11 2008-12-29 16:31 core -> /proc/kcore
crw-rw---- 1 root root     10,  63 2008-12-29 16:30 cpu_dma_latency
drwxr-xr-x 6 root root         120 2008-12-29 16:30 disk
drwxr-xr-x 2 root root          60 2008-12-29 14:31 dri
crw-rw---- 1 root audio    14,   3 2008-12-29 16:31 dsp
lrwxrwxrwx 1 root root           4 2008-12-29 16:30 dvd -> scd0
lrwxrwxrwx 1 root root           4 2008-12-29 16:30 dvdrw -> scd0
crw-rw---- 1 root video    29,   0 2008-12-29 16:30 fb0
lrwxrwxrwx 1 root root          13 2008-12-29 16:31 fd -> /proc/self/fd
crw-rw-rw- 1 root root      1,   7 2008-12-29 16:30 full
crw-rw---- 1 root fuse     10, 229 2008-12-29 14:31 fuse
srwxrwxrwx 1 root root           0 2008-12-29 14:31 gpmctl
crw-rw---- 1 root root     10, 228 2008-12-29 16:30 hpet
prw------- 1 root root           0 2008-12-29 16:30 initctl
drwxr-xr-x 3 root root         280 2008-12-29 16:31 input
crw-rw---- 1 root root      1,  11 2008-12-29 16:30 kmsg
srw-rw-rw- 1 root root           0 2008-12-29 14:31 log
brw------- 1 root root      7,   0 2008-12-29 16:31 loop0
lrwxrwxrwx 1 root root          13 2008-12-29 16:31 MAKEDEV -> /sbin/MAKEDEV
drwxr-xr-x 2 root root          60 2008-12-29 16:30 mapper
crw-rw---- 1 root root     10, 227 2008-12-29 16:30 mcelog
crw-r----- 1 root kmem      1,   1 2008-12-29 16:30 mem
crw-rw---- 1 root audio    14,   0 2008-12-29 16:31 mixer
drwxr-xr-x 2 root root          60 2008-12-29 16:31 net
crw-rw---- 1 root root     10,  62 2008-12-29 16:30 network_latency
crw-rw---- 1 root root     10,  61 2008-12-29 16:30 network_throughput
crw-rw-rw- 1 root root      1,   3 2008-12-29 16:30 null
crw-r----- 1 root kmem      1,   4 2008-12-29 16:30 port
crw------- 1 root root    108,   0 2008-12-29 16:31 ppp
crw-rw---- 1 root root     10,   1 2008-12-29 16:30 psaux
crw-rw-rw- 1 root root      5,   2 2008-12-29 16:48 ptmx
drwxr-xr-x 2 root root           0 2008-12-29 16:30 pts
crw-rw-rw- 1 root root      1,   8 2008-12-29 16:30 random
lrwxrwxrwx 1 root root           4 2008-12-29 16:31 root -> sda1
lrwxrwxrwx 1 root root           4 2008-12-29 16:31 rtc -> rtc0
crw-rw---- 1 root audio   252,   0 2008-12-29 16:31 rtc0
brw-rw---- 1 root cdrom    11,   0 2008-12-29 16:30 scd0
brw-rw---- 1 root disk      8,   0 2008-12-29 16:30 sda
brw-rw---- 1 root disk      8,   1 2008-12-29 14:31 sda1
brw-rw---- 1 root disk      8,   2 2008-12-29 16:30 sda2
brw-rw---- 1 root disk      8,   3 2008-12-29 16:30 sda3
crw-rw---- 1 root audio    14,   1 2008-12-29 16:31 sequencer
crw-rw---- 1 root audio    14,   8 2008-12-29 16:31 sequencer2
crw-rw---- 1 root root     21,   0 2008-12-29 16:30 sg0
crw-rw---- 1 root cdrom    21,   1 2008-12-29 16:30 sg1
drwxrwxrwt 3 root root          60 2008-12-29 14:31 shm
crw-rw---- 1 root root     10, 231 2008-12-29 16:30 snapshot
drwxr-xr-x 2 root root         180 2008-12-29 16:31 snd
lrwxrwxrwx 1 root root          24 2008-12-29 16:31 sndstat -> /proc/asound/oss/sndstat
lrwxrwxrwx 1 root root           4 2008-12-29 16:30 sr0 -> scd0
lrwxrwxrwx 1 root root          15 2008-12-29 16:31 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root          15 2008-12-29 16:31 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root          15 2008-12-29 16:31 stdout -> /proc/self/fd/1
crw-rw-rw- 1 root root      5,   0 2008-12-29 16:30 tty
crw-rw---- 1 root root      4,   0 2008-12-29 16:30 tty0
crw------- 1 root root      4,   1 2008-12-29 14:31 tty1
crw-rw---- 1 root root      4,  10 2008-12-29 16:30 tty10
crw-rw---- 1 root root      4,  11 2008-12-29 16:30 tty11
crw-rw---- 1 root root      4,  12 2008-12-29 16:30 tty12
crw-rw---- 1 root root      4,  13 2008-12-29 16:30 tty13
crw-rw---- 1 root root      4,  14 2008-12-29 16:30 tty14
crw-rw---- 1 root root      4,  15 2008-12-29 16:30 tty15
crw-rw---- 1 root root      4,  16 2008-12-29 16:30 tty16
crw-rw---- 1 root root      4,  17 2008-12-29 16:30 tty17
crw-rw---- 1 root root      4,  18 2008-12-29 16:30 tty18
crw-rw---- 1 root root      4,  19 2008-12-29 16:30 tty19
crw------- 1 root root      4,   2 2008-12-29 14:31 tty2
crw-rw---- 1 root root      4,  20 2008-12-29 16:30 tty20
crw-rw---- 1 root root      4,  21 2008-12-29 16:30 tty21
crw-rw---- 1 root root      4,  22 2008-12-29 16:30 tty22
crw-rw---- 1 root root      4,  23 2008-12-29 16:30 tty23
crw-rw---- 1 root root      4,  24 2008-12-29 16:30 tty24
crw-rw---- 1 root root      4,  25 2008-12-29 16:30 tty25
crw-rw---- 1 root root      4,  26 2008-12-29 16:30 tty26
crw-rw---- 1 root root      4,  27 2008-12-29 16:30 tty27
crw-rw---- 1 root root      4,  28 2008-12-29 16:30 tty28
crw-rw---- 1 root root      4,  29 2008-12-29 16:30 tty29
crw------- 1 root root      4,   3 2008-12-29 14:31 tty3
crw-rw---- 1 root root      4,  30 2008-12-29 16:30 tty30
crw-rw---- 1 root root      4,  31 2008-12-29 16:30 tty31
crw-rw---- 1 root root      4,  32 2008-12-29 16:30 tty32
crw-rw---- 1 root root      4,  33 2008-12-29 16:30 tty33
crw-rw---- 1 root root      4,  34 2008-12-29 16:30 tty34
crw-rw---- 1 root root      4,  35 2008-12-29 16:30 tty35
crw-rw---- 1 root root      4,  36 2008-12-29 16:30 tty36
crw-rw---- 1 root root      4,  37 2008-12-29 16:30 tty37
crw-rw---- 1 root root      4,  38 2008-12-29 16:30 tty38
crw-rw---- 1 root root      4,  39 2008-12-29 16:30 tty39
crw------- 1 root root      4,   4 2008-12-29 14:31 tty4
crw-rw---- 1 root root      4,  40 2008-12-29 16:30 tty40
crw-rw---- 1 root root      4,  41 2008-12-29 16:30 tty41
crw-rw---- 1 root root      4,  42 2008-12-29 16:30 tty42
crw-rw---- 1 root root      4,  43 2008-12-29 16:30 tty43
crw-rw---- 1 root root      4,  44 2008-12-29 16:30 tty44
crw-rw---- 1 root root      4,  45 2008-12-29 16:30 tty45
crw-rw---- 1 root root      4,  46 2008-12-29 16:30 tty46
crw-rw---- 1 root root      4,  47 2008-12-29 16:30 tty47
crw-rw---- 1 root root      4,  48 2008-12-29 16:30 tty48
crw-rw---- 1 root root      4,  49 2008-12-29 16:30 tty49
crw------- 1 root root      4,   5 2008-12-29 14:31 tty5
crw-rw---- 1 root root      4,  50 2008-12-29 16:30 tty50
crw-rw---- 1 root root      4,  51 2008-12-29 16:30 tty51
crw-rw---- 1 root root      4,  52 2008-12-29 16:30 tty52
crw-rw---- 1 root root      4,  53 2008-12-29 16:30 tty53
crw-rw---- 1 root root      4,  54 2008-12-29 16:30 tty54
crw-rw---- 1 root root      4,  55 2008-12-29 16:30 tty55
crw-rw---- 1 root root      4,  56 2008-12-29 16:30 tty56
crw-rw---- 1 root root      4,  57 2008-12-29 16:30 tty57
crw-rw---- 1 root root      4,  58 2008-12-29 16:30 tty58
crw-rw---- 1 root root      4,  59 2008-12-29 16:30 tty59
crw------- 1 root root      4,   6 2008-12-29 14:31 tty6
crw-rw---- 1 root root      4,  60 2008-12-29 16:30 tty60
crw-rw---- 1 root root      4,  61 2008-12-29 16:30 tty61
crw-rw---- 1 root root      4,  62 2008-12-29 16:30 tty62
crw-rw---- 1 root root      4,  63 2008-12-29 16:30 tty63
crw-rw---- 1 root root      4,   7 2008-12-29 16:30 tty7
crw-rw---- 1 root root      4,   8 2008-12-29 16:30 tty8
crw-rw---- 1 root root      4,   9 2008-12-29 16:30 tty9
crw-rw---- 1 root dialout   4,  64 2008-12-29 16:30 ttyS0
crw-rw---- 1 root dialout   4,  65 2008-12-29 16:30 ttyS1
crw-rw---- 1 root dialout   4,  66 2008-12-29 16:30 ttyS2
crw-rw---- 1 root dialout   4,  67 2008-12-29 16:30 ttyS3
crw-rw-rw- 1 root root      1,   9 2008-12-29 14:31 urandom
crw-rw---- 1 root root    253,   1 2008-12-29 16:30 usbdev1.1_ep00
crw-rw---- 1 root root    253,   0 2008-12-29 16:30 usbdev1.1_ep81
crw-rw---- 1 root root    253,   3 2008-12-29 16:30 usbdev2.1_ep00
crw-rw---- 1 root root    253,   2 2008-12-29 16:30 usbdev2.1_ep81
crw-rw---- 1 root root    253,  19 2008-12-29 16:30 usbdev2.2_ep00
crw-rw---- 1 root root    253,  14 2008-12-29 16:30 usbdev2.2_ep02
crw-rw---- 1 root root    253,  16 2008-12-29 16:30 usbdev2.2_ep03
crw-rw---- 1 root root    253,  18 2008-12-29 16:30 usbdev2.2_ep04
crw-rw---- 1 root root    253,  12 2008-12-29 16:30 usbdev2.2_ep81
crw-rw---- 1 root root    253,  13 2008-12-29 16:30 usbdev2.2_ep82
crw-rw---- 1 root root    253,  15 2008-12-29 16:30 usbdev2.2_ep83
crw-rw---- 1 root root    253,  17 2008-12-29 16:30 usbdev2.2_ep84
crw-rw---- 1 root root    253,   5 2008-12-29 16:30 usbdev3.1_ep00
crw-rw---- 1 root root    253,   4 2008-12-29 16:30 usbdev3.1_ep81
crw-rw---- 1 root root    253,   7 2008-12-29 16:30 usbdev4.1_ep00
crw-rw---- 1 root root    253,   6 2008-12-29 16:30 usbdev4.1_ep81
crw-rw---- 1 root root    253,   9 2008-12-29 16:30 usbdev5.1_ep00
crw-rw---- 1 root root    253,   8 2008-12-29 16:30 usbdev5.1_ep81
crw-rw---- 1 root root    253,  11 2008-12-29 16:30 usbdev6.1_ep00
crw-rw---- 1 root root    253,  10 2008-12-29 16:30 usbdev6.1_ep81
crw-rw---- 1 root root      7,   0 2008-12-29 16:30 vcs
crw-rw---- 1 root root      7,   1 2008-12-29 16:30 vcs1
crw-rw---- 1 root root      7,   2 2008-12-29 14:31 vcs2
crw-rw---- 1 root root      7,   3 2008-12-29 14:31 vcs3
crw-rw---- 1 root root      7,   4 2008-12-29 14:31 vcs4
crw-rw---- 1 root root      7,   5 2008-12-29 14:31 vcs5
crw-rw---- 1 root root      7,   6 2008-12-29 14:31 vcs6
crw-rw---- 1 root root      7,   7 2008-12-29 14:31 vcs7
crw-rw---- 1 root root      7, 128 2008-12-29 16:30 vcsa
crw-rw---- 1 root root      7, 129 2008-12-29 16:30 vcsa1
crw-rw---- 1 root root      7, 130 2008-12-29 14:31 vcsa2
crw-rw---- 1 root root      7, 131 2008-12-29 14:31 vcsa3
crw-rw---- 1 root root      7, 132 2008-12-29 14:31 vcsa4
crw-rw---- 1 root root      7, 133 2008-12-29 14:31 vcsa5
crw-rw---- 1 root root      7, 134 2008-12-29 14:31 vcsa6
crw-rw---- 1 root root      7, 135 2008-12-29 14:31 vcsa7
crw-rw---- 1 root root     10, 130 2008-12-29 16:31 watchdog
prw-r----- 1 root adm            0 2008-12-29 16:47 xconsole
crw-rw-rw- 1 root root      1,   5 2008-12-29 16:30 zero

Δευτερη ομάδα: rwx

ο owner blackslash13 μπορεί να read , write,eXectute το αρχείο.

Τρίτη Ομάδα: ---

Το group blackslash13 δεν μπορει να κανει τίποτα.

Τεταρτη ομάδα:

Ενας άλλος ξένος δεν μπορεί επίσης να κανει τίποτα

Μια παρατήρηση εδω: Τι σημαίνει execute σε ενα directory (αντε σε αρχειο το καταλαβαινω αλλα σε φακελο ; ). Αυτο σημαίνει να μπορειτε να επεμβείτε σε αρχεια που εχει μεσα πχ να τα σβήσετε κλπ.

Για περισσότερα (υπαρχουν πολλα στο θεμα) για perimissions θα βρειτε στο google.

Ας φύγουμε απο δω και να πάμενα δούμε πως μπορείτε να βλέπετε με ανάποδη σειρα τα δεδομένα (το τελευταίο πρώτο και το πρώτο τελευταίο). Με την παραμετρο -r (μικρο ομως) ή αλλιως --reverse

$ ls
amsn_received  Desktop  mailtext.odt  myScripts  none
$ ls -r
none  myScripts  mailtext.odt  Desktop  amsn_received

Ενα άλλο πολύ σημαντικό που πρέπει να ξέρετε είναι πως θα κατηγοριοποίετε τα δεδομένα. Πχ να βλεπετε ολα μαζι τους φακελου, ολα μαζι τα odt, ολα μαζι τα png κλπ κλπ. Αυτο γίνεται με την παράμετρο -Χ ή αλλιως --sort=extension

Ας κάνουμε εναν συνδιασμο εδω. Θελω να δω χρώμα, να είναι κάθετα , και κατηγοροποιημένα αναλογα με το είδος το οποίο να φαίνται και visual.

$ ls -1FX --color /etc/X11
app-defaults/
default-display-manager
fluxbox/
fonts/
X@
xinit/
xkb/
Xresources/
xserver/
Xsession*
XvMCConfig
xorg.conf
xorg.conf-bu-2008-12-27-18:12:26
Xwrapper.config
Xsession.d/
Xsession.options
rgb.txt

Το χρώμα βοηθάει πολύ στην αμεση αντίληψη των πραγμάτων. Δυστυχως δεν εχω καπου καποιον αλλο φακελο με εικονες κειμενο κλπ για να φανει καλύτερα το παράδειγμα.

Ενας άλλος τρόπος κατηγοριοποίησης των δεδομένων είναι σαφώς η ημερομηνία! Αυτό γίνεται με την παράμετρο -t ή --sort=time . Αν θελετε να βλέπετε καιτην ώρα τότε πρεπει να γράψετε και την εντολή l (long) επειδη μονο σε αυτή φαίνεται η ώρα.

$ ls -t
mailtext.odt  amsn_received  myScripts  Desktop  none
$ ls -lt
total 52
-rw-r--r-- 1 blackslash13 blackslash13 34459 2008-12-29 15:23 mailtext.odt
drwx------ 2 blackslash13 blackslash13  4096 2008-12-28 23:30 amsn_received
drwxr-xr-x 2 blackslash13 blackslash13  4096 2008-12-28 23:08 myScripts
drwxr-xr-x 2 blackslash13 blackslash13  4096 2008-12-27 13:00 Desktop
drwxr-xr-x 2 root         root          4096 2008-12-27 09:35 none

Αν θέλετε να δείτε ανάποδα, με πρώτο το πιο παλιό αρχείο τότε χρησιμοποιήστε και το -r (reverse).

Αλλο σημαντικό είδος κατηγοροποιήσης αν ψάχνετε ενα πολυ μεγάλο ή πολύ μικρό αρχείο είναι αυτός του μεγεθούς. Που γίνετε μέσω της παραμέτρου -S ή --sort=size . Παλι αν θελουμε να βλεπουμε και το μεγεθος τοτε παλι θα κανουμε συνδιασμο με την -l (long)

$ ls -lS /etc/X11
total 80
-rw-r--r-- 1 root root 17394 2008-10-05 21:06 rgb.txt
drwxr-xr-x 2 root root  4096 2008-12-27 20:40 app-defaults
drwxr-xr-x 2 root root  4096 2008-12-29 02:18 fluxbox
drwxr-xr-x 6 root root  4096 2008-12-27 20:40 fonts
drwxr-xr-x 2 root root  4096 2008-12-23 01:06 xinit
drwxr-xr-x 2 root root  4096 2008-12-23 01:02 xkb
drwxr-xr-x 2 root root  4096 2008-12-23 01:00 Xresources
drwxr-xr-x 2 root root  4096 2008-12-23 01:06 xserver
drwxr-xr-x 2 root root  4096 2008-12-27 21:20 Xsession.d
-rwxr-xr-x 1 root root  3517 2008-03-08 06:13 Xsession
-rw-r--r-- 1 root root  1874 2008-12-27 18:12 xorg.conf
-rw-r--r-- 1 root root  1843 2008-12-27 18:12 xorg.conf-bu-2008-12-27-18:12:26
-rw------- 1 root root   614 2008-12-23 01:00 Xwrapper.config
-rw-r--r-- 1 root root   265 2007-02-13 12:02 Xsession.options
-rw-r--r-- 1 root root    13 2008-12-27 09:26 default-display-manager
lrwxrwxrwx 1 root root    13 2008-12-23 01:06 X -> /usr/bin/Xorg
-rw-r--r-- 1 root root    13 2008-12-27 18:12 XvMCConfig

Επειδή όμως κανενας δεν ειναι ανώμαλος να καταλαβαίνει ποσα GB αντιστοιχουν σε bytes κατευθειαν αλλα υστερα απο λιγη σκεψη τοτε σαφως δεν ειναι και πολυ καλος ο τροπος να βλεπουμε μονο σε bytes. Θα το κανουμε λοιπον να φαινεται σε k, M, G, T αναλογα. Με την παράμετρο -h ή --human-readable

$ ls -lhS /etc/X11
total 80K
-rw-r--r-- 1 root root  17K 2008-10-05 21:06 rgb.txt
drwxr-xr-x 2 root root 4.0K 2008-12-27 20:40 app-defaults
drwxr-xr-x 2 root root 4.0K 2008-12-29 02:18 fluxbox
drwxr-xr-x 6 root root 4.0K 2008-12-27 20:40 fonts
drwxr-xr-x 2 root root 4.0K 2008-12-23 01:06 xinit
drwxr-xr-x 2 root root 4.0K 2008-12-23 01:02 xkb
drwxr-xr-x 2 root root 4.0K 2008-12-23 01:00 Xresources
drwxr-xr-x 2 root root 4.0K 2008-12-23 01:06 xserver
drwxr-xr-x 2 root root 4.0K 2008-12-27 21:20 Xsession.d
-rwxr-xr-x 1 root root 3.5K 2008-03-08 06:13 Xsession
-rw-r--r-- 1 root root 1.9K 2008-12-27 18:12 xorg.conf
-rw-r--r-- 1 root root 1.8K 2008-12-27 18:12 xorg.conf-bu-2008-12-27-18:12:26
-rw------- 1 root root  614 2008-12-23 01:00 Xwrapper.config
-rw-r--r-- 1 root root  265 2007-02-13 12:02 Xsession.options
-rw-r--r-- 1 root root   13 2008-12-27 09:26 default-display-manager
lrwxrwxrwx 1 root root   13 2008-12-23 01:06 X -> /usr/bin/Xorg
-rw-r--r-- 1 root root   13 2008-12-27 18:12 XvMCConfig

Αυτα ειχα να σας πω για την εντολη ls. Μπορείτε να πειραματιστείτε και να κάνετε αυτό που σας αρέσει και βγάζεται και λέξεις (πχ ls- faux ή ls -tail ή ls -halF κλπ).

Μπορείτε επίσης να αλλαξετε το ~/.bashrc ώστε οταν πατάτε ls να εκτελείται πχ η ls -F αντί για την απλη ls.

θα γραψετε

alias ls='ls -F'

ή πχ αντι να γραφεται ls- 1F να γράφετε κατευθειαν l1

θα γραψετε τοτε alias l1='ls -1F'

Ελπίζω να βοήθησα να αποκτήσετε μία πιο ολοκληρωμένη εικόνα.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now