<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Trux &#187; zsh</title>
	<atom:link href="http://trux.info/tag/zsh/feed/" rel="self" type="application/rss+xml" />
	<link>http://trux.info</link>
	<description>Partage de mes astuces et découvertes</description>
	<lastBuildDate>Tue, 09 Jun 2009 19:47:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Débuts avec zsh</title>
		<link>http://trux.info/2009/01/debuts-avec-zsh/</link>
		<comments>http://trux.info/2009/01/debuts-avec-zsh/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 19:56:09 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Informatique]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[zsh]]></category>

		<guid isPermaLink="false">http://trux.info/?p=62</guid>
		<description><![CDATA[zsh est un shell complet qui remplace avantageusement bash dont on entend beaucoup parler en bien. J&#8217;ai décidé de l&#8217;essayer récemment.
Sans chercher à exploiter toutes les fonctionnalités qu&#8217;il propose, certaines facilités me sont maintenant indispensables lorsque je passe à bash. Une seule en fait : le ** qui se substitue à n&#8217;importe quel dossier ou [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cooking2000.com/fr/dossier/coquille-saint-jacques.htm"><img alt="" src="http://www.cooking2000.com/image/dossier/divers/coquille-st-jacques.jpg" title="shell signifie aussi coquille, ici une St Jacques" class="alignright" width="200" height="257" /></a><code>zsh</code> est un <a href="http://fr.wikipedia.org/wiki/Shell_(informatique)">shell</a> complet qui remplace avantageusement <code>bash</code> dont on entend <a href="http://doc.ubuntu-fr.org/zsh">beaucoup parler</a> en bien. J&#8217;ai décidé de l&#8217;essayer récemment.</p>
<p>Sans chercher à exploiter toutes les fonctionnalités qu&#8217;il propose, certaines facilités me sont maintenant indispensables lorsque je passe à bash. Une seule en fait : le <code>**</code> qui se substitue à n&#8217;importe quel dossier ou sous-dossier. Un <a href="http://en.wikipedia.org/wiki/Glob_(programming)">globbing</a> puissant qui permet de s&#8217;affranchir de <a href="http://pwet.fr/man/linux/commandes/find">find</a>.</p>
<p><span id="more-62"></span></p>
<pre>
# liste tous les fichiers, equivalent de find .
ls **/*
# recherche la chaine 'foo' dans tous les fichiers java
grep foo **/*.java
# recherche la chaine 'bar' dans tous les fichiers java qui ont pour
# repertoire parent le dossier src
grep foo **/src/**/*.java
</pre>
<p>De plus, on peut ajouter des options de recherche</p>
<pre>
# tous les fichiers contenant le nom 'dupont' en Ignorant la casse
# correspond à dupond, DUPOND, Dupond, DuPOnD, mais pas Durand
ls (#i)dupont
# liste uniquement les fichiers
ls **/*(.)
# liste uniquement les dossiers
ls -d **/*(/)
# liste tous les dossiers pleins (Full)
ls -d **/*(F)
# liste tous les dossiers vides (not Full)
ls -d **/*(^F)
</pre>
<p>Il existe <a href="http://www.manpagez.com/man/1/zshexpn/">beaucoup d&#8217;autres possibilités</a>, mais juste ces quelques commandes m&#8217;ont permis de m&#8217;affranchir du sempiternel <code>find . -type f -iname "*dupont*" | xargs svn revert</code>.</p>
<p>L&#8217;autre truc bien de zsh, évidemment, c&#8217;est l&#8217;aide à la <a href="http://zsh.sourceforge.net/Guide/zshguide06.html">complétion de commande</a>. Il est remarquable dans bien des cas, notamment</p>
<ul>
<li>tâches ant : <code>$ ant &lt;TAB&gt;</code> => liste les tâches ant disponibles</li>
<li>arguments ant : <code>$ ant --n&lt;TAB&gt;</code> => liste les options de ant commençant par <i>&#8211;n</i></li>
<li>adresses svn : <code>$ svn checkout http://some.svn.server/svn/trunk/src/&lt;TAB&gt;</code> => liste les fichiers disponibles</li>
</ul>
<p>Bref ça vaut le coup d&#8217;essayer. Pour mettre un pied à l&#8217;étrier (et me servir d&#8217;aide mémoire), voici le <code>.zshrc</code> que j&#8217;utilise. Il n&#8217;a rien d&#8217;exceptionnel, même le prompt est des plus basiques.</p>
<pre>
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
setopt appendhistory autocd extendedglob nomatch notify
unsetopt beep
bindkey -e
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '/home/cbliard/.zshrc'

autoload -Uz compinit
compinit
# End of lines added by compinstall

# Add ~/bin directory to PATH if possible
[ -d $HOME/bin ] &#038;&#038; export PATH=$PATH:$HOME/bin

# colors
eval "`dircolors -b`"
alias ls='ls --color=auto'

function l() {
	clear; pwd; echo; ls -lh $*; echo
}

# Set up aliases
alias mv='nocorrect mv'       # no spelling correction on mv
alias cp='nocorrect cp'       # no spelling correction on cp
alias mkdir='nocorrect mkdir' # no spelling correction on mkdir
alias grep='egrep --exclude-dir=\.svn --color=auto'
alias ll='ls -l'
alias la='ls -a'
alias less='less -i'
alias diff='diff -u -x .svn'

# Less verbose ant
alias ant='ant -logger org.apache.tools.ant.NoBannerLogger'

# List only directories and symbolic
# links that point to directories
alias lsd='ls -ld *(-/DN)'

# List only file beginning with "."
alias lsa='ls -ld .*'

# Simple bold prompt
PROMPT="%{%B%}%n@%m:%~%{%b%}%# "

# select words as in bash (for Meta-backspace and Meta-d)
autoload -U select-word-style
select-word-style bash
</pre>
]]></content:encoded>
			<wfw:commentRss>http://trux.info/2009/01/debuts-avec-zsh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
