Χρησιμοποιούμε απόλυτες και σχετικές διαδρομές στην κονσόλα. Βασικά στοιχεία Linux: Εισαγωγή στα παραδείγματα bash χρησιμοποιώντας σχετικές διαδρομές

Πρόσφατα περιέγραψα εντολές για μετακίνηση μέσω καταλόγων στο τερματικό Linux... Έτσι αποφάσισα να συνεχίσω την ιστορία για τις εντολές στην κονσόλα. Έτσι, οι κινήσεις φαίνεται να είναι τακτοποιημένες. Τώρα θέλω να εξετάσω λίγο πιο λεπτομερώς ποιες διαδρομές προς τους καταλόγους υπάρχουν στην κονσόλα.

Ας ξεκινήσουμε εξετάζοντας τις πιο γνωστές διαδρομές προς τα αρχεία και τους καταλόγους μας, δηλαδή τις απόλυτες διαδρομές. Ανοίξτε ένα τερματικό και εκδώστε μια εντολή που εκτυπώνει την πλήρη διαδρομή προς τον αρχικό κατάλογο. Μίλησα για αυτήν την ομάδα πρόσφατα, εδώ. Παρουσιάζω pwd:


: ~ $ pwd
/ home / dante


Όπως μπορείτε να δείτε, αυτή η εντολή κονσόλας εκτύπωσε την πλήρη διαδρομή ξεκινώντας από τον βασικό κατάλογο. Περιέγραψα πρόσφατα μια τέτοια κίνηση σε καταλόγους, αυτή η κίνηση χρησιμοποιώντας μια απόλυτη διαδρομή. Αλλά αυτές δεν είναι όλες οι δυνατότητες για να περάσουμε στις κατηγορίες του λειτουργικού μας συστήματος. Στο λειτουργικό σύστημα Linux, υπάρχει επίσης η δυνατότητα χρήσης σχετικών διαδρομών.

Σχετικά μονοπάτια στην κονσόλα, μετρώντας κατηγορίες σε σχέση με την κατηγορία στην οποία βρίσκεστε. Μπορούν να χρησιμοποιηθούν με ".." δύο σημεία που υποδεικνύονται μπροστά από το φάκελο στον οποίο θέλουμε να μεταβούμε. Πάμε κάπου στο λειτουργικό μας σύστημα. Για παράδειγμα στο φάκελο usrκαι εξετάστε το περιεχόμενό του με την εντολή ls.

[προστασία ηλεκτρονικού ταχυδρομείου]: ~ $ cd / usr
[προστασία ηλεκτρονικού ταχυδρομείου]: / usr $ ls

[προστασία ηλεκτρονικού ταχυδρομείου]: / usr $

Εδώ βλέπουμε μια λίστα με τους διαθέσιμους καταλόγους. Πάμε τώρα στον κατάλογο " μερίδιο».

[προστασία ηλεκτρονικού ταχυδρομείου]: ~ $ cd / usr / μετοχή


Έτσι, τώρα είμαστε στην κατηγορία / usr / shareόπως μπορούμε να δούμε. Ας περάσουμε τώρα σε μια κατηγορία που βρίσκεται στο ίδιο επίπεδο με την κατηγορία στην οποία είμαστε. Για παράδειγμα, στην κατηγορία « τοπικός". Αυτό μπορεί να γίνει με μια απόλυτη διαδρομή όπως αυτή.

[προστασία ηλεκτρονικού ταχυδρομείου]: ~ $ cd / usr / local

[προστασία ηλεκτρονικού ταχυδρομείου]: / usr / share $ pwd
/ usr / share
[προστασία ηλεκτρονικού ταχυδρομείου]: / usr / share $


Όπως μπορείτε να δείτε, έχω εμφανίσει για εσάς στην κονσόλα, την πλήρη διαδρομή προς το μέρος όπου βρίσκεστε. Γνωρίζουμε ότι ο κατάλογος " τοπικός"Είναι στο ίδιο επίπεδο με τον κατάλογο" μερίδιο«Και μπορούμε να χρησιμοποιήσουμε μια τέτοια εντολή.

[προστασία ηλεκτρονικού ταχυδρομείου]: / usr / share $ cd ../local
[προστασία ηλεκτρονικού ταχυδρομείου]: / usr / local $


Όπως μπορείτε να δείτε, η εντολή ερωτήματος έχει γίνει πολύ πιο εύκολη. Αλλά αυτό συμβαίνει μόνο αν θυμάστε τους καταλόγους που βρίσκονται στο ίδιο επίπεδο με τον κατάλογο εργασίας σας και δεν θυμάμαι πάντα άλλους καταλόγους στην κονσόλα.

Για να μεταβείτε στον επόμενο κατάλογο, απλώς εισαγάγετε την εντολή στην κονσόλα σε σχέση με τον κατάλογο εργασίας σας. Για αυτούς τους σκοπούς, χρησιμοποιήστε αντ 'αυτού ".." δύο σημεία, "." ένα σημείο και θα μετακινηθείτε σε σχέση με τον κατάλογο στην κονσόλα στην οποία βρίσκεστε αυτήν τη στιγμή. Ας επιστρέψουμε στον κατάλογο / usrκαι κοίτα ξανά τι υπάρχει.

