Colorare il cursore della Shell

 

Questo post nasce come integrazione a delle mie guide fatte in precedenza che si trovano qua e qua, per dare più colore alla shell, ma nasce soprattutto da una domanda fattami da un lettore, che mi chiedeva: "Come si facesse a cambiare solo il colore del cursore ed utilizzare il verde per l'utente normale ed il  rosso per root " Rispondo subito dicendo che si può cambiare il cursore e si può testare il tutto con questi comandi:

echo -ne "\033]12;Green\007"
echo -ne "\033]12;Red\007"
echo -ne "\033]12;Blue\007"
echo -ne "\033]12;Yellow\007"

A questo punto scelto il colore del cursore sostituiamo la stringa PS1 presente in .bashrc, con la stringa in basso che va bene per le Debian based.

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$'

poi incolliamo alla fine di .bashrc:

echo -ne "\E]12;green\007"

poi salviamo il tutto in .bashrc per l'utente normale oppure in /root/.bashrc per l'utente root.

Per chi volesse una situazione come quella in figura o una base da dove partire può usare questa:

PS1="\[\e[31;1m\]\u-\[\e[32;1m\]\H \[\e[0m\]"

o questa:

PS1='\[\e[1;42m\d\\\t\\\]\u\H\[\e[0;40m\]:\w\$'

La stringa sopra è bruttissima e mi meraviglio pure che funzioni certamente si può ordinare e semplificare, ma io non ho più voglia

Diamo più colore alla shell

 

Oggi mi è venuto in mente di dare un po più di colore al mio terminale e quindi mi sono messo all'opera per fare alcuni cambiamenti ed aggiungere ad una guida fatta in passato, il colore verde per l'utente normale ed il rosso per quello di root, in più l'orario e la data. Senza scendere troppo nei particolari andiamo a vedere questo tipo di personalizzazione. Iniziamo con il dire che quello che andiamo a modificare è la variabile di ambiente "PS1", quindi per conoscere i dati che si trovano all'interno, basta un:

echo $PS1

che nel mio caso restituisce questo:

\[\e]0;\u@\h: \w\a\]\[\e[1;42m\d\\\t\\\]\u\H\[\e[0;40m\]:\w\$

Nel terminale inserendo la stinga sottostante, subito  appariranno  le nuove modifiche,  che ognuno può ulteriormente modificare a proprio piacimento, e alla fine salvarle in .bashrc per renderle effettive per l'utente normale, o in /root/.bashrc per quello di root. Questa stringa andrà chiaramente a sosituire quella di default che si trova quasi all'inizio di .bashrc.

Utente normale colore verde:

PS1='\[\e[1;42m\d\\\t\\\]\u\H\[\e[0;40m\]:\w\$'

Root colore rosso:

PS1='\[\e[1;41m\d\\\t\\\]\u\H\[\e[0;40m\]:\w\$'

Spiegazione della stringa:

\[   marca l'inizio di una sequenza di caratteri non stampabili, che può essere usata per includere nel prompt  una  sequenza di controllo del terminale.

\e       un carattere ASCII di escape (033)

1;42     formattazione in grassetto colore di sfondo verde intensità normale

 m       fine di una sequenza ANSI

\d       la data nel formato "Giorno-della-settimana Mese Giorno"

\\       un backslash

\t       l'ora corrente nel formato HH:MM:SS 24 ore

\u       il nome-utente dell'utente corrente

\H       il nome dell'host

0;40     formattazione normale colore di sfondo nero intensità normale

\]       marca la fine di una sequenza di caratteri non stampabili

\w       la directory di lavoro corrente con HOME abbreviato con una tilde

Lista dei colori: Leggi tutto "Diamo più colore alla shell"

4 modi diversi per generare password

 

Per generare una password, oltre al comando precedente, esistono altri 4 comandi, o almeno io conosco solo questi, comunque tutti da riga di comando.

egrep -ioam1 '[a-z0-9]{8}' /dev/urandom

openssl rand -base64 9

makepasswd --chars=20

< /dev/urandom tr -dc A-Za-z0-9_ | head -c10 | xargs | cat

 

Finché c'è Shell c'è speranza


 

Questo post nasce dalla consapevolezza che sono uno a cui le cose semplici, specialmente sula mia Debian, non sono mai piaciute. Tanto è vero che a forza di sperimentare, c'è sempre qualche cosa che non va. A volte mi chiedo, come mai uso un O.S, dove quando hai fretta ed urgenza di fare un qualcosa, non funziona mai niente, invece che usarne un altro dove tutto va al primo colpo, eppure nel mio hard disk ci sono sempre presenti almeno 5 sistemi, ma come tutti sappiamo "C'est l'amour" , ed a quella famosa domanda che io ogni tanto mi faccio, rispondo sempre allo stesso modo, " A ME MI PIACE COSI'".,ed a questo punto per farmi perdonare dalla mia amata, per come la tratto voglio dedicarle un bella canzone d'amore.

 

Dopo aver asciugato le lacrime vengo subito al punto, e racconto della mia urgenza di masterizzare un film su un dvd-rw, e dopo aver utilizzato in serie, GnomeBaker,Brasero e K3b,  non riesco a masterizzare nulla, ed ottengo una caterva di errori.

Leggi tutto “Finché c'è Shell c'è speranza”

Bash-Tube

 

 

Questo è un piccolo e semplice script in Bash, per scaricare un video da youtube. In giro sicuramente c’è di meglio sia come script, sia come programmi. Non bisogna fare altro che sostituire link con l’indirizzo del video da scaricare.

a=`GET "link" | grep fullscreenUrl`;

b=`echo $a | awk -F"video_id=" '{print $2}'`;

c="www.youtube.com/get_video?video_id="+$b;

wget $c;

Un altro modo molto comodo, segnalato da hamen nei commenti è questo:

#!/bin/bash

a=`GET "$1" | grep fullscreenUrl`;
b=`echo $a | awk -F"video_id=" '{print $2}'`;
c="www.youtube.com/get_video?video_id="+$b;
wget $c;
mv videoplayback* $2

Quindi, direttamente dalla shell:

./bashtube nomefile.flv

 

Debian bash (personalizzazione)

 

 

 

Per chi volesse personalizzare la propria Debian bash come la mia, bastano pochi passi. Il sito di riferimento per la conversione di parole in ASCII è sicuramente questo. Quello che faremo sarà quello di visualizzare all'apertura del nostro prompt, il Logo con la  scritta Debian, e la versione della nostra distribuzione. Per il resto basta editare nella propria home il file .bashrc, ed in fondo  incollare questo:

 

rosso='\e[1;31m'
NC='\e[0m'
 
 
echo -e "${rosso}          _,edm\$\$\$\$\$on.";
echo -e "       ,d\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$P.";
echo -e "     ,g\$\$P\"\"       \"\"\"Y\$\$.\".";
echo -e "    ,\$\$P'              \`\$\$\$.";
echo -e "  ',\$\$P       ,ggs.     \`\$\$b:";
echo -e "  \`d\$\$'     ,\$P\"'   .    \$\$\$";
echo -e "   \$\$P      d\$'     ,    \$\$P";
echo -e "   \$\$:      \$\$.   -    ,d\$\$'      ";
echo -e "   \$\$;      Y\$b._   _,d\$P'   ${NC}     _,           _,      ,'\`.";
echo -e "${rosso}   Y\$\$.    \`.\`\"Y\$\$\$\$P\"'${NC}         \`\$\$'         \`\$\$'     \`.  ,'";
echo -e "${rosso}   \`\$\$b      \"-.__           ${NC}    \$\$           \$\$        \`'";
echo -e "${rosso}    \`Y\$\$b                     ${NC}   \$\$           \$\$         _,           _";
echo -e "${rosso}     \`Y\$\$.                ${NC} ,d\$\$\$g\$\$  ,d\$\$\$b.  \$\$,d\$\$\$b.\`\$\$' g\$\$\$\$\$b.\`\$\$,d\$\$b.";
echo -e "${rosso}       \`\$\$b.          ${NC}    ,\$P'  \`\$\$ ,\$P' \`Y\$. \$\$\$'  \`\$\$ \$\$  \"'   \`\$\$ \$\$\$' \`\$\$";
echo -e "${rosso}         \`Y\$\$b.      ${NC}     \$\$'    \$\$ \$\$'   \`\$\$ \$\$'    \$\$ \$\$  ,ggggg\$\$ \$\$'   \$\$";
echo -e "${rosso}           \`\"Y\$b._     ${NC}   \$\$     \$\$ \$\$ggggg\$\$ \$\$     \$\$ \$\$ ,\$P\"   \$\$ \$\$    \$\$";
echo -e "${rosso}               \`\"\"\"\"    ${NC}  \$\$    ,\$\$ \$\$.       \$\$    ,\$P \$\$ \$\$'   ,\$\$ \$\$    \$\$";
echo -e "${NC}                          \`\$g. ,\$\$\$ \`\$\$._ _., \$\$ _,g\$P' \$\$ \`\$b. ,\$\$\$ \$\$    \$\$";
echo -e "                           \`Y\$\$P'\$\$. \`Y\$\$\$\$P',\$\$\$\$P\"'  ,\$\$. \`Y\$\$P'\$\$.\$\$.  ,\$\$.";
echo -e "${rosso}Debian  GNU/Linux ${NC}" `cat /etc/debian_version`

 

Se poi volessimo un avviso che ci ricordi ulteriormente che siamo root, basta inserire nel file .bashrc che si trova in /root  le seguenti linee:

 

 


echo -e '\e[1;31m';
echo "  ______  _____   _____  _______";
echo " |_____/ |     | |     |    |";
echo " |    \_ |_____| |_____|    |";
echo -e '\e[m';
echo "NON FARE CAZZATE :)"



Script per Gmail

 

Per scaricare la posta da Gmail io uso uno script per me utilissimo, dato che non sono interessato ad usare client di posta, ma al massimo i plugins per iceweasel-firefox. La particolarità di questo script è che una volta controllato il numero di nuove mail ricevute, si accende il led num lock (oppure caps lock o skroll lock) e lampeggia tante volte, quanto sono le email ricevute. L’unica dipendenza che serve è blinkd, presente nei repository.

apt-get install blinkd

Questo lo script:

#!/bin/bash
cd /tmp
username=Vostro_Username_Google_Senza_@gmail.com
password=$( zenity --entry --title="Password Gmail" --text="Inserisci password :" --hide-text )
if [[ -z $password ]]
then exit
fi
if [[ $password == "0" ]]
then password=$( zenity --entry --title="Password Gmail" --text="Inserisci password :" )
fi
sleep 15
function get_rss
{
wget -q -O .gmail_rss https://$username:$password@mail.google.com/mail/feed/atom --no-check-certificate
fc=$( cat .gmail_rss | grep "fullcount" | grep -o [1-9] )
}
while true
do
get_rss
if ! [[ fc == "0" ]]
then
    until [[ $fc == "" ]]
    do
    blink -n -r $fc
    get_rss
    sleep 15
    done
blink
fi
sleep 5m
done
rm -f .gmail_rss

chmod +x nome_script

 

Naturalmente per visualizzare il file .gmail_rss in /tmp bisogna visualizzare i file nascosti.

Lo script verifica la presenza di nuove mails ogni 10 minuti, per cambiare basta modificare "sleep 10m"

Il led che lampeggia è il num lock, per modificarlo basta sostituire blink -n -r $fc con blink -c -r $fc e si passa al capslock.

Queste le altre opzioni:

  -c,   –capslockled   use Caps-Lock LED
  -h,   –help          display this help and exit
  -m s, –machine=s     let keyboard of machine s blink
  -n,   –numlockled    use Num-Lock LED
  -r n, –rate=n        set blink rate to n
  -s,   –scrolllockled use Scroll-Lock LED
  -t n, –tcp-port=n    use tcp port n
  -v,   –version       output version information and exit

Per fermare o far partire i demoni  /etc/init.d/blinkd stop-start-restart.

Per altro man blinkd.

 

Rinominare jpg in massa e convertirli in video

A volte può essere molto utile rinominare in massa delle foto specialmente quando se ne hanno tante. Certamente sarebbe impensabile farlo ad una ad una, ed allora se si volesse rinominarle del tipo 1.jpg, 2.jpg, 3.jpg, ecc. ecc. basta eseguire questo comando:

ls -A | awk 'BEGIN{n=1} {system("mv "$1" "n".jpg");n=n+1}'

oppure installare jhead che non solo li rinomina ma con un solo comando da la data e l'ora in cui sono state fatte.

jhead -n%Y%m%d-%H%M%S *.jpg

Per altre info

 man jhead

Sicuramente esistono altri modi 😉

Se poi si volesse creare partendo dalle immagini jpg un video, dopo aver installato mjpegtools ed aver rinominato le immagini in image000, image001, image002, ecc. ecc. si può usare:

jpeg2yuv -b 1 -f 25 -I p -j image%03d.jpg | mpeg2enc -o video.mpg

Per altre info

man jpeg2yuv

History Shell e Registrazione

 

 

 

 

 

 

 

 

Come già noto il comando history permette di avere lo storico dei comandi dati all'interno del terminale. Questo comando risulta molto utile ed addirittura si possono fare delle migliorie, andando ad aggiungere a ~/.bashrc alcune linee.

Per specificare il numero di comandi da memorizzare:

export HISTFILESIZE="2000"

Per inserire data ed ora nello storico:

export HISTTIMEFORMAT="%D %H:%M "

Per aggiornare le modifiche fatte

. .bashrc

Il risultato:

edmond@DebianBox:~$ history
69 05/11/08 12:38 history
70 05/11/08 12:40 gedit ~/.bashrc
71 05/11/08 12:56 man-t ls> ls.ps
72 05/11/08 12:58 man ddclient
73 05/11/08 12:57 man-t ls> ls.ps ps2pdf ls.ps && rm -f ls.ps
74 05/11/08 12:57 man -t ls> ls.ps ps2pdf ls.ps && rm -f ls.ps
75 05/11/08 12:57 man -t ddclient> ls.ps ps2pdf ls.ps && rm -f ls.ps
76 05/11/08 12:58 man -t ddclient> ddclient.ps ps2pdf ddclient.ps &&
rm -f ls.ps

 

Per cancellare lo storico:

history -c

Poi esiste il modo di registrare tutto quello che appare all'interno della shell, e questo secondo me è molto utile poichè non si limita solamente a registare i comandi, ma qualunque cosa passa o si scrive all'interno. Ad esempio se qualcuno e preso da ispirazione e deve scrivere qualcosa di urgente può farlo senza problema e con tutta sicurezza, certo che il tutto verrà registrato.

Per iniziare la registrazione:

 script ''registra''

Per terminare

exit

Shell al veleno

 

 

 

 

 

 

 

 

 

 

Tutti sanno della pericolosità di alcune specie di serpenti, che hanno il loro punto di forza nel veleno. I veleni dei serpenti possono essere suddivisi in tre tipi: emotossici, neurotossici ed emolitici. La loro classificazione si basa sugli effetti che hanno sul corpo della vittima.
 
  • Le emotossine distruggono i vasi sanguigni, causando un’emorragia nelle cavità interne del corpo.
  • Le neurotossine agiscono sul sistema nervoso, colpendo principalmente reazioni muscolari, digestione, vista e respirazione.
  • Le emolisine dissolvono i globuli rossi e impediscono la coagulazione.
     
Detto questo anche la shell può essere velenosa, e lascia quasi gli stessi segni dei morsi del serpente, e cioè questi:
:(){ :|:& };:
 
Il veleno di questo tipo di shell appartiene alla categoria dei neurotossici, e quindi colpisce principalmente il sistema nervoso, che nel nostro caso specifico, dato che non si parla di uomini ma di Pc, saranno le funzioni principali del nostro computer, come il blocco di tastiera mouse ecc ecc, rendendo praticamente inutile ogni tentativo di reazione. Per chiunque venisse morso si consiglia di mantenere la calma, dato che fortunatamente  esiste un antidoto capace di fermare il veleno, ed è chiamato tasto reset 🙂