Zshell

Scrivo questo articolo perchè sono da poco diventato un felicissimo utilizzatore di zshell, cos’è zsh? Come si può leggere dal suo man:

Zsh is a UNIX command interpreter (shell) usable as an interactive login shell and as a shell script command processor. Of the standard shells, zsh most closely resembles ksh but includes many enhancements. Zsh has command line editing, builtin spelling correction, program‐ mable command completion, shell functions (with autoloading), a history mechanism, and a host of other features.”

Non voglio dilungarmi sulle features (che sono veramente molte) o sulle differenze con le altre shell, piuttosto volevo scrivere sulla configurazione e sull’utilizzo di plugins. Per tutto il resto alla fine metterò qualche link utile, anche se il punto di partenza resta sempre il buon vecchio man!

L’utilizzo di zshell è parecchio articolato, forse non è del tutto adatta a chi muove i primi passi nel meraviglioso mondo della console, anche perchè resta indispensabile conoscere la rinata shell (bash). Come dicevo prima, la zsh è parecchio articolata, è molto ricca e offre una miriade di possibilità di configurazioni, per riuscire a districarsi tra tutto questo ci viene in aiuto “oh-my-zsh” https://github.com/robbyrussell/oh-my-zsh che con una serie di preconfigurazioni ci permette di fare il “grosso” delle personalizzazioni e in più ci mette a disposizione una serie di temi (eh si zsh ha anche i temi) per gli utenti più esigenti, vediamo come installarlo:

  • prima di tutto abbiamo bisogno di git e ovviamente di zsh, quindi se non l’abbiamo installato di default “apt-get install git zsh” fa al caso nostro
  • dopodichè possiamo clonare il git e installare oh-my-zsh: “wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh”

 

Ora che abbiamo installato tutto il necessario possiamo procedere con le configurazioni, i nostri file di riferimento sono:

~/.oh-my-zsh/themes

 

temi

temi


~/.oh-my-zsh/plugins

plugins

plugins

 ~/.zshrc

zshrc

zshrc

 

Come si può vedere dall'immagine, il file .zshrc contiene un minimo di configurazione e l'inclusione di altri file di configurazione tra cui i temi e i plugins, se per i temi non c'è molto da dire in quanto basta provarli o cercare in rete le immagini, per i plugin la questione si fa molto più importante, oh-my-zsh ci mette a disposizione un elevato numero di alias e funzioni belle e pronte da essere utilizzate, consiglio di dare un'occhiata ai contenuti dei vari plugins. I plugins e i temi vanno aggiunti in .zshrc nella loro apposita sezione, effettuare il source e così saranno disponibili. Ovviamente ci viene lasciato un ampio spazio di manovra e ci viene data la possibilità di poter caricare i nostri plugin, e ovviamente noi ne faremo uno con tutte le nostre impostazioni e con tutte le cose utili che normalmente utilizziamo. Per aggiungere un plugin ci viene riservato un' apposito percorso in “custom”, io però per qualche strano motivo che ancora ignoro, i file caricati in quel percorso non mi venivano letti, ho quindi dovuto aggiungere il mio plugin alla cartella di default.

Creare una cartella e un file all'interno di ~/.oh-my-zsh/plugins , nel mio caso ho creato un plugin chiamato noyse:

mkdir ~/.oh-my-zsh/plugins/noyse

gedit ~/.oh-my-zsh/plugins/noyse/noyse.plugin.zsh

 

fate molta attenzione al nome che utilizzate, deve essere espresso in quella forma, altrimenti non funzionerà. Ora possiamo inserire tutti gli alias e le funzioni che ci servono per rendere più veloce la vita mentre stiamo utilizzando la nostra shell:

############################################

#————————————————————————-#

