Μαζί με το UNIX πήραμε πολλές εντολές για χρήση στο τερματικό. Αλλά κάποιες χρήσιμες δυνατότητες ποτέ δεν προστέθηκαν. Αυτό το κενό καλύπτει το έργο moreutils
.
Οι εντολές
- chronic - Τρέχει μια εντολή και δε δείχνει τίποτα έκτος αν αποτύχει
- combine - Συνδιάζει δυο αρχεία κειμένου με λογικούς τελεστές
- errno - Δείχνει περιγραφές για αριθμούς σφαλμάτων
- ifdata - Ένας άλλος τρόπος να πάρουμε πληροφορίες για την κάρτα δικτύου
- ifne - Εκτέλεση ενός προγράμματος μόνο αν η είσοδος είναι κενή
- isutf8 - Ελέγχει αν ένα αρχείο (ή μια ροή εισόδου) είναι σε utf-8.
- lckdo - Τρέχει ένα πρόγραμμα μετά από θα κάνει ένα κλείδωμα.
- mispipe - Διασωλήνωση και επιστροφή του κωδικού λάθους της πρώτης εντολής.
- parallel - Τρέχει πολλά προγράμματα σε παραλληλία.
- pee - tee για ροές εισόδου.
- sponge - Soak up την είσοδο και γράψιμο σε αρχείο.
- ts - Προσθήκη timestamp στη ροή εισόδου
- vidir - Διόρθωσή ονομάτων αρχείων καταλόγου με επεξεργαστή κειμένου.
- vipe - Προσθήκη ενός επεξεργαστή κειμένου σε μια διασωλήνωση.
- zrun - Αυτόματη αποσυμπίεση ορισμάτων μιας εντολής.
Οι εντολές αυτές (θα δούμε τι κάνουν για μερικές) δεν είναι διαθέσιμες συνήθως και θα πρέπει να εγκατασταθούν. Το πακέτο έχει όνομα moreutils
. Κάτι που είναι κρίμα γιατί δεν μπορείς να τις χρησιμοποιήσεις πάντα σε κάποιο πρόγραμμα κελύφους.
compine
Παίρνει δυο αρχεία και κάνει λογικές πράξεις με τα περιεχόμενα τους. Για παράδειγμα, να βρούμε τις γραμμές που υπάρχουν και στα δύο αρχεία, τις γραμμές που υπάρχουν μόνο σε ένα αρχείο κλπ… Οι τελεστές που υποστηρίζει είναι and
, not
, or
, xor
. Την έχω χρησιμοποιήσει για να βρω διαφορές ανάμεσα στα περιεχόμενά δυο καταλόγων.
compine file1 <op> file2
ifdata
Αξίζει να την τρέξεις με ένα --help
να βρεις πόσα πράγματα μπορεί να κάνει. Για παράδειγμα, για να βρω το MTU θα δώσω
ifdata -pm enp5s0
Θα μπορούσα να πάρω την ίδια πληροφορία με πολλά grep, αλλά έτσι είναι ευκολότερο.
pee
Παίρνει μια είσοδο και την κάνει κλωνοποίηση σε μια η περισσότερες εξόδους. Μοιάζει με την γνωστή tee
αλλά αντί να στέλνει την έξοδο σε αρχείο τη στέλνει σε άλλα προγράμματα.
echo "Hello" | pee cat wc
echo "Linux is Fun!" | pee cat 'cut -d" " -f1'
sponge
Παίρνει την είσοδο και τη γράφει σε ένα αρχείο. Μα αυτό δεν κάνει και μια ανακατεύθυνση; Υπάρχει μια μικρή αλλά κρίσιμη διαφορά, η sponge
θα περιμένει να συγκεντρωθεί όλη η πληροφορία στην είσοδο πρώτα. Πολύ χρήσιμο σε προγράμματά κελύφους σε κάποιες περιπτώσεις.
ts
Μια απλή εντολή που προσθέτει χρόνο στην είσοδο. Την έχω χρησιμοποιήσει πολλές φορές για το debug
του φτωχού: Εντολές print
μέσα στον κώδικα
ping -c 2 linux-user.gr | ts
vidir
Μόνο για αυτήν την εντολή αξίζει να εγκαταστήσεις το πακέτο. Λειτουργεί ως εξής: Παίρνει μια λίστα αρχείων ή ένα όνομα φακέλου και ανοίγει μια λίστα αρχείων σε ένα επεξεργαστή κειμένου. Εδώ μπορούμε να αλλάξουμε τα ονόματα των αρχείων ή ακόμα και να σβήσουμε κάποια. Με την αποθήκευση του αρχείου οι αλλαγές θα εφαρμοστούν στο σύστημα των αρχείων.
find | vidir
Μια βελτιωμένη έκδοση της εντολής υπάρχει εδώ:
GitHub - bulletmark/edir: Program to rename, remove, and copy files and directories using your editor
vipe
Γιατί πάντα δεν ήθελες να προσθέσεις ένα vi
στη μέση μιας διασωλήνωσης για να δεις πως τα πάντα πάνε καλά ή να διορθώσεις με το χέρι μια παράξενη περίπτωση;
Περισσότερες εντολές
Ελπίζω με τη σύντομη αυτή παρουσίαση να πήρατε χρήσιμες ιδέες και εντολές για το επόμενο πρόγραμμα σας σε bash. Δεν είναι όλλες τόσο χρήσιμες, αλλά όσο μεγαλύτερη είναι η εργαλειοθήκη σου τόσο πιθανότερο να βρεις το σωστό πρόγραμμα για τη σωστή χρήση.
Για περισσότερα: