Οι λεγόμενες εντολές τερματικού στο Linux δεν είναι παρά ένα σύνολο εφαρμογών / προγραμμάτων /σεναρίων κελύφους ή λογισμικών τα οποία είναι συνήθως εγκατεστημένα στην διαδρομή /usr/local/bin/. Πολλές όμως εντολές είναι scripts (σενάρια / αλληλουχία διαφορετικών εντολών κελύφους) τα οποία συνδυάζουν άλλες εφαρμογές σε μία. Ας φτιάξουμε λοιπόν τις δικές μας εντολές.
Για να παινέψουμε και το σπίτι μας, μια εφαρμογή που είναι ένα σύνολο άλλων εφαρμογών / εντολών είναι το Ucaresystem-core (για Ubuntu / Debian / Linux Mint) το οποίο είναι ένα script και απλά είναι πακεταρισμένο για εύκολη εγκατάσταση και χρήση. Εδώ δεν θα δούμε κάτι τόσο περίπλοκο αλλά κάτι πιο απλό για να πάρετε μια ιδέα.
Πολλές εντολές σε μια…
Πρώτα ξεκινάμε από ένα πρόβλημα που θέλουμε να λύσουμε… (αν δεν έχουμε, σκαρφιζόμαστε ένα :P )
Υπάρχει μια εντολή που μου δίνει την πρόβλεψη του καιρού από το τερματικό (το είχαμε δει και στο άρθρο «Τι καιρό κάνει στην πόλη μου;«) . Δυστυχώς θα πρέπει να αλλάξω τις διαστάσεις του τερματικού πρώτα. Δεν θα ήταν καλό να μου τις άλλαζε; Αλλά δεν το κάνει.
Θα φτιάξω λοιπόν την δικιά μου εντολή! Είναι πολύ εύκολο. Απλά βάζουμε τις εντολές σε ένα αρχείο. Ανοίγουμε ενα τερματικό και γράφουμε
nano ombrela
και βάζουμε στο αρχείο ombrela τα παρακάτω:
#!/bin/bash # Αλλάξε τις διαστάσεις # και κρύψε την έξοδο της εντολής resize -s 40 125 > /dev/null # Δείξε τον καιρό curl http://wttr.in/irakleion
Όποια γραμμή ξεκινά με # είναι σχόλιο και μπορούμε να γράψουμε ότι θέλουμε (ή να μην τα γράψουμε καθόλου). Εκτός από την πρώτη γραμμή που λέει ότι το αρχείο είναι πρόγραμμα, γραμμένο σε γλώσσα bash που είναι η γλώσσα του τερματικού (τεχνικά γλώσσα του κελύφους). Μετά ακολουθούν οι εντολές όπως θα τις γράφαμε στο τερματικό.
Το τερματικό κρύβει πίσω του μια ολόκληρη γλώσσα προγραμματισμού. Αλλά αρκεί για την ώρα να γράψουμε τις εντολές όπως θα ήταν αν τις γράφαμε κάθε φορά με το χέρι.
Μέτα που θα το σώσουμε θα πρέπει να πούμε ότι είναι μια εντολή. Αυτό κάνει η εντολή:
chmod +x ombrela
Και το τρέχουμε για δοκιμή με την εντολή:
./ombrela
Αν όλα πάνε καλά ήρθε η ώρα να προσθέσουμε την εντολή στο σύστημα. Απλά θα την βάλουμε σε ένα ειδικό φάκελο (που είναι στο λεγόμενο PATH). Θα πρέπει να δώσεις την εντολή:
sudo mv ombrela /usr/local/bin
Συγχαρητήρια! Μόλις πρόσθεσες μια νέα εντολή στο σύστημα! Τώρα μπορείς να τρέχεις την εντολή, από όποια διαδρομή και να βρίσκεσαι απλά γράφοντας » ombrela »
Με αυτόν τον απλό τρόπο μπορούμε να πακετάρουμε πολλές εντολές σε μία. Και μπορούμε να κάνουμε πολλά άλλα πράγματα αν μάθουμε την γλώσσα. Οι παλιοί ίσως να θυμούνται το DOS και τα αρχεία BAT. Κάτι τέτοιο είναι, μόνο που η γλώσσα του τερματικού είναι μια πλήρης γλώσσα που αξίζει τον κόπο να μάθεις τουλάχιστον τα βασικά.
Η σειρά άρθρων #cinnamon_linux_tips και #linuxmint_tips είναι μια σειρά μικρών και χρήσιμων συμβουλών, όπως δημοσιεύθηκαν στην κοινότητα Linux Mint και αντιγράφτηκαν εδώ με την σύμφωνη γνώμη του Διόνυσου Ασφοδελάκη (Talos)
Μια εκδοχή του παραπάνω script, όπου μπορείς να θέσεις default τοποθεσία ή να ζητήσεις τον καιρό για μια άλλη πόλη. Πχ:
ombrela Λάρισα
Αν δεν το έγραφα σαν tutorial θα έκανα κάτι σαν το παρακάτω:
Ωραία παραλλαγή !
Ενώ δουλεύει κανονικά στο Terminal Mate, δεν κάνει resige στο Terminator…
https://polldaddy.com/js/rating/rating.js
Χρησιμοποιείς και στα δύο το ίδιο shell (bash)? Δες, αν διαβάζουν τα ίδια profile
Πολύ καλό tutorial! Μπράβο!
Το χρειαζόμουνα γιατί έχω χρησιμοποιώ μερικά scriptακια (lua) και αυτό θα συντομεύσει πολύ τη διαδικασία!
Ευχαριστώ πολύ!
https://polldaddy.com/js/rating/rating.js
Τίποτα ! Το Bash scripting, αν δεν έχεις ασχοληθεί, θα σου λύσει τα χέρια.
bash: resize: εντολή δεν βρέθηκε
σε arch linux
Η εντολή είναι η resize. Μια χαρά δουλέυει σε Arch
Aς υποθέσουμε ότι την έξοδο του script αλλά με αρνητικά χρώματα ώστε να μην έχουμε σπατάλη μαύρου χρώματος σε περίπτωση εκτύπωσης θέλουμε να την μετατρέψουμε σε εικόνα ή να την εκτυπώσουμε στον εκτυπωτή μας. Υπάρχει τρόπος να γίνει αυτό τροποποιώντας κατάλληλα το script; Ευχαριστώ!
Γίνε λιγο πιο συγκεκριμένος.
Θέλω το αποτέλεσμα του script που εμφανίζεται στο τερματικό για κάποια συγκεκριμένη περιοχή να το εξάγω σε μορφή jpg ή png ώστε να μπορώ να το εκτυπώσω. Υπάρχει τρόπος να μετατραπεί το script για να παραχθεί το αποτέλεσμα που θέλω. Δεν θέλω να μπω σε διαδικασία screenshot ή αν δεν γίνεται αλλιώς παρά μόνο με screenshot πάλι θα ήθελα αν γίνεται η διαδικασία αυτή να ενσωματωθεί στο script. Επίσης στο terminal έχω μαύρο φόντο και λευκά γράμματα που σημαίνει ότι αν εκτυπωθεί η εμφάνιση αυτή θα ξοδεύει πολύ χρώμα ο εκτυπωτής γι’ αυτό και η προηγούμενη ερώτηση για αρνητικά χρώματα. Ευχαριστώ!
πολυ ωραιο.ευχαριστουμε