RSS

Category Archives: Eφαρμογες / Scripts

Εφαρμογες και scripts που εχω δημιουργησει.

mined… text editor για όλα…

Η έρευνα για τον «καλύτερο» text editor στο τερματικό συνεχίζεται και μάλλον έπεσα σε ένα «διαμάντι». Λέγεται mined, ειναι crossplatform, υποστηρίζει το ποντίκι και το κυριότερο έχει υποστήριξει για Unicode χαρακτήρες, που σημαίνει πως μπορεί κάποιος να γράφει στο τερματικό, κείμενο στα Ελληνικά.. κάτι που δεν το κάνουν πολλοί text editors.

Η σελίδα του είναι εδώ: http://towo.net/mined/ και από εδώ: http://towo.net/mined/index-dl.html βρίσκεται το κατάλληλο πακέτο ή/και αποθετήριο για εγκατάσταση. Σίγουρα ξενίζει λίγο στην εμδάνιση, αλλά σημασία έχει η χρησιμότητα του και οι λειτουργίες που προσφέρει. Σίγουρα αξίζει να το δοκιμάσετε.

 
 

Εγκατάσταση Retroarch στο Ubuntu 14.04+


Για εγκατάσταση στο Ubuntu 14.04, δυστυχώς το RetroArch, γίνεται εύκολα, μόνο μέσω του αποθετηρίου του. Οπότε, δίνουμε τις παρακάτω εντολές για προσθήκη του αποθετήριου και εγκατάσταση του προγράμματος.

sudo add-apt-repository ppa:libretro/stable

sudo apt-get update

sudo apt-get install retroarch retroarch-* libretro-*

 
 

Εξαγωγή επαφών από κινητό android

Ας δούμε πως μπορούμε να εξάγουμε τις επαφές μας, από το smartphone/android μας, μόνο με το κινητό και τον υπολογιστή μας, χωρίς να εγκαταστήσουμε άλλη μια εφαρμογή στο κινητό. :P

Πάμε στις «Επαφές», πατάμε το κουμπί επιλογών και επιλέγουμε «Εξαγωγή». Σώζουμε το αρχείο στην sdcard και μετά το μεταφέρουμε στον υπολογιστή μας, με όποιο τρόπο θέλουμε. Στον υπολογιστή θα εγκαταστήσουμε το πακέτο qprint με την εντολή:

sudo apt-get install qprint

Το πακέτο αυτό θα μας χρειαστεί, καθώς αν ανοίξουμε το αρχείο που περιέχει τις επαφές, θα δούμε αντι για Ελληνικούς χαρακτήρες στα ονόματα, κάτι περίεργα. Είναι μια κωδικοποίηση για τα Ελληνικά, οπότε για να κάνουμε την αποκωδικοποίηση, χρειαζόμαστε την εντολη qprint.

Τέλος, στο τερματικό, δίνουμε την παρακάτω εντολή:

cat <ΟΝΟΜΑ ΑΡΧΕΙΟΥ> |sed -e 's/=*$//g' | qprint -d | sed 's/CHARSETF-8;ENCODINGOTED-PRINTABLE//g' | sed 's/END\:VCARD/\n/g' | sed 's/BEGIN\:VCARD//g' | grep 'VERSION' -v | cat -s

Για να σώσετε την νέα μορφή του αρχείου προσθέστε στο τέλος της παραπάνω εντολής το εξής: > <ΝΕΟ ΟΝΟΜΑ ΑΡΧΕΙΟΥ>

Προσέξτε, όπου <ΟΝΟΜΑ ΑΡΧΕΙΟΥ>, να βάλετε το όνομα του αρχείου που περιέχει τις επαφές. Η παραπάνω εντολή θα «φτιάξει» τα Ελληνικά και θα αφαιρέσει περιττά πεδία. Θα κρατήσει όμως την βασική δομή του αρχείου, ώστε αν θέλετε να κάνετε πάλι εισαγωγή τα στοιχεία στο κινητό σας.

 

Ετικέτες: ,

Aναγνωση APRS, μέσω BASH

Ένα script σε BASH, για να διαβαζει κανεις μυνηματα APRS, μέσω internet. Το σωζετε σε ενα αρχειο, το κανετε εκτελεσιμο και το εκτελειτε. Υπαρχουν ηδη, καποιοι καταχωρημενοι servers, αλλα μπορειτε να προσθεσετε και αλλους.

Θα πρεπει να εχετε εγκατεστημενο το πακετο expect. Για εγκατασταση δωστε:
sudo apt-get install expect

Το script:

#!/bin/bash

#title : APRS packet reader
#description :
#author : xqtr
#date : 10/02/2015
#version : 1.0
#usage : ./aprs.sh
#notes :

#Variables ${2:-1}
server=$1
port=${2:-14580}
lat=${3:-39}
lon=${4:-24}
range=${5:-300}
user=${6:-"TSTUSR"}
pass=${7:-"-1"}

# Text color variables
txtred='\e[0;31m' # red
txtgrn='\e[0;32m' # green
txtylw='\e[0;33m' # yellow
txtblu='\e[0;34m' # blue
txtpur='\e[0;35m' # purple
txtcyn='\e[0;36m' # cyan
txtwht='\e[0;37m' # white
bldred='\e[1;31m' # red - Bold
bldgrn='\e[1;32m' # green
bldylw='\e[1;33m' # yellow
bldblu='\e[1;34m' # blue
bldpur='\e[1;35m' # purple
bldcyn='\e[1;36m' # cyan
bldwht='\e[1;37m' # white
txtund=$(tput sgr 0 1) # Underline
txtbld=$(tput bold) # Bold
txtrst='\e[0m' # Text reset

# Feedback indicators
#info=${bldwht}*${txtrst}
#pass=${bldblu}*${txtrst}
#warn=${bldred}!${txtrst}

# Indicator usage
#echo -e "${info} "
#echo -e "${pass} "
#echo -e "${warn} "

function choose_server () {
clear
echo -e "${bldylw} Choose Server to connect...${txtrst}"
echo
echo -e "${bldgrn}For more servers check: http://aprs2.net/APRServe2.txt${txtrst}"
echo
echo -e "${bldred}_,.-'~'-.,__,.-'~'-.,__,.-'~'-.,__,.-'~'-.,__,.-'~'-.,_${txtrst}"
echo
echo -e "${bldwht}1. ${txtwht} sv2hrt.dyndns.org:14578 - Greece${txtrst}"
echo -e "${bldwht}2. ${txtwht} sv2hrt.dyndns.org:2323 - >> Weather${txtrst}"
echo -e "${bldwht}3. ${txtwht} sv2hrt.dyndns.org:1314 - >> Messages${txtrst}"
echo -e "${bldwht}4. ${txtwht} greece.aprs2.net:14580 - Greece${txtrst}"
echo -e "${bldwht}5. ${txtwht} euro.aprs2.net:14580 ${txtrst}"
echo -e "${bldwht}6. ${txtwht} rotate.aprs.net :14580${txtrst}"
echo -e "${bldwht}7. ${txtwht} first.aprs.net:10152${txtrst}"
echo -e "${bldwht}8. ${txtwht} second.aprs.net:10152${txtrst}"
echo -e "${bldwht}9. ${txtwht} third.aprs.net:10152${txtrst}"
echo
echo -e "${bldred}_,.-'~'-.,__,.-'~'-.,__,.-'~'-.,__,.-'~'-.,__,.-'~'-.,_${txtrst}"
echo
echo -e "${bldwht}Enter your selection (ex. 9): ${txtrst}"
echo
read nos

case $nos in
1) server="sv2hrt.dyndns.org"
port="14578"
;;
2) server="sv2hrt.dyndns.org"
port="2323"
;;
3) server="sv2hrt.dyndns.org"
port="1314"
;;
4) server="greece.aprs2.net"
port="14580"
;;
5) server="euro.aprs2.net"
port="14580"
;;
6) server="rotate.aprs.net"
port="14580"
;;
7) server="first.aprs.net"
port="10152"
;;
8) server="second.aprs.net"
port="10152"
;;
9) server="third.aprs.net"
port="10152"
;;
*) echo "Invalid selection. Try again."
exit;;
esac

}

function create_script () {
echo "#!/usr/bin/expect" > ./aprsconnect.sh
echo "spawn nc $server $port" >> ./aprsconnect.sh
echo "expect {" >> ./aprsconnect.sh
echo " -re \".*APRS.*\" { send \"user $user pass $pass vers testsoftware 1.0_05 filter r/$lat/$lon/$range\r\" }" >> ./aprsconnect.sh
echo " -re \".*aprs.*\" { send \"user $user pass $pass vers testsoftware 1.0_05 filter r/$lat/$lon/$range\r\" }" >> ./aprsconnect.sh
echo "}" >> ./aprsconnect.sh
echo "interact" >> ./aprsconnect.sh
chmod +x ./aprsconnect.sh
}

# Display usage if no parameters given
if [[ -z "$@" ]]; then
choose_server
fi
if [ $1 == "--help" ]; then
clear
echo -e "${bldylw}BASH APRS Reader${txtrst}"
echo
echo -e "${bldgrn}Usage:${txtrst}"
echo
echo -e "${bldwht}./aprs.sh --help : ${txtwht}Shows this screen${txtrst}"
echo -e "${bldwht}./aprs.sh : ${txtwht}Connects to giver server, with default params${txtrst}"
echo -e "${bldwht}./aprs.sh : ${txtwht}Connects to server, with given filter/params${txtrst}"
echo
exit 0
fi

create_script
./aprsconnect.sh
rm -f ./aprsconnect.sh
exit 0

 
 

Εγκατασταση MAME

    • Αφαιρεση παλιας εκδοσης
      sudo rm -f /etc/apt/sources.list.d/sdlmame4ubuntu.*
    • Προσθετουμε το repository της ανεπισημης εκδοσης
    • sudo add-apt-repository ppa:c.falco/mame
    • Ανανεωνουμε την λιστα
      sudo apt-get update
    • Εγκαθισταμαι το πακετο του MAME
      sudo apt-get install mame
    • Aν θελουμε να προσθεσουμε ενα frontend, μπορουμε να βαλουμε το QMC2, που ειναι πολυ καλο με την παρακατω εντολη
      sudo apt-get install qmc2
 
 

Eξαγωγη στοιχειων/πληροφοριων απο ιστοσελιδες με bash script

Δυστυχως, αυτο που φοβουνται οι περισσοτεροι, οταν ξεκιναν να ασχολουνται με το Unix/Linux/Ubuntu, ειναι και το πιο δυνατο ατου που εχει… αναφερομαι στο τερματικο. Ειναι δυσκολο, αλλα αν το μαθεις, σου λυνονται τα χερια. Μπορεις να κανεις "περιεργα/τρελα" πραγματα, που δεν τα κανεις ουτε με το καλυτερο γραφικο περιβαλλον. Σε αυτο το tutorial, θα δουμε πως μπορουμε να εξαγουμε στοιχεια απο ιστοσελιδες που μας ενδιαφερουν. Μπορειτε πχ να εξαγετε τον καιρο μιας τοποθεσιας και να σωζετε τις πληροφοριες αυτες σε ενα αρχειο ή να τις εμφανιζετε στο desktop σας… μπορειτε να παρακολουθειτε μετοχες, top ten λιστες απο διαφορα sites και θεματα… και οτι αλλο σκεφτειτε.

Εδω, για λογους συντομιας και απλοτητας, θα φτιαξουμε ενα script το οποιο θα περνει απο μια ιστοσελιδα πληροφοριες για το ζωδιο μας. Η λογικη ειναι πανω-κατω ιδια και για αλλες περιπτωσεις, οποτε αν το θεμα σας φενεται αστειο, μην σταματησετε να διαβαζετε.

Καταρχας βρισκουμε την ιστοσελιδα που ενδιαφερει και ανοιγουμε να δουμε τον πηγαιο κωδικα της (source code). Aυτο στο firefox γινεται, πατωντας Control + U. Aφου ανοιξει το παραθυρο με τον κωδικα, τον κοιταμε προσεκτικα και ψαχνουμε να βρουμε καποιο κομματι κειμενου ή κωδικα που ειναι μοναδικο στην ιστοσελιδα και ειναι ακριβως διπλα στο κειμενο που θελουμε να εξαγουμε. Θελουμε δηλαδη να βρουμε κατι χαρακτηριστικο που να δηλωνει που ειναι το κειμενο που ψαχνουμε. Η ιστοσελιδα που θα παρουμε τα στοιχεια μας ειναι η: http://www.psychicguild.com/Daily-Horoscope/Scorpio. Ανοιξτε τον κωδικα της και θα δειτε οτι διπλα στις πληροφοριες που θελουμε να παρουμε, εχει ενα ξεχωριστο κομματι κωδικα που ειναι μοναδικος σε ολη την σελιδα: <div id="now2" style="">

Οποτε, καταρχας πρεπει να αποθηκευσουμε την σελιδα, τοπικα, στον υπολογιστη μας. Αυτο το κανουμε δινοντας την εντολη wget ετσι:

wget -O scorpio.txt http://www.psychicguild.com/Daily-Horoscope/Scorpio

Οπου scorpio.txt το ονομα του αρχειου που θελουμε να αποθηκευσουμε την σελιδα και μετα βαζουμε και την διευθυνση της ιστοσελιδας. Περιμενουμε και βλεπουμε οτι ο υπολογιστης σωζει την συγκεκριμενη ιστοσελιδα.

Για να εξαγουμε το κομματι με τις πληροφοριες, χρησιμοποιουμε την εντολη grep. Με την εντολη αυτη βρισκουμε ενα κομματι κειμενου μεσα σε ενα αρχειο. Οποτε για να εξαγουμε τις πληροφοριες μας δινουμε:

grep '<div id="now2" style="">' scorpio.txt

Αυτο θα μας τυπωσει ολη την σειρα κειμενου, μαζι με τον κωδικα HTML. Εμεις ομως θελουμε μονο το κειμενο, χωρις τον κωδικα HTML. Oποτε πρεπει να τον αφαιρεσουμε. Για να γινει αυτο, χρησιμοποιουμε την εντολη sed. H εντολη sed, αντικαθιστα ενα κομματι κειμενου, με ενα αλλο που θελουμε. Εμεις εδω θελουμε να αφαιρεσουμε τα HTML codes, τα οποια ολα, ξεκινανε και τελειωνουν με τους χαρακτηρες < και >. Ετσι θα χρησιμοποιησουμε την εντολη sed με ενα regular expression, το οποιο βρισκει τα HTML tags και θα τα αφαιρεσουμε. Δινουμε λοιπον την παρακατω εντολη:

sed -e 's/<[a-zA-Z\/][^>]*>//g' scorpio.txt

Στην οθονη θα μας τυπωθει το κειμενο της ιστοσελιδας χωρις τα HTML tags. Αλλα… μας τυπωνει ολη την ιστοσελιδα…και οχι μονο το κομματι που θελουμε. Αυτο γινετε γιατι με την προηγουμενη εντολη (την grep) παρολο που μας τυπωσε στην οθονη το κειμενο που θελαμε, στο αρχειο scorpio.txt δεν εγινε καμμια μεταβολη. Δεν σωσαμε τιποτα, απλα το εμφανισαμε στην οθονη μας. Πως λοιπον τωρα με την εντολη sed θα αντικαταστισουμε τα HTML tags μονο στο κομματι που θελουμε;;; Θα χρησιμοποιησουμε pipes! Tο pipe ειναι, ας πουμε, μια εντολη η οποια περνει την εξοδο μιας εντολης (το κειμενο που εμφανιζει δηλαδη) και το στελνει ως εισαγωγη στην επομενη εντολη.

Για να αντικαταστησουμε τα HTML tags μονο στο κομματι του αρχειου που θελουμε δινουμε την παρακατω εντολη:

grep '<div id="now2" style="">' scorpio.txt | sed -e 's/<[a-zA-Z\/][^>]*>//g'

Τι κανουμε… πρωτα βρισκουμε το σημειο του κειμενου με την εντολη grep και μετα με το pipe (ο χαρακτηρας | ) περναμε την εξοδο της grep σαν εισοδο στην sed. Eτσι τωρα η sed δεν χρειαζετε να τις πουμε το ονομα του αρχειου οπως πριν (sed -e 's/<[a-zA-Z\/][^>]*>//g' scorpio.txt). Ετσι μας δινετε τωρα σαν εξοδο, το κομματι κειμενου που θελουμε, χωρις τα HTML tags.

Oμως, δεν τελειωσαμε. Αν παρατηρησετε, στο κειμενο εμφανιζονται και κατι ειδικοι χαρακτηρες και πολλα κενα (&#8217,&#8211 κτλ). Δεν ειναι ωραια να τα βλεπουμε… οποτε θα τα αφαιρεσουμε και παλι με την εντολη sed. Oποτε δινουμε:

grep '<div id="now2" style="">' scorpio.txt | sed -e 's/<[a-zA-Z\/][^>]*>//g' | sed -e 's/’//g' | sed -e 's/–//g'

Oπως βλεπετε, συνεχιζουμε και προσθετουμε pipes, μεχρι να φτασουμε το τελικο κειμενο στην μορφη που θελουμε. Ενα τελευταιο βημα που θα κανουμε, ειναι να αφαιρεσουμε το κενο που εχει στην αρχη το κειμενο μας, το οποιο ειναι απλα tabs. Aυτο γινετε με την εντολη sed ‘s/[\t]//g’ οποτε η τελικη μας εντολη θα γινει ετσι:

grep '<div id="now2" style="">' scorpio.txt | sed -e 's/<[a-zA-Z\/][^>]*>//g' | sed -e 's/’//g' | sed -e 's/–//g' | sed 's/[\t]//g'

Αν θελουμε να το σωσουμε σε ενα αρχειο, θα δωσουμε την παραπανω εντολη προσθετωντας το συμβολο > με το ονομα του αρχειου που θελουμε να σωθει καπως ετσι:

grep '<div id="now2" style="">' scorpio.txt | sed -e 's/<[a-zA-Z\/][^>]*>//g' | sed -e 's/’//g' | sed -e 's/–//g' > scorpios.txt

Αν θελουμε να το κανουμε ολο αυτο, ενα script θα γινει ετσι:

#!/bin/sh

wget -O scorpio.txt http://www.psychicguild.com/Daily-Horoscope/Scorpio

grep '<div id="now2" style="">' scorpio.txt | sed -e 's/<[a-zA-Z\/][^>]*>//g' | sed -e 's/’//g' | sed -e 's/–//g' > scorpios.txt

H βασικη αρχη και σκεψη ειναι ιδια παντου. Καθε ιστοσελιδα εχει διαφορετικη δομη, οποτε πρεπει να αλλαξετε τις εντολες αναλογα. Τα βασικα εργαλεια ειναι οι εντολες wget, sed και grep. Αλλα δεν ειναι μονο αυτες. Οσο ψαχνετε τις εντολες του τερματικου, τοσο θα τελειοποιητε τον κωδικα σας και τις ικανοτητες σας. Μπορειτε να βρειτε scripts απο το Internet και να διαβασετε τον κωδικα τους για να δειτε και αλλα παραδειγματα.

 

Ετικέτες: , , , , , ,

Σωστε τo theme που χρησιμοποιειτε σε ενα αρχειο με δυνατοτητα επαναφορας

Εχετε σεταρει τον υπολογιστη σας, τον εχετε φερει στα μετρα σας, εχετε βρει το theme που σας αρεσει, εχετε βαλει την αγαπημενη σας φωτογραφια στο desktop, το theme του GTK ειναι το αγαπημενο σας…. αλλα καθε φορα που κανετε αναβαθμιση, πρεπει να τα σεταρετε απο την αρχη ενα-ενα.

Με το παρακατω script, σωζετε ολα τα παραπανω σε ενα συμπιεσμενο αρχειο, το οποιο φυλαται… ή το στελνετε σε καποιον που θελετε να σεταρει το συστημα του οπως εσεις. Οταν χρειαστει να επαναφερετε το συστημα, αποσυμπιεζετε το αρχειο και μεσα υπαρχει ενα αλλο script το οποιο εκτελειτε. Αυτο ηταν ;)

To script ειναι απο την ιστοσελιδα: http://ubuntu.online02.com/pts

 
 

Ετικέτες: ,

 
Follow

Ενημερωθείτε για κάθε νέα δημοσίευση στο email σας.