[προστασία ηλεκτρονικού ταχυδρομείου]: / usr / local $ cd / usr
[προστασία ηλεκτρονικού ταχυδρομείου]: / usr $ ls
τα παιχνίδια bin περιλαμβάνουν lib τοπικό sbin share src
[προστασία ηλεκτρονικού ταχυδρομείου]: / usr $


Πάμε τώρα στον κατάλογο " μερίδιο»Σχετικά με τον κατάλογο στον οποίο βρισκόμαστε τώρα. Για να το κάνετε αυτό, εισαγάγετε την κονσόλα

[προστασία ηλεκτρονικού ταχυδρομείου]: / usr $ cd ./τοπικό
[προστασία ηλεκτρονικού ταχυδρομείου]: / usr / local $


Όπως μπορείτε να δείτε, η χρήση σχετικών διαδρομών μπορεί να συντομεύσει σημαντικά τις εντολές που εισάγετε στην κονσόλα. Linux.

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

Στη σημερινή σύντομη σημείωση, θα εξετάσουμε ποια είναι η διαδρομή προς ένα αρχείο Linux, τι μπορεί να είναι, πώς να το γράψουμε σωστά και πολλά άλλα. Εάν νωρίτερα είχατε δυσκολίες με αυτό, τότε μετά την ανάγνωση του άρθρου όλα θα γίνουν απολύτως σαφή.

Διαδρομές αρχείων στο Linux

Το σύστημα αρχείων Linux είναι πολύ διαφορετικό από τα Windows. Δεν θα λάβουμε υπόψη τη δομή του, έγινε νωρίτερα. Θα επικεντρωθούμε στην εργασία με αρχεία.

Η πιο σημαντική διαφορά είναι ότι η διεύθυνση αρχείου δεν ξεκινά από τη μονάδα δίσκου, για παράδειγμα, C: \ ή D: \ όπως συμβαίνει στα Windows, αλλά από τη ρίζα, τον κατάλογο του ριζικού συστήματος στον οποίο είναι συνδεδεμένα όλα τα άλλα. Η διεύθυνσή του - /. Και εδώ είναι απαραίτητο να πούμε για τις διευθύνσεις. Οι διαδρομές αρχείων Linux χρησιμοποιούν μια κάθετο "/" για να διαχωρίσουν καταλόγους σε μια διεύθυνση και αυτό είναι διαφορετικό από αυτό που έχετε συνηθίσει να βλέπετε στα Windows - \.

Για παράδειγμα, εάν στα Windows η πλήρης διαδρομή προς το αρχείο στην επιφάνεια εργασίας έμοιαζε με C: \ Users \ Sergiy \ Desktop \, τότε η διαδρομή αρχείου στο linux θα είναι απλά / home / sergiy / desktop /. Μέχρι στιγμής, όλα είναι απλά και ξεκάθαρα με αυτό. Αλλά τα προβλήματα συνεχίζουν να εμφανίζονται.

Το λειτουργικό σύστημα Linux μπορεί να έχει διάφορους τύπους διαδρομών αρχείων. Ας δούμε ποιες διαδρομές υπάρχουν στο Linux:

  • Πλήρης, απόλυτη διαδρομή linux από τη ρίζα του συστήματος αρχείων- έχετε ήδη δει αυτήν τη διαδρομή στο παραπάνω παράδειγμα, ξεκινά από τη ρίζα "/" και περιγράφει ολόκληρη τη διαδρομή προς το αρχείο.
  • Σχετική διαδρομή Linuxείναι η διαδρομή προς το αρχείο σε σχέση με τον τρέχοντα φάκελο, τέτοιες διαδρομές συχνά προκαλούν σύγχυση.
  • Η διαδρομή σε σχέση με τον αρχικό φάκελο του τρέχοντος χρήστη.- διαδρομή στο σύστημα αρχείων, όχι μόνο από τη ρίζα, αλλά από το φάκελο του τρέχοντος χρήστη.

Τώρα ας ρίξουμε μια πιο προσεκτική ματιά στο πώς φαίνονται αυτά τα μονοπάτια στο linux και επίσης αναλύουμε μερικά παραδείγματα για να γίνει τελικά σαφές. Για επίδειξη, θα χρησιμοποιήσουμε το βοηθητικό πρόγραμμα ls, το οποίο έχει σχεδιαστεί για την προβολή των περιεχομένων των καταλόγων.

Για παράδειγμα, έχουμε έναν κατάλογο σαν αυτόν στον αρχικό μας φάκελο με τέσσερα αρχεία σε αυτόν:

Έτσι θα μοιάζει η πλήρης διαδρομή linux σε ένα από τα αρχεία:

ls / home / sergiy / tmp / file1

Αυτή είναι ήδη μια σχετική διαδρομή linux που ξεκινά από τον αρχικό φάκελο, συμβολίζεται με ~ /. Παρατηρήστε, όχι ~, αλλά ~ /. Στη συνέχεια, μπορείτε ήδη να καθορίσετε υποφακέλους, στην περίπτωσή μας tmp:

Λοιπόν, ή η διαδρομή αρχείου στο linux, σε σχέση με τον τρέχοντα φάκελο:

