Συντονιστής: konnn

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/ilias/myscripts:/home/ilias/hacking/python
Ilias95 έγραψε:Η εντολή echo τυπώνει ότι ζητήσεις.
Ας πούμε αν δώσεις: echo Hello World!, θα έχεις έξοδο "Hello World!".
Στο path αποθηκεύονται οι κατάλογοι στους οποίους μπορεί να υπάρχουν εκτελέσιμα αρχεία όπως εντολές.
Αν δώσεις echo $PATH θα πάρεις κάτι σαν:
- Κώδικας: Επιλογή όλων
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/ilias/myscripts:/home/ilias/hacking/python
Από τη στιγμή που δώσεις μια εντολή (πχ. ls ή cd) οι παραπάνω κατάλογοι θα εξεταστούν διαδοχικά μέχρι να βρεθεί η ζητούμενη εντολή.
Μόλις βρεθεί η εντολή σε έναν απ' τους παραπάνω καταλόγους η αναζήτηση σταματάει. Αν δεν βρεθεί θα σου πει "η εντολή δε βρέθηκε".
Το $ δηλώνει ότι αυτό που ακολουθεί είναι μεταβλητή. Αν δώσεις σκέτο echo PATH θα σου εμφανιστεί η λέξη "PATH" ενώ αν δώσεις echo $PATH θα εμφανιστεί το περιεχόμενο της μεταβλητής PATH.
Εκτός από την $PATH υπάρχουν και άλλες μεταβλητές όπως $ΗΟΜΕ και $SHELL τις οποίες μπορείς να δεις με την echo αντίστοιχα.

which cat
Ilias95 έγραψε:Για να βρεις που είναι μια εντολή δίνεις: which command Πχ:
- Κώδικας: Επιλογή όλων
which cat
Ναι αλλά δεν περιέχονται όλα τα εκτελέσιμα μέσα στο PATH.
Κάθε εντολή ας πούμε είναι ένα πρόγραμμα. Πχ. η ls βρίσκεται στο "/bin/ls".
Αν δώσεις /bin/ls και ls σκέτο στον ίδιο κατάλογο θα πάρεις το ίδιο αποτέλεσμα. Αυτό συμβαίνει γιατί ο κατάλογος /bin είναι μέσα στο PATH και έτσι το σύστημα εντοπίζει την ls.
Αν δώσεις "asdf" θα σου πει η εντολή δεν βρέθηκε γιατί δεν υπάρχει τέτοιο εκτελέσιμο αρχείο μέσα σε κάποιο κατάλογο του PATH. Αν όμως φτιάξεις ένα πρόγραμμα, το κάνεις εκτελέσιμο, το ονομάσεις asdf και το βάλεις μέσα σε έναν απ' τους καταλόγους που περιέχονται στο PATH (η αλλάξεις το ίδιο το PATH) τότε από όπου και αν κτυπήσεις "asdf" θα τρέχει κανονικά το πρόγραμμα σου!


printenv