Επαναληπτικές Ασκήσεις Δημιουργήστε ένα φάκελο test, κάτω από το home directory του χρήστη (~). ~ test z1 z2 z3 z4 z5 z6 z7 a1.txt a2.txt a3.txt a4.txt Σχήμα 1 1. Μέσα στον test, δημιουργείστε με χρἠση μιας μόνο εντολής τους φακέλους z1 έως z7. mkdir z1 z2 z3 z1/z4 z3/z5 z3/z6 z3/z7 2. Από τον φάκελο z7 δημιουργείστε στον φάκελο z7 ένα αρχείο με όνομα a4.txt. touch a4.txt 3. Από τον φάκελο z7 δημιουργείστε στον φάκελο z5 ένα αρχείο με όνομα a3.txt. Χρησιμοποιείστε το σχετικό μονοπάτι. touch../z5/a3.txt 4. Από τον φάκελο z7 δημιουργείστε στον φάκελο z4 δύο αρχεία με ονόματα a1.txt και a2.txt. Χρησιμοποιείστε απόλυτα μονοπάτια. touch ~/test/z1/z4/a1.txt ~/test/z1/z4/a2.txt 5. Πηγαίνετε στον φάκελο test και επαληθεύστε ότι έχετε δημιουργήσει το σωστό σχήμα. Ποια εντολή θα δώσετε; ls -lr
6. Από τον φάκελο z7 αντιγράψτε τα αρχεία a1.txt και a3.txt στον φάκελο z2. cp ~/test/z1/z4/a1.txt../z5/a3.txt ~/test/z2 7. Από τον φάκελο z7 μετακινείστε όλα τα αρχεία του τύπου.txt του φακέλου z2, στον φάκελο z7. mv ~/test/z2/*.txt. 8. Πόσο χώρο (σε KB) καταλαμβάνουν τα περιεχόμενα του καταλόγου z3 και των υποκαταλόγων του. Δώστε αναλυτικά το χώρο ανά κατάλογο και το συνολικό στο τέλος. Ποια εντολή χρησιμοποιήσατε; du h Ποιά η εντολή μόνο για το συνολικό χώρο? du s 9. Με εντολές (και όχι την χρήση κάποιου editor) βάλτε μέσα στο αρχείο a4.txt τις προτάσεις: Metron ariston. O kyvos errifthei. Sofon to safes. Aei o theos o megas gewmetrei 3,14159 echo Metron ariston. >> a4.txt echo O kyvos errifthei. >> a4.txt echo Sofon to safes. >> a4.txt echo Aei o theos o megas gewmetrei 3,14159 >> a4.txt 10. Δημιουργήστε στον φάκελο z7 ένα σύνδεσμο (link) προς το αρχείο a4.txt, με το όνομα a4link.txt ln s a4.txt a4link.txt 11. Εκτελέστε ξανά τις εντολές για το χώρο που καταλαμβάνει ο κατάλογος z3. Άλλαξε κάτι; Εξηγήστε το. Τώρα πλέον το a4.txt καταλαμβάνει 4Κ αντί για 0. Tο a4link.txt καταλαμβάνει 0Κ. 12. Από τον φάκελο z7 διαγράψτε όλα τα αρχεία και τους υποκαταλόγους του z1. rm -rf ~/test/z1/*
13. Δώσε την εντολή που εμφανίζει πόσους φακέλους περιέχει συνολικά ο φάκελος test. ls lr grep ^d wc l 14. Εμφάνισε τους 10 πιο παλιούς φακέλους μέσα στο φάκελο var. ls lt /var grep ^d tail -10 15. Πόσες φορές εμφανίζεται η λέξη o στο αρχείο a4.txt? (ανεξάρτητα αν είναι με κεφαλαία ή όχι) grep -owi o a4.txt wc -w 16. Εμφάνισε τις γραμμές του a4.txt που δεν περιέχουν το γράμμα k (να φαίνεται και ο αύξων αριθμός της γραμμής). grep -vn k a4.txt 17. Εμφάνισε τις γραμμές του a4.txt ταξινιομημένες αλφαβητικά. sort a4.txt 18. Από τον φάκελο z7, βρες ποια αρχεία στο φάκελο /var είναι μικρότερα από 10 ΚΒ. Ότι μηνύματα λάθους προκύψουν, να γραφτούν σε ένα errror.log sto z7. Αν τα αποτελέσματα είναι πολλά, τότε να εκτυπώνονται σελίδα σελίδα. find /var -size -10k 2>error.log more 19. Στον φάκελο z7 δημιουργήστε 2 κρυφά αρχεία με ότι ονόματα θέλετε. touch.h1.h2 20. Εμφανίστε πόσα κρυφά αρχεία περιέχει ο φάκελος z7. ls -ld.* grep ^- wc -l
ΣΥΜΠΙΕΣΗ ΚΑΙ ΔΙΚΑΙΩΜΑΤΑ ΧΡΗΣΗΣ 1. Συνένωσε όλους τους φακέλους και τα αρχεία του test σε ένα test.tar αρχείο, και αποθηκεύστε το στον home φάκελο του χρήστη. tar cf test.tar test 2. Έλεγξε αν υπάρχει αρχείο με το όνομα a3.txt μέσα στο test.tar. tar tf test.tar egrep a3\.txt$ 3. Συμπίεσε το αρχείο test.tar. gzip test.tar 4. Τι δικαιώματα έχουν οι χρήστες του αρχείου a4.txt; Δώστε την εντολή και παράλληλα συμπληρώστε τα δικαιώματα για κάθε χρήστη στου αρχείου Χρήστης Ομάδα Υπόλοιποι χρήστες ls l Χρήστης Ομάδα Υπόλοιποι χρήστες Ανάγνωση Ανάγνωση Ανάγνωση Εγγραφή Εγγραφή - - - - 5. Αλλάξτε με χρήση αριθμών τα δικαιώματα του αρχείου a4.txt ώστε όλοι οι χρήστες να έχουν δικαίωμα μόνο ανάγνωσης. chmod 444 a4.txt 6. Αλλάξτε με χρήση συμβόλων τα δικαιώματα του αρχείου a4.txt ώστε όλοι οι χρήστες να έχουν δικαίωμα μόνο ανάγνωσης. chmod a=r a4.txt 7. Αλλάξτε με χρήση αριθμών τα δικαιώματα του αρχείου a4.txt και προσθέστε μόνο στην ομάδα επιπλέον δικαίωμα εκτέλεσης. chmod 454 a4.txt 8. Αλλάξτε με χρήση συμβόλων τα δικαιώματα του αρχείου a4.txt και προσθέστε στον χρήστη επιπλέον δικαίωμα εκτέλεσης και στην ομάδα επιπλέον δικαίωμα εγγραφής. chmod u+x,g+w a4.txt
ΜΕΤΑΒΛΗΤΕΣ - ΦΛΟΙΟΣ 1. Ορίστε μία μεταβλητή περιβάλλοντος με όνομα WORD για την εφαρμογή κειμένου με Path : /usr/bin/vim export EDITOR=/usr/bin/vim 2. Ορίστε μία τοπική μεταβλητή με όνομα SN στην οποία δώστε ως τιμή το επίθετο σας με λατινικούς χαρακτήρες. Τυπώστε το περιεχόμενο της μεταβλητής στην οθόνη. SN=Christodoulou echo $SN 3. Δημιουργήστε ένα πρόγραμμα μέσα στον φάκελο z7, με το όνομα: progr.sh, το οποίο να κάνει τα εξής: a. Να ελέγχει αν υπάρχει η μεταβλητή περιβάλλοντος SN. Αν δεν υπάρχει, να εμφανίζει σχετικό μήνυμα, αλλιώς να εμφανίζει την τιμή της μεταβλητής. b. Να ελέγχει αν υπάρχει το αρχείο a4.txt. Αν δεν υπάρχει, να εμφανίζει σχετικό μήνυμα, αλλιώς να εμφανίζει τα περιεχόμενα του αρχείου. c. Να δημιουργεί ένα αρχείο που το όνομά του να είναι ότι το loginname του χρήστη, μετά να έχει μια παύλα, στη συνέχεια το τρέχων έτος και στη συνέχεια.txt. Π.χ. αν το login name του χρήστη είναι cied, να δημιουργεί το αρχείο cied-2015.txt. if [ -z $SN ]; then echo Den yparxei i metavliti perivallontos SN else echo SN=$SN fi if [ -f a4.txt ]; then echo TA PERIEXOMENA TOY ARXEIOU a4.txt cat a4.txt else echo Den yparxei to arxeio a4.txt fi touch $LOGNAME-`date +%Y`.txt
4. Να βρείτε από το αρχείο /etc/passwd και να εμφανίσετε όλους τους χρήστες που ανήκουν σε κάποιο group που ανήκει ο τρέχων χρήστης. my_groups=`groups` #echo $my_groups num_of_groups=`groups wc -w` #echo $num_of_groups i=1 while [ $i -le $num_of_groups ]; do agroup=`echo $my_groups cut -d ' ' -f $i` agroupnum=`cat /etc/group egrep "^$agroup:" cut -d: -f3` u=`cat /etc/passwd egrep "^.+:x:[0-9]+:$agroupnum:" cut -d: -f1` if [ $u <> ' ' ]; then echo $u fi #i=`expr $i + 1` i=$[$i+1] done