Ο πρώτος σύνδεσμος δείχνει τον τρέχοντα φάκελο (.), Ο δεύτερος (..) δείχνει τον φάκελο ένα επίπεδο υψηλότερα. Αυτό ανοίγει ακόμη ευρύτερες δυνατότητες πλοήγησης στους καταλόγους. Για παράδειγμα, για να αναφέρετε ένα αρχείο στον τρέχοντα φάκελο, μπορείτε να χρησιμοποιήσετε την κατασκευή:

Είναι άχρηστο κατά την προβολή του περιεχομένου ενός αρχείου. Αλλά είναι πολύ σημαντικό κατά την εκτέλεση του προγράμματος. Δεδομένου ότι το πρόγραμμα θα αναζητηθεί πρώτα στο περιβάλλον PATH και μόνο στη συνέχεια σε αυτόν το φάκελο. Επομένως, εάν πρέπει να εκτελέσετε ένα πρόγραμμα που βρίσκεται στον τρέχοντα φάκελο και το οποίο ονομάζεται ακριβώς το ίδιο με αυτό στον κατάλογο / bin, τότε τίποτα δεν θα λειτουργήσει χωρίς ρητή αναφορά που πρέπει να αναζητήσει το αρχείο στο τρέχον ντοσιέ.

Τέτοιες κατασκευές μπορούν να συναντηθούν αρκετά συχνά κατά την κατάρτιση προγραμμάτων. Μπορείτε να χρησιμοποιήσετε όλα αυτά τα σύμβολα και τις διαδρομές των αρχείων linux όχι μόνο στο τερματικό, αλλά και σε οποιονδήποτε διαχειριστή αρχείων, κάτι που μπορεί να είναι πολύ βολικό.

Αλλά το τερματικό Linux είναι ακόμα πιο ισχυρό. Μπορείτε να χρησιμοποιήσετε απλούς χαρακτήρες αντικατάστασης απευθείας σε διευθύνσεις αρχείου ή καταλόγου. Για παράδειγμα, μπορείτε να παραθέσετε όλα τα αρχεία που ξεκινούν με το f:

Or μπορείτε ακόμη να κάνετε αναζήτηση όχι μόνο στο φάκελο tmp, αλλά σε οποιονδήποτε υποφάκελο του αρχικού φακέλου σας:

Και όλα αυτά θα λειτουργήσουν, ίσως δεν είναι πάντα απαραίτητο και πρακτικό. Αλλά σε ορισμένες περιπτώσεις μπορεί να είναι πολύ χρήσιμο. Αυτές οι συναρτήσεις υλοποιούνται στο επίπεδο του κελύφους Bash, ώστε να μπορείτε να τις χρησιμοποιήσετε σε οποιαδήποτε εντολή. Το κέλυφος εξετάζει πόσα αρχεία βρέθηκαν και επικαλείται μια εντολή για καθένα από αυτά.

συμπεράσματα

Αυτό είναι όλο. Τώρα γνωρίζετε όλα όσα χρειάζεστε για να γράψετε όχι μόνο σωστά τη διαδρομή στο αρχείο linux, αλλά και να εκτελέσετε πιο πολύπλοκες ενέργειες, για παράδειγμα, αναζήτηση αρχείων ή πλοήγηση σε καταλόγους χρησιμοποιώντας την εντολή cd. Εάν έχετε οποιεσδήποτε ερωτήσεις, ρωτήστε στα σχόλια!

Σχετικές καταχωρήσεις:


Αφού διαβάσετε αυτό το άρθρο, θα μάθετε τι είναι κτυπώ δυνατά(τυπικός διερμηνέας εντολών linux), μάθετε πώς να χειρίζεστε τις τυπικές εντολές: ls, cp, mv... κατανοήστε το σκοπό των inodes, των σκληρών και συμβολικών συνδέσμων και πολλά άλλα.

Αυτό το σεμινάριο προορίζεται για όσους είναι νέοι στο Linux και για εκείνους που θέλουν να αναθεωρήσουν ή να βελτιώσουν την κατανόηση των βασικών αρχών του Linux, όπως η αντιγραφή και η μετακίνηση αρχείων, η δημιουργία συνδέσμων, χρησιμοποιώντας τυπικές εντολές Linux μαζί με ανακατευθύνσεις και σωλήνες. Σε αυτό το άρθρο, θα βρείτε πολλά παραδείγματα για να διευκρινίσετε το υλικό που παρουσιάζεται. Για αρχάριους, οι περισσότερες πληροφορίες θα είναι νέες και για πιο προχωρημένους χρήστες, αυτό το υλικό μπορεί να αποτελέσει έναν εξαιρετικό οδηγό για να συνοψίσει τις υπάρχουσες γνώσεις και δεξιότητες.

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

Κέλυφος

Εάν χρησιμοποιείτε Linux, τότε γνωρίζετε ότι μετά τη σύνδεση σας καλωσορίζει μια προτροπή κέλυφος. Για παράδειγμα αυτό:

\$

Εάν το γραφικό κέλυφος φορτωθεί μετά τη σύνδεση, τότε για να μεταβείτε στον διερμηνέα εντολών, πρέπει να ξεκινήσετε τον εξομοιωτή τερματικού (gnome-terminal, xfce4-terminal, konsole, xterm, rxvt ...) ή να μεταβείτε σε ένα από τα εικονικά τερματικά κάνοντας κλικ CtrlAltF1ή CtrlAltF2και τα λοιπά.

Το μήνυμα κελύφους στον υπολογιστή σας μπορεί να διαφέρει από αυτό που φαίνεται στο παράδειγμα. Μπορεί να περιέχει το όνομα χρήστη, το όνομα υπολογιστή και το όνομα του τρέχοντος καταλόγου εργασίας. Παρά όλες αυτές τις διαφορές, το πρόγραμμα που εκτυπώνει αυτό το μήνυμα ονομάζεται " κέλυφος"(Shell), και πιθανότατα το κέλυφος εντολών σας είναι ένα πρόγραμμα που ονομάζεται κτυπώ δυνατά.

Τρέχεις bash;

Μπορείτε να ελέγξετε αν εκτελείται το bash με την ακόλουθη εντολή:

\$ ηχώ \ $ SHELL/ bin / bash

Εάν ως αποτέλεσμα της εκτέλεσης αυτής της εντολής λάβετε ένα σφάλμα ή η έξοδός του διαφέρει από αυτήν στο παράδειγμα, τότε είναι πιθανό το σύστημά σας να μην χρησιμοποιεί το bash ως κέλυφος εντολών. Παρ 'όλα αυτά, το μεγαλύτερο μέρος του υλικού θα είναι σχετικό, αλλά εξακολουθούμε να σας προτείνουμε να μεταβείτε σε bash. Αυτό μπορεί να γίνει (εάν το bash είναι εγκατεστημένο στο σύστημα) με την εντολή:

\$ κτυπώ δυνατά

Τι είναι bash

Bash (ακρωνύμιο για " σιτο δικό μας- ένακέρδος SH ell ") είναι ο τυπικός διερμηνέας εντολών στα περισσότερα συστήματα Linux. Οι ευθύνες του περιλαμβάνουν την επεξεργασία και την εκτέλεση εντολών με τις οποίες ο χρήστης ελέγχει τον υπολογιστή. Μόλις ολοκληρώσετε την εργασία σας, μπορείτε να τερματίσετε τη διαδικασία κελύφους. Αφού πατήσετε τα πλήκτρα Ctrlρε, της ομάδας έξοδοςή Αποσύνδεσηη διαδικασία κελύφους τελειώνει και η οθόνη σας ζητά ξανά το όνομα χρήστη και τον κωδικό πρόσβασής σας.

Χρήση "cd"

Ας αρχίσουμε να χρησιμοποιούμε το bash για να περιηγηθούμε στο σύστημα αρχείων. Αρχικά, πληκτρολογήστε την ακόλουθη εντολή:

$ cd /

Με αυτήν την εντολή, είπαμε στο bash ότι θέλουμε να μεταβούμε στον ριζικό κατάλογο - / ... Όλοι οι κατάλογοι στο σύστημα είναι οργανωμένοι σε μια δομή δέντρου και / αυτή είναι η αρχή (ή η ρίζα) του. Ομάδα CDχρησιμεύει για την αλλαγή του τρέχοντος καταλόγου εργασίας.

Διαδρομές

Για να μάθετε πού βρίσκεστε στο σύστημα αρχείων αυτήν τη στιγμή (τρέχων κατάλογος εργασίας), πληκτρολογήστε:

\$ pwd /

Στο παραπάνω παράδειγμα / - επιχείρημα εντολής CD- που ονομάζεται τρόπος... Εδώ θέλουμε να μεταβούμε στο σύστημα αρχείων. Σε αυτήν την περίπτωση / - μια απόλυτη διαδρομή, που σημαίνει ότι η διαδρομή καθορίζεται σε σχέση με τον βασικό κατάλογο.

Απόλυτα μονοπάτια

Ακολουθούν ορισμένα παραδείγματα απόλυτων διαδρομών

/ dev / usr / usr / bin / usr / local / bin

Όπως ίσως έχετε παρατηρήσει, όλα αυτά τα μονοπάτια ενώνονται από το γεγονός ότι ξεκινούν με / ... Καθορίζοντας τη διαδρομή / usr / local / bin ως όρισμα στην εντολή CDτης λέμε να πάει στον βασικό κατάλογο / , στη συνέχεια στον κατάλογο usr, στη συνέχεια στον τοπικό και τον κάδο. Τα απόλυτα μονοπάτια ξεκινούν πάντα με /

Σχετικά μονοπάτια

Το δεύτερο είδος διαδρομών ονομάζεται σχετική διαδρομή. Κτυπώ δυνατά, ομάδα CDκαι άλλες εντολές μετρούν αυτές τις διαδρομές σε σχέση με τον τρέχοντα κατάλογο. Τα σχετικά μονοπάτια δεν ξεκινούν ποτέ / ... Για παράδειγμα, εάν είμαστε σε / usr

\$ cd / usr

Στη συνέχεια, μπορούμε να μεταβούμε στο / usr / local / bin χρησιμοποιώντας τη σχετική διαδρομή

\$ cd local / bin \$ pwd/ usr / local / bin

