{"id":154,"date":"2012-11-04T03:40:44","date_gmt":"2012-11-04T02:40:44","guid":{"rendered":"http:\/\/under12oot.noblogs.org\/?p=154"},"modified":"2013-09-09T17:02:58","modified_gmt":"2013-09-09T16:02:58","slug":"zshell","status":"publish","type":"post","link":"https:\/\/under12oot.noblogs.org\/?p=154","title":{"rendered":"Zshell"},"content":{"rendered":"<p>Scrivo questo articolo perch\u00e8 sono da poco diventato un felicissimo utilizzatore di zshell, cos&#8217;\u00e8 zsh? Come si pu\u00f2 leggere dal suo man:<\/p>\n<p>\u201c<em>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\u2010 mable command completion, shell functions (with autoloading), a history mechanism, and a host of other features.\u201d<\/em><\/p>\n<p>Non voglio dilungarmi sulle features (che sono veramente molte) o sulle differenze con le altre shell, piuttosto volevo scrivere sulla configurazione e sull&#8217;utilizzo di plugins. Per tutto il resto alla fine metter\u00f2 qualche link utile, anche se il punto di partenza resta sempre il buon vecchio man!<\/p>\n<p>L&#8217;utilizzo di zshell \u00e8 parecchio articolato, forse non \u00e8 del tutto adatta a chi muove i primi passi nel meraviglioso mondo della console, anche perch\u00e8 resta indispensabile conoscere la rinata shell (bash). Come dicevo prima, la zsh \u00e8 parecchio articolata, \u00e8 molto ricca e offre una miriade di possibilit\u00e0 di configurazioni, per riuscire a districarsi tra tutto questo ci viene in aiuto \u201coh-my-zsh\u201d <a href=\"https:\/\/github.com\/robbyrussell\/oh-my-zsh\">https:\/\/github.com\/robbyrussell\/oh-my-zsh<\/a> che con una serie di preconfigurazioni ci permette di fare il \u201cgrosso\u201d delle personalizzazioni e in pi\u00f9 ci mette a disposizione una serie di temi (eh si zsh ha anche i temi) per gli utenti pi\u00f9 esigenti, vediamo come installarlo:<\/p>\n<p><!--more--><\/p>\n<ul>\n<li>prima di tutto abbiamo bisogno di git e ovviamente di zsh, quindi se non l&#8217;abbiamo installato di default \u201c<em>apt-get install git zsh\u201d<\/em> fa al caso nostro<\/li>\n<li>dopodich\u00e8 possiamo clonare il git e installare <span style=\"font-family: Cantarell\"><em>oh-my-zsh: \u201c<\/em><\/span><code><span style=\"font-family: Cantarell\"><em>wget --no-check-certificate https:\/\/github.com\/robbyrussell\/oh-my-zsh\/raw\/master\/tools\/install.sh -O - | sh\u201d<\/em><\/span><\/code><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><code><span style=\"font-family: Cantarell\">Ora che abbiamo installato tutto il necessario possiamo procedere con le configurazioni, i nostri file di riferimento sono:<\/span><\/code><\/p>\n<p><code><span style=\"font-family: Cantarell\"><code>~\/.oh-my-zsh\/themes <\/code><\/span><\/code><\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_157\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-015341_1366x768_scrot.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-157\" class=\"size-medium wp-image-157\" alt=\"temi\" src=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-015341_1366x768_scrot-300x168.png\" width=\"300\" height=\"168\" srcset=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-015341_1366x768_scrot-300x168.png 300w, https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-015341_1366x768_scrot-1024x575.png 1024w, https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-015341_1366x768_scrot.png 1366w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-157\" class=\"wp-caption-text\">temi<\/p><\/div>\n<p><code><span style=\"font-family: Cantarell\"><br \/>\n<\/span><\/code><\/p>\n<p><code><span style=\"font-family: Cantarell\"><code>~\/.oh-my-zsh\/plugins<\/code><br \/>\n<\/span><\/code><\/p>\n<div id=\"attachment_156\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-015239_1366x768_scrot.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-156\" class=\"size-medium wp-image-156\" alt=\"plugins\" src=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-015239_1366x768_scrot-300x168.png\" width=\"300\" height=\"168\" srcset=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-015239_1366x768_scrot-300x168.png 300w, https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-015239_1366x768_scrot-1024x575.png 1024w, https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-015239_1366x768_scrot.png 1366w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-156\" class=\"wp-caption-text\">plugins<\/p><\/div>\n<p><code><span style=\"font-family: Cantarell\">\u00a0<code>~\/.zshrc<\/code><br \/>\n<\/span><\/code><\/p>\n<div id=\"attachment_155\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-012833_1366x768_scrot.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-155\" class=\"size-medium wp-image-155\" alt=\"zshrc\" src=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-012833_1366x768_scrot-300x168.png\" width=\"300\" height=\"168\" srcset=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-012833_1366x768_scrot-300x168.png 300w, https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-012833_1366x768_scrot-1024x575.png 1024w, https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-012833_1366x768_scrot.png 1366w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-155\" class=\"wp-caption-text\">zshrc<\/p><\/div>\n<p>&nbsp;<\/p>\n<p><code><span style=\"font-family: Cantarell\">Come si pu\u00f2 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'\u00e8 molto da dire in quanto basta provarli o cercare in rete le immagini, per i plugin la questione si fa molto pi\u00f9 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\u00ec saranno disponibili. Ovviamente ci viene lasciato un ampio spazio di manovra e ci viene data la possibilit\u00e0 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 \u201ccustom\u201d, io per\u00f2 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. <\/span><\/code><\/p>\n<p><code><span style=\"font-family: Cantarell\">Creare una cartella e un file all'interno di ~\/.oh-my-zsh\/plugins , nel mio caso ho creato un plugin chiamato noyse:<\/span><\/code><\/p>\n<p><code><span style=\"font-family: Cantarell\">mkdir ~\/.oh-my-zsh\/plugins\/noyse<\/span><\/code><\/p>\n<p><code><span style=\"font-family: Cantarell\">gedit ~\/.oh-my-zsh\/plugins\/noyse\/noyse.plugin.zsh <\/span><\/code><\/p>\n<p>&nbsp;<\/p>\n<p><code><span style=\"font-family: Cantarell\">fate molta attenzione al nome che utilizzate, deve essere espresso in quella forma, altrimenti non funzioner\u00e0. Ora possiamo inserire tutti gli alias e le funzioni che ci servono per rendere pi\u00f9 veloce la vita mentre stiamo utilizzando la nostra shell:<br \/>\n<\/span><\/code><\/p>\n<p>############################################<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-#<\/p>\n<p>## FUNZIONI ##<br \/>\nfunction sysclean()<br \/>\n{<br \/>\nprintf &#8220;\\nCLEANER: Processing apt-get clean&#8230;\\n\\n&#8221;<br \/>\nsudo apt-get clean<br \/>\nprintf &#8220;\\nCLEANER: clean done.\\n&#8221;<br \/>\nprintf &#8220;\\nCLEANER: Processing apt-get autoclean&#8230;\\n\\n&#8221;<br \/>\nsudo apt-get autoclean<br \/>\nprintf &#8220;\\nCLEANER: autoclean done.\\n&#8221;<br \/>\nprintf &#8220;\\nCLEANER: Processing apt-get autoremove&#8230;\\n\\n&#8221;<br \/>\nsudo apt-get autoremove<br \/>\nprintf &#8220;\\nCLEANER: autoremove done.\\n&#8221;<\/p>\n<p>lista=&#8221;.\/eliminabili.txt&#8221;<\/p>\n<p>printf &#8220;\\nCLEANER: Generating the list of removed application&#8217;s comfiguration files&#8230;&#8221;<br \/>\n( sudo dpkg -l | grep -E &#8220;^rc&#8221; | cut -f3 -d&#8217; &#8216; ) &gt; $lista<br \/>\nprintf &#8221; done. (List saved in %s)&#8221; $lista<\/p>\n<p>printf &#8220;\\nCLEANER: Start cleaning&#8230;&#8221;<br \/>\nfor file in $(cat $lista)<br \/>\ndo<br \/>\nsudo dpkg &#8211;purge $file<br \/>\ndone<\/p>\n<p>printf &#8220;\\nCLEANER: done.\\n&#8221;<br \/>\n#exit 0<br \/>\n}<\/p>\n<p>function aspe()<br \/>\n{<br \/>\n#Pensaci un attimo#<br \/>\necho &#8220;Pensaci un attimo:&#8221;<br \/>\necho &#8220;Hai 10 secondi per decidere&#8230;&#8221;<br \/>\nfor i in {0..9}; do echo -ne &#8220;.&#8221;; sleep 1; done<br \/>\n}<br \/>\nfunction ripigliami()<br \/>\n{<br \/>\n#Quando sei perso, e non sai che fare<br \/>\n#questa funzione fa a caso tuo!!<br \/>\necho &#8220;Sei qui: $PWD&#8221;<br \/>\necho &#8220;Sei tu: `whoami` &#8221;<br \/>\necho &#8220;Con questo UID: $UID&#8221;<br \/>\necho &#8220;Alle: `date &#8216;+%X&#8217; `&#8221;<br \/>\necho &#8220;Up: `uptime`&#8221;<br \/>\necho &#8220;Non ti sei ancora ripigliato?&#8221;<br \/>\n}<\/p>\n<p>############ NETWORKING STUFF ##################<br \/>\nalias ping=&#8221;ping -c 5&#8243;<br \/>\nalias mywall=&#8221;sudo ~\/.mybin\/.\/net_tables.sh&#8221;<br \/>\nalias net=&#8221;sudo nano \/etc\/network\/interfaces&#8221;<br \/>\nalias net_lis=&#8221;sudo netstat -plev&#8221;<br \/>\nalias net_stat=&#8221;sudo netstat -s&#8221;<br \/>\nalias hola=&#8221;nmap -sn&#8221;<br \/>\nalias pxc=&#8221;proxychain&#8221;<br \/>\nalias mon0=&#8221;sudo airmon-ng start wlan0&#8243;<br \/>\nalias setmon=&#8221;sudo ~\/.mybin\/.\/setmon.sh&#8221;<br \/>\nalias skype=&#8221;LD_PRELOAD=\/usr\/lib\/i386-linux-gnu\/libv4l\/v4l1compat.so skype &amp;&#8221;<br \/>\nalias pubb=&#8221;curl ifconfig.me&#8221;<br \/>\nalias publ-v=&#8221;curl ifconfig.me\/all&#8221;<\/p>\n<p>##Att!!##<br \/>\n#alias cert=&#8221;openssl req -new -x509 -nodes -out cert.pem -keyout cert.key -days 365&#8243;<\/p>\n<p>#################### VARIE #######################<br \/>\nalias -s {png,jpg,JPG,jpeg,PNG,gif,GIF}=xdg-open<br \/>\nalias -s {txt,sh,php,py,pl,rb}=gedit<br \/>\nalias -s {mp3,ogg,flac,mpg,mpeg,avi,ogm,wmv,m4v,mp4,mov}=vlc<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nalias crypt=&#8221;sudo truecrypt&#8221;\u00a0\u00a0 \u00a0#Run truecrypt<br \/>\nalias estraigz=&#8221;tar -zxvf&#8221;\u00a0\u00a0 \u00a0#estract tar.gz<br \/>\nalias estraibz=&#8221;tar -jxvf&#8221;\u00a0\u00a0 \u00a0#estract tar.bz2<br \/>\nalias pressa=&#8221;tar -czf&#8221;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0#build tar<br \/>\nalias scrot=&#8221;scrot -c -d 5&#8243;<br \/>\nalias cl=&#8221;clear&#8221;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0#clear console<br \/>\nalias elimina=&#8221;rm -rf&#8221;<br \/>\nalias l+=&#8221;ls *\/**&#8221;<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nalias -g nano=&#8217;nano -q&#8217;<br \/>\nalias -g N=&#8221;2&gt; \/dev\/null&#8221;<br \/>\nalias -g G=&#8221;|grep &#8221;<br \/>\nalias -g C=&#8221;| ccze -A&#8221;<br \/>\nalias -g line=&#8217;| wc -l&#8217;<br \/>\nalias -g Sn=&#8217;| sort -n&#8217;<br \/>\nalias -g Snr=&#8217;| sort -nr&#8217;<\/p>\n<p>############## CONFIGURAZIONE FLUXBOX #############<br \/>\nalias flux_menu=&#8221;nano .fluxbox\/fluxbox-menu &#8221;<br \/>\nalias flux_start=&#8221;nano .fluxbox\/startup&#8221;<br \/>\nalias flux_app=&#8221;nano .fluxbox\/apps&#8221;<\/p>\n<p>################# CONFIGURAZIONI ZSH ##############<br \/>\nalias helfo=`cat ~\/.mybin\/helfo.txt | ccze -A`\u00a0\u00a0 \u00a0#print this file plus other config<br \/>\nalias helmod=&#8221;nano ~\/.mybin\/helfo.txt&#8221;\u00a0\u00a0 \u00a0#edit my own help file<br \/>\nalias zconoyse=&#8221;nano ~\/.oh-my-zsh\/plugins\/noyse\/noyse.plugin.zsh&#8221; #edit plugin file<br \/>\nalias zsource=&#8221;source ~\/.zshrc&#8221; \u00a0\u00a0 \u00a0#source zsh config file<\/p>\n<p>################## SEC TOOL ######################<br \/>\nalias vega=&#8221;sudo ~\/.mybin\/vega\/.\/Vega&#8221;<br \/>\nalias arpwner=&#8221;sudo python ~\/.mybin\/arpwner\/main.py&#8221;<br \/>\nalias strip=&#8221;sudo ~\/.mybin\/.\/autostrip.sh&#8221;<br \/>\nalias karma=&#8221;sudo ~\/.mybin\/.\/karmaplay.sh&#8221;<br \/>\nalias metpay=&#8221;sudo ~\/.mybin\/.\/MetPay.sh&#8221;<br \/>\nalias gerix=&#8221;sudo python ~\/.mybin\/gerix-wifi-cracker-master\/gerix.py&#8221;<br \/>\nalias dnschef=&#8221;sudo python ~\/.mybin\/dnschef\/.\/dnschef.py&#8221;<\/p>\n<p>##################### APT ########################<br \/>\nalias agd=&#8221;sudo apt-get update&#8221;<br \/>\nalias agg=&#8221;sudo apt-get upgrade&#8221;<br \/>\nalias agi=&#8221;sudo apt-get -y install&#8221;<br \/>\nalias adu=&#8221;sudo apt-get dist-upgrade&#8221;<br \/>\nalias agr=&#8221;sudo apt-get remove&#8221;<br \/>\nalias agar=&#8221;sudo apt-get autoremove&#8221;<br \/>\nalias agc=&#8221;sudo apt-get clean&#8221;<br \/>\nalias agac=&#8221;sudo apt-get autoclean&#8221;<br \/>\nalias acs=&#8221;sudo apt-cache search&#8221;<br \/>\nalias repo=&#8221;sudo nano \/etc\/apt\/sources.list&#8221;<br \/>\nalias instdeb=&#8221;sudo dpkg -i&#8221;<br \/>\nalias apti=&#8221;sudo aptitude&#8221;<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n#SYSTEM#<br \/>\nalias log_kern=&#8221;colortail \/var\/log\/kern.log&#8221;<br \/>\nalias log_sys=&#8221;colortail \/var\/log\/syslog&#8221;<br \/>\nalias log_auth=&#8221;colortail \/var\/log\/auth.log&#8221;<br \/>\nalias rw-=&#8217;chmod 600&#8242;<br \/>\nalias rwx=&#8217;chmod 700&#8242;<br \/>\nalias r&#8211;=&#8217;chmod 644&#8242;<br \/>\nalias r-x=&#8217;chmod 755&#8242;<br \/>\nalias duf=&#8217;du -s *(\/N) | sort -nr | cut -f 2- | while read a; do du -sh &#8220;$a&#8221;; done&#8217;<br \/>\nalias gpsea=&#8217;gpg &#8211;search-keys&#8217;<br \/>\nalias gplst=&#8217;gpg &#8211;list-keys &#8211;with-fingerprint&#8217;<br \/>\nalias gpsig=&#8217;gpg &#8211;list-sigs&#8217;<br \/>\nalias db=&#8217;sudo \/etc\/init.d\/postgresql start&#8217;<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nalias msf=&#8217;sudo msfconsole&#8217;<br \/>\nalias sniff=&#8217;sudo ettercap -G &amp;&#8217;<br \/>\nalias shark=&#8217;sudo wireshark &amp;&#8217;<br \/>\nalias anon=&#8217;vidalia &amp;&#8217;<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-#<\/p>\n<p>##############EOF#############<\/p>\n<p>&nbsp;<\/p>\n<p>Questo \u00e8 pressapoco il risultato finale&#8230;.<\/p>\n<div id=\"attachment_158\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-030210_1366x768_scrot.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-158\" class=\"size-medium wp-image-158\" alt=\"tab\" src=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-030210_1366x768_scrot-300x168.png\" width=\"300\" height=\"168\" srcset=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-030210_1366x768_scrot-300x168.png 300w, https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-030210_1366x768_scrot-1024x575.png 1024w, https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-030210_1366x768_scrot.png 1366w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-158\" class=\"wp-caption-text\">tab<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_159\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-031822_1366x768_scrot.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-159\" class=\"size-medium wp-image-159\" alt=\"net_tables\" src=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-031822_1366x768_scrot-300x168.png\" width=\"300\" height=\"168\" srcset=\"https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-031822_1366x768_scrot-300x168.png 300w, https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-031822_1366x768_scrot-1024x575.png 1024w, https:\/\/under12oot.noblogs.org\/files\/2012\/11\/2012-11-04-031822_1366x768_scrot.png 1366w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-159\" class=\"wp-caption-text\">net_tables<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>##LINK UTILI##<\/p>\n<p>http:\/\/zsh.sourceforge.net\/<\/p>\n<p>http:\/\/zshwiki.org\/home\/<\/p>\n<p>http:\/\/strcat.de\/dotfiles\/<\/p>\n<p>http:\/\/nerdrug.org\/blog\/zsh-the-powerful-shell\/<\/p>\n<p>Buon divertimento a tutti!! Pi\u00f9 avanti riuscir\u00f2 sicuramente a scrivere qualcosa di pi\u00f9 utile e interessante, per ora \u00e8 tutto!!<\/p>\n<p>&#8216;notte!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Scrivo questo articolo perch\u00e8 sono da poco diventato un felicissimo utilizzatore di zshell, cos&#8217;\u00e8 zsh? Come si pu\u00f2 leggere dal suo man: \u201cZsh 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. [&hellip;]<\/p>\n","protected":false},"author":1255,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[13,24,23,22],"class_list":["post-154","post","type-post","status-publish","format-standard","hentry","category-debian","tag-hack","tag-shell","tag-trucchi","tag-zsh"],"_links":{"self":[{"href":"https:\/\/under12oot.noblogs.org\/index.php?rest_route=\/wp\/v2\/posts\/154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/under12oot.noblogs.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/under12oot.noblogs.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/under12oot.noblogs.org\/index.php?rest_route=\/wp\/v2\/users\/1255"}],"replies":[{"embeddable":true,"href":"https:\/\/under12oot.noblogs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=154"}],"version-history":[{"count":14,"href":"https:\/\/under12oot.noblogs.org\/index.php?rest_route=\/wp\/v2\/posts\/154\/revisions"}],"predecessor-version":[{"id":393,"href":"https:\/\/under12oot.noblogs.org\/index.php?rest_route=\/wp\/v2\/posts\/154\/revisions\/393"}],"wp:attachment":[{"href":"https:\/\/under12oot.noblogs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/under12oot.noblogs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=154"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/under12oot.noblogs.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}