Easier Go debugging on the command line with CGDB
Πίνακας περιεχομένων:
- Πώς να χρησιμοποιήσετε την εντολή
xargsLinux - Τρόπος προβολής της εντολής και προτροπή του χρήστη
- Πώς να περιορίσετε τον αριθμό των επιχειρημάτων
- Πώς να εκτελέσετε πολλές εντολές
- Πώς να ορίσετε έναν αποχωριστήρα
- Πώς να διαβάσετε τα στοιχεία από το αρχείο
- Χρήση
xargsμεfind - Χρησιμοποιώντας xargs για να Trim Χαρακτήρες Whitespace
- συμπέρασμα
Το βοηθητικό πρόγραμμα
xargs
σας επιτρέπει να δημιουργείτε και να εκτελέσετε εντολές από την τυπική είσοδο. Συνήθως χρησιμοποιείται σε συνδυασμό με άλλες εντολές μέσω σωληνώσεων.
Με το
xargs
, μπορείτε να παρέχετε την τυπική είσοδο ως επιχείρημα στα βοηθήματα γραμμής εντολών όπως
mkdir
και
rm
.
Σε αυτό το σεμινάριο, θα καλύψουμε τα βασικά στοιχεία της χρήσης της εντολής
xargs
.
Πώς να χρησιμοποιήσετε την εντολή
xargs
Linux
xargs
διαβάζει επιχειρήματα από την τυπική είσοδο, χωρισμένα με κενά κενά ή νέες γραμμές και εκτελεί την καθορισμένη εντολή χρησιμοποιώντας τα επιχειρήματα εισόδου ως εντολή. Εάν δεν παρέχεται εντολή, η προεπιλογή είναι
/bin/echo
.
Η σύνταξη για την εντολή
xargs
έχει ως εξής:
xargs]
Το πιο βασικό παράδειγμα χρήσης των
xargs
θα ήταν να περάσουν αρκετές χορδές που χωρίζονται με κενά χρησιμοποιώντας ένα σωλήνα για να
xargs
και να τρέξει μια εντολή που θα χρησιμοποιήσει αυτές τις συμβολοσειρές ως επιχειρήματα.
echo "file1 file2 file3" | xargs touch
Στο παραπάνω παράδειγμα, κάνουμε piping την πρότυπη είσοδο στα
xargs
και
xargs
την εντολή
touch
για κάθε
xargs
, δημιουργώντας τρία αρχεία. Αυτό είναι το ίδιο σαν να τρέχετε:
Τρόπος προβολής της εντολής και προτροπή του χρήστη
Για να εκτυπώσετε την εντολή στο τερματικό πριν την εκτέλεση, χρησιμοποιήστε την επιλογή
-t
(
--verbose
):
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
Πληκτρολογήστε
y
ή
Y
για επιβεβαίωση και εκτέλεση της εντολής:
touch file1 file2 file3 ?…y
Αυτή η επιλογή είναι χρήσιμη όταν εκτελείτε καταστρεπτικές εντολές.
Πώς να περιορίσετε τον αριθμό των επιχειρημάτων
Από προεπιλογή, ο αριθμός των παραμέτρων που διαβιβάζονται στην εντολή καθορίζεται από το όριο του συστήματος.
Η επιλογή
-n
(
--max-args
) καθορίζει τον αριθμό των
--max-args
πρέπει να μεταβιβαστούν στη δεδομένη εντολή.
xargs
εκτελεί την καθορισμένη εντολή όσες φορές χρειάζεται έως ότου εξαντληθούν όλα τα επιχειρήματα.
Στο ακόλουθο παράδειγμα, ο αριθμός των επιχειρημάτων που διαβάζονται από την τυπική είσοδο περιορίζεται στο 1.
echo "file1 file2 file3" | xargs -n 1 -t touch
Όπως μπορείτε να δείτε από την πιο λεπτομερή έξοδο παρακάτω, η εντολή αφής εκτελείται ξεχωριστά για κάθε παράμετρο:
touch file1 touch file2 touch file3
Πώς να εκτελέσετε πολλές εντολές
Για να εκτελέσετε πολλές εντολές με
xargs
, χρησιμοποιήστε την επιλογή
-I
. Λειτουργεί με τον ορισμό μιας
replace-str
μετά την επιλογή
-I
και όλες οι εμφανίσεις της
replace-str
αντικαθίστανται με το όρισμα που μεταβιβάζεται στο xargs.
Το παρακάτω παράδειγμα
xargs
θα εκτελέσει δύο εντολές, αρχικά θα δημιουργήσει τα αρχεία με χρήση
touch
και στη συνέχεια θα απαριθμήσει τα αρχεία με την εντολή
ls
:
echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'
-rw-r--r-- 1 linuxize users 0 May 6 11:54 file1 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file2 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file3
Μια κοινή επιλογή για την
replace-str
είναι
%
. Ωστόσο, μπορείτε να χρησιμοποιήσετε ένα άλλο σύμβολο κράτησης θέσης, για παράδειγμα
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
Πώς να ορίσετε έναν αποχωριστήρα
Χρησιμοποιήστε την επιλογή
-d
(
--delimiter
) για να ορίσετε έναν προσαρμοσμένο οριοθέτη ο οποίος μπορεί να είναι είτε ένας χαρακτήρας είτε μια ακολουθία διαφυγής που αρχίζει με
\
.
Το παρακάτω παράδειγμα που χρησιμοποιούμε
;
ως οριοθέτης:
echo "file1;file2;file3" | xargs -d ; -t touch
Πώς να διαβάσετε τα στοιχεία από το αρχείο
Η εντολή xargs μπορεί επίσης να διαβάσει στοιχεία από ένα αρχείο αντί για τυπική είσοδο. Για να το κάνετε αυτό, χρησιμοποιήστε την επιλογή
-a
(
--arg-file
) ακολουθούμενη από το όνομα του αρχείου.
Στο ακόλουθο παράδειγμα, η εντολή
xargs
θα διαβάσει το αρχείο
ips.txt
και θα
ips.txt
κάθε διεύθυνση IP.
8.8.8.8 1.1.1.1
Χρησιμοποιούμε επίσης την επιλογή
-L 1
, η οποία καθοδηγεί το
xargs
να διαβάζει μία γραμμή τη φορά. Εάν αυτή η επιλογή παραλειφθεί, το
xargs
θα περάσει όλα τα IP σε μία εντολή
ping
.
xargs -t -L 1 -a ips.txt ping -c 1
ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=68.1 ms… ping -c 1 1.1.1.1 PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=21.4 ms
Χρήση
xargs
με
find
xargs
χρησιμοποιείται συχνότερα σε συνδυασμό με την εντολή
find
. Μπορείτε να χρησιμοποιήσετε το
find
για να αναζητήσετε συγκεκριμένα αρχεία και, στη συνέχεια, να χρησιμοποιήσετε το
xargs
για να εκτελέσετε εργασίες σε αυτά τα αρχεία.
Για να αποφύγετε ζητήματα με ονόματα αρχείων που περιέχουν νέες γραμμές ή άλλους ειδικούς χαρακτήρες, χρησιμοποιήστε πάντοτε την επιλογή find
-print0
, η οποία προκαλεί
find
να εκτυπώνει το πλήρες όνομα αρχείου που ακολουθείται από έναν μηδενικό χαρακτήρα. Αυτή η έξοδος μπορεί να ερμηνευτεί σωστά από το
xargs
χρησιμοποιώντας την επιλογή
-0
, (
--null
).
Στο παρακάτω παράδειγμα, το
find
θα εκτυπώσει τα πλήρη ονόματα όλων των αρχείων μέσα στον κατάλογο
/var/www/.cache
και το
xargs
θα περάσει τις διαδρομές αρχείου στην εντολή
rm
:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
Χρησιμοποιώντας xargs για να Trim Χαρακτήρες Whitespace
xargs
μπορεί επίσης να χρησιμοποιηθεί ως εργαλείο για να αφαιρέσετε τα κενά από τις δύο πλευρές μιας δεδομένης συμβολοσειράς. Απλά
xargs
τη συμβολοσειρά στην εντολή
xargs
και θα κάνει το κόψιμο:
echo " Long line " | xargs
Long line
Αυτό μπορεί να είναι χρήσιμο όταν συγκρίνουμε συμβολοσειρές σε δέσμες ενεργειών κελύφους.
#!/bin/bash VAR1=" Linuxize " VAR2="Linuxize" if]; then echo "Strings are equal." else echo "Strings are not equal." fi ## Using xargs to trim VAR1 if]; then echo "Strings are equal." else echo "Strings are not equal." fi
Strings are not equal. Strings are equal.
συμπέρασμα
xargs
είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών στο Linux το οποίο σας επιτρέπει να δημιουργείτε και να εκτελέσετε εντολές.
Για περισσότερες πληροφορίες σχετικά με κάθε επιλογή
xargs
, διαβάστε τη σελίδα man xargs.
Το Facebook κατέθεσε αγωγή εναντίον του Wallace και δύο άλλους άνδρες το Φεβρουάριο για προγράμματα spamming και phishing μέσω του ιστότοπου κοινωνικής δικτύωσης. Την επόμενη εβδομάδα, ο δικαστής Fogel εξέδωσε προσωρινή εντολή περιορισμού που απαγορεύει στο Wallace και σε δυο άλλους υποτιθέμενους spammers, Adam Arzoomanian και Scott Shaw, να έχουν πρόσβαση στο δίκτυο του Facebook.
Η αγωγή κατηγορεί μια εταιρεία που ονομάζεται Funmobile να στέλνει χιλιάδες ανεπιθύμητα μηνύματα τους τελευταίους τέσσερις μήνες. Η υπόθεση κατατέθηκε τον προηγούμενο μήνα στο King County Superior Court στο Σιάτλ, αλλά η Microsoft δεν ονόμασε την εμπλεκόμενη εταιρεία μέχρι την Πέμπτη. Η Microsoft ζητεί δικαστική εντολή για να σταματήσει το spam, καθώς και χρηματικές ζημίες.
Σύμφωνα με τις καταθέσεις των δικαστηρίων, η Funmobile και η θυγατρική της, Mobilefundster, έχουν στείλει άμεσα μηνύματα που περιλαμβάνουν συνδέσμους σε ιστότοπους ηλεκτρονικού "ψαρέματος" που ελέγχονται από την εταιρεία. Τα θύματα που έκαναν κλικ σε έναν σύνδεσμο θα βλέπουν μερικές φορές έναν ιστότοπο - που ονομάζεται MeetYourIM - ο οποίος τους ζήτησε να εισαγάγουν το MSN e-mail και τον κωδικό τους, ώστε να μπορούν να συμμετάσχουν σε μια "Αβλαβή κοινότητα που προσφέρει στους χρήστες μια πλατφόρ
Πώς να ελέγξετε το χώρο στο δίσκο στο linux χρησιμοποιώντας την εντολή df
Πόσο διάστημα έχω αφήσει στον σκληρό δίσκο μου; Σε συστήματα που βασίζονται στο Linux μπορείτε να χρησιμοποιήσετε την εντολή df για να πάρετε μια λεπτομερή αναφορά σχετικά με τη χρήση του χώρου στο δίσκο του συστήματος.







