Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες...

23
09/05/2009 Εισαγωγή στο Linux Εισαγωγή στο Linux Κοινότητα Ελεύθερου Λογισμικού & Λογισμικού Ανοιχτού Κώδικα ΟΠΑ

Transcript of Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες...

Page 1: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Εισαγωγή στο Linux

Κοινότητα Ελεύθερου Λογισμικού & Λογισμικού Ανοιχτού Κώδικα ΟΠΑ

Page 2: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Τι είναι το Linux;

●Multi-user, Multitasking, Multiprocessor●Has the X Windows GUI ●Coexists with other Operating Systems ●Runs on multiple platforms ●Includes the Source Code, anyone can modify it.

●A fully-networked 32/64-Bit Unix-like Operating System●Unix Tools Like sed, awk, and grep (explained later)●Compilers Like C, C++, Fortran, Smalltalk, Ada ●Network Tools Like telnet, ftp, ping, traceroute

Page 3: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Λίγh Ιστορία: Unix

Thirty years after its creation, UNIX is still regarded as one of the most powerful, versatile and flexible operating systems in the computer world. Before learning to use UNIX, here is a brief overview of its history and the reasons why people have chosen to use it.

* Created at Bell Labs in 1970 * Written in the C programming language which was developed at the same time * Supports large numbers of simultaneous users * Runs with few alterations on many hardware platforms * Simple, elegant, and easy to use (at least compared to its predecessors)

Page 4: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Λίγη Ιστορία: Linux

From: [email protected] (Linus Benedict Torvalds)Newsgroups: comp.os.minixSubject: Gcc-1.40 and a posix-questionMessage-ID: <[email protected]>Date: 3 Jul 91 10:00:50 GMTHello netlanders,Due to a project I'm working on (in minix), I'm interested in the posixstandard definition. Could somebody please point me to a (preferably)machine-readable format of the latest posix rules? Ftp-sites would benice.

Πίσω στο 1991 στην λίστα του minix...

Ο Linus Torvalds επεδίωξε να φτιάξει κάτι αντίστοιχο του εκπαιδευτικόυ Minix OS του Tanembaum, σαν hobby αρχικά, για τον υπολογιστή του αρχιτεκτονικής i386.

Αυτό που δημιούργησε ήταν ένας πυρήνας για λειτουργικό σύστημα που ακολουθεί την φιλοσοφία του UNIX, με ελεύθερα διαθέσιμο κώδικα.

Page 5: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Λίγη Ιστορία: GNU Project

●Ακόμα πιο πίσω στο 1983-4, o Richard Stallman κουράστηκε να προσπαθεί να 'χακάρει' κλειστό λογισμικό για να δουλέψει όπως ήθελε και ανακοίνωσε την πρόθεσή του να δημιουργήσει το GNU Λειτουργικό Σύστημα.

●Επιτυχώς δημιουργήθηκαν ένας text editor (emacs) και ένας εξαιρετικά δημοφιλής και επιτυχημένος optimizing compiler για την C, o gcc.

●Ακολούθησε μία πληθώρα εργαλείων, στην αρχή ως εναλλακτικές σε κλειστό λογισμικό, και στη συνέχεια ό,τι φανταστεί κανείς...

●Ορίστηκε μία ελεύθερη άδεια, η GNU GPL License την οποία υιοθέτησαν και υιοθετούν αμέτρητοι developers για να διαθέσουν το λογισμικό τους.

Page 6: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

GNU/LinuxΕίτε τους αρέσει είτε όχι...

Page 7: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Ανατομία ενός Linux

Page 8: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

O Πυρήνας & οι διεπαφές του

●Αποτελεί την καρδιά του λειτουργικού●Παρέχει την υποστήριξη των συσκευών

● Ο κάθε driver φορτώνεται στον kernel ο οποίος διαχειρίζεται το Ι/Ο.

●Τα filesystems φορτώνονται σαν drivers και ο kernel παρέχει ένα επίπεδο αφαίρεσης ●Παρέχει την διαχείριση μνήμης και διεργασιών

● Οι διεργασίες χωρίζονται σε ομάδες - threads.●Αποτελεί την διεπαφή με το hardware●Διαθέτει διάφορα APIs●Το TCP/IP υποστηρίζεται εντός του πυρήνα

Page 9: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Τι βλέπει ο χρήστης

Μεταξύ του πυρήνα και του χρήστη, βρίσκονται τα Shells

● Shell μπορεί να είναι μία γραμμή εντολών, ή ακόμα και ένα γραφικό περιβάλλον.

● Ο χρήστης συνδέεται σε ένα η περισσότερα shells.

Page 10: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Χρήστες και Ομάδες στο Linux●Στο Linux οι χρήστες υπήρξαν πάντα από τις βασικές έννοιες (στα windows άργησαν..)

●Ο κάθε χρήστης έχει ένα δικό του UID – ο root (super user) έχει uid=0

