Cambiare browser predefinito in Debian & Co

 

Io come browser uso Iceweasel, ma in una installazione standard di Debian, il browser predefinito è Epiphany, quindi quando si trovano dei link, anche se si sta usando Iceweasel, questi vengono aperti con  l'altro browser. Per cambiare si può usare update-alternatives. Per conoscere i browser installati nel sistema:

$ update-alternatives --list x-www-browser

per cambiare browser:

$ sudo update-alternatives --config x-www-browser

questa la mia lista:

edmond@Debianbox:~$ sudo update-alternatives –config x-www-browser
Sono disponibili 5 scelte per l'alternativa x-www-browser (che fornisce /usr/bin/x-www-browser).

  Selezione    Percorso                   Priorità  Stato
————————————————————
  0            /usr/bin/google-chrome      200       modalità automatica
  1            /usr/bin/chromium-browser   40        modalità manuale
  2            /usr/bin/epiphany-browser   85        modalità manuale
  3            /usr/bin/google-chrome      200       modalità manuale
* 4            /usr/bin/iceweasel          70        modalità manuale
  5            /usr/bin/opera              90        modalità manuale

Premere Invio per mantenere il valore predefinito[*] o digitare il numero della selezione:

 

enjoy 😉

Leggere sito web con espeak e links

 

Qualche giorno fa ho fatto un post dal titolo Terminale parlante in Linux, utilizzando espeak come sintezizzatore vocale per fargli ripetere una frase prestabilita. Oggi invece voglio usare espeak insieme a links per farmi leggere una pagina web:

 

$ links -dump https://www.edmondweblog.com | espeak -v it -s 160

 

enjoy :)

Download ad orario prestabilito

 

A volte capita di voler scaricare un grosso file, ma siccome si sta facendo altro oppure si ha bisogno di tutta la banda disponibe, alla fine succede che ci si dimentica. Per ovviare al problema della dimenticanza servirebbe un comando da digitare subito ma che posticipi il download ad un orario prestabilito . Ecco fatto 🙂

 

$ echo 'wget link_da_scaricare' | at 23:00

 

enjoy ;)

Download ed Upload con Plowshare

 

Plowshare è una fantastica applicazione a riga di comando progettata per alcuni dei più popolari siti di file-sharing come: Megaupload, Rapidshare, 2Shared, 4Shared, ZShare, Badongo, Divshare.com, Depositfiles, Mediafire ecc.ecc. Questa applicazione secondo me può risultare molto utile soprattutto quando si hanno tanti link per il download e magari su hosting diversi. Comunque iniziamo con ordine:

 

Requisiti:

$ sudo apt-get install curl recode imagemagick tesseract-ocr-eng spidermonkey-bin aview perlmagick

al posto di spidermonkey-bin si può installare anche il pacchetto rhino.

 

Download pacchetto deb

oppure:

Download tarball

installarlo con:

$ tar xvzf plowshare-VERSION.tgz

$ cd plowshare-VERSION

$ sudo bash setup.sh install

 

Esempi di utilizzo:

il motivo principale per cui mi piace è proprio questo, e cioè creare un file lista.txt e mettere dentro tutti i link da scaricare, (basta pensare ai grossi programmi che si trovano divisi in tanti rar) quindi basta un semplice:

$ plowdown lista.txt

download di un singolo file:

$ plowdown

download con account premium su megaupload:

$ plowdown -a myuser:mypassword

cancellare download premium su megaupload:

$ plowdel -a myuser:mypassword

limitare velocità di download:

$ plowdown -r 50k

per altri comandi controllare:

$ man plowshare

per i comandi di upload (che a me non servono) controllare:

$ man plowup

 

enjoy 😉

Terminale parlante in Linux

 

 

Dato che siamo in periodo di feste voglio augurare a tutti i miei lettori i migliori auguri, ed a questo proposito voglio farlo con un metodo "originale", e cioè dando voce al terminale, che si occuperà grazie ad espeak, di farvi gli auguri.

 

$ echo "Buon Natale a tutti e felice anno nuovo" | espeak -v it -s 180

 

enjoy 😉

Download Script con Gui

 

 

Questo è uno script per il download che utilizza wget e zenity,  quindi crea una finestra di dialogo dove inserire il link da scaricare, inoltre supporta il resume nel caso si annullasse la procedura di download.

 

DOWNLOAD() {
rand="$RANDOM `date`"
pipe="/tmp/pipe.`echo '$rand' | md5sum | tr -d ' -'`"
mkfifo $pipe
wget -c $1 2>&1 | while read data;do
if [ "`echo $data | grep '^Length:'`" ]; then
total_size=`echo $data | grep "^Length:" | sed 's/.*\((.*)\).*/\1/' | tr -d '()'`
fi
if [ "`echo $data | grep '[0-9]*%' `" ];then
percent=`echo $data | grep -o "[0-9]*%" | tr -d '%'`
current=`echo $data | grep "[0-9]*%" | sed 's/\([0-9BKMG.]\+\).*/\1/' `
speed=`echo $data | grep "[0-9]*%" | sed 's/.*\(% [0-9BKMG.]\+\).*/\1/' | tr -d ' %'`
remain=`echo $data | grep -o "[0-9A-Za-z]*$" `
echo $percent
echo "#Scaricamento da $1\n$current of $total_size ($percent%)\nVelocità : $speed/Sec\nTempo Stimato : $remain"
fi
done > $pipe &

wget_info=`ps ax |grep "wget.*$1" |awk '{print $1"|"$2}'`
wget_pid=`echo $wget_info|cut -d'|' -f1 `

zenity --progress --auto-close --text="Connessione a  $1\n\n\n" --width="350" --title="Scaricamento"< $pipe
if [ "`ps -A |grep "$wget_pid"`" ];then
kill $wget_pid
fi
rm -f $pipe
}

if [ $1 ];then
DOWNLOAD "$1"
else
dllink=$(zenity --entry --text "Inserire link da scaricare :" --width="350" --entry-text "" --title="Download")
if [ $dllink ];then
DOWNLOAD "$dllink"
fi
fi

 

salvare come download.sh

$ chmod +x download.sh

$ ./download.sh

nel caso di errori di formattazione si può scaricare da questo link.

 

enjoy ;)

Bloccare visualizzazione pagina man all'uscita

 

 

Questo è un piccolo trucchetto che secondo me può risultare molto utile quando si consulta da terminale una pagina man. Spesso infatti spulciando il man di un determinato programma, si apprendono nuove informazioni e nuovi comandi, ma una volta premuto il tasto q e si esce dal man, l'informazione o il comando non è più visibile, di conseguenza ci si trova nella situazione di tenere aperte due shell. Per ovviare a questo problema basta modificare .bashrc:

$ echo "export LESS='FiX'" >> ~/.bashrc

enjoy 😉

Uninstall programmi installati da sorgenti

 

 

Dopo vari esperimenti l'altra sera non riuscivo più a compilare, poichè avevo in precedenza installato da sorgenti alcune cose, che alla fin della fiera mi hanno compromesso il sistema (chiedere a toshidex 🙂 ) perdendo il bandolo della matassa. Comunque il problema lo avevo individuato, ma dopo svariati tentativi andati a vuoto, mi sono stancato ed ho preferito reinstallare. Certo se fosse stato un problema dovuto a qualche aggiornamento giornaliero fatto, il problema lo avrei risolto semplicemente in questo modo. Ma in questo caso avendo installato con make-install, senza quindi nemmeno checkinstall,  addio tracce di tutti i file installati. Quindi questa guida serve soprattutto a me, giusto per ricordarmi che quando faccio qualche test è sempre meglio avere una lista di quello che faccio 🙂 Per tenere traccia dei file ci sono due metodi:

Primo metodo:

# make uninstall

