Linux Scripting Κεφάλαιο 1 – Eισαγωγή στα Linux και βασικές εντολές
Δημοσιεύτηκε από τον/την codebrakes στις

Linux Scripting
Κεφάλαιο 1 - Eισαγωγή στα Linux και βασικές εντολές
Το UΝΙΧ είναι ένα λειτουργικό σύστημα που ξεκίνησε να αναπτύσσεται τη δεκαετία του 1960 και βρίσκεται από τότε σε διαρκή ανάπτυξη. Η έννοια του Λειτουργικού Συστήματος αναφέρεται σε ένα αριθμό προγραμμάτων που κάνει έναν υπολογιστή να λειτουργεί. Το UNIX είναι ένα σταθερό σύστημα το οποίο έχει την ικανότητα να εκτελεί πολλά προγράμματα ταυτόχρονα και να εξυπηρετεί πολλούς χρήστες την ίδια στιγμή. Είναι κατάλληλο για εξυπηρετητές (servers) μηχανήματα γραφείου (desktops) σταθμούς εργασίας (workstations) και φορητούς υπολογιστές. Τα συστήματα UNIX διαθέτουν και γραφικό περιβάλλον εργασίας (GUI) παρόμοιο με αυτό που χρησιμοποιείται στα Microsoft Windows. Το γραφικό περιβάλλον παρέχει ένα εύκολο τρόπο εργασίας. Ωστόσο ή γνώση του UNIX είναι απαραίτητη για εργασίες που δεν καλύπτονται από κάποιο γραφικό εργαλείο, ή όταν το γραφικό περιβάλλον δεν είναι διαθέσιμο, για παράδειγμα όταν είμαστε συνδεδεμένα μέσω απομακρυσμένης πρόσβασης.
Υπάρχουν αρκετές διαφορετικές εκδόσεις του UNIX, αν και οι περισσότερες έχουν αρκετές ομοιότητες. Οι πιο συνηθισμένες είναι:
- Sun Solaris
- GNU/Linux
- Διάφορες εκδόσεις BSD
- MacOS Χ

Ο πυρήνας
Ο πυρήνας Linux είναι ένας πυρήνας λειτουργικού συστήματος που χρησιμοποιείται σε όλες τις linux εκδώσεις. Ο πυρήνας Linux διανέμεται υπό την Γενική Άδεια Δημόσιας Χρήσης GNU και ορισμένων άλλων αδειών κλειστού κώδικα, για μερικά προγράμματα οδήγησης. Αναπτύσσεται από προγραμματιστές παγκοσμίως, ο συντονισμός των οποίων γίνεται με καθημερινές συζητήσεις. Ο πυρήνας Linux δημιουργήθηκε αρχικά από τον Φινλανδό φοιτητή πληροφορικής Linus Torvalds το 1991. Το Linux από την αρχή της δημιουργίας του συγκέντρωσε προγραμματιστές και χρήστες οι οποίο προσάρμοσαν κώδικα από άλλα έργα ελεύθερου λογισμικού για χρήση με το καινούριο λειτουργικό σύστημα. Ο πυρήνας έχει συγκεντρώσει συνεισφορές από χιλιάδες προγραμματιστές, και πάνω σε αυτόν βασίζονται πολλές διανομές Linux. Κάποιες από αυτές είναι:
- Ubuntu
- GNU/Linux
- Linux Mint
- Kali Linux
- Arch Linux
- Mandriva Linux
- Red Hat Linux
- CentOS
- Fedora
- openSUSE
- BackTrack
- Bodhi Linux
- Linux Lite
- Xubuntu
- Oracle Linux