## FUNZIONI ##
function sysclean()
{
printf “\nCLEANER: Processing apt-get clean…\n\n”
sudo apt-get clean
printf “\nCLEANER: clean done.\n”
printf “\nCLEANER: Processing apt-get autoclean…\n\n”
sudo apt-get autoclean
printf “\nCLEANER: autoclean done.\n”
printf “\nCLEANER: Processing apt-get autoremove…\n\n”
sudo apt-get autoremove
printf “\nCLEANER: autoremove done.\n”

lista=”./eliminabili.txt”

printf “\nCLEANER: Generating the list of removed application’s comfiguration files…”
( sudo dpkg -l | grep -E “^rc” | cut -f3 -d’ ‘ ) > $lista
printf ” done. (List saved in %s)” $lista

printf “\nCLEANER: Start cleaning…”
for file in $(cat $lista)
do
sudo dpkg –purge $file
done

printf “\nCLEANER: done.\n”
#exit 0
}

function aspe()
{
#Pensaci un attimo#
echo “Pensaci un attimo:”
echo “Hai 10 secondi per decidere…”
for i in {0..9}; do echo -ne “.”; sleep 1; done
}
function ripigliami()
{
#Quando sei perso, e non sai che fare
#questa funzione fa a caso tuo!!
echo “Sei qui: $PWD”
echo “Sei tu: `whoami` ”
echo “Con questo UID: $UID”
echo “Alle: `date ‘+%X’ `”
echo “Up: `uptime`”
echo “Non ti sei ancora ripigliato?”
}

############ NETWORKING STUFF ##################
alias ping=”ping -c 5″
alias mywall=”sudo ~/.mybin/./net_tables.sh”
alias net=”sudo nano /etc/network/interfaces”
alias net_lis=”sudo netstat -plev”
alias net_stat=”sudo netstat -s”
alias hola=”nmap -sn”
alias pxc=”proxychain”
alias mon0=”sudo airmon-ng start wlan0″
alias setmon=”sudo ~/.mybin/./setmon.sh”
alias skype=”LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype &”
alias pubb=”curl ifconfig.me”
alias publ-v=”curl ifconfig.me/all”

##Att!!##
#alias cert=”openssl req -new -x509 -nodes -out cert.pem -keyout cert.key -days 365″