ma trovare un tarball che include questo è quasi come vincere al superenalotto 🙂

Secondo metodo:

prendere nota di tutti i file installati:

# find /* > pacchetti.prima

a questo punto eseguire il make-install

quindi prendere nota di tutti i file dopo l'installazione:

# find /* > pacchetti.dopo

ottenere le differenze tra i due file usando diff:

# diff pacchetti.prima pacchetti.dopo > uninstall

iniziare la rimozione:

# for i in $(grep ">" uninstall | awk '{ print $2 }')

do

/bin/rm -fi $i;

done

a questo punto compariranno a video i file da disinstallare, e basta scrivere yes.

 

enjoy 😉

Pdftotext convertire da pdf a txt

 

 

Stasera ho avuto la necessità di convertire un file pdf in un file di testo, poichè volevo sperimentare uno script (eccezzionale), di cui non parlerò in questo post 🙂  Comunque questa conversione l'ho eseguita usando pdftotext, che fa parte di poppler-utils.

Sintassi:

pdftotext [options] [PDF-file [text-file]]

quindi per convertire da pdf a txt:

$ pdftotext file.pdf file.txt

se invece vogliamo convertire solo una parte di un pdf, bisogna specificare le pagine.

esempio: dalla 10 alla 15:

$ pdftotext -f 10 -l 15 file.pdf file.txt

per convertire un pdf protetto da password del proprietario:

$ pdftotext -opw "password" file.pdf file.txt

per altre opzioni consultare il man.

enjoy 😉

Benchmark bash dash ksh csh zsh

 

PoisonBit per lavori che sta facendo a voluto fare dei test per decidere quale shell usare, a questo proposito ha fatto un test per verificarne le performance. Io ho modificato questo script aggiungendo ulteriori shell. Lo script è il seguente:

 

#!/bin/bash

testdir=$HOME/test
mkdir -p "$testdir"
printf '#!/bin/dash --\n\n' > "$testdir/dash"
printf '#!/bin/bash --\n\n' > "$testdir/bash"
printf '#!/bin/ksh --\n\n'  > "$testdir/ksh"
printf '#!/bin/csh --\n\n'  > "$testdir/csh"
printf '#!/bin/zsh --\n\n'  > "$testdir/zsh"
chmod +x "$testdir"/*

for i in 1 10 100 1000 10000
do
    for shell in 'bash' 'dash' 'ksh' 'csh' 'zsh'
    do
        result=''
        printf "$shell\t$i\t"
        result="$(
            (time for ((x=0; x < $i; x++));
             do
                 "$testdir/$shell";
             done) 2>&1 | awk -F\  '/real/{print $2}'
        )"
        printf "$result\n"
    done
    printf -- '-------------------------\n'
done

 

salviamo come test-shell.sh

$ chmod a+x test-shell.sh

 

lo lanciamo con:

$ ./test-shell.sh

 

come si può vedere dai risultati il più performante è dash, ma questo era prevedibile, quello che è interessante sono proprio le differenze in termini numerici tra di loro.

 

edmond@debianbox:~$ ./testshell.sh
bash    1    0m0.002s
dash    1    0m0.001s
ksh    1    0m0.002s
csh    1    0m0.004s
zsh    1    0m0.003s
————————-
bash    10    0m0.021s
dash    10    0m0.009s
ksh    10    0m0.019s
csh    10    0m0.039s
zsh    10    0m0.032s
————————-
bash    100    0m0.202s
dash    100    0m0.088s
ksh    100    0m0.181s
csh    100    0m0.380s
zsh    100    0m0.294s
————————-
bash    1000    0m1.900s
dash    1000    0m0.867s
ksh    1000    0m1.793s
csh    1000    0m3.759s
zsh    1000    0m3.078s
————————-
bash    10000    0m19.689s
dash    10000    0m8.577s
ksh    10000    0m17.453s
csh    10000    0m36.365s
zsh    10000    0m29.948s

il vincitore è  Debian Almquist Shell (dash)