Χρησιμοποιώντας πιο σύγχρονες εναλλακτικές σε συνδυασμό με παλαιότερα εργαλεία γραμμής εντολών, μπορείτε να διασκεδάσετε περισσότερο και ακόμη και να βελτιώσετε την παραγωγικότητά σας.
Στην καθημερινή μας εργασία στο Linux/Unix, χρησιμοποιούμε πολλά εργαλεία γραμμής εντολών - για παράδειγμα, για την παρακολούθηση της χρήσης του δίσκου και των πόρων του συστήματος. Μερικά από αυτά τα εργαλεία υπάρχουν εδώ και πολύ καιρό. Για παράδειγμα, το top εμφανίστηκε το 1984 και η πρώτη κυκλοφορία του du χρονολογείται από το 1971.
Με τα χρόνια, αυτά τα εργαλεία έχουν εκσυγχρονιστεί και μεταφερθεί σε διαφορετικά συστήματα, αλλά γενικά δεν έχουν απομακρυνθεί πολύ από τις πρώτες τους εκδόσεις, η εμφάνιση και η χρηστικότητά τους επίσης δεν έχουν αλλάξει πολύ.
Αυτά είναι εξαιρετικά εργαλεία που χρειάζονται πολλοί διαχειριστές συστήματος. Ωστόσο, η κοινότητα έχει αναπτύξει εναλλακτικά εργαλεία που προσφέρουν πρόσθετα οφέλη. Μερικά από αυτά έχουν απλώς μια μοντέρνα, όμορφη διεπαφή, ενώ άλλα βελτιώνουν σημαντικά τη χρηστικότητα. Σε αυτή τη μετάφραση, θα μιλήσουμε για πέντε εναλλακτικές λύσεις στα τυπικά εργαλεία γραμμής εντολών Linux.
1. ncdu vs du
Χρήση δίσκου NCurses (
Το 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
Από προεπιλογή το htop μοιάζει με αυτό:
Σε αντίθεση με την κορυφή:
Επιπλέον, το htop εμφανίζει πληροφορίες επισκόπησης για το σύστημα στο επάνω μέρος και έναν πίνακα για την εκτέλεση εντολών χρησιμοποιώντας τα πλήκτρα λειτουργιών στο κάτω μέρος. Μπορείτε να το διαμορφώσετε πατώντας F2 για να ανοίξετε την οθόνη διαμόρφωσης. Στις Ρυθμίσεις, μπορείτε να αλλάξετε χρώματα, να προσθέσετε ή να αφαιρέσετε μετρήσεις ή να αλλάξετε τις επιλογές εμφάνισης του πίνακα επισκόπησης.
Αν και μπορείτε να επιτύχετε παρόμοια χρηστικότητα τροποποιώντας τις ρυθμίσεις των πιο πρόσφατων εκδόσεων του top, το htop παρέχει βολικές προεπιλεγμένες διαμορφώσεις, που το καθιστούν πιο πρακτικό και πιο εύκολο στη χρήση.
3. 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 έχει πολλές λειτουργίες, αλλά χρειάζεται ένα άλλο άρθρο για να τις περιγράψει. Για περισσότερες πληροφορίες επικοινωνήστε
5. fd vs βρείτε
Για παράδειγμα, κατά την αναζήτηση αρχείων σε έναν κατάλογο αποθετηρίου 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; Ή μήπως κάθεσαι αποκλειστικά στα παλιά; Αλλά πιθανότατα έχετε ένα συνδυασμό, σωστά; Μοιραστείτε την εμπειρία σας στα σχόλια.
Σχετικά με τα Δικαιώματα Διαφήμισης
Πολλοί από τους πελάτες μας έχουν ήδη εκτιμήσει τα οφέλη επικοί διακομιστές!
Το
Πηγή: www.habr.com