10 καλές συνήθειες στη χρήση του τερματικού (Μέρος 1)

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

10-kales-sinithies-sto-termatiko

Εισαγωγή

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

 

1. Δημιουργήστε δέντρα φακέλων μονομιάς

Κακή συνήθεια

Στην ακόλουθη εντολή βλέπουμε μια από τις χειρότερες και γνωστότερες συνήθειες που ακόμη και έμπειροι χρήστες την «πατάνε». Δημιουργία φακέλων έναν-έναν.

~ $ mkdir tmp
~ $ cd tmp
~/tmp $ mkdir a
~/tmp $ cd a
~/tmp/a $ mkdir b
~/tmp/a $ cd b
~/tmp/a/b/ $ mkdir c
~/tmp/a/b/ $ cd c
~/tmp/a/b/c $

Καλή συνήθεια

Χρησιμοποιώντας την ακόλουθη εντολή μπορούμε να κάνουμε υποφακέλους μέσα στο φάκελο.

~ $ mkdir -p tmp/a/b/c

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

~ $ mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}

και το αποτέλεσμα μας θα είναι κάπως έτσι terminal

2. Αλλάξτε τη διαδρομή, μη μετακινείτε το αρχείο

Αρκετοί από εμάς έχουμε μετακινήσει ένα .tar αρχείο σε ένα φάκελο μόνο και μόνο για να το αποσυμπιέσουμε σε αυτόν. Δε χρειάζεται να το κάνουμε αυτό.

Καλή συνήθεια

Χρησιμοποιούμε την επιλογή -C για να αποσυμπιέσουμε ένα .tar αρχείο

~ $ tar xvf -C tmp/a/b/c newarc.tar.gz

Κάνοντας συνήθεια την αποσυμπίεση του επιθυμητού αρχείου με τη χρήση της επιλογής -C είναι προτιμότερο από τη μετακίνηση του αρχείου στο φάκελο της αποσυμπίεσης, ειδικά αν το αρχείο ανήκει κάπου αλλού.

3. Συνδυάστε τις εντολές σας με control operators

Πιθανότατα ξέρετε ήδη ότι στα περισσότερα κελύφη (shells) μπορούμε να συνδυάσουμε εντολές, με την προσθήκη ενός ερωτηματικού (;) μεταξύ τους. Το (ελληνικό) ερωτηματικό (semicolon) είναι ένας shell control operator και παρότι είναι χρήσιμος για την παράθεση πολλαπλών διακριτών εντολών σε μια γραμμή δε δουλεύει για όλες τις περιπτώσεις. Για παράδειγμα, ας πούμε ότι θέλουμε να συνδυάσουμε δύο εντολές, όπου η εκτέλεση της 2ης εξαρτάται αποκλειστικά από την επιτυχή εκτέλεση της 1ης. Αν η 1η εντολή δεν τελειώσει όπως επιθυμούμε, η 2η θα εκτελεστεί μεν αλλά θα αποτύχει δε. Για να αποφύγουμε αυτά τα αδιέξοδα, καλό είναι να συνηθίσουμε στη χρήση των κατάλληλων control operators ανάλογα με την περίσταση (εφόσον υποστηρίζονται από το κέλυφος μας).

Εκτέλεση εντολής μονό αν μια άλλη εντολή επιστρέψει zero exit status (επιτυχής εκτέλεση της εντολής)

Με τη χρήση του && control operator, συνδυάζουμε δύο εντολές με τέτοιο τρόπο ούτως ώστε η 2η θα εκτελεστεί μόνο αν η 1η επιστρέψει 0 exit status, με άλλα λόγια να εκτελεστεί επιτυχώς. Δηλαδή αν τρέξει σωστά η 1η, θα τρέξει και η 2η. Αν η 1η δεν τρέξει ή αποτύχει να δουλέψει σωστά, η 2η εντολή δε θα εκτελεστεί.

~ $ cd tmp/a/b/c && tar xvf ~/archive.tar

Στην παραπάνω εντολή τα περιεχόμενα του αρχείου archive.tar θα αποσυμπιεστούν στο φάκελο ~/tmp/a/b/c , εκτός και αν ο φάκελος αυτός δεν υπάρχει. Αν ο φάκελος δεν υπάρχει, η εντολή tar δεν τρέχει και τίποτε δεν αποσυμπιέζεται.