#################### VARIE #######################
alias -s {png,jpg,JPG,jpeg,PNG,gif,GIF}=xdg-open
alias -s {txt,sh,php,py,pl,rb}=gedit
alias -s {mp3,ogg,flac,mpg,mpeg,avi,ogm,wmv,m4v,mp4,mov}=vlc
#———————————————-
alias crypt=”sudo truecrypt”    #Run truecrypt
alias estraigz=”tar -zxvf”    #estract tar.gz
alias estraibz=”tar -jxvf”    #estract tar.bz2
alias pressa=”tar -czf”        #build tar
alias scrot=”scrot -c -d 5″
alias cl=”clear”        #clear console
alias elimina=”rm -rf”
alias l+=”ls */**”
#———————————————-
alias -g nano=’nano -q’
alias -g N=”2> /dev/null”
alias -g G=”|grep ”
alias -g C=”| ccze -A”
alias -g line=’| wc -l’
alias -g Sn=’| sort -n’
alias -g Snr=’| sort -nr’

############## CONFIGURAZIONE FLUXBOX #############
alias flux_menu=”nano .fluxbox/fluxbox-menu ”
alias flux_start=”nano .fluxbox/startup”
alias flux_app=”nano .fluxbox/apps”

################# CONFIGURAZIONI ZSH ##############
alias helfo=`cat ~/.mybin/helfo.txt | ccze -A`    #print this file plus other config
alias helmod=”nano ~/.mybin/helfo.txt”    #edit my own help file
alias zconoyse=”nano ~/.oh-my-zsh/plugins/noyse/noyse.plugin.zsh” #edit plugin file
alias zsource=”source ~/.zshrc”     #source zsh config file

################## SEC TOOL ######################
alias vega=”sudo ~/.mybin/vega/./Vega”
alias arpwner=”sudo python ~/.mybin/arpwner/main.py”
alias strip=”sudo ~/.mybin/./autostrip.sh”
alias karma=”sudo ~/.mybin/./karmaplay.sh”
alias metpay=”sudo ~/.mybin/./MetPay.sh”
alias gerix=”sudo python ~/.mybin/gerix-wifi-cracker-master/gerix.py”
alias dnschef=”sudo python ~/.mybin/dnschef/./dnschef.py”

##################### APT ########################
alias agd=”sudo apt-get update”
alias agg=”sudo apt-get upgrade”
alias agi=”sudo apt-get -y install”
alias adu=”sudo apt-get dist-upgrade”
alias agr=”sudo apt-get remove”
alias agar=”sudo apt-get autoremove”
alias agc=”sudo apt-get clean”
alias agac=”sudo apt-get autoclean”
alias acs=”sudo apt-cache search”
alias repo=”sudo nano /etc/apt/sources.list”
alias instdeb=”sudo dpkg -i”
alias apti=”sudo aptitude”
#———————————————-
#SYSTEM#
alias log_kern=”colortail /var/log/kern.log”
alias log_sys=”colortail /var/log/syslog”
alias log_auth=”colortail /var/log/auth.log”
alias rw-=’chmod 600′
alias rwx=’chmod 700′
alias r–=’chmod 644′
alias r-x=’chmod 755′
alias duf=’du -s *(/N) | sort -nr | cut -f 2- | while read a; do du -sh “$a”; done’
alias gpsea=’gpg –search-keys’
alias gplst=’gpg –list-keys –with-fingerprint’
alias gpsig=’gpg –list-sigs’
alias db=’sudo /etc/init.d/postgresql start’
#———————————————–
alias msf=’sudo msfconsole’
alias sniff=’sudo ettercap -G &’
alias shark=’sudo wireshark &’
alias anon=’vidalia &’

#————————————————-#

##############EOF#############

 

Questo è pressapoco il risultato finale….

tab

tab

 

net_tables

net_tables

 

##LINK UTILI##

http://zsh.sourceforge.net/

http://zshwiki.org/home/

http://strcat.de/dotfiles/

http://nerdrug.org/blog/zsh-the-powerful-shell/

Buon divertimento a tutti!! Più avanti riuscirò sicuramente a scrivere qualcosa di più utile e interessante, per ora è tutto!!

‘notte!



Tags: , , ,
This entry was posted on domenica, Novembre 4th, 2012 at 03:40 and is filed under Debian. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

5 Responses to “Zshell”

  1. leander

    direi che più corretto di così non è possibile. Aggiungerei unicamente che la medesima cosa che è stata fatta per il plugin è fattibile anche per il tema, andando a modificare il themes adatto o creandone uno apposito.
    ah, un ultima cosa: nel file .zshrc ci trovano tutte le impostazioni: dopo averlo aperto con un qualsiasi edito è possibile da li andare a modificare plugin e temi.
    enjoy
    augh
    leander

  2. noyse

    Ciao Leander!
    grazie per aver risposto e grazie anche per aver fatto notare che pure i temi sono modificabili come i plugins, devo essere sincero e ammettere di non averci mai pensato!! Magari avresti voglia di postare il codice di un tuo tema? ( se si, ti consiglio di usare qualcosa di simile a pastebin, in quanto la formattazione del blog fa c***re)
    Rileggendo un attimo l’articolo forse avrei dovuto specificare meglio che una volta che si crea un plugin (o un tema) o comunque se si vogliono aggiungere plugin già presenti, dobbiamo aggiungere il nome dello stesso all’interno del file .zshrc nell’apposita sezione plugins (o temi).
    Per quanto riguarda il raspberry sono particolarmente ignorante in materia… penso di essere uno dei pochi “informatici” che non si invasa nella tecnologia, non ho uno smartphone, non ho mai avuto nulla della apple, non so cosa sia un raspberry (cioè so cos’è ma non ne ho mai preso uno in mano) e uso un cellulare ancora in B/N che non fa le foto…. lol
    Btw se ci sta sopra una debian è ok!!!!

    daje forte!!
    noyse_dog

  3. leander

    ah, il post qua sopra e quello che state leggendo provengono dalla raspberry… raspbian! figata!

  4. leander

    ed ecco qua il codice del mio tema!
    http://pastebin.com/LYTBRTPt
    prendete e godetene tutti, questo è il mio codice, aperto per voi e per tutti!

  5. noyse

    Ho aggiornato e migliorato il plugin aggiungendo nuovi alias e nuove funzioni, spero che vi piaccia!!
    Bellaaaa!!!