Χρήση ".."

Οι σχετικές διαδρομές μπορούν να περιέχουν έναν ή περισσότερους καταλόγους «..» ... Το ".." αναφέρεται στον γονικό κατάλογο του καταλόγου εργασίας μας. Παράδειγμα:

\$ pwd/ usr / local / bin \ $ cd .. \$ pwd/ usr / local

Όπως μπορείτε να δείτε, η εντολή cd ..«Μας ανεβάζει ένα επίπεδο πιο πάνω».

Μπορεί να προσθέσει .. σε μια σχετική διαδρομή. Αυτό θα μας επιτρέψει να μεταβούμε σε έναν κατάλογο που βρίσκεται στο ίδιο επίπεδο με αυτόν στον οποίο βρισκόμαστε. Παράδειγμα:

\$ pwd/ usr / local \ $ cd ../ Share \$ pwd/ usr / share

Παραδείγματα που χρησιμοποιούν σχετικές διαδρομές

Οι σχετικές διαδρομές μπορεί να είναι αρκετά δύσκολες. Να μερικά παραδείγματα. Το αποτέλεσμα της εκτέλεσης των εντολών δεν εμφανίζεται, προσπαθήστε να καθορίσετε σε ποιον κατάλογο θα βρεθείτε χρησιμοποιώντας το bash.

\$ cd / bin \$ cd ../usr/share/zoneinfo \$ cd / usr / X11R6 / bin \$ cd ../lib/X11 \$ cd / usr / bin \$ cd ../bin/../bin

Κατάλογος εργασίας "."

Πριν τελειώσει η συζήτηση για την ομάδα CDυπάρχουν μερικά ακόμη πράγματα που αξίζει να αναφερθούν. Πρώτον, υπάρχει ένας άλλος ειδικός κατάλογος «.» που δείχνει τον τρέχοντα κατάλογο. Αυτός ο κατάλογος χρησιμοποιείται για την εκτέλεση εκτελέσιμων αρχείων που βρίσκονται στον τρέχοντα κατάλογο.

\$ ./myprog

Στο τελευταίο παράδειγμα, το myprog είναι ένα εκτελέσιμο αρχείο που βρίσκεται στον τρέχοντα κατάλογο και θα ξεκινήσει για εκτέλεση.

cd και αρχικός κατάλογος χρήστη

Για να μεταβείτε στον αρχικό κατάλογο, πρέπει να πληκτρολογήσετε

\$ CD

Χωρίς επιχείρημα, το cd θα σας μεταφέρει στον αρχικό σας κατάλογο. Ο αρχικός κατάλογος είναι συνήθως / root για τον υπερχρήστη και / home / username / για κανονικούς χρήστες. Τι γίνεται όμως αν θέλουμε να επισημάνουμε ένα συγκεκριμένο αρχείο που βρίσκεται στον αρχικό κατάλογο. Για παράδειγμα, ως όρισμα στο πρόγραμμα "Myprog"; Μπορείς να γράψεις:

\$ ./myprog /home/user/myfile.txt

Ωστόσο, η χρήση απόλυτων διαδρομών αρχείων δεν είναι πάντα βολική. Η ίδια λειτουργία μπορεί να γίνει χρησιμοποιώντας ~ –Τυλίδες:

\$ ./myprog ~ / myfile.txt

~ είναι ένα ειδικό όνομα που δείχνει bash στον αρχικό κατάλογο του χρήστη.

Αρχικοί κατάλογοι άλλων χρηστών

Τι γίνεται όμως αν χρειαστεί να επισημάνουμε ένα αρχείο στον αρχικό κατάλογο άλλου χρήστη; Για να το κάνετε αυτό, μετά την tilde, πρέπει να καθορίσετε το όνομα αυτού του χρήστη. Για παράδειγμα, για να δείξετε το αρχείο fredsfile.txt που βρίσκεται στον αρχικό κατάλογο του χρήστη fred:

\$ ./myprog fred / fredsfile.txt

Εντολές Linux

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

Μάλλον είστε ήδη εξοικειωμένοι με την εντολή lsτο οποίο, καλούμενο χωρίς ορίσματα, εμφανίζει μια λίστα αρχείων που είναι αποθηκευμένα στον κατάλογο εργασίας:

\$ cd / usr \$ ls X11R6 doc i686-pc-linux-gnu lib man sbin ssl bin gentoo-x86 include libexec portage share tmp distfiles i686-linux info local portage.old src

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

\$ ls -a... bin gentoo-x86 include libexec portage share tmp .. distfiles i686-linux info local portage.old src X11R6 doc i686-pc-linux-gnu lib man sbin ssl

Αναλυτική λίστα καταλόγων

Μετά την ίδια την εντολή lsΈνα ή περισσότερα αρχεία ή κατάλογοι μπορούν να καθοριστούν ως όρισμα. Εάν καθορίσετε ένα όνομα αρχείου, τότε η εντολή lsθα εμφανίζει πληροφορίες μόνο για αυτό το αρχείο. Και αν καθορίσετε το όνομα του καταλόγου, lsθα εμφανίσει όλο το περιεχόμενό του. Επιλογή '-ΜΕΓΑΛΟ'εντολές lsμπορεί να είναι πολύ χρήσιμο εάν θέλετε να μάθετε πιο λεπτομερείς πληροφορίες σχετικά με αυτά εκτός από τα ονόματα αρχείων (δικαιώματα αρχείου, όνομα κατόχου, χρόνος της τελευταίας τροποποίησης αρχείου και το μέγεθός του).

