One-liners εντολών τερματικού linux

Προβληματισμός, προτάσεις και λύσεις για "αναβάθμιση" του Η/Υ σε εργαλείο παραγωγικότητας!
Λειτουργικά συστήματα, Backup/Recovery, χρήση του hardware I/O.
Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 494
Εγγραφή: 04 Σεπ 2013, 21:51
Ονομα: Γιώργος
Επικοινωνία:

One-liners εντολών τερματικού linux

Δημοσίευσηαπό GeorgeVita » 08 Νοέμ 2016, 13:15

One-liners εντολών τερματικού linux

Αρκετές φορές χρειάζομαι ένα "πρόγραμμα" για να κάνω μια μικρή δουλειά στον Η/Υ μου και ενώ ψάχνω βρίσκω το ισοδύναμο "oneliner" (μακρυά εντολή μιας γραμμής) για τερματικό linux. Σκέφτηκα ότι είναι χρήσιμο να παραθέτω αυτές τις μικρές λύσεις ή παραδείγματα εδώ για να τις βρίσκω/ουμε αργότερα.

Σύνδεση σε δίκτυο 3G μέσω GSM modem:

Παράδειγμα για Cosmote:

Κώδικας: Επιλογή όλων

pppd ttyUSB0 nodetach defaultroute noipdefault lock usepeerdns connect 'chat "" "at" "" "at" "OK" "at&f" "OK" "atz" "OK" "at+cgdcont=1,'IP','internet'" OK "atdt*99#" CONNECT' user user password pass

Παράμετροι προς έλεγχο/αλλαγή:
Σύνδεση modem στο: /dev/ttyUSB0
APN=internet
username=user
password=pass

Λίγα σχόλια για τοπικές ρυθμίσεις μερικών 3G modems στο: http://www.acomelectronics.com/GeorgeVita/


Αυτόματο, χρονικά επαναλαμβανόμενο download ενός αρχείου (ή και ολόκληρου site)

Κώδικας: Επιλογή όλων

while true; do wget -N http://stratus.meteo.noa.gr/data/metarmaps/noa_Attica_thumb_latest.png; sleep 60; done

Κάθε λεπτό (60 sec) γίνεται download το αρχείο του link που περιέχει μια φωτογραφία θερμοκρασιών της Αττικής. Το download θα πραγματοποιηθεί εφόσον έχει αλλάξει το περιεχόμενο του αρχείου και θα τοποθετηθεί στη θέση του παλαιότερου.
Περισσότερα για το wget: https://www.gnu.org/software/wget/manual/wget.html


Αυτόματο, χρονικά επαναλαμβανόμενο upload ενός αρχείου (ή και ολόκληρου site)

Κώδικας: Επιλογή όλων

while true; do wput myfile.txt ftp://abcde:fghi@example.com/dir1/mydir/; sleep 60; done

Υποθετικό παράδειγμα αντίστοιχο με την εντολή wput για να κάνουμε upload.
Περισσότερα για το wput: http://wput.sourceforge.net/wput.1.html

Δείτε και το cURL ως εναλλακτική εντολή των wget/wput: https://curl.haxx.se/docs/manpage.html


Σύνδεση (login) σε forum phpbb με χρήση cookies

Κώδικας: Επιλογή όλων

curl --data "username=acom_IoT&password=password&login=Login" http://acomelectronics/forum/ucp.php?mode=login -c cookies.txt


Αποσύνδεση (logout) από forum phpbb με χρήση cookies και SID

Κώδικας: Επιλογή όλων

curl -b cookies.txt "http://acomelectronics/forum/ucp.php?mode=logout&sid=$(cat cookies.txt | awk '$6 ~ /.*sid.*/ {print $7}')"

Το αρχείο cookies.txt δημιουργήθηκε στο login και περιέχει το Session ID (SID). Με χρήση των εντολών cat και awk απομονώνουμε το SID και το χρησιμοποιούμε για επιτυχή αποσύνδεση.

Περισσότερα για διαχείριση κειμένου στο: Introduction to text manipulation on UNIX-based systems

Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 494
Εγγραφή: 04 Σεπ 2013, 21:51
Ονομα: Γιώργος
Επικοινωνία:

Re: One-liners εντολών τερματικού linux

Δημοσίευσηαπό GeorgeVita » 30 Δεκ 2016, 14:08

GeorgeVita έγραψε:Σύνδεση σε δίκτυο 3G μέσω GSM modem:

Παράδειγμα για Cosmote:

Κώδικας: Επιλογή όλων

pppd ttyUSB0 nodetach defaultroute noipdefault lock usepeerdns connect 'chat "" "at" "" "at" "OK" "at&f" "OK" "atz" "OK" "at+cgdcont=1,'IP','internet'" OK "atdt*99#" CONNECT' user user password pass

Παράμετροι προς έλεγχο/αλλαγή:
Σύνδεση modem στο: /dev/ttyUSB0
APN=internet
username=user
password=pass

Λίγα σχόλια για τοπικές ρυθμίσεις μερικών 3G modems στο: http://www.acomelectronics.com/GeorgeVita/


Επιπλέον σημείωση: για να λειτουργήσει το 3G modem με την παραπάνω εντολή "one liner" πρέπει να έχουμε σταματήσει άλλα προγράμματα που συνδέονται αυτομάτως με το modem όπως είναι το ModemManager:

Κώδικας: Επιλογή όλων

sudo killall ModemManager


Η αντίστοιχη εντολή "onliner" χωρίς έλεγχο ονόματος ("noauth") για σύνδεση με Wind είναι:

Κώδικας: Επιλογή όλων

sudo pppd ttyUSB0 noauth nodetach defaultroute noipdefault lock usepeerdns connect 'chat "" "at" "" "at" "OK" "at&f" "OK" "atz" "OK" "at+cgdcont=1,'IP','gint.b-online.gr'" OK "atdt*99#" CONNECT'


Για να γίνει πραγματικό "oneliner" μπορούμε να δώσουμε και το password για το sudo μέσω piping:

Κώδικας: Επιλογή όλων

echo password | sudo -S pppd ttyUSB0 noauth nodetach defaultroute noipdefault lock usepeerdns connect 'chat "" "at" "" "at" "OK" "at&f" "OK" "atz" "OK" "at+cgdcont=1,'IP','gint.b-online.gr'" OK "atdt*99#" CONNECT'

Εμφανίζουμε το password με το echo που το χρησιμοποιεί το sudo με την παράμετρο "-S". Αλλάζουμε τη λέξη "password" με το δικό μας και δεχόμαστε αυτή την "μειωμένη ασφάλεια" στο σύστημά μας λόγω της καταγραφής του στο ιστορικό εντολών του τερματικού.


Επιστροφή σε “Ο Η/Υ ως εργαλείο παραγωγικότητας!”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 5 επισκέπτες