Εισαγωγή στο Λειτουργικό Σύστημα UNIX & GNU/Linux

Βασικες εντολές διαχείρισης αρχείων & directories

Εντολές

1.pwd - print working directory
Εμφανίζει το directory στο οποίο βρισκόμαστε. Για παράδειγμα:
# pwd
/home/john/test

2.cd - change directory
Με την εντολή cd αλλάζουμε directory.

Σύνταξη εντολής:
cd [directory]

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

cd χωρίς κανένα όρισμα, μεταφέρει τον χρήστη το home directory του
cd / μεταφέρει τον χρήστη στο root directory
cd .. μεταφέρει τον χρήστη ένα directory πιο πάνω από αυτό που βρίσκεται
cd ../.. μεταφέρει τον χρήστη δύο directories πιο πάνω από αυτό που βρίσκεται
cd /usr/tmp μεταφέρει τον χρήστη στο directory με απόλυτο path /usr/tmp
cd share/lib μεταφέρει τον χρήστη στο directory share/lib (το οποίο δεν γράφεται εδώ σαν relative path άρα προΰποθέτει ότι το share/lib βρίσκεται κάτω από το directory στο που βρίσκεται ήδη ο χρήστης)
cd ~john/papers μεταφέρει τον χρήστη στο directory με όνομα papers που βρίσκεται κάτω από το home directory του χρήστη john (ο συμβολισμός "~john" μεταφράζεται από το σύστημα σαν το home directory του χρήστη με username john

3.mkdir - make directory
mkdir - make directory

Σύνταξη εντολής:
mkdir [παράμετροι] directory

-p δημιουργεί το directory και μαζί τα parent directories αν δεν υπάρχουν
-m mode δημιουργεί το directory και δίνει τα permissions που ορίζονται με το mode

Παραδείγματα:
# mkdir /home/test
# mkdir -p test1/test2/test3

4.rmdir - remove directory
Σβήνει ένα directory με την προϋπόθεση ότι είναι άδειο
# rmdir test
# rmdir /home/test/test1

5.ls - list directory contents
Δείχνει τα περιεχόμενα ενός directory και μαί ότι στοιχεία ζητηθούν από τις παραμέτρους της.

Σύνταξη εντολής:
ls [παράμετροι] [όρισμα]

Χρήσιμες παράμετροι:

-a δείχνει όλα τα αρχεία και τα directories που υπάρχουν μέσα σε ένα directory.
-d δείχνει μόνο τα ονόματα των directories και όχι τα αρχεία μέσα στο directory
-F   εμφανίζει για κάποιους τύπους αρχείων ένα σύμβολο στο τέλος του ονόματός τους που δείχνει τον τύπο του αρχείου:
directories /
sockets =
symbolic links @
executables *
-g εμφανίζει το group στο οποίο ανήκει το αρχείο
-I δείχνει τα περιεχόμενα του directory αναλυτικά
-t σε συνδυασμό με την παράμετρο "-l" ταξινομεί την λίστα με τα περιεχόμενα του directory κατά χρονολογική σειρά

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

debug linux-2.4 misc fedora share

#ls -a
. debug linux-2.4 misc fedora share
.. share      

#ls -la
drwx-sr-x 5 workshop acs 512 Jun 7 11:12 .
drwx-xr-x 6 root sys 512 May 20 09:59 ..
-rwx------ 1 workshop acs 532 May 20 15:31 .cshrc
-rw------- 1 workshop acs 525 May 27 21:29 .emacs
-rwx--xr-x 1 workshop acs 49 May 15 09:44 demofiles
-rwx--x--x 1 workshop acs 413 May 21 23:52 program10
drwx-xr-x 3 workshop acs 512 May 29 11:18 jerry

6.cp - copy
Η εντολή cp δημιουργεί αντιγράφει αρχεία ή directories

Σύνταξη εντολής:
# cp [παράμετροι] [argument]

Χρήσιμες παράμετροι:

-i   (interactive mode) περιμένει για επιβεβαίωση των ενεργειών της από το χρήστη πριν να εκτελέσει οτιδήποτε
-r αντιγράφει ένα directory δημιουργώντας αντίγραφα και από directories που ίσως υπάρχουν μέσα σε αυτό, διατηρώντας την αρχική δομή

Παραδείγματα:
# cp old_filename new_filename

7.mv - move
Η εντολή mv μετακινεί αρχεία ή directories

Σύνταξη εντολής:
# mv [παράμετροι] [argument]

Χρήσιμες παράμετροι:

-i   (interactive mode) περιμένει για επιβεβαίωση των ενεργειών της από το χρήστη πριν να εκτελέσει οτιδήποτε
-f μετακινεί το αρχείο ή το directory ακόμα και αν χρειαστεί να γράψει πάνω σε αρχείο που υπάρχει ήδη

Παραδείγματα:
# mv old_filename new_filename

8.rm - remove
Η εντολή rm σβήνει αρχεία ή directories

Σύνταξη εντολής:
# rm [παράμετροι] [argument]

Χρήσιμες παράμετροι:

-i   περιμένει για επιβεβαίωση πριν να εκτελέσει την μετακίνηση
-r σβήνει ένα directory, αφού πρώτα σβήσει και τα περιεχόμενά του
-f σβήνει χωρίς να περιμένει για επιβεβαίωση

Παραδείγματα:
# rm filename
# rm -rf directory_name

9.chmod - change mode
Η εντολή chmod αλλάζει τα permissions ενός αρχείου ή ενός directory. Ένα αρχείο μπορει να έχει τρία δυνατά modes read, write και execute. Το καθένα από αυτά αντιπροσωπεύεται από ένα ακέραιο αριθμό ή ενα γράμμα:

Συμβολισμός με αριθμούς

read 4
write 2
execute 1

Συμβολισμός με χαρακτήρες

read r
write w
execute x

Σύνταξη εντολής:
# chmod mode file

όπου το mode μπορεί να γραφεί είτε με την αριθμητική του μορφή, είτε με τη συμβολική του μορφή. Ο έλεγχος των permissions γίνεται σε επίπεδο χρήστη, ομάδας χρηστών και του συνόλου των χρηστών που υπάρχουν σε ένα σύστημα. Για καθένα από αυτά, ορίζονται οι άδειες για κάθε ένα από τα τρία δυνατά modes (r,w,x). Ο τρόπος με τον οποίο θέτουμε τα permissions είναι ο εξής: αποφασίζουμε για τον χρήστη (u) στον οποίο ανήκει το αρχείο, το group (g) στο οποίο ανήκει το αρχείο και για το σύνολο των χρηστών του συστήματος (o), τι άδειες πρόσβασης θα έχουν για το αρχείο αυτό. Αν θέλουμε ο χρήστης να έχει δυνατόττηα εγγραφης (mode 2), ανάγνωσης (mode 4)και εκτέλεσης (mode 1) του αρχείου, σημαίνει ότι συνολικά για τον χρήστη (u) το mode είναι 7 (2+4+1). Εργαζόμαστε με τη ίδια λογική και για το group (g) και τους υπόλοιπους χρήστες (o). Έτσι, ένα αποδεκτό mode για ένα αρχείο θα ήταν το 744, που σημαίνει, read/write/execute για τον χρήστη, read για το group και read επίσης για τους υπόλοιπους χρήστες. Στην περίπτωση που θέλαμε να χρησιμοποιήσουμε την συμβολική γραφή για τα permissions θα γράφαμε για mode το u=rwx,go=r. Στην περίπτωση που θέλουμε απλά να αλλάξουμε τα permissions προσθέτοντας ή αφαιρώντας άδειες χρήσης, μπορούμε να χρησιμοποιήσουμε τους τελεστές "-" και "+" σε συνδιασμό με το είδος της άδειας που θέλουμε να δώσουμε, δηλαδή ένα mode u-r σημαίνει αφαίρεσε την δυνατότητα ανάγνωσης του αρχείου από τον χρήστη στον οποίο ανήκει αυτό το αρχείο".

Χρήσιμες παράμετροι:

-f   αλλάζει τα permissions χωρίς να περιμένει για επιβεβαίωση
-R αλλάζει τα permissions μέσα σε όλη τη δομή του directory

Παραδείγματα:
Έστω ότι για ένα αρχείο με όνομα file1 θέλουμε να δώσουμε την δυνατότητα ανάγνωσης, εγγραφής και εκτέλεσης για τον χρήστη στον οποίο ανήκει το αρχείο, δυνατότητα ανάγνωσης και εκτέλεσης για το group και μόνο ανάγνωσης για το σύνολο των χρηστών. Αυτό γίνεται ως εξής:
# chmod 754 file1
ή
# chmod u=rwx,g=rx,o=r file1

10.chown - change owner
Η εντολή chown αλλάζει το καθεστός ιδιοκτησίας ενός αρχείου η ενός directory

Σύνταξη εντολής:
# chown [παράμετροι] [argument]

Χρήσιμες παράμετροι:

-R   αλλάζει τον ιδιοκτήτη για όλα τα αρχεία και directories σε όλο το δέντρο

Παραδείγματα:
# chown -R john directory1

11.chgrp - change group
Η εντολή chgrp αλλάζει το group ενός αρχείου η ενός directory

Σύνταξη εντολής:
# chgroup [παράμετροι] [argument]

Χρήσιμες παράμετροι:

-R   αλλάζει το group για όλα τα αρχεία και directories σε όλο το δέντρο

Παραδείγματα:
# chgrp group1 file1

12.echo
Η εντολή echo τυπώνει στην οθόνη το όρισμα που πέρνει

Σύνταξη εντολής:
# echo [όρισμα]

Παραδείγματα:
# echo This is a test
This is a test

13.cat - concatenate files
Με την εντολή cat προβάλλουμε τα περιεχόμενα ενός αρχείου

Σύνταξη εντολής:
# cat filename(s)

Παραδείγματα:
# cat file1 file2 file2

14.more, less, pg
Οι εντολές more, less και pg έχουν παρόμοια λειτουργία με την cat αλλά με την επιπλέον δυνατότητα να εμφανίζουν τμηματικά τα περιεχόμενα των αρχείων.

Σύνταξη εντολής:
# more filename

15.head
Εμφανίζει ένα συγκεκριμένο αριθμό γραμμών από την αρχή ενός αρχείου. Χωρίς όρισμα, εμφανίζει τις 10 πρώτες γραμμές από το αρχείο.

Σύνταξη εντολής:
# head [ορίσματα] filename

Χρήσιμες παράμετροι:

-αριθμός εμφανίζει τόσες γραμμές από την αρχή ενός αρχείου, όσες και ο αριθμός που δίνεται

Παραδείγματα:
# head filename
ή
# head -100 filename

16.tail
Εμφανίζει ένα συγκεκριμένο αριθμό γραμμών από το τέλος ενός αρχείου. Χωρίς όρισμα, εμφανίζει τις τελευταίες 10 γραμμές από το αρχείο.

Σύνταξη εντολής:
# tail [ορίσματα] filename

Χρήσιμες παράμετροι:

-αριθμός εμφανίζει τόσες γραμμές από το τέλος ενός αρχείου, όσες και ο αριθμός που δίνεται

Παραδείγματα:
# tail filename
ή
# tail -100 filename

17.date
Εμφανίζει την ημερομηνία.

Σύνταξη εντολής:
# date [ορίσματα] [+format]

Χρήσιμες παράμετροι:

+format καθορίζει την μορφή με την οποία θέλουμε να εμφανιστεί η ημερομηνία
%a εμφανίζει τα ονόματα των ημερών με συντομογραφία
%h εμφανίζει τα ονόματα των μηνών με συντομογραφία
%j εμφανίζει την ημέρα σαν αριθμό από το 1 μέχρι το 366
%D εμφανίζει την ημερομηνία με την μορφή ΜΗΝΑΣ/ΗΜΕΡΑ/ΕΤΟΣ (MM/DD/YY)
%H εμφανίζει την ώρα σαν αριθμό από το 0 μέχρι το 23
%T εμφανίζει την ώρα σαν ΏΡΑ:ΛΕΠΤΟ:ΔΕΥΤΕΡΟΛΕΠΤΟ (HH:MM:SS)
%y εμφανίζει τα τελευταία δύο ψηφία του έτους

Παραδείγματα:
# date
Sun Sep 12 11:42:52 EEST 2003

# date +%a%t%D
Sun 10/12/03

18.man
Η εντολή man (manual) εμφανίζει στην οθόνη την περιγραφή και οδηγείες σχετικά με κάποια από τις εντολές του συστήματος. Είναι ένας πολύ καλός τρόπος για να μάθει κανείς την χρηση των εντολών του συστήματος.

Σύνταξη εντολής:
# man [παράμετροι] όνομα εντολής ή keyword

Χρήσιμες παράμετροι:

-k   ψάχνει το σύνολο των οδηγιών χρήσης του συστήματος (manual pages) για αναφορές πάνω στην λέξη "κλειδί" που δίνεται

Παραδείγματα:
# man man
(εμφανίζει οδηγείες για την χρήση και τις δυνατότητες της εντολής man)

# man ls
(εμφανίζει οδηγείες για την χρήση και τις δυνατότητες της εντολής ls)

# man -k date
(εμφανίζει τα manual pages μέσα στα οποία εμφανίζεται η λέξη "κλειδί" date)

19.ps
Σε ένα UNIX Λ.Σ όπως έχει αναφερθεί ρητά και στην εισαγωγή μπορούν πολλοί διαφορετικοί χρήστες να εκτελέσουν διεργασίας αναξάρτητα ο ένας από τον άλλο. Με την εντολή ps μπορεί κανείς να δει ποιες διεργασίες έχει εκτελέσει και σε τι κατάσταση βρίσκονται.

Σύνταξη εντολής:
# ps [παράμετροι]

Χρήσιμες παράμετροι:

a   ψάχνει το σύνολο των οδηγιών χρήσης του συστήματος (manual pages) για αναφορές πάνω στην λέξη "κλειδί" που δίνεται
u εμφανίζει τις διεργασίες με βάση τον χρήστη στο οποίο ανήκουν
w εκτενές output
x όλες οι διεργασίας ανεξάρτητα από το αν έχουν ξεκινήσει από τερματικό ή όχι

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

PID TTY TIME CMD
4058 pts/9 00:00:00 tcsh
13665 pts/9 00:00:00 ps

# ps a

PID TTY STAT TIME COMMAND
4147 pts/10 S 0:00 -tcsh
4204 pts/10 S 0:00 su -
4207 pts/10 S 0:00 -csh
4372 pts/12 S 0:01 ssh host10-g09

#ps auxw

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
xfs 3100 0.0 0.9 1356 1104 ? S Oct 10 0:05 xfs -droppriv
daemon 3119 0.0 0.0 1500 604 ? S Oct 10 0:00 /usr/sbin/atd
dbus 3122 0.0 0.0 1864 896 ? R Oct 10 0:00 dbus-daemon
john 4987 0.0 0.0 1024 536 ttyp1 R Oct 10 0:00 /bin/tcsh

20.who
Δείχνει τους χρηστες που είναι συνδεδεμένοι στον υπολογιστή

Σύνταξη εντολής:
# who [am i]

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

wmtell ttyp1 Oct 12 20:15 (apple.acs.ohio-s)
fbwalk ttyp2 Oct 10 23:21 (127.99.25.8)
david ttyp3 Oct 12 22:32 ppp-0a.gwdg-te.munh.de
john ttyp4 Oct 12 21:12 localhost:0

# who am i
john pts/10 Oct 12 17:46

21.last
Εμφανίζει τους τελευταίους χρήστες που έχουν συνδεθεί στον υπολογιστή

Σύνταξη εντολής:
# last

Χρήσιμες παράμετροι:

-αριθμός   το πλήθος των γραμμών που θα εμφανίσει

Παραδείγματα:
# last
ph150 pts/0 frodo.physics.uo Mon Nov 4 10:39 still logged in
ph33xx pts/0 176.92.38.143 Sun Nov 3 16:27 - 16:35 (00:07)
ph33xx pts/0 176.92.38.143 Sun Nov 3 16:22 - 16:23 (00:01)
ph42xx pts/0 46-237-9.adsl.cy Sun Nov 3 13:05 - 13:06 (00:01)
ph42xx pts/0 athedsl-4364761. Sat Nov 2 23:46 - 23:48 (00:02)
ph42xx pts/0 ppp046176083077. Sat Nov 2 18:07 - 18:07 (00:00)
ph42xx pts/0 ppp046176083077. Sat Nov 2 18:03 - 18:06 (00:03)
ph43xx pts/0 178-158-129.dyna Fri Nov 1 17:33 - 17:36 (00:03)
ph42xx pts/0 10.55.52.231 Fri Nov 1 16:09 - 16:28 (00:18)
ph42xx pts/0 10.55.52.231 Fri Nov 1 15:59 - 16:06 (00:07)
ph42xx pts/0 10.55.52.231 Fri Nov 1 14:28 - 15:40 (01:11)

# last -5
ph150 pts/0 frodo.physics.uo Mon Nov 4 10:39 still logged in
ph33xx pts/0 176.92.38.143 Sun Nov 3 16:27 - 16:35 (00:07)
ph33xx pts/0 176.92.38.143 Sun Nov 3 16:22 - 16:23 (00:01)
ph42xx pts/0 46-237-9.adsl.cy Sun Nov 3 13:05 - 13:06 (00:01)
ph42xx pts/0 athedsl-4364761. Sat Nov 2 23:46 - 23:48 (00:02)

22.which
Εμφανίζει το full path μιας εντολής

Σύνταξη εντολής:
# which εντολή

Παραδείγματα:
# which man
/usr/bin/man

23.passwd
Αλλάζει τον κωδικό πρόσβασης (password) ενός χρήστη

Σύνταξη εντολής:
# passwd [username]

Παραδείγματα:
# passwd
Enter old passwd: ********
Enter new passwowd: *********
Confirm new password: ********

24.grep
Πραγματοποιεί αναζήτηση ενός pattern μέσα σε αρχεία και επιστρέφει τις γραμμές που περιέχουν το pattern

Σύνταξη εντολής:
# grep [παράμετροι] pattern

Χρήσιμες παράμετροι:

-l   επιστρέφρει μόνο τα ονόματα των αρχείων που περιέχουν το pattern
-w αναζητεί το pattern σαν να ήταν μια ολόκληρη λέξη και όχι μέρος λέξης

Παραδείγματα:
# grep Text1 filename1
filename1: this is a simple Text1 inside a text file
# grep -l Text1 filename1
filename1

25.find
Πραγματοποιεί αναζήτηση ενός filename μέσα σε ένα ή περισσότερα directories και επιστρέφει το path του directory που βρίσκεται το αρχείο

Σύνταξη εντολής:
# find directory_αναζήτησης -name filename

Παραδείγματα:
# find .mozilla -name Cache
.mozilla/firefox/35swvcp6.default/Cache

26.wc
Μετράει αριθμό γραμμών, λεξεων ή χαρακτήρων

Σύνταξη εντολής:
# wc [παράμετροι] filename

Χρήσιμες παράμετροι:

-w   μετράει λέξεις
-l   μετράει γραμμές

Παραδείγματα:
# wc -l filename1
42 filename1
# wc -w filename1
128 filename1
# ps auwx | wc -l
1032

27.du
Υπολογισμός χώρου που καταλαμβάνεται από αρχεία και directories

Σύνταξη εντολής:
# du [παράμετροι] directory_name

Χρήσιμες παράμετροι:

-s   δίνει το συνολικό μέγεθος του directory

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

Για παράδειγμα,αν έχουμε ένα directory με όνομα sl285 και θέλουμε να δούμε το χώρο που χρησιμοποιείται από το directory αυτό μαζί με ότι άλλο περιέχει (αρχεία ή/και directories) μπορούμε να δώσουμε την εντολή:

#du sl285
25808 sl285/PB
48 sl285/SL285_revC_1101/SL285_IN/SOL/SL285DBMS
64 sl285/SL285_revC_1101/SL285_IN/SOL
48 sl285/SL285_revC_1101/SL285_IN/WIN/SL285DBMS
64 sl285/SL285_revC_1101/SL285_IN/WIN
156 sl285/SL285_revC_1101/SL285_IN
160 sl285/SL285_revC_1101
27212 sl285

Επεξήγηση:
Για κάθε directory που υπάρχει μέσα στο sl285 η du επιστρέφει το μέγεθός του και στο τέλος εμφανίζει το συνολικό μέγεθος του directory sl285. Η μονάδα μέτρησης που χρησιμοποιεί η du εξαρτάται από διάφορους παράγοντες και μπορεί να είναι blocks με 512 bytes το καθένα η blocks με 1024 bytes το καθένα. Στην περίπτωσή μας είναι blocks του 1 KB. Άρα στο συγκεκριμένο παράδειγμα, φαίνεται ότι το directory sl285 καταλαμβάνει συνολικά μαζί με τα περιεχόμενά του χώρο 27 MB περίπου.

28.Ανακατεύθυνση Εξόδου
Οταν δίνουμε μια εντολή από τη γραμμή εντολής, η εντολή στέλνει την έξοδό της, δηλ. το αποτέλεσμα της εκτέλεσής της, στην οθόνη. Μπορούμε, όμως, να ανακατευθύνουμε, δηλ. να στείλουμε αλλού την έξοδο μιας εντολής, όπως σ’ ένα αρχείο. Για να κάνουμε ανακατεύθυνση εξόδου (output redirection), χρησιμοποιούμε το σύμβολο >.

Σύνταξη εντολής:
# εντολή > filename

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

#ls > output.txt
Επεξήγηση:
Η εντολή ls δείχνει στην οθόνη τα περιεχόμενα του τρέχοντος directory. Σε συνδιασμό με το σύμβολο > τα περιεχόμενα του τρέχοντος directory θα αποθηκευτούν σε ένα αρχείο με όνομα output.txt.

#head test.txt > output1.txt
Επεξήγηση:
Η εντολή head δείχνει στην οθόνη τις 10 πρώτες γραμμές του αρχείου test.txt. Σε συνδιασμό με το σύμβολο > οι 10 πρώτες γραμμές του αρχείου test.txt θα αποθηκευτούν σε ένα αρχείο με όνομα output1.txt.

Σημείωση:
Με τον τελεστή >> μπορούμε να προσθέσουμε την έξοδο μιας εντολής στο τέλος ενός αρχείου.