Το ακόλουθο παράδειγμα δείχνει τη χρήση της επιλογής '-ΜΕΓΑΛΟ'για να εμφανίσετε πληροφορίες σχετικά με τα αρχεία που είναι αποθηκευμένα στον κατάλογο / usr

\$ ls -l / usr drwxr-xr-x 7 root root 168 Nov 24 14:02 X11R6 drwxr-xr-x 2 root root 14576 Dec 27 08:56 bin drwxr-xr-x 2 root root 8856 Dec 26 12:47 distfiles lrwxrwxrwx 1 root root 9 Δεκ 22 20:57 doc-> share / doc drwxr-xr-x 62 root root 1856 Dec 27 15:54 gentoo-x86 drwxr-xr-x 4 root root 152 Dec 12 23:10 i686-linux drwxr-xr-x 4 root root 96 Νοε 24 13:17 i686-pc-linux-gnu drwxr-xr-x 54 root root 5992 24 Δεκεμβρίου 22:30 περιλαμβάνει lrwxrwxrwx 1 root root 10 Δεκ 22 20:57 πληροφορίες-> κοινή χρήση / πληροφορίες drwxr-xr -x 28 ρίζα ρίζας 13552 Δεκ 26 00:31 lib drwxr-xr-x 3 ρίζα ρίζας 72 Νοε 25 00:34 libexec drwxr-xr-x 8 ρίζα ρίζας 240 Δεκ 22 20:57 τοπική lrwxrwxrwx 1 ρίζα ρίζας 9 Δεκ 22 20 : 57 man-> share / man lrwxrwxrwx 1 root root 11 Δεκ 8 07:59 portage-> gentoo-x86 / drwxr-xr-x 60 root root 1864 18 Δεκ 8 07:55 portage.old drwxr-xr-x 3 root 3096 Δεκ 22 20:57 sbin drwxr-xr-x 46 root root 1144 Dec 24 15:32 share drwxr-xr-x 8 root root 328 Dec 26 00:07 src drwxr-xr-x 6 root root 176 Nov 24 14: 25 ssl lrwxrwxrwx 1 ρίζα ρίζας 10 Δεκ 22 20:57 tmp -> ../var/tmp

Η πρώτη στήλη εμφανίζει πληροφορίες σχετικά με τα δικαιώματα για κάθε αρχείο στη λίστα. (Θα εξηγήσω λίγο αργότερα ποιο γράμμα σημαίνει τι) Η επόμενη στήλη δείχνει τον αριθμό των συνδέσμων για κάθε στοιχείο της λίστας. Η τρίτη και η τέταρτη στήλη είναι ο κάτοχος και η ομάδα του αρχείου, αντίστοιχα. Η πέμπτη στήλη είναι μέγεθος. Η έκτη είναι η ώρα που το αρχείο τροποποιήθηκε τελευταία («τελευταία ώρα τροποποίησης» ή ώρα). Η τελευταία στήλη είναι το όνομα του αρχείου ή του καταλόγου (Εάν πρόκειται για σύνδεσμο, τότε μετά το « –> «Σημαίνει το όνομα του αντικειμένου στο οποίο αναφέρεται).

Πώς να βλέπετε μόνο καταλόγους

Μερικές φορές υπάρχει ανάγκη να εξετάσουμε πληροφορίες μόνο για καταλόγους και όχι για όλο το περιεχόμενό τους. Η επιλογή θα σας βοηθήσει να αντιμετωπίσετε αυτό το έργο. '-ΡΕ'που λέει στην εντολή να εμφανίζονται πληροφορίες μόνο για καταλόγους. Παράδειγμα:

\$ ls -dl / usr / usr / bin / usr / X11R6 / bin ../share drwxr-xr-x 4 root root 96 Δεκ 18 18:17 ../ μοιράσου drwxr-xr-x 17 ρίζα ρίζας 576 Δεκ 24 09:03 / usr drwxr-xr-x 2 ρίζα ρίζας 3192 Δεκ 26 12:52 / usr / X11R6 / bin drwxr-xr-x 2 root root 14576 27 Δεκεμβρίου 08:56 / usr / bin

Αναδρομική λίστα και πληροφορίες inode

Επιλογή ενέργειας '-R'απέναντι στη δράση '-ΡΕ'... Σας επιτρέπει να εμφανίζετε πληροφορίες σχετικά με αρχεία σε έναν κατάλογο αναδρομικά. Αρχικά, εμφανίζονται τα περιεχόμενα του καταλόγου ανώτατου επιπέδου, στη συνέχεια, τα περιεχόμενα όλων των υποκαταλόγων εμφανίζονται με τη σειρά τους και ούτω καθεξής. Η έξοδος αυτής της εντολής μπορεί να είναι αρκετά μεγάλη, οπότε δεν παρέχουμε ένα παράδειγμα αυτής, αλλά μπορείτε να το δοκιμάσετε μόνοι σας πληκτρολογώντας « ls -R' ή ' ls -Rl‘.

