Στο Linux, μπορείτε να βρείτε πολλές εντολές με ασυνήθιστες λειτουργίες. Μία τέτοια εντολή είναι η seq, η οποία εξάγει μια ακολουθία αριθμών ανάλογα με τα καθορισμένα ορίσματα.
Αλλά τι μπορείτε να κάνετε με ένα βοηθητικό πρόγραμμα γραμμής εντολών που σας ρίχνει πολλά ψηφία; Θα μάθετε σε αυτόν τον οδηγό.
Τι είναι η εντολή seq;
Όπως αναφέρθηκε παραπάνω, η εντολή seq στο Linux δημιουργεί γρήγορα μια ακολουθία αριθμητικών χαρακτήρων. Οι χρήστες μπορούν να μεταβιβάσουν ορίσματα στην εντολή για να δημιουργήσουν διαφορετικούς συνδυασμούς αριθμών. Για παράδειγμα, μπορείτε να λάβετε μια αυξημένη λίστα μεταβιβάζοντας απλώς ένα πρόσθετο όρισμα στο seq.
Ποια είναι όμως η πρακτική χρήση της εντολής; Ενώ το seq μπορεί να μην φαίνεται σαν ένα ισχυρό εργαλείο στο σύνολό του, μπορείτε να επωφεληθείτε από την εντολή εφαρμόζοντας την με άλλα βοηθητικά προγράμματα Linux. Μπορείτε επίσης να χρησιμοποιήσετε το seq in σενάρια bash για να αποκαλύψει την πραγματική του δύναμη.
Πώς να χρησιμοποιήσετε το seq στο Linux
Η Seq παίρνει μόνο μερικά επιχειρήματα, γεγονός που το καθιστά ένα εύκολο στη μάθηση εργαλείο για οποιονδήποτε.
Βασική σύνταξη
Η βασική σύνταξη της εντολής είναι:
αριθμοί επιλογών seq
...όπου επιλογές είναι οι σημαίες που μπορείτε να καθορίσετε για να καλέσετε διαφορετικές μεθόδους της εντολής και αριθμοί είναι τα επιχειρήματα που περνάτε για να δημιουργήσετε την αριθμητική ακολουθία.
Δημιουργήστε μια λίστα αριθμών
Τα ορίσματα Seq ακολουθούν τη μορφή εισαγωγής που δίνεται παρακάτω:
seq τελευταία
seq πρώτο τελευταίο
seq πρώτη αύξηση τελευταία
Όταν καθορίζετε μόνο έναν αριθμό, το seq τον ερμηνεύει ως το ανώτερο όριο για τη λίστα και δημιουργεί μια ακολουθία που ξεκινά από έναν έως τον καθορισμένο αριθμό.
επ. 5
Η προαναφερθείσα εντολή θα εμφανίσει τα εξής:
1
2
3
4
5
Όταν το seq λαμβάνει δύο αριθμούς ως είσοδο, τους ερμηνεύει ως το κατώτερο όριο και το ανώτερο όριο για την ακολουθία. Για να δημιουργήσετε μια λίστα αριθμών από τέσσερις έως οκτώ:
επ. 4 8
Παραγωγή:
4
5
6
7
8
Αλλά όταν μεταβιβάζετε τρεις αριθμούς στην εντολή, ερμηνεύει το δεύτερο όρισμα ως τον αριθμό αύξησης. Για παράδειγμα:
seq 3 2 13
Η προαναφερθείσα εντολή θα εμφανίσει μια λίστα αριθμών που ξεκινούν από τρεις έως και 13 με αύξηση δύο.
3
5
7
9
11
13
Προσθέστε ένα διαχωριστικό μεταξύ αριθμών
Από προεπιλογή, το seq χρησιμοποιεί έναν χαρακτήρα γραμμής ως διαχωριστικό για τη λίστα. Αυτός είναι ο λόγος για τον οποίο κάθε αριθμός στη λίστα βρίσκεται σε ξεχωριστή γραμμή.
Μπορείτε να αλλάξετε αυτήν την προεπιλεγμένη συμπεριφορά και να χρησιμοποιήσετε ένα προσαρμοσμένο διαχωριστικό χρησιμοποιώντας το -μικρό σημαία. Για να χρησιμοποιήσετε το Περίοδος (.) χαρακτήρας ως διαχωριστικό:
seq -s. 3 7
Παραγωγή:
3.4.5.6.7
Λάβετε υπόψη ότι ορισμένοι χαρακτήρες αρέσει το Πεσπιρώμενη (~) πρέπει να περικλείεται εντός εισαγωγικών. Αυτό συμβαίνει επειδή το τερματικό χρησιμοποιεί το Πεσπιρώμενη χαρακτήρα για να δηλώσει το /home κατάλογο και αυτό θα αντικατοπτριζόταν στην έξοδο εάν δεν προσθέσετε τα εισαγωγικά.
seq -s ~ 3 7
Παραγωγή:
3 / σπίτι / 4 / σπίτι / 5 / σπίτι / 6 / σπίτι / 7
Από την άλλη πλευρά, όταν τυλίγετε το διαχωριστικό με εισαγωγικά:
seq -s '~' 3 7
Παραγωγή:
3~4~5~6~7
Ρυθμίστε τη μορφή εξόδου
Μπορείτε επίσης να αλλάξετε τη μορφή της ακολουθίας εξόδου χρησιμοποιώντας το -φά σημαία. Από προεπιλογή, το seq εξάγει το στυλ μορφής από την είσοδο του χρήστη. Για παράδειγμα, εάν καθορίσετε τους αριθμούς 0,1 και 0,5, η προεπιλεγμένη έξοδος θα έχει μορφή αριθμού κινητής υποδιαστολής.
seq 0,1 0,5
Παραγωγή:
0.1
0.2
0.3
0.4
0.5
Μπορείτε να καθορίσετε μια προσαρμοσμένη μορφή εξόδου χρησιμοποιώντας τις διάφορες προδιαγραφές μετατροπής όπως% a,% e,% f,% g,% A,% E,% F και% G.
Μπορείτε να χρησιμοποιήσετε το %φά προσδιοριστής εάν θέλετε η έξοδος να ακολουθεί τη μορφή αριθμού κινητής υποδιαστολής.
seq-f% f 4 7
Παραγωγή:
4.000000
5.000000
6.000000
7.000000
Για να τροποποιήσετε την ακρίβεια έως και δύο δεκαδικά σημεία:
seq -f% 0.2f 4 7
Παραγωγή:
4.00
5.00
6.00
7.00
Μπορείτε επίσης να μεταμορφώσετε πλήρως την έξοδο καθορίζοντας ένα πρότυπο εξόδου. Για παράδειγμα, για να λάβετε μια λίστα με όλες τις διευθύνσεις IP που ξεκινούν με 192.168.5.χ:
seq -f 192.168.5.% g 1 233
Παραγωγή:
Για να προσθέσετε padding στην έξοδο, μπορείτε να χρησιμοποιήσετε το -β σημαία. ο -β Η σημαία διατηρεί το πλάτος της εξόδου σύμφωνα με τον καθορισμένο μεγαλύτερο αριθμό.
Για να δημιουργήσετε μια ακολουθία αριθμών μεταξύ ενός και 1.000 με αύξηση 100, διατηρώντας παράλληλα ένα σταθερό πλάτος:
seq -w 1 100 1000
Παραγωγή:
0001
0101
0201
0301
0401
0501
0601
0701
0801
0901
Λάβετε βοήθεια γραμμής εντολών seq
Ενώ το seq είναι εύκολο στη χρήση, μερικές φορές οι χρήστες μπορεί να αισθάνονται την ανάγκη ελέγξτε τη σελίδα εγχειριδίων για την εντολή. ο --βοήθεια Η σημαία θα εμφανίσει τη σελίδα man seq:
seq - βοήθεια
Παραγωγή:
Πρακτικά παραδείγματα
Όπως ήδη αναφέρθηκε, το seq χρησιμοποιείται κυρίως με άλλες εντολές Linux, για παράδειγμα, touch και expr.
Εκτελέστε μαθηματικές λειτουργίες
Εάν θέλετε να προσθέσετε ή να αφαιρέσετε γρήγορα ένα συγκεκριμένο εύρος αριθμών, μπορείτε να το κάνετε εύκολα χρησιμοποιώντας το seq στο εσωτερικό π.χ., η οποία είναι μια εντολή Linux που αντιμετωπίζει την είσοδο ως έκφραση και εμφανίζει την αντίστοιχη έξοδο.
Για να προσθέσετε όλους τους αριθμούς μεταξύ ενός και 100:
expr `(seq -s" + "1 100)"
Η εντολή seq δημιουργεί μια έξοδο ως εξής:
1 + 2 + 3 + 4 + 5 + 6...
Η Expr την αντιμετωπίζει ως μια έκφραση εισόδου και εξάγει τη λύση.
5050
Μπορείτε να εκτελέσετε άλλες μαθηματικές λειτουργίες απλά αντικαθιστώντας το διαχωριστικό στην εντολή seq με άλλους τελεστές.
Δημιουργήστε γρήγορα πολλά αρχεία
Εάν θέλετε να δημιουργήσετε πολλά αρχεία στο Linux των οποίων τα ονόματα ακολουθούν παρόμοιο μοτίβο, μπορείτε να το κάνετε εύκολα χρησιμοποιώντας η εντολή αφής και seq.
Για παράδειγμα, για να δημιουργήσετε 10 αρχεία με το όνομα αρχείο-x.txt, όπου Χ είναι ένας αριθμός από το ένα έως το 10:
αγγίξτε $ (seq -f "αρχείο% g.txt" 1 10)
Το Touch θα δημιουργήσει τα αρχεία για εσάς σε ένα φλας.
Εφαρμογή seq σε σενάρια
Σκεφτείτε ότι γράφετε ένα εργαλείο σαρωτή δικτύου όπως το Nmap στο bash, ίσως θελήσετε να λάβετε μια λίστα με όλες τις ανοιχτές θύρες σε ένα δίκτυο. Αλλά για αυτό, πρέπει να κάνετε ping σε κάθε θύρα (65535 συνολικά) και να αναλύσετε την απόκριση.
Για να εξοικονομήσετε χρόνο, μπορείτε να επιλέξετε να χρησιμοποιήσετε το seq και να δημιουργήσετε μια λίστα διευθύνσεων IP και συνδυασμών θυρών που μπορείτε να χρησιμοποιήσετε στο σενάριό σας.
Ας υποθέσουμε ότι θέλετε να λάβετε τη λίστα όλων των θυρών μιας συσκευής με τη διεύθυνση IP 1.2.3.4. Ακολουθεί μια γρήγορη εντολή για τη δημιουργία της επιθυμητής εξόδου:
seq -f 1.2.3.4:%g 1 65535
Παραγωγή:
Στη συνέχεια, μπορείτε να χρησιμοποιήσετε αυτήν την έξοδο ως λίστα και να την διασχίσετε, ελέγχοντας κάθε θύρα χρησιμοποιώντας το σενάριό σας και αναλύοντας εάν είναι ανοιχτή ή όχι.
Πόσο γρήγορα δημιουργεί η Seq τους αριθμούς;
Ίσως σκεφτείτε εάν μπορείτε να επιτύχετε παρόμοια αποτελέσματα χρησιμοποιώντας ένα για βρόχο στο bash, γιατί να επιλέξετε το seq για την εργασία; Αυτό συμβαίνει επειδή η πραγματική δύναμη του SEQ έγκειται στην ταχύτητά της. Το Seq είναι ταχύτερο από οποιαδήποτε άλλη εντολή που δημιουργεί μια ακολουθία αριθμών στο Linux.
Μπορείτε ακόμη και να δοκιμάσετε την ταχύτητά του χρησιμοποιώντας το βοηθητικό πρόγραμμα χρόνου στο Linux. Ας δούμε πόσος χρόνος χρειάζεται για να δημιουργήσει ο seq μια λίστα με ένα εκατομμύριο αριθμούς ξεκινώντας από έναν.
χρόνος seq 1000000
Κοιτάζοντας την έξοδο παρακάτω, μπορείτε να δείτε ότι χρειάστηκαν μόνο τέσσερα δευτερόλεπτα περίπου για να δημιουργηθεί μια λίστα με ένα εκατομμύριο αριθμούς.
Η δύναμη της γραμμής εντολών Linux
Το Seq δεν είναι το μόνο εργαλείο στο Linux που επικεντρώνεται σε μεγάλο βαθμό στην παροχή γρήγορων και ακριβών αποτελεσμάτων. Ενώ μπορείτε να δημιουργήσετε μια λίστα αριθμών χρησιμοποιώντας a για βρόχο σε bash, δεν είναι μια συνιστώμενη πρακτική λαμβάνοντας υπόψη πόσο πραγματικά είναι το γρήγορο seq.
Η γραμμή εντολών Linux σάς δίνει περισσότερο έλεγχο στο λειτουργικό σύστημα και στις λειτουργίες του, γεγονός που είναι επίσης ένας λόγος για τον οποίο πρέπει να αρχίσετε να χρησιμοποιείτε το τερματικό μέσω GUI σήμερα.
Η γραμμή εντολών Linux έχει υψηλό επίπεδο όσον αφορά την απόδοση, τον έλεγχο και την ευκολία χρήσης.
Διαβάστε Επόμενο
- Linux
Ο Deepesh είναι ο Junior Editor για Linux στο MUO. Γράφει ενημερωτικό περιεχόμενο στο Διαδίκτυο για πάνω από 3 χρόνια. Στον ελεύθερο χρόνο του, του αρέσει να γράφει, να ακούει μουσική και να παίζει κιθάρα.
Εγγραφείτε στο Newsletter μας
Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Ένα ακόμη βήμα…!
Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.