$\newcommand{\Prob}[1]{{{\mathbb{P}}\left[{#1}\right]}}$ $\newcommand{\Mean}[1]{{{\mathbb{E}}\left[{#1}\right]}}$ $\newcommand{\Cov}{{\mathrm{Cov}}}$ $\newcommand{\Set}[1]{{\left\{{#1}\right\}}}$ $\newcommand{\PP}{{\mathbb P}}$ $\newcommand{\RR}{{\mathbb R}}$ $\newcommand{\CC}{{\mathbb C}}$ $\newcommand{\ZZ}{{\mathbb Z}}$ $\newcommand{\NN}{{\mathbb N}}$ $\newcommand{\TT}{{\mathbb T}}$ $\newcommand{\QQ}{{\mathbb Q}}$ $\newcommand{\One}[1]{{\bf 1}\left(#1\right)}$ $\newcommand{\one}{{\bf 1}}$ $\newcommand{\Ds}{\displaystyle}$

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ   -   ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ
ΕΦΑΡΜ. ΜΑΘΗΜΑΤΙΚΩΝ

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ι   -   ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2015-16

2. Πρώτη άσκηση στο εργαστήριο

Μιχάλης Κολουντζάκης

Φθινόπωρο 2015-16

Προκαταρκτικά

Ανοίξτε ένα τερματικό (terminal) στο οποίο να μπορείτε να δίνετε εντολές (command line). Από τα συστήματα του εργαστηρίου αυτό γίνεται είτε πατώντας Control-Alt-t (τα τρία αυτά πλήκτρα ταυτόχρονα) είτε από το γραφικό περιβάλλον (graphical interface) όπως φαίνεται στις παρακάτω εικόνες:



Άσκηση

Δώστε τις παρακάτω δύο εντολές:

cd
cp -r ~math0000/kolount/lab1 .
Η πρώτη εντολή σας πηγαίνει στην κορυφή της περιοχής σας και η δεύτερη αντιγράφει το directory με όνομα lab1 από το directory ~math0000/kolount (αυτό είναι το directory kolount στην περιοχή του χρήστη math0000) στον κατάλογό σας.

Η εντολή ls πρέπει τώρα να σας δείχνει τον κατάλογο lab1.

Στη δεύτερη εντολή παραπάνω η τελεία (.) αποτελεί κομμάτι της εντολής και δεν είναι σημείο στίξης του κειμένου. Θα πρέπει να συμπεριλάβετε την τελεία στην εντολή σας για να τρέξει σωστά. Η τελεία σε αυτή την περίπτωση αντιπροσωπεύει τον κατάλογο προορισμού (destination directory) για την εντολή αντιγραφής cp.

⦿ Δώστε την εντολή

du -b lab1
Η εντολή αυτή μας αναφέρει το πόσα bytes (εξ ου και το option -b) χώρο καταλαμβάνει ο κατάλογος (directory) lab1 και όλοι οι υποκατάλογοί του.

Πόσα bytes καταλαμβάνει το directory lab1/d2;

E1:     

⦿ Δώστε την εντολή

cd lab1/d1
ls
ώστε να μεταβείτε στον κατάλογο lab1/d1 και να ελέγξετε πόσα αρχεία και καταλόγους περιέχει. Πόσα ονόματα αρχείων ή καταλόγων βλέπετε;

E2:     

⦿ Υπάρχει ένα αρχείο κειμένου με όνομα a.txt στον τρέχοντα κατάλογο. Θα πρέπει τώρα να δώσετε μια εντολή ώστε να δημιουργήσετε ένα αντίγραφο του a.txt με όνομα b.txt στον ίδιο κατάλογο. Θα χρησιμοποιήσετε την εντολή cp με κατάλληλες παραμέτρους.

Αφού το κάνετε αυτό δώστε την εντολή

ls -l
Πόσα bytes καταλαμβάνει το αρχείο b.txt;

E3:     

⦿ Τώρα σβήστε το αρχείο a.txt χρησιμοποιώντας την εντολή rm με τον κατάλληλο τρόπο. Δώστε έπειτα τις εντολές

cd
ls lab1/d1
Πόσα αρχεία βλέπετε;

E4:     

⦿ Ο κατάλογος lab1 περιέχει ένα υποκατάλογο d2. Μεταβείτε εκεί δίνοντας τις κατάλληλες εντολές cd. Μέσα στον κατάλογο d2 υπάρχει το αρχείο κειμένου alice.txt. Συμπληρώστε κατάλληλα την παρακάτω εντολή ώστε να μετρήσετε σε πόσες γραμμές του κειμένου αυτού εμφανίζεται η λέξη Rabbit.

cat alice.txt | grep ... | wc ...
(Συμπληρώστε κατάλληλα όπου βλέπετε ...) Πόσες φορές εμφανίζεται η λέξη αυτή στο κείμενο;

E5:     

⦿ Συμπληρώστε κατάλληλα την παρακάτω εντολή ώστε να μετρήσετε σε πόσες γραμμές του αρχείου alice.txt εμφανίζεται η λέξη Alice και η λέξη Rabbit (ταυτόχρονα).

cat alice.txt | grep ... | grep ... | wc ...
Πόσες φορές;

E6:     

Αν κάπου κολλήσετε και έχετε κάνει λάθη με αποτέλεσμα η δομή του καταλόγου lab1 να έχει πειραχτεί και να μη μπορείτε πλέον να τρέξετε τις εντολές με το σωστό αποτέλεσμα, τότε το καλύτερο είναι να ξεκινήσετε από την αρχή. Για να το κάνετε αυτό μεταβείτε (με την εντολή cd) στον κατάλογο που περιέχει τον κατάλογο lab1 και δώστε την εντολή

rm -r lab1
η οποία διαγράφει τον κατάλογο lab1 και μπορείτε πλέον να ξεκινήσετε ξανά την άσκηση από την αρχή.