Τέλος, η επιλογή '-ΕΓΩ'χρησιμοποιείται για την εμφάνιση των inodes κάθε αντικειμένου συστήματος αρχείων.

\$ ls -i / usr 1409 X11R6 314258 i686-linux 43090 libexec 13394 sbin 1417 bin 1513 i686-pc-linux-gnu 5120 local 13408 share 8316 distfiles 1517 include 776 man 23779 src 43 doc 1386 info 93892 portage 36737 ssl 70744 gentoo 5132 portage

Τι είναι τα inodes;

Κάθε αντικείμενο συστήματος αρχείων (αρχείο, κατάλογος ...) έχει τον δικό του μοναδικό αριθμό, που ονομάζεται inode(αριθμός inode). Αυτές οι πληροφορίες μπορεί να ακούγονται ασήμαντες, αλλά η κατανόηση της λειτουργίας των inodes θα σας βοηθήσει να κατανοήσετε πολλές λειτουργίες στο σύστημα αρχείων. Για παράδειγμα, ας δούμε «.» και «..» ως σύνδεσμοι που υπάρχουν σε κάθε κατάλογο. Για να καταλάβετε τι είναι ένας κατάλογος «..» , μάθετε το inode του / use / local directory

\$ ls -id / usr / local 5120 / usr / local

Όπως μπορείτε να δείτε, το inode του / usr / local directory είναι 5120. Τώρα ας δούμε τι έχει inode ο κατάλογος / usr / local / bin / ..:

\$ ls -id / usr / local / bin / .. 5120 / usr / local / bin / ..

Αποδεικνύεται ότι τα inodes των καταλόγων / usr / local και / usr / local / bin / .. είναι τα ίδια! Αυτό σημαίνει ότι το inode 5120 αναφέρεται με δύο ονόματα: / usr / local και / usr / local / bin / .. Δηλαδή, είναι δύο διαφορετικά ονόματα του ίδιου καταλόγου. Κάθε inode δείχνει μια συγκεκριμένη θέση στο δίσκο.

Κάθε inode μπορεί να έχει πολλά ονόματα αντικειμένων του συστήματος αρχείων που σχετίζονται με αυτό. Ο αριθμός των «συνωνύμων» ενός αρχείου (αντικείμενα του συστήματος αρχείων που αναφέρονται σε ένα inode) δείχνει τον αριθμό στη δεύτερη στήλη του « ls -l‘.

\$ ls -dl / usr / local drwxr-xr-x 8 ρίζα ρίζας 240 Δεκ 22 20:57 / usr / local

Σε αυτό το παράδειγμα, μπορείτε να δείτε (δεύτερη στήλη) ότι ο / usr / τοπικός κατάλογος αναφέρεται από 8 διαφορετικά αντικείμενα συστήματος συστήματος. Εδώ είναι τα ονόματά τους:

/ usr / local / usr / local /. / usr / local / bin / .. / usr / local / games / .. / usr / local / lib / .. / usr / local / sbin / .. / usr / local / share / .. / usr / local / src / ..

mkdir

Ας ρίξουμε μια ματιά στην εντολή mkdir... Χρησιμεύει στη δημιουργία νέων καταλόγων. Το ακόλουθο παράδειγμα δείχνει τη δημιουργία τριών νέων καταλόγων (tic, tac, toe) στον κατάλογο / tmp

\$ cd / tmp $ mkdir tic tac toe

Από προεπιλογή, η εντολή mkdirδεν μπορεί να δημιουργήσει μια ένθετη δομή καταλόγου. Επομένως, εάν πρέπει να δημιουργήσετε πολλούς ένθετους καταλόγους ( εκπληκτικός), τότε θα πρέπει να καλέσετε αυτήν την εντολή τρεις φορές μία προς μία:

\$ mkdir won / der / ful mkdir: δεν είναι δυνατή η δημιουργία καταλόγου "won / der / ful": Δεν υπάρχει τέτοιο αρχείο ή κατάλογος \ $ κέρδισε το mkdir \$ mkdir won / der \$ mkdir won / der / ful

Μπορείτε να απλοποιήσετε αυτήν τη λειτουργία προσθέτοντας την επιλογή '-Π'στην εντολή mkdir. Αυτή η επιλογή σάς επιτρέπει να δημιουργήσετε μια ένθετη δομή καταλόγου:

\$ mkdir -p easy / as / pie

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

αφή

Ας περάσουμε στην εκμάθηση εντολών cpκαι mv, χρησιμοποιείται για την αντιγραφή, μετονομασία και μετακίνηση αρχείων και καταλόγων. Αλλά πριν από αυτό, δημιουργήστε ένα κενό αρχείο στον κατάλογο / tmp χρησιμοποιώντας την εντολή αφή:

\$ cd / tmp \$ αγγίξτε αντίγραφο

Ομάδα αφήενημερώνει τον χρόνο της τελευταίας πρόσβασης στο αρχείο (η έκτη στήλη της εξόδου εντολών ls -l) εάν υπάρχει ήδη ή δημιουργεί ένα νέο κενό αρχείο εάν δεν υπάρχει ήδη. Μετά από αυτήν τη λειτουργία, θα πρέπει να έχουμε ένα κενό αρχείο / tmp / copyme.

