Δομή εντολών

Εικόνα: markos
Submitted by markos on Κυρ, 04/03/2007 - 20:07

Οι περισσότερες εντολές (ενδογενείς ή μη) προσφέρουν κάποιον τρόπο παραμετροποίησης, ώστε το αποτέλεσμα της εκτέλεσής τους να προσαρμόζεται κάθε φορά στις ανάγκες του χρήστη. Ένας τρόπος παραμετροποίησης είναι με αρχείο ρυθμίσεων – που συνήθως βρίσκεται στον κατάλογο /etc. Ένας άλλος, πιο άμεσος τρόπος παραμετροποίησης, είναι στην γραμμή εντολών κατά την εισαγωγή της εντολής. Ας πάρουμε για παράδειγμα την εντολή παρουσίασης των περιεχομένων καταλόγου, ls (list).

Η εντολή ls από μόνη της επιστρέφει τα περιεχόμενα ενός καταλόγου.

feanor@silmaril:/$ ls
bin   cdrom  etc     home    lib        mnt   proc   sbin   usr   vmlinuz
boot  dev    floppy  initrd  lost+found opt   root   tmp    var

Αν στην εντολή ls δώσετε την επιλογή -l, το αποτέλεσμα θα είναι αρκετά πιο λεπτομερές:

feanor@silmaril:/$ ls -l
total 56
drwxr-xr-x    2 root     root         2048 2003-06-09 16:36 bin
drwxr-xr-x    2 root     root         1024 2003-05-23 09:29 boot
drwxr-xr-x    2 root     root         1024 2002-12-23 11:13 cdrom
drwxr-xr-x    1 root     root            0 2002-12-23 02:00 dev
drwxr-xr-x  111 root     root         6144 2003-06-11 16:37 etc
drwxr-xr-x    2 root     root         1024 2002-12-23 11:13 floppy
drwxr-xr-x    9 root     root         4096 2003-06-04 16:32 home
drwxr-xr-x    2 root     root         1024 2001-12-19 19:08 initrd
drwxr-xr-x    5 root     root         4096 2003-06-09 16:36 lib
drwx------    3 root     root        12288 2002-12-23 11:03 lost+found
drwxr-xr-x    4 root     root         1024 2003-05-15 14:27 mnt
drwxr-xr-x    2 root     root         1024 2001-12-19 19:08 opt
dr-xr-xr-x  134 root     root            0 2003-06-11 16:08 proc
drwxr-xr-x   29 root     root         2048 2003-06-10 15:28 root
drwxr-xr-x    2 root     root         4096 2003-06-09 16:36 sbin
drwxrwxrwt   10 root     root          300 2003-06-11 16:11 tmp
drwxr-xr-x   16 root     root         4096 2003-06-06 11:58 usr
drwxr-xr-x   16 root     root         4096 2003-05-19 14:28 var
lrwxrwxrwx    1 root     root           19 2002-12-23 11:14 vmlinuz -> boot/vmlinuz-2.4.20

Με την προσθήκη της επιλογής -t, η ταξινόμηση γίνεται τώρα χρονικά:

feanor@silmaril:/$ ls -lt
total 56
drwxr-xr-x  111 root     root         6144 2003-06-11 16:37 etc
drwxrwxrwt   10 root     root          300 2003-06-11 16:11 tmp
dr-xr-xr-x  134 root     root            0 2003-06-11 16:08 proc
drwxr-xr-x   29 root     root         2048 2003-06-10 15:28 root
drwxr-xr-x    5 root     root         4096 2003-06-09 16:36 lib
drwxr-xr-x    2 root     root         2048 2003-06-09 16:36 bin
drwxr-xr-x    2 root     root         4096 2003-06-09 16:36 sbin
drwxr-xr-x   16 root     root         4096 2003-06-06 11:58 usr
drwxr-xr-x    9 root     root         4096 2003-06-04 16:32 home
drwxr-xr-x    2 root     root         1024 2003-05-23 09:29 boot
drwxr-xr-x   16 root     root         4096 2003-05-19 14:28 var
drwxr-xr-x    4 root     root         1024 2003-05-15 14:27 mnt
lrwxrwxrwx    1 root     root           19 2002-12-23 11:14 vmlinuz -> boot/vmlinuz-2.4.20
drwxr-xr-x    2 root     root         1024 2002-12-23 11:13 cdrom
drwxr-xr-x    2 root     root         1024 2002-12-23 11:13 floppy
drwx------    3 root     root        12288 2002-12-23 11:03 lost+found
drwxr-xr-x    2 root     root         1024 2001-12-19 19:08 initrd
drwxr-xr-x    2 root     root         1024 2001-12-19 19:08 opt
drwxr-xr-x    1 root     root            0 2002-12-23 02:00 dev

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

Η εισαγωγή επιλογών στην γραμμή εντολών γίνεται πάντοτε μετά την εντολή και με δύο διαφορετικές μορφές, αναλόγως την εντολή: μία σύντομη μορφή (που αναγνωρίζεται με τη μονή παύλα “-”) και μια αναλυτική (με δύο παύλες “--”). Οι περισσότερες εντολές δέχονται και τις δύο μορφές αλλά δεν είναι πάντα βέβαιο ότι για κάθε αναλυτική μορφή θα υπάρχει και μια σύντομη ή αντίστροφα. Για παράδειγμα, στην εντολή ls, η επιλογή -l δεν έχει αναλυτική μορφή, ενώ η -s έχει (--size).

Οι περισσότερες εντολές παρέχουν μια επιλογή βοηθείας, σχεδόν σίγουρα σε αναλυτική μορφή (--help) αλλά συχνά και σε σύντομη μορφή (-h). Με την επιλογή βοηθείας, εμφανίζονται αναλυτικές οδηγίες όσον αφορά τη σύνταξη της εντολής και των επιλογών της. Έτσι, για την ls ισχύει:

$ ls --help

0
Your rating: None