Εκτέλεση εντολής μονό αν μια άλλη εντολή επιστρέψει non zero exit status (μη επιτυχής εκτέλεση της εντολής)

Στο ίδιο μοτίβο με την παραπάνω εντολή, τα || control operators κάνουν το ακριβώς αντίθετο από τα &&. Δηλαδή η 2η εντολή τρέχει μόνο αν η πρώτη αποτύχει να εκτελεστεί. Αντιθέτως αν καταφέρει να εκτελεστεί η πρώτη εντολή, η 2η δεν εκτελείται. Η χρήση αυτού του control operator γίνεται συνήθως για να διαπιστώσει την ύπαρξη ενός φακέλου και αν δεν υπάρχει τον δημιουργεί.

~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c

Φυσικά μπορούν να συνδυαστούν τα control operators που αναφέρθηκαν μεταξύ τους σε μια πιο σύνθετη εντολή.

~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c && tar xvf -C tmp/a/b/c ~/archive.tar

4. Με προσοχή τα εισαγωγικά στις μεταβλητές

Πάντοτε πρέπει να είμαστε προσεκτικοί με την επέκταση του κελύφους και  τα εισαγωγικά («»). Γενικά είναι καλή ιδέα να περικλείουμε κλήσεις μεταβλητών σε εισαγωγικά («») εκτός αν έχουμε έναν καλό λόγο να μην το κάνουμε. Ομοίως αν αμέσως μετά τη μεταβλητή ακολουθεί αλφαριθμητικό κείμενο, να σιγουρευτούμε ότι το όνομα αυτής θα βρίσκεται σε άγκιστρα ({}) για να διαχωριστεί από το περιβάλλον κείμενο. Διαφορετικά το κέλυφος θα ερμηνεύσει το κείμενο που ακολουθεί ως μέρος του ονόματος της μεταβλητής και πιθανότατα θα επιστρέψει μήνυμα λάθους.

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

~ $ ls tmp/
a b
~ $ VAR="tmp/*"
~ $ echo $VAR
tmp/a tmp/b
~ $ echo "$VAR"
tmp/*
~ $ echo $VARa

~ $ echo "$VARa"

~ $ echo "${VAR}a"
tmp/*a
~ $ echo ${VAR}a
tmp/a
~ $

5. Προσπαθήστε να μην έχετε μεγάλες γραμμές

Όλοι έχουμε κάπου δει ένα κομμάτι κώδικα όπου ένα backlash (\) συνεχίζει μια μεγάλη γραμμή στην επόμενη. Τα περισσότερα κελύφη συμπεριφέρονται σε κώδικα που χωρίζεται με «\» και συνεχίζεται στις επόμενες γραμμές σαν μια μεγάλη γραμμή. Όμως αυτή η καλή συνήθεια μπορεί να μη σας είναι πάντοτε χρήσιμη. Το backlash είναι χρήσιμο στις περιπτώσεις που το κέλυφος μας δεν μπορεί να διαχειριστεί συνένωση πολλαπλών γραμμών ή σε περιπτώσεις που το prompt είναι μεγάλο (ή το παράθυρο της γραμμής εντολών είναι μικρό). Εκεί που όμως πραγματικά μας βοηθά η υοιθέτηση αυτής της καλής συνήθειας, είναι η κατανόηση των εντολών που προσθέτουμε καθώς τις γράφουμε όπως θα δούμε στο ακόλουθο παράδειγμα.

~ $ cd tmp/a/b/c || \
> mkdir -p tmp/a/b/c && \
> tar xvf -C tmp/a/b/c ~/archive.tar

Εναλλακτικά μπορούμε να κάνουμε και αυτό

~ $ cd tmp/a/b/c \
>                 || \
> mkdir -p tmp/a/b/c \
>                    && \
> tar xvf -C tmp/a/b/c ~/archive.tar

Επίλογος

Η γνώση του Linux είναι άρρηκτα συνδεδεμένη με τη χρήση του τερματικού. Από τον αρχάριο μέχρι τον system administrator, η ορθή χρήση του βοηθά στην καλύτερη κατανόηση τι εστί linux/unix ενώ ταυτόχρονα αναδεικνύει τι δύναμη που κρύβουν τα unixoειδή συστήματα «κάτω από το καπό».

Πηγή

Απορίες, παρατηρήσεις, ιδέες... Ελεύθερα ! Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s