ηχώ

Τώρα που έχουμε ένα κενό αρχείο, γράψτε μια συμβολοσειρά κειμένου σε αυτήν χρησιμοποιώντας την εντολή ηχώτο οποίο εκτυπώνει το όρισμα που του μεταβιβάστηκε στην τυπική έξοδο (τερματικό κειμένου στην περίπτωσή μας).

\$ ηχώ "firstfile" firstfile

Για να γράψετε μια γραμμή στο αρχείο μας, ανακατευθύνετε την έξοδο της εντολής σε αυτό ηχώ:

\$ ηχώ "firstfile"> copyme

Σημάδι > (περισσότερα) λέει στο κέλυφος να ανακατευθύνει την έξοδο της εντολής στα αριστερά στο αρχείο στα δεξιά. Εάν ένα αρχείο με αυτό το όνομα δεν υπάρχει, θα δημιουργηθεί αυτόματα. Και αν υπάρχει ήδη ένα τέτοιο αρχείο, τότε θα αντικατασταθεί (όλο το περιεχόμενό του θα διαγραφεί πριν γράψουμε τη γραμμή μας). Ομάδα 'Ls -l'θα δείξει ότι το μέγεθος του αρχείου μας είναι τώρα 10 byte - εννέα byte καταλαμβάνονται από τη λέξη "firstfile" και ένα byte είναι ένας χαρακτήρας ροής γραμμής.

\$ ls -l copyme-rw-r-r-- 1 ρίζα ρίζας 10 Δεκ 28 14:13 copyme

γάτα και cp

Για να εξάγετε τα περιεχόμενα ενός αρχείου στο τερματικό, χρησιμοποιήστε την εντολή Γάτα:

\$ αντίγραφο γάτας firstfile

Τώρα μπορούμε να αρχίσουμε να αναλύουμε τη βασική λειτουργικότητα της εντολής cp... Αυτή η εντολή παίρνει δύο επιχειρήματα. Το πρώτο είναι το όνομα ενός υπάρχοντος αρχείου («copyme»), το δεύτερο είναι το όνομα του νέου αντιγράφου που θέλουμε να δημιουργήσουμε («copiedme»).

\$ cp copyme copiedme

Μπορούμε να βεβαιωθούμε ότι το νέο αντίγραφο του αρχείου έχει διαφορετικό αριθμό inode (αυτό σημαίνει ότι λάβαμε ένα πραγματικά νέο ξεχωριστό αρχείο και όχι απλώς έναν σύνδεσμο προς το παλιό)

\$ ls -i copyme copiedme 648284 copiedme 650704 copyme

mv

Τώρα ας εφαρμόσουμε την εντολή mvγια να μετονομάσετε το αρχείο ("copiedme" -> "moveme"). Ο αριθμός inode δεν αλλάζει μετά από αυτήν τη λειτουργία, αλλάζει μόνο το όνομα του αρχείου.

\$ mv copiedme moveme \$ ls -i κινήθηκα 648284 moveme

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

Ομάδα mvσας επιτρέπει όχι μόνο να μετονομάσετε αρχεία, αλλά και να τα μετακινήσετε. Για παράδειγμα, για να μετακινήσετε ένα αρχείο /var/tmp/myfile.txtστον κατάλογο / σπίτι / χρήστηςπρέπει να δώσετε την εντολή:

\$ mv /var/tmp/myfile.txt /home /user

Το αρχείο θα μετακινηθεί στον αρχικό κατάλογο του χρήστη χρήστηςακόμη και αν βρίσκεται σε διαφορετικό σύστημα αρχείων (σε αυτήν την περίπτωση, το αρχείο θα αντιγραφεί σε μια νέα θέση μετά την οποία θα διαγραφεί το πρωτότυπο). Όπως ίσως μαντέψατε, η μετακίνηση ενός αρχείου σε άλλο σύστημα αρχείων αλλάζει το inode του. Αυτό συμβαίνει επειδή κάθε σύστημα αρχείων έχει το δικό του ξεχωριστό σύνολο inodes.

Πρέπει να σημειωθεί ότι υπάρχει η πιθανότητα ο πρόσφατα καθορισμένος αριθμός inode να συμπίπτει με τον παλιό, αλλά είναι εξαιρετικά μικρός.

Για να μετακινήσετε πολλά αρχεία ταυτόχρονα σε έναν κατάλογο, πρέπει να γράψετε:

\$ mv /var/tmp/myfile1.txt /var/tmp/myfile2.txt /home /user \$ mv -t /home /user /var/tmp/myfile1.txt /var/tmp/myfile2.txt

Εάν προσθέσετε την επιλογή '-V', στην οθόνη θα εμφανιστεί μια αναφορά για την εκτελούμενη λειτουργία:

\$ mv -vt /home /user /var/tmp/myfile1.txt /var/tmp/myfile2.txt"/var/tmp/myfile1.txt" -> "/home/user/myfile1.txt" "/var/tmp/myfile2.txt" -> "/home/user/myfile2.txt"