Ο πυρήνας Linux είναι μία πρωτότυπη υλοποίηση πυρήνα λειτουργικού συστήματος. Αν και δεν χρησιμοποιεί κώδικα του UNIX, μπορεί να θεωρηθεί παρεμφερές σύστημα (ο ακριβής όρος είναι Unix-like) ή ελεύθερη υλοποίησή του, αφού διαθέτει τις περισσότερες εντολές του και την ίδια σχεδόν δομή αρχείων, ενώ η φιλοσοφία της σχεδίασής του πλησιάζει περισσότερο το UNIX από οποιοδήποτε άλλο λειτουργικό σύστημα. Σήμερα το Linux παρέχει όλα όσα θεωρούνται αναγκαία για ένα σύγχρονο πυρήνα λειτουργικού, όπως:
- Yποστήριξη πολυεπεξεργαστικών συστημάτων (SMP).
- Πραγματική πολυδιεργασία.
- Εικονική μνήμη.
- Διαμοιραζόμενες βιβλιοθήκες.
- Σωστή διαχείριση μνήμης.
- Δικτύωση μέσω TCP/IP κ.α.
- Ο πυρήνας Linux αρχικά σχεδιάστηκε για επεξεργαστές της οικογένειας x86 (386/486/Pentium), αλλά σήμερα τρέχει σε πολύ μεγάλη ποικιλία επεξεργαστών, όπως οι Alpha (64 bit), οι Motorola 68000 (Amiga), PowerPC, MIPS κ.α.
Με τον όρο κέλυφος (shell) αναφερόμαστε σε ένα τμήμα λογισμικού το οποίο παρέχει διασύνδεση προς τους χρήστες. Συνήθως ο όρος αναφέρεται στο κέλυφος του λειτουργικού συστήματος το οποίο παρέχει πρόσβαση στις υπηρεσίες του πυρήνα. Ωστόσο ο όρος μπορεί να εφαρμοστεί γενικότερα σε εφαρμογές. Το όνομα “κέλυφος” προκύπτει από το γεγονός ότι τα κελύφη είναι ένα εξωτερικό επίπεδο διασύνδεσης μεταξύ του χρήστη και των ενδότερων του λειτουργικού συστήματος (του πυρήνα).Τα κελύφη λειτουργικών συστημάτων διακρίνονται σε δύο κατηγορίες: γραμμής εντολών και γραφικά. Τα κελύφη γραμμής εντολών παρέχουν μία διασύνδεση γραμμής εντολών του χρήστη με το λειτουργικό σύστημα, ενώ τα γραφικά κελύφη παρέχουν μία γραφική διασύνδεση χρήστη (GUI). Σε κάθε περίπτωση ο στόχος του κελύφους είναι η κλήση και ενεργοποίηση άλλων προγραμμάτων, αλλά συνήθως ένα κέλυφος έχει και άλλες ικανότητες όπως η προβολή των περιεχομένων των καταλόγων του συστήματος αρχείων.
Το κέλυφος (Shell) είναι το σύνολο των εργαλείων που επιτρέπουν στον χρήστη να χρησιμοποιήσει αποδοτικά τον ηλεκτρονικό υπολογιστή, που βρίσκεται υπό τον έλεγχο του πυρήνα (Kernel). Έχουν αναπτυχθεί διάφορα κελύφη, ως αποτέλεσμα της ανάπτυξης του λειτουργικού και των προσφερόμενων στους χρήστες δυνατοτήτων. Τα γνωστότερα κελύφη είναι:
- bash (κέλυφος Bourne Again)
- csh (κέλυφος C)
- ksh (κέλυφος Korn)
- sh (κέλυφος Bourne)
- tcsh (εµπλουτισµένο κέλυφος C)
- zsh (κέλυφος Ζ)
Όταν δημιουργείται ένας χρήστης καθορίζεται και το κέλυφος εργασίας του. Μπορεί όμως να το αλλάζει σύμφωνα με τις ανάγκες του. Ο χρήστης μπορεί να δει ποιο είναι το κέλυφος στο οποίο εργάζεται πληκτρολογώντας την εντολή echo $SHELL το αποτέλεσμα της οποίας είναι η εμφάνιση του ονόματος του κελύφους στην οθόνη
Το κέλυφος έχει κάποια χαρακτηριστικά που βοηθούν το χρήστη όταν εισάγει εντολές:
- Αυτόματη συμπλήρωση ονόματος αρχείου: Πληκτρολογώντας μόνο ένα μέρος μιας εντολής ή ενός ονόματος αρχείου και πιέζοντας το Tab, το κέλυφος θα συμπληρώσει αυτόματα το υπόλοιπο μέρος. Αν το κέλυφος βρει περισσότερα από ένα ονόματα που να ταιριάζουν με τα γράμματα που έχουν πληκτρολογήσει, θα ακουστεί ένας χαρακτηριστικός ήχος (beep) που σημαίνει ότι πρέπει να γράψετε ακόμα μερικά γράμματα και να πιέσετε ξανά το Tab.
- Ιστορικό: Το κέλυφος διατηρεί μια λίστα με εντολές που έχουν χρησιμοποιηθεί. Με αυτήν την δυνατότητα όταν χρειαστείτε στο terminal να επαναλάβετε μια εντολή μπορείτε να χρησιμοποιήσετε τα πάνω και κάτω βελάκια στο πληκτρολόγιο σας για να δείτε και να εκτελέσετε ξανά τις προηγούμενες εντολές. Μπορείτε επίσης να γράψετε την εντολή history για να δείτε μια λίστα με τις προηγούμενες εντολές που πληκτρολογήσατε.