●Ο κάθε χρήστης μπορεί να ανήκει σε περισσότερες από μία ομάδες, από τις οποίες κληρονομεί και δικαιώματα.

●Υπάρχουν ειδικοί χρήστες (συστήματος) και ομάδες (πχ audio, video, κλπ)

●Πολλοί χρήστες μπορούν να είναι συνδεδεμένοι ταυτόχρονα σε ένα σύστημα

Page 11: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Filesystems

Windows -> FAT32, NTFS και παλαιότεραLinux -> υποστηρίζονται δεκάδες fs, πλέον δημοφιλή ext2, ext3, reiserfs, ext4, xfs, κά...

● Τα συστήματα αρχείων (filesystems) χωρίζονται σε journaling και μη.

● Τα journaling fs, κρατούν ένα journal, δηλαδή ένα log των αλλαγών και τις εφαρμόζουν περιοδικά, είναι πιο ανθεκτικά σε system crash. Πχ ext3-4, reiserfs, μερικώς το NTFS)

● Τα fs που χρησιμοποιούνται στο linux, κρατούν τα δικαιώματα των αρχείων (όπως και το NTFS)

Page 12: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Δομή αρχείων σε ένα Linux OS

Page 13: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Page 14: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Αναλυτικά: http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

Page 15: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Θυμηθείτε!

1. Στο linux τα κεφαλαία από τα μικρά διαφέρουν!

2. Βλέπουμε τις καταλήξεις των αρχείων (στα windows συχνά είναι κρυμμένες)

3. Ο τύπος κάθε αρχείου καθορίζεται από το περιεχόμενο και όχι -απαραίτητα- από τις καταλήξεις. Αυτές είναι περισσότερο σαν ένας εύκολος τρόπος να τα συσχετίζουμε με προγράμματα και να καταλαβαίνουμε εύκολα τι είναι.

Page 16: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

(Πολύ) Βασικές Εντολές● lsls : η αντίστοιχη της dir ή πολύ απλά το να δείτε τα περιεχόμενα του φακέλου όπου

βρίσκεστε

● ls -lls -l : παράμετρος της ls για να μας δείξει περισσότερες πληροφορίες

● man lsman ls : η man είναι ο καλύτερος μας φίλος, μας δίνει πληροφορίες για κάθε

εντολή. Για να βγούμε από το κείμενό της, πατάμε q

● mkdir onomamkdir onoma : δημιουργεί έναν φάκελο με όνομα onoma

● cd onomacd onoma : πηγαίνει στον φάκελο onoma

● cdcd : σκέτο το cd πηγαίνει στον αρχικό φάκελο του χρήστη (homedir)

● pwd pwd : μας δείχνει σε ποιον φάκελο είμαστε τώρα

● cdcd .. : μας πηγαίνει στον παραπάνω φάκελο, το .. πάντα σημαίνει ένας φάκελος

παραπάνω

● ls onomals onoma : μας δείχνει τα περιεχόμενα του φακέλου onoma

● touch blablatouch blabla : δημιουργεί ένα κενό αρχείο με όνομα blabla

Page 17: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

(Πολύ) Βασικές Εντολές● mkdir onoma/kokomkdir onoma/koko : φτιάχνει έναν υποφάκελο koko στον φάκελο onoma κάτω από

την θέση που είμαστε

● ls -a onoma/kokols -a onoma/koko : βλέπουμε τα περιεχόμενα του koko μαζί με τα ειδικά/κρυμμένα

αρχεία (αρχεία που το όνομά τους ξεκινά από . )

● ls ls ~ : το ~ σημαίνει το homedir του (παρόντος) χρήστη στα unix

● ls ~/.. ls ~/.. : τι θα μας δείξει αυτή η εντολή;

● passwdpasswd : αλλάζουμε το password μας

● whowho : βλέπουμε τα συνδεδεμένα shells (cli, X, ssh, ...)

● w w : βλέπουμε ότι και το who, αλλά και το πρόγραμμα που εκτελείται από το

εκάστοτε shell

● susu : εάν έχουμε το root password, με su και εισαγωγή του γινόμαστε root (έχουμε

δηλαδή full δικαιώματα). (Αυτό είναι μία σκέτη εντολή)

● ./somescript ./somescript : εκτελεί το script somescript που βρίσκεται στον φάκελο που είμαστε

Page 18: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

(Πολύ) Βασικές Εντολές● cp koko lala cp koko lala : αντιγράφει το αρχείο koko στο αρχείο lala

● mv koko lalamv koko lala : μετονομάζει (move) το αρχείο koko σε αρχείο lala

● cp /usr/local/bin/koko lalacp /usr/local/bin/koko lala : αντιγράφει το αρχείο koko από τον φάκελο /usr/local/

bin/ σε αυτόν που βρισκόμαστε, με το όνομα lala

● rm koko. rm koko. : διαγράφει το αρχείο koko

● rmdir kokormdir koko ή rm -r koko rm -r koko : διαγράφει τον φάκελο koko

