Archives pour l'étiquette Bash

Mac OS X terminal: Un peu de couleur dans la console

Terminal OS X

Pour les néophyte unix soyez rassuré ceci fonctionne aussi bien sur Tiger, Leopard ou Snow Leopard

.bashrc

Voici un .bashrc à placer dans votre /home sur votre mac pour avoir un peu plus de couleur dans votre terminal (terminal.app). Attention à sauvegarder votre précédent .batchrc

<span style="color: #808080; font-style: italic;"># ~/.bashrc: executed by bash(1) for non-login shells.</span> &nbsp; <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PS1=</span><span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\h</span>:<span style="color: #000099; font-weight: bold;">\w</span><span style="color: #000099; font-weight: bold;">\$</span> '</span> <span style="color: #7a0874; font-weight: bold;">umask</span> <span style="color: #000000;">022</span> &nbsp; <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">CLICOLOR=</span><span style="color: #000000;">1</span> &nbsp; <span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">ll=</span><span style="color: #ff0000;">'ls -l'</span> <span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">la=</span><span style="color: #ff0000;">'ls -A'</span> <span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">vi=</span><span style="color: #ff0000;">'vim'</span> <span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">l=</span><span style="color: #ff0000;">'ls -CF'</span> &nbsp; <span style="color: #000000; font-weight: bold;">function</span> cyan_red_prompt <span style="color: #7a0874; font-weight: bold;">&#123;</span> &nbsp; <span style="color: #7a0874; font-weight: bold;">local</span> <span style="color: #007800;">CYAN=</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\0</span>33[0;36m<span style="color: #000099; font-weight: bold;">\]</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">local</span> <span style="color: #007800;">GRAY=</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\0</span>33[0;37m<span style="color: #000099; font-weight: bold;">\]</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">local</span> <span style="color: #007800;">RED=</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\0</span>33[0;31m<span style="color: #000099; font-weight: bold;">\]</span>&quot;</span> &nbsp; <span style="color: #007800;">PS1=</span><span style="color: #ff0000;">&quot;${CYAN}[<span style="color: #000099; font-weight: bold;">\u</span>@<span style="color: #000099; font-weight: bold;">\h</span> ${RED}<span style="color: #000099; font-weight: bold;">\w</span>${CYAN}]${GRAY} &quot;</span> <span style="color: #7a0874; font-weight: bold;">&#125;</span> &nbsp; cyan_red_prompt

.profile Et voici le .profile à placer également dans votre home pour lancer le .bashrc

<span style="color: #808080; font-style: italic;"># ~/.profile: executed by the command interpreter for login shells.</span> <span style="color: #808080; font-style: italic;"># This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login</span> <span style="color: #808080; font-style: italic;"># exists.</span> <span style="color: #808080; font-style: italic;"># see /usr/share/doc/bash/examples/startup-files for examples.</span> <span style="color: #808080; font-style: italic;"># the files are located in the bash-doc package.</span> &nbsp; <span style="color: #808080; font-style: italic;"># the default umask is set in /etc/profile</span> <span style="color: #808080; font-style: italic;">#umask 022</span> &nbsp; <span style="color: #808080; font-style: italic;"># if running bash</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> -n <span style="color: #ff0000;">&quot;$BASH_VERSION&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>     <span style="color: #808080; font-style: italic;"># include .bashrc if it exists</span>     <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> -f ~<span style="color: #000000; font-weight: bold;">/</span>.bashrc <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>         . ~<span style="color: #000000; font-weight: bold;">/</span>.bashrc     <span style="color: #000000; font-weight: bold;">fi</span> <span style="color: #000000; font-weight: bold;">fi</span> &nbsp; <span style="color: #808080; font-style: italic;"># set PATH so it includes user's private bin if it exists</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> -d ~<span style="color: #000000; font-weight: bold;">/</span>bin <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>     <span style="color: #007800;">PATH=</span>~<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #ff0000;">&quot;${PATH}&quot;</span> <span style="color: #000000; font-weight: bold;">fi</span>

Memo raccourcis du bash

Mémo Précis & concis : les raccourcis du bash

Déplacements :

  • ctrl a : début de ligne
  • ctrl e (end) : fin de ligne
  • alt f (forward) : avance d’un mot (<— pratique)
  • alt b (backward) : recule d’un mot (<— pratique)
  • ctrl x ctrl x (x switch) : alterne le curser avec son ancienne position (<— -* coup de coeur)