Σε αυτό το σημείο ας εξερευνήσουμε μερικές εντολές linux και το αποτέλεσμα που θα εμφανίσουν στο terminal του λειτουργικού συστήματος. Παλιότερα όλες οι διανομές linux όπως και άλλα λογισμικά δεν είχαν γραφικό περιβάλλον και βασίζονταν σε εντολές που έδινε ο χρήστης σε μια κονσόλα. Ξεκινώντας ας δούμε πρώτα κάποιες βασικές εντολές.
echo «κείμενο» – Τυπώνει το κείμενο που του έχουμε δώσει ως όρισμα στην οθόνη
codebrakes@mint:~$ echo Παράδειγμα κειμένου
Παράδειγμα κειμένου
clear – Καθαρίζει το terminal
codebrakes@mint:~$ echo Παράδειγμα κειμένου
codebrakes@mint:~$ clear
codebrakes@mint:~$ |
date – Εμφανίζει ώρα και ημερομηνία στην οθόνη
codebrakes@mint:~$ date
Sat Jul 28 17:08:27 EEST 2018
man «εντολή» – Δείχνει τι κάνει η εντολή που δίνουμε σαν όρισμα και πως συντάσσεται
codebrakes@mint:~$ man echo
ECHO(1) User Commands ECHO(1)
NAME
echo – display a line of text
SYNOPSIS
echo [SHORT-OPTION]… [STRING]…
echo LONG-OPTION
DESCRIPTION
Echo the STRING(s) to standard output.
-n do not output the trailing newline
-e enable interpretation of backslash escapes
-E disable interpretation of backslash escapes (default)
–help display this help and exit
–version output version information and exit
Manual page echo(1) line 1 (press h for help or q to quit)
id «όνομα χρήστη» – Εμφανίζει τα στοιχεία ενός user και σε ποίο group ανήκει
codebrakes@mint:~$ id codebrakes
uid=1000(codebrakes) gid=1000(codebrakes) groups=1000(codebrakes), 4(adm),24(cdrom), 27(sudo),30(dip), 46(plugdev), 115(lpadmin), 127(sambashare)
Manual page echo(1) line 1 (press h for help or q to quit)
who – Εμφανίζει ποιοι χρήστες είναι συνδεδεμένοι στο σύστημα
codebrakes@mint:~$ who codebrakes
codebrakes tty7 2018-07-28 16:18 (:0)
whoami – Εμφανίζει το login του χρήστη
codebrakes@mint:~$ whoami
codebrakes
passwd – Αλλάζει τον κωδικό πρόσβασης του χρήστη
codebrakes@mint:~$ hostname
mint
passwd – Αλλάζει τον κωδικό πρόσβασης του χρήστη
codebrakes@mint:~$ passwd
Changing password for codebrakes.
(current) UNIX password: *****
Enter new UNIX password: *****
Retype new UNIX password: *****
passwd: Password Changed
Τελευταία ενημέρωση: 28/07/2018