5 σύγχρονες εναλλακτικές λύσεις στα παλιά εργαλεία γραμμής εντολών Linux

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

5 σύγχρονες εναλλακτικές λύσεις στα παλιά εργαλεία γραμμής εντολών Linux

Στην καθημερινή μας εργασία στο Linux/Unix, χρησιμοποιούμε πολλά εργαλεία γραμμής εντολών - για παράδειγμα, για την παρακολούθηση της χρήσης του δίσκου και των πόρων του συστήματος. Μερικά από αυτά τα εργαλεία υπάρχουν εδώ και πολύ καιρό. Για παράδειγμα, το top εμφανίστηκε το 1984 και η πρώτη κυκλοφορία του du χρονολογείται από το 1971.

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

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

1. ncdu vs du

Χρήση δίσκου NCurses (ncdu) είναι παρόμοιο με το du, αλλά με διαδραστική διεπαφή που βασίζεται στη βιβλιοθήκη κατάρες. Το ncdu εμφανίζει τη δομή καταλόγου που καταλαμβάνει το μεγαλύτερο μέρος του χώρου στο δίσκο σας.

Το ncdu αναλύει το δίσκο και στη συνέχεια εμφανίζει τα αποτελέσματα ταξινομημένα με βάση τους καταλόγους ή αρχεία που χρησιμοποιούνται πιο συχνά, για παράδειγμα:

ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
--- /home/rgerardi ------------------------------------------------------------
   96.7 GiB [##########] /libvirt
   33.9 GiB [###       ] /.crc
    7.0 GiB [          ] /Projects
.   4.7 GiB [          ] /Downloads
.   3.9 GiB [          ] /.local
    2.5 GiB [          ] /.minishift
    2.4 GiB [          ] /.vagrant.d
.   1.9 GiB [          ] /.config
.   1.8 GiB [          ] /.cache
    1.7 GiB [          ] /Videos
    1.1 GiB [          ] /go
  692.6 MiB [          ] /Documents
. 591.5 MiB [          ] /tmp
  139.2 MiB [          ] /.var
  104.4 MiB [          ] /.oh-my-zsh
   82.0 MiB [          ] /scripts
   55.8 MiB [          ] /.mozilla
   54.6 MiB [          ] /.kube
   41.8 MiB [          ] /.vim
   31.5 MiB [          ] /.ansible
   31.3 MiB [          ] /.gem
   26.5 MiB [          ] /.VIM_UNDO_FILES
   15.3 MiB [          ] /Personal
    2.6 MiB [          ]  .ansible_module_generated
    1.4 MiB [          ] /backgrounds
  944.0 KiB [          ] /Pictures
  644.0 KiB [          ]  .zsh_history
  536.0 KiB [          ] /.ansible_async
 Total disk usage: 159.4 GiB  Apparent size: 280.8 GiB  Items: 561540

Μπορείτε να πλοηγηθείτε στις καταχωρήσεις χρησιμοποιώντας τα πλήκτρα βέλους. Εάν πατήσετε Enter, το ncdu θα εμφανίσει τα περιεχόμενα του επιλεγμένου καταλόγου:

--- /home/rgerardi/libvirt ----------------------------------------------------
                         /..
   91.3 GiB [##########] /images
    5.3 GiB [          ] /media

Μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για να προσδιορίσετε, για παράδειγμα, ποια αρχεία καταλαμβάνουν τον περισσότερο χώρο στο δίσκο. Μπορείτε να μεταβείτε στον προηγούμενο κατάλογο πατώντας το αριστερό πλήκτρο βέλους. Με το ncdu μπορείτε να διαγράψετε αρχεία πατώντας το πλήκτρο d. Ζητάει επιβεβαίωση πριν τη διαγραφή. Εάν θέλετε να απενεργοποιήσετε τη δυνατότητα διαγραφής για να αποτρέψετε την τυχαία απώλεια πολύτιμων αρχείων, χρησιμοποιήστε την επιλογή -r για να ενεργοποιήσετε τη λειτουργία πρόσβασης μόνο για ανάγνωση: ncdu -r.

Το ncdu είναι διαθέσιμο για πολλές πλατφόρμες και διανομές Linux. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το dnf για να το εγκαταστήσετε στο Fedora απευθείας από τα επίσημα αποθετήρια:

$ sudo dnf install ncdu

2. htop vs top

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

Από προεπιλογή το htop μοιάζει με αυτό:

5 σύγχρονες εναλλακτικές λύσεις στα παλιά εργαλεία γραμμής εντολών Linux
Σε αντίθεση με την κορυφή:

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

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

3. tldr εναντίον ανθρώπου

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

Αξίζει να σημειωθεί ότι το tldr δεν αντικαθιστά τον άνδρα. Εξακολουθεί να είναι το κανονικό και πιο ολοκληρωμένο εργαλείο εξόδου man page. Ωστόσο, σε ορισμένες περιπτώσεις ο άνθρωπος είναι περιττός. Όταν δεν χρειάζεστε ολοκληρωμένες πληροφορίες σχετικά με μια εντολή, προσπαθείτε απλώς να θυμηθείτε τις βασικές χρήσεις της. Για παράδειγμα, η σελίδα man για την εντολή curl περιέχει σχεδόν 3000 γραμμές. Η σελίδα tldr για curl έχει μήκος 40 γραμμές. Το απόσπασμά του μοιάζει με αυτό:


$ tldr curl

# curl
  Transfers data from or to a server.
  Supports most protocols, including HTTP, FTP, and POP3.
  More information: <https://curl.haxx.se>.

- Download the contents of an URL to a file:

  curl http://example.com -o filename

- Download a file, saving the output under the filename indicated by the URL:

  curl -O http://example.com/filename

- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:

  curl -O -L -C - http://example.com/filename

- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):

  curl -d 'name=bob' http://example.com/form                                                                                            
- Send a request with an extra header, using a custom HTTP method:

  curl -H 'X-My-Header: 123' -X PUT http://example.com                                                                                  
- Send data in JSON format, specifying the appropriate content-type header:

  curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234

... TRUNCATED OUTPUT

TLDR σημαίνει «πολύ μεγάλο. δεν διάβασε»: δηλαδή κάποιο κείμενο αγνοήθηκε λόγω του υπερβολικού βερμπαλισμού του. Το όνομα είναι κατάλληλο για αυτό το εργαλείο επειδή οι σελίδες man, αν και χρήσιμες, μπορεί μερικές φορές να είναι πολύ μεγάλες.

Για το Fedora, το tldr γράφτηκε σε Python. Μπορείτε να το εγκαταστήσετε χρησιμοποιώντας το dnf manager. Συνήθως, το εργαλείο απαιτεί πρόσβαση στο Διαδίκτυο για να λειτουργήσει. Ωστόσο, ο πελάτης Python του Fedora επιτρέπει τη λήψη και την προσωρινή αποθήκευση αυτών των σελίδων για πρόσβαση εκτός σύνδεσης.

4.jq εναντίον sed/grep

Το jq είναι ένας επεξεργαστής JSON για τη γραμμή εντολών. Είναι παρόμοιο με το sed ή το grep, αλλά έχει σχεδιαστεί ειδικά για να λειτουργεί με δεδομένα JSON. Εάν είστε προγραμματιστής ή διαχειριστής συστήματος που χρησιμοποιεί JSON σε καθημερινές εργασίες, αυτό είναι το εργαλείο για εσάς.

Το κύριο πλεονέκτημα του jq έναντι των τυπικών εργαλείων επεξεργασίας κειμένου, όπως το grep και το sed, είναι ότι κατανοεί τη δομή δεδομένων JSON, επιτρέποντάς σας να δημιουργείτε σύνθετα ερωτήματα σε μία μόνο έκφραση.

Για παράδειγμα, προσπαθείτε να βρείτε ονόματα κοντέινερ σε αυτό το αρχείο JSON:

{
  "apiVersion": "v1",
  "kind": "Pod",
  "metadata": {
    "labels": {
      "app": "myapp"
    },
    "name": "myapp",
    "namespace": "project1"
  },
  "spec": {
    "containers": [
      {
        "command": [
          "sleep",
          "3000"
        ],
        "image": "busybox",
        "imagePullPolicy": "IfNotPresent",
        "name": "busybox"
      },
      {
        "name": "nginx",
        "image": "nginx",
        "resources": {},
        "imagePullPolicy": "IfNotPresent"
      }
    ],
    "restartPolicy": "Never"
  }
}

Εκτελέστε το grep για να βρείτε το όνομα συμβολοσειράς:

$ grep name k8s-pod.json
        "name": "myapp",
        "namespace": "project1"
                "name": "busybox"
                "name": "nginx",

Το grep επέστρεψε όλες τις γραμμές που περιέχουν τη λέξη όνομα. Μπορείτε να προσθέσετε μερικές ακόμη παραμέτρους στο grep για να το περιορίσετε και με κάποιο χειρισμό τυπικών εκφράσεων να βρείτε τα ονόματα των κοντέινερ.

Για να έχετε το ίδιο αποτέλεσμα χρησιμοποιώντας jq, απλώς γράψτε:

$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"

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

$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"

Εφόσον το jq γνωρίζει για τη δομή των δεδομένων, παράγει τα ίδια αποτελέσματα ακόμα κι αν αλλάξει ελαφρώς η μορφή του αρχείου. Το grep και το sed ενδέχεται να μην λειτουργούν σωστά σε αυτήν την περίπτωση.

Το jq έχει πολλές λειτουργίες, αλλά χρειάζεται ένα άλλο άρθρο για να τις περιγράψει. Για περισσότερες πληροφορίες επικοινωνήστε σελίδα του έργου jq ή να tldr.

5. fd vs βρείτε

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

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

Από προεπιλογή, το fd εκτελεί μια αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων στον τρέχοντα κατάλογο, με έγχρωμη έξοδο. Η ίδια αναζήτηση χρησιμοποιώντας την εντολή find απαιτεί την εισαγωγή πρόσθετων παραμέτρων στη γραμμή εντολών. Για παράδειγμα, για να βρείτε όλα τα αρχεία .md (ή .MD) στον τρέχοντα κατάλογο, θα γράψετε μια εντολή εύρεσης όπως αυτή:

$ find . -iname "*.md"

Για το fd μοιάζει με αυτό:

$ fd .md

Αλλά σε ορισμένες περιπτώσεις, το fd απαιτεί επίσης πρόσθετες επιλογές: για παράδειγμα, εάν θέλετε να συμπεριλάβετε κρυφά αρχεία και καταλόγους, πρέπει να χρησιμοποιήσετε την επιλογή -H, αν και αυτό συνήθως δεν απαιτείται κατά την αναζήτηση.

Το fd είναι διαθέσιμο για πολλές διανομές Linux. Στο Fedora μπορεί να εγκατασταθεί ως εξής:

$ sudo dnf install fd-find

Δεν χρειάζεται να παρατήσεις τίποτα

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

Σχετικά με τα Δικαιώματα Διαφήμισης

Πολλοί από τους πελάτες μας έχουν ήδη εκτιμήσει τα οφέλη επικοί διακομιστές!
Το εικονικοί διακομιστές με επεξεργαστές AMD EPYC, συχνότητα πυρήνα CPU έως 3.4 GHz. Η μέγιστη διαμόρφωση θα σας επιτρέψει να έχετε ένα blast - 128 πυρήνες CPU, 512 GB RAM, 4000 GB NVMe. Βιαστείτε να παραγγείλετε!

5 σύγχρονες εναλλακτικές λύσεις στα παλιά εργαλεία γραμμής εντολών Linux

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο