Recuperare data di nascita di un OS Gnu/Linux

Questo è un semplice comando che serve a determinare la data d'installazione del nostro O.S. Gnu/Linux, a partire dal piu vecchio file di configurazione presente nel nostro sistema.

$ ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'


edmond@debianbox:~$ ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'
10 mar 21.18

Rimuovere i pacchetti del giorno

 

 

A volte ci si spaventa accorgendosi di avere fatto una cazzata, facendo un aggiornamento di cui non si è sicuri, oppure molto semplicemente dopo aver installato un po di pacchetti, per prova o esperimenti vari, si vorrebbe tornare indietro ripulendo il tutto. Ma se i pacchetti installati sono tanti è difficile ricordarsi di tutti. A questo proposito viene in aiuto questo comando che legge i pacchetti del giorno e li rimuove.

grep -e `date +%Y-%m-%d` /var/log/dpkg.log | awk '/install / {print $4}' | uniq | xargs apt-get -y remove

Ma quanto spazio mi occupi

 

Per sapere quali sono i programmi che occupano molto spazio nel nostro sistema, esiste un comando, un pò lunghetto per la verità, ma che ci aiuta a capire chi sono i mostri che occupano così tanto spazio. Io ne ho uno, e si chiama imageshack-uploader, che comunque terrò poichè lo ritengo molto comodo.

56.078 MB linux-source-2.6.30
58.781 MB inkscape
64.422 MB evolution-common
66.570 MB linux-image-2.6.30-1-686
66.574 MB linux-image-2.6.30-2-686
82.582 MB sun-java6-bin
83.547 MB virtualbox-3.0
86.574 MB foomatic-db-gutenprint
106.246 MB openoffice.org-core
570.491 MB imageshack-uploader

Il comando è il seguente:

dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", $2/(1024), $1}' | tail -n 10

Per modificare il numero di programmi da visualizzare, cambiare il numero successivo a tail -n.

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”

Screencast da shell personalizzato

 

Per ottenere uno screencast con Linux esiste un ottimo programma come gtk-recordMyDesktop, che non è niente altro che un fronted per recordMyDesktop. Lo screencast alla fine viene esportato come formato .ogg. Un altro metodo, secondo me migliore poichè largamente personalizzabile è quello di usare ffmpeg, con il seguente comando:

ffmpeg -f x11grab -s 1280x1024 -r 30 -i :0.0 /home/UTENTE/Desktop/screencast.mpg

alla fine basta premere q per terminare.

In questo esempio come risoluzione io ho usato 1280x1024, e come formato finale .mpg., ma si può scegliere una risoluzione diversa e soprattutto di esportare in formato differente, a secondo della nostra esigenza.

Aggiornamento:

Un altro comando utile in alternativa può essere questo:

ffmpeg -y -t 60 -r 25 -s 1280x1024 -f x11grab -i :0.0 screen.avi

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 :)"