Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI Οκτώβριος 2016 Χ. Αλεξανδράκη
Command Line Interface Τα περισσότερα λειτουργικά συστήματα είναι φτιαγμένα ώστε να παρέχουν δύο περιβάλλοντα για αλληλεπίδραση μετο χρήστη: 1. Με γραφικά- > Γραφική Διεπαφή Χρήστη (Graphical User Interface GUI) 2. Με εντολές -> Διεπαφή Γραμμής Εντολών (Command Line Interface CLI)
Γραφική Διεπαφή Χρήστη (GUI) Η GUI απευθύνεται σε χρήστες που δεν απαιτείται να έχουν ιδιαίτερη κατάρτιση σε θέματα αρχιτεκτονικής ΗΥκαι δομής συστήματος αρχείων Είναι ένας απλοποιημένος τρόπος να εκτελέσει κάποιος απλές διεργασίες στον ΗΥ Η GUI είναι ένας από τους λόγους που ενθάρρυναν την εξάπλωση των ΗΥ, ώστε στις μέρες μας να απαιτείται μηδαμινή εμπειρία για τη χρήση ενός ΗΥ Ο σωστός σχεδιασμός ενός GUI είναι αντικείμενο ενός ξεχωριστού κλάδου της πληροφορικήςπου λέγεται: Επικοινωνία Ανθρώπου-Μηχανής Human Computer Interaction (HCI)
Διεπαφή Γραμμής Εντολών- CLI Η CLI ενός λειτουργικού συστήματος, αν και: Είναι λιγότερο εύχρηστη Απαιτεί κάποια γνώση για την εκτέλεση λειτουργιών στο OS Προσφέρει πολλαπλά πλεονεκτήματα σε σύγκριση με τη GUI, κυρίως για προγραμματιστές και διαχειριστές συστημάτων ΗΥ: Ταχύτητα, καθώς όλα γίνονται από το πληκτρολόγιο και δεν απαιτείται καθόλου ο χειρισμός γραφικών στον ΗΥ Ομαδοποίηση διεργασιών και εκτέλεση τους με μία μόνο εντολή (batch processing)
Εισαγωγικό μέρος Εργαστηρίου Βασικές διεργασίες σε Linux CLI Γιατί CLI: Δε νοείται προγραμματισμός χωρίς να ξέρεις πώς να χειριστείς τολειτουργικό ακόμα και όταν δενυπάρχουν γραφικά Γιατί Linux: Βασίζεται σε ελεύθερο λογισμικό (δεν ανήκει σε κάποια εταιρία) Οι εντολές είναι ίδιες για όλα τα λειτουργικά εκτός αυτά τις Microsoft Παρέχει περισσότερες δυνατότητες χειρισμού του λειτουργικού, είναι πιο ευέλικτο
Εντολή pwd pwd - print name of current/working directory Σας εκτυπώνει το τρέχον directory, δηλαδή το σημείο του file system στο οποίο βρίσκεστε Xrysoula_2@Butterfly ~ $ pwd /home/xrysoula_2 Xrysoula_2@Butterfly ~ $
Εντολή ls ls (list): επιστρέφει μια λίστα με τα περιεχόμενα ενός φακέλου (ή του τρέχοντα φακέλου αν δεν αποσαφηνιστεί) ls l: δίνει περισσότερες πληροφορίες, όπως χρόνο δημιουργίας, ιδιοκτήτης, δικαιώματα κλπ. ls a: δείχνει όλα τα αρχεία (και τα κρυφά αρχεία) ls lh: δείχνει περισσότερες πληροφορίες (-l) και επιπλέον το μέγεθος αρχείων δίνεται σε human readable format
Εντολή cd cd: change directory Υπάρχουν δύο τρόποι πλοήγησης στο σύστημα αρχείων: 1. Με απόλυτη διαδρομή: cd /etc/pango 2. Με σχετική διαδρομή σε σχέση με το τρέχον directory: cd./../../etc/pango
Ειδικά Σύμβολα για την πλοήγηση ~ home directory. current directory / root directory.. parent directory Η εντολή cd όταν δεν ακολουθείται από τίποτα επιστρέφει πάντα στο home directory του χρήστη
Ονόματα Αρχείων και Φακέλων Στα ονόματα αρχείων φακέλων στο LINUX πρέπει να ακολουθείτε τους εξής κανόνες: Επιτρέπονται μόνο οι λατινικοί χαρακτήρες και οι αριθμοί Ποτέ ελληνικά Από Σύμβολα επιτρέπεται μόνο η κάτω παύλα _ και η τελεία. Πρέπει νααρχίζουνμε χαρακτήρα Αποφεύγετε να βάζετε κενά στα ονόματα!!!
Μικρά και κεφαλαία Προσοχή: Στο Linux οι εντολές και τα ονόματα αρχείων και φακέλων είναι case sensitive!!! Xrysoula_2@Butterfly ~ $ Cd /Home -bash: Cd: command not found Xrysoula_2@Butterfly ~ $ cd /Home Xrysoula_2@Butterfly /Home $ cd /home Λάθος Λάθος Σωστό Xrysoula_2@Butterfly /home $
Γρήγορη πληκτρολόγηση στο CLI Βελάκια Μπορούμε να τα χρησιμοποιούμε για να εμφανιστούν εντολές που έχουμε ήδη εκτελέσει στο CLI Tab completion -> Όταν θέλω να γράψω ένα όνομα (είτε αρχείου/φακέλου, είτε εντολής) μπορώ να γράψω τα πρώτα γράμματα και έπειτα να πατήσω tab, οπότε το όνομα αυτό συμπληρώνεται με τα υπόλοιπα γράμματα
Άσκηση 1 Πλοηγηθείτε από το Cygwin στο φάκελο /usr/share/icons/gnome/32x32/emotes Τί αρχεία έχει μέσα?? Επιστρέψτε στο προσωπικό σας home directory, με τέσσερις τρόπους: Με απόλυτη διαδρομή Με σχετική διαδρομή?
Εντολή man man (manual) πληροφορίες για τις εντολές Xρήση: man όνομα_εντολής π.χ. man man, man ls, man cat Με SPACE πάει στην επόμενη σελίδα, με q τερματίζει το man
Εντολές cp, mv cp, mv αντιγραφή(copy), μετακίνηση/μετονομασία(move) cp file1 file2 αντιγράφει το αρχείο file1 στο αρχείο file2, δηλαδή δημιουργεί ένα αρχείο file2 που είναι ένα αντίγραφο του file1. mv file1 file2 αντιγράφει το αρχείο file1 στο αρχείο file2, δηλαδή δημιουργεί ένα αρχείο file2 πού είναι ένα αντίγραφο του file1, αλλά διαγράφει το αρχείο file1, δηλαδή ουσιαστικά μετονομάζει το αρχείο file1 σε file2.
Αναδρομική Αντιγραφή cp r : recursive copy, αντιγράφει φακέλους μαζί με τα περιεχόμενα τους π.χ. cp r folder1 folder2
Εντολή rm rm : remove, διαγραφή αρχείου, π.χ. rm file1 rm r: recursive remove. Διαγράφει φάκελο μαζί με τα περιεχόμενα του Προσοχή!! Φυσικά πρέπει να σημειώσουμε ότι διαγράφεται δεν ανακτάται (τουλάχιστο με εντολές του συστήματος). Ένα κλασσικό παράδειγμα είναι rm -r * που διαγράφει τα πάντα στον τρέχοντα φάκελο και σε όλους τους υποφακέλους (εφόσον έχει τα σχετικά δικαιώματα)
Εντολή mkdir mkdir - Δημιουργία φακέλων (make directory) mkdir folder1 δημιουργεί τον φάκελο folder1
Εντολή rmdir rmdir -διαγράφει έναν φάκελο (που πρέπει να είναι άδειος), π.χ. rmdir folder1 διαγράφει τον φάκελο folder1 Προκειμένου για φακέλους που δεν είναι άδειοι, η εντολή είναι rm -r folder1
Άσκηση 2 Φτιάξτε τη δομή φακέλων που φαίνεται στο σχήμα κάτω από το προσωπικό σας directory Mathimata Programmatismos FysikiKymatiki Theoria Ergasthrio Theoria Ergasthrio Trith2_4 Trith4_6 Paraskeyh10_12