Projet

Général

Profil

Shell secours » Historique » Version 3

Version 2 (Julien Enselme, 13/08/2013 17:53) → Version 3/16 (Julien Enselme, 13/08/2013 21:34)

Liste de commandes pour des actions spécifiques. Pas/peu de détails/explications, [[Petit precis prérequis de shell|prérequis de shell]] supposés shell supposé connus.

{{toc}}

h1. Générer des nombres aléatoires

* $RANDOM (*bash uniquement*) : tire un nombre aléatoirement entre 0 - 32767 (bash)
* fortune | cksum | cut -f1 -d" " : si RANDOM n'est pas disponible, la commande @fortune@ qui tire aléatoirement un proverbe l'est peut être. On en prend la somme pour obtenir un nombre.
* seed=`( echo $$ ; time ps ; w ; date ) | cksum | cut -f1 -d" " ` : utilise la date où le PID du dernier processus.
* dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -f1 -d" " : utilise l'entrée d'entropie du noyau. C'est la meilleur méthode, la plus robuste pour générer de l'aléatoire.

h1. Prendre les x caractères d’une chaîne

@cut -cN-M@

h1. Revenir dans le répertoire précédent

@cd -@

h1. Vérifier paramètre non passé

@! -z $2@. L'option -n ne semble pas avoir le résultat attendu. $2 vs -n@

h1. Trier

@sort@

h1. compter

* @wc@ : pour les mots, caractères, nombres de lignes
* @let@ : pour les opérations mathématiques
@wc, let@

h1. Savoir si une chîne est contenue dans une autre

* @[[ reg_exp =~ contenant ]]@ *bash uniquement*
* @[ grep "reg_exp" chaine ]

h1.
Renommer les fichiers en fonction d’une expression régulière

<pre> @for file in $(ls *sql) ; do a=$(echo $file | sed 's/assos\.centrale\-marseille\.fr\.\([a-z]*[0-9]*\)\..*/\1/') ; mv_db $a; done@
<code class="bash">
for
@for file in `ls` ; do
a=`echo $file | sed 's/\(.*\)\.dump\(.*\)\.sql/\2.\1.sql/'`
's/\(.*\)\.dump\(.*\)\.sql/\2.\1.sql/'`; mv $file $a $a; done@
done
</code>
</pre>

On peut également utiliser Emacs.