Couper coller

  • alt backspace : couper le mot avant
  • alt d : couper le mot après
  • ctrl k : coupe du curser à la fin de la ligne
  • ctrl u : coupe du curser au début de la ligne (<—pratique quand vous voulez annuler la saisie d’un mot de passe par exemple)
  • ctrl y (yank) : coller

Historique

  • flèche haut : remonter d’une ligne dans l’historique (ctrl p (previous))
  • flèche bas : descendre d’une ligne dans l’historique (ctrl n (next)) (vous pouvez vous ballader dans l’historique avec les flèches sans perdre votre saisie en cours…)
  • crtl r (research) : chercher les occurences d’une chaine de caractère dans l’historique (ctrl r pour passer à l’occurence d’après ctrl s pour revenir à l’occurence d’avant). (<— indispensable)
  • ctrl o : valide la ligne en cours et vous replace sur la ligne d’après dans l’historique (utile pour rejouer des pans de votre historique de shell avec ctrl r)

Éditer une ligne de commandes

  • ctrl x ctrl e : édite la ligne courante dans Vi (variable $EDITOR du shell) (<— coup de coeur)
  • alt u : transforme le mot courant en majuscules à partir du curser et avance d’un mot
  • alt l : transforme le mot courant en minuscules à partir du curser et avance d’un mot
  • alt c : met la lettre sous le curser en majuscule et avance d’un mot
  • alt r : annule les changements et remet la ligne telle qu’elle était dans l’historique (<— pratique)
  • tab : complète le mot en cours suivant le contexte (<— indispensable) Pour ceux que ça intéresse, la page de man de bash est évidemment LA référence pour ce genre de choses, si vous voulez atteindre directement la section de ces raccourcis, cherchez la chaine « beginning-of-line »
Honteusement repris de http://geekblog.over-blog.com/article-19405116.html

Memo redirection

Exemples communs en Bash

Pour rediriger les flux de sorties standards sous Bash :


commande 1> fichier

Redirige la sortie standard générée par la commande (stdout) dans fichier


commande 2> fichier

Redirige la sortie d’erreur standard généré par la commande (stderr) dans fichier


commande 2>&1

Redirige stderr vers stdout


commande &> fichier
Redirige stdout et stderr dans fichier

commande &> /dev/null

enverra l’ensemble des sorties vers /dev/null.

Où commande est une commande du bash (telle que ls ou mkdir), ou un programme (vim ou emacs). Et fichier est un fichier quelconque.

Le bon ordre

Les sorties stdin et stdout sont des pointeurs. Si vous voulez mettre stdin et stdout vers /dev/null :


commande > /dev/null 2>&1

Dans l’autre sens, stderr sortira sur la console.

Idem, stderr et stdout vers un pipe :


commande | commande2 2>&1

L’inverse ne fonctionnera pas.

tcsh ou csh

Avec tcsh ou csh, il n’est pas possible – à ce que je sais – de rediriger séparément les deux canaux de sortie. On peut par contre les joindre de cette manière :


shutup >& /dev/null

ou


commande1 |& commande2

Debian logo acssi art

Voici quelque logos debian avec la fameuse spiral en ascii. Copier le dans le fichier /etc/motd pour changer le message de bienvenue à chaque connexion console pour tout les utilisateurs.

Pour une utilisation plus personnelle vous pouver l’incule dans votre .profile ou .bashrc via un script d’affichage.

Logo N/B N°1


_,met$$$$$gg.
,g$$$$$$$$$$$$$$$P.
,g$$P"" """Y$$.".
,$$P' `$$$.
',$$P ,ggs. `$$b:
`d$$' ,$P"' . $$$
$$P d$' , $$P
$$: $$. - ,d$$'
$$; Y$b._ _,d$P'
Y$$. `.`"Y$$$$P"'
`$$b "-.__
`Y$$b
`Y$$.
`$$b.
`Y$$b.
`"Y$b._
`""""