● cat kokocat koko : μας κάνει print όλα τα περιεχόμενα (text ή binary σκουπίδια) του

αρχείου koko

● less koko less koko : βλέπουμε τα περιεχόμενα (όπως cat) αλλά μπορούμε να πάμε πάνω

κάτω, να ψάξουμε. Έξοδος με q

● ./somescript | less./somescript | less : το | είναι φοβερό εργαλείο: 'ταΐζει' τα αποτελέσματα εδώ του

somescript στο less, το οποίο και τα δείχνει λίγα λίγα.

Page 19: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Redirections, pipes, etcΧρήσιμα για την είσοδο και έξοδο δεδομένων από αρχεία/διεργασίες προς αρχεία

ή διεργασίες είναι τα εξής:

● somecommand > log.txt somecommand > log.txt : τα αποτελέσμετα της somecommand πάνε στο

αρχέιο log.txt (και διαγράφουν ό,τι υπάρχει)

● somecommand >> log.txt somecommand >> log.txt : τα αποτελέσματά της προστίθενται στο τέλος

του log.txt (concatenation)

● somecommand < inputsomecommand < input : η somecommand παίρνει σαν είσοδο το αρχέιο

input

● somecommand | someothercommandsomecommand | someothercommand : η έξοδος της εντολής

somecommand πηγαίνει ως είσοδος στην εντολή someothercommand

● somecommand &somecommand & : καλεί την somecommand και την εκτελεί στο

'παρασκήνιο'

● somecomand && someothercommandsomecomand && someothercommand : καλεί την somecommand και εάν

αυτή τελειώσει επιτυχώς εκτελεί και την someothercommand

Page 20: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Βασικά περί δικαιωμάτωνΤα δικαιώματα αρχείων και φακέλων στο unix (που είδαμε με το ls -l) ακολουθούν την βασική αυτή λογική:

[d κλπ][rwx][rwx][rwx]:

● d εάν είναι πχ φάκελος (άλλα γράμματα σε άλλες ειδικές περιπτώσεις που δεν μας χρειάζονται τώρα) ή – εάν είναι απλά αρχείο

● Το πρώτο [rwx] αφορά τον χρήστη και σημαίνει read, write, και execute. Αφορά προφανώς το να βλέπει ο χρήστης το αρχείο, να το γράφει και να μπορεί να το εκτελεί εάν είναι πρόγραμμα

● Το δεύτερο αφορά την ομάδα του χρήστη και το τρίτο τους 'άλλους'.

Πχ, τι δικαιώματα έχει η εκάστοτε κατηγορία σε αυτήν την περίπτωση;

-rw-r--r--

Page 21: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Βασικά περί δικαιωμάτων- Τα δικαιώματα εκφράζονται και ως εξής:

Read : 4, write: 2, execute : 1 και αυτά προστίθενται ώστε να βγαίνει αυτό:

Number Read (R) Write (W) Execute (X)

0 No No No

1 No No Yes

2 No Yes No

3 No Yes Yes

4 Yes No No

5 Yes No Yes

6 Yes Yes No

7 Yes Yes Yes

777 σημαίνει rwxrwxrwx

755 σημαίνει rwxr-xr-x

666 σημαίνει rw-rw-rw-

Page 22: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Βασικά περί δικαιωμάτωνΗ εντολή με την οποία αλλάζουμε δικαιώματα σε ένα αρχείο είναι η chmod και αυτή δέχεται και τα δύο formats:

chmod 755 file.txt

αυτό θα δώσει permissions rwxr-xr-x στο αρχείο file.txt

Chmod u+x file.txt

Αυτό θα κάνει τον χρήστη (u) να έχει + execute σε ό,τι δικαιώματα είχε

Chmod g=rx file

Αυτό θα κάνει την ομάδα του χρήστη να έχει δικαιώματα read και execute

Chmod o-w file

Οι άλλοι (others) δεν θα έχουν write στο αρχείο

Chmod -R folder/

Page 23: Εισαγωγή στο Linux · 05/09/2009  · Εισαγωγή στο Linux Χρήστες και Ομάδες στο Linux Στο Linux οι χρήστες υπήρξαν πάντα

09/05/2009Εισαγωγή στο Linux

Λίγες ακόμα εντολές..● psps : δείτε τις διεργασίες που τρέχουν σε αυτό το shell (login)

● ps auxps aux : όλες οι διεργασίες από όλους τους χρήστες στο σύστημα

● kill 5533kill 5533 : τερματισμός διεργασίας με αριθμό 5533 (pid, process id)

● killall firefoxkillall firefox : σκοτώνει όλους του firefox (εφόσον έχουμε δικαιώματα)

● xkillxkill : το πιο δημοφιλές Shoot 'em up game! (Προσοχή! Θα σκοτώσει όποια

διεργασία κάνετε κλικ πάνω στο παράθυρό της! Για έξοδο πατάτε Esc)

Δείτε επίσης:

grep, find, du, df, zcat, gzip, ....

Γενικά αρχίστε το ψάξιμο!!!