Terminale personalizzato completo (quasi)

 

 

 

Tenendo sempre il terminale aperto, mi piace personalizzarlo, e dato che anche l'occhio vuole la sua parte, di tanto in tanto mi piace cambiargli il look. Quindi oggi dato che mi sento buono 🙂 lo condivido con i miei amici pinguini.

 

# apt-get install figlet

$ nano .bashrc

 

ed incollare alla fine:

 

# Colori:

black='\e[0;30m'
blue='\e[0;34m'
green='\e[0;32m'
cyan='\e[0;36m'
red='\e[0;31m'
purple='\e[0;35m'
brown='\e[0;33m'
lightgray='\e[0;37m'
darkgray='\e[1;30m'
lightblue='\e[1;34m'
lightgreen='\e[1;32m'
lightcyan='\e[1;36m'
lightred='\e[1;31m'
lightpurple='\e[1;35m'
yellow='\e[1;33m'
white='\e[1;37m'
nc='\e[0m'

# Prompt:

PS1='\[\033[01;32m\]\u\[\033[01;34m\]-\[\033[01;31m\]\h\[\033[00;34m\]{\[\033[01;34m\]\w\[\033[00;34m\]}\[\033[01;32m\]:\[\033[00m\]'

# Informazioni di Sistema:

clear
echo -e "${lightred}";figlet -c "DEBIAN     BOX";
echo -ne "${lightblue}Oggi è:\t\t${lightblue}" `date`; echo ""
echo -e "${lightblue}Kernel : \t${lightblue}" `uname -smr`
echo
echo -e "${lightred}Debian  GNU/Linux ${NC}" `cat /etc/debian_version`
echo -e "${lightblue}"; cal -A 1

 

questa è una buona base da cui partire per ottenere la propria shell personalizzata.

 

enjoy 😉

Cambiare misure default del terminale

 

 

Il terminale di Gnome di default ha una determinata misura, ma se si volesse più grande o più piccolo non ci sono grandi problemi, basta solo uno step:

 

$ sudo nano /usr/share/vte/termcap/xterm

 

e modificare questa stringa:

 

:co#80:it#8:li#24:\

 

per esempio con questa:

 

:co#100:it#8:li#28:\

 

 

enjoy 😉

Copiare con cp e barra di progresso

 

 

 

 

Advanced Copy è una mod per i tools cp e mv, e si occupa di far apparire nel terminale una barra di progresso che rende visibile il tempo e la % di una copia di un file. Per abilitare questa mod, bisogna seguire pochi semplici passi:

 

 

$ wget https://ftp.gnu.org/gnu/coreutils/coreutils-8.4.tar.gz
$ tar xvzf coreutils-8.4.tar.gz
$ cd coreutils-8.4/
$ wget
$ patch -p1 -i advcpmv-0.3-8.4.patch
$ ./configure
$ make
$ sudo cp src/cp /usr/bin/cp
$ sudo cp src/mv /usr/bin/mv

 

per avere la barra di progresso basta usare le opzioni cp -g e mv -g, senza andare a cambiare il comportamento solito di cp e mv. Per rendere definitivo il cambiamento invece aggiungere a .bashrc  gli alias:

 

alias cp='cp -g'
alias mv='mv -g'

 

Il comando dell' immagine sopra è:

 

$ cp -g debian-squeeze-di-beta1-amd64-netinst.iso /home/edmond/

 

 

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 😉

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 😉

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"

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



Messaggio all'avvio del terminale

 

 

Questa è un semplice trucchetto per avere un messaggio all'apertura del terminale. La cosa simpatica è quella che il

messaggio ci apparirà come se in quel momento qualcuno lo stesse scrivendo con una macchina da scrivere.

Non bisogna fare altro che incollare alla fine di .bashrc quanto segue:

##Messaggio di benventuto
messaggio="Ciao edmond attento a quello che fai : ) "
nLettera=${#messaggio}
i=0
while [ "$i" -lt "$nLettera" ]
do
sleep 0.1
echo -n "${messaggio:$i:1}"
(( i += 1 ))
done
echo

dove sleep 0.1 indica in millisecondi il tempo di attesa per ogni lettera.