_, _, ,'`.
`$$' `$$' `. ,'
$$ $$ `'
$$ $$ _, _
,d$$$g$$ ,d$$$b. $$,d$$$b.`$$' g$$$$$b.`$$,d$$b.
,$P' `$$ ,$P' `Y$. $$$' `$$ $$ "' `$$ $$$' `$$
$$' $$ $$' `$$ $$' $$ $$ ,ggggg$$ $$' $$
$$ $$ $$ggggg$$ $$ $$ $$ ,$P" $$ $$ $$
$$ ,$$ $$. $$ ,$P $$ $$' ,$$ $$ $$
`$g. ,$$$ `$$._ _., $$ _,g$P' $$ `$b. ,$$$ $$ $$
`Y$$P'$$. `Y$$$$P',$$$$P"' ,$$. `Y$$P'$$.$$. ,$$.

logo N/B N°2


_,met$$$$$gg.
,g$$$$$$$$$$$$$$$P.
,g$$P"" """Y$$.".
,$$P' `$$$.
',$$P ,ggs. `$$b:
`d$$' ,$P"' . $$$
$$P d$' , $$P
$$: $$. - ,d$$'
$$; Y$b._ _,d$P' _, _, ,'`.
Y$$. `.`"Y$$$$P"' `$$' `$$' `. ,'
`$$b "-.__ $$ $$ `'
`Y$$b $$ $$ _, _
`Y$$. ,d$$$g$$ ,d$$$b. $$,d$$$b.`$$' g$$$$$b.`$$,d$$b.
`$$b. ,$P' `$$ ,$P' `Y$. $$$' `$$ $$ "' `$$ $$$' `$$
`Y$$b. $$' $$ $$' `$$ $$' $$ $$ ,ggggg$$ $$' $$
`"Y$b._ $$ $$ $$ggggg$$ $$ $$ $$ ,$P" $$ $$ $$
`"""" $$ ,$$ $$. $$ ,$P $$ $$' ,$$ $$ $$
`$g. ,$$$ `$$._ _., $$ _,g$P' $$ `$b. ,$$$ $$ $$
`Y$$P'$$. `Y$$$$P',$$$$P"' ,$$. `Y$$P'$$.$$. ,$$.

logo couleur

copier / coller dans un fichier, rendez le executable, executer dans une console ou un xterm (pas gnome-terminal ou Eterm) pour afficher le logo.


cat <<__EOF__
-[31m_,met\$\$\$\$\$gg.-[0m
-[31m,g\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$P.-[0m
-[31m,g\$\$P""-[0m -[31m"""Y\$\$.".-[0m
-[31m,\$\$P'-[0m -[31m\`\$\$\$.-[0m
-[31m',\$\$P-[0m -[31m,ggs.-[0m -[31m\`\$\$b:-[0m
-[31m\`d\$\$'-[0m -[31m,\$P"'-[0m -[31m.-[0m -[31m\$\$\$-[0m
-[31m\$\$P-[0m -[31md\$'-[0m -[31m,-[0m -[31m\$\$P-[0m
-[31m\$\$:-[0m -[31m\$\$.-[0m -[31m--[0m -[31m,d\$\$'-[0m
-[31m\$\$;-[0m -[31mY\$b._-[0m -[31m_,d\$P'-[0m _, _, -[31m,'\`.-[0m
-[31mY\$\$.-[0m -[31m\`.\`"Y\$\$\$\$P"'-[0m \`\$\$' \`\$\$' -[31m\`. ,'-[0m
-[31m\`\$\$b-[0m -[31m"-.__-[0m \$\$ \$\$ -[31m\`'-[0m
-[31m\`Y\$\$b-[0m \$\$ \$\$ _, _-[0m
-[31m\`Y\$\$.-[0m ,d\$\$\$g\$\$ ,d\$\$\$b. \$\$,d\$\$\$b.\`\$\$' g\$\$\$\$\$b.\`\$\$,d\$\$b.
-[31m\`\$\$b.-[0m ,\$P' \`\$\$ ,\$P' \`Y\$. \$\$\$' \`\$\$ \$\$ "' \`\$\$ \$\$\$' \`\$\$
-[31m\`Y\$\$b.-[0m \$\$' \$\$ \$\$' \`\$\$ \$\$' \$\$ \$\$ ,ggggg\$\$ \$\$' \$\$
-[31m\`"Y\$b._-[0m \$\$ \$\$ \$\$ggggg\$\$ \$\$ \$\$ \$\$ ,\$P" \$\$ \$\$ \$\$
-[31m\`""""-[0m \$\$ ,\$\$ \$\$. \$\$ ,\$P \$\$ \$\$' ,\$\$ \$\$ \$\$
\`\$g. ,\$\$\$ \`\$\$._ _., \$\$ _,g\$P' \$\$ \`\$b. ,\$\$\$ \$\$ \$\$
\`Y\$\$P'\$\$. \`Y\$\$\$\$P',\$\$\$\$P"' ,\$\$. \`Y\$\$P'\$\$.\$\$. ,\$\$.

-[36mDebian GNU/Linux-[0m (testing/unstable)

Plus facile encore télécharger le fichier suivant, changer l’extention .txt par .sh rendez le executable puis faire en root la commande suivante pour modifier votre motd : $ logo.sh >> /etc/motd

texte - 1.6 ko

Resultat

Sympa non ?