User Tools

Site Tools


bash

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
bash [2010/02/09 21:18] ginkobash [2014/05/27 11:02] (current) – [Cheat Sheet] ginko
Line 1: Line 1:
 Bash est un langage de shell de linux. Bash est un langage de shell de linux.
 Il est installé par défaut sur Ubuntu. Il est installé par défaut sur Ubuntu.
 +====== UI ======
 +  * [[http://eriwen.com/bash/effective-shorthand/|Utiliser efficacement bash]]
 ====== Cheat Sheet ====== ====== Cheat Sheet ======
 +  * [[bash_cheatsheet|Bash parameters & history cheatsheet]]
 ===== Shebang ===== ===== Shebang =====
 <code bash>#!/bin/bash</code> <code bash>#!/bin/bash</code>
Line 15: Line 18:
   else   else
     commande     commande
-  fi +  fi</code>
-  </code>+
 ==== For ==== ==== For ====
 <code bash> <code bash>
Line 22: Line 24:
   do   do
     commande     commande
-  done +  done</code>
-  </code>+
 Voir: [[http://www.cyberciti.biz/faq/bash-for-loop/|For loop examples]] Voir: [[http://www.cyberciti.biz/faq/bash-for-loop/|For loop examples]]
 ===== Tests ===== ===== Tests =====
 <code bash> <code bash>
-  [ $var1 = $var2 ] +  [ $var1 = $var2 ]</code>
-  </code>+
 Strings: Strings:
 <code bash> <code bash>
   [ "$var1" = "$var2" ]   [ "$var1" = "$var2" ]
-  </code>+</code>
 ==== Ressources doc ==== ==== Ressources doc ====
  
Line 38: Line 38:
   * [[http://fr.wikibooks.org/wiki/Programmation_Bash/Tests]]   * [[http://fr.wikibooks.org/wiki/Programmation_Bash/Tests]]
   * [[http://abs.traduc.org/abs-5.0-fr/ch07.html]]   * [[http://abs.traduc.org/abs-5.0-fr/ch07.html]]
 +  * [[http://tldp.org/LDP/abs/html/comparison-ops.html|Opérateurs de comparaison]]
  
 ===== Variables ===== ===== Variables =====
 :!: pas d'espace! : :!: pas d'espace! :
 <code bash> <code bash>
-  var=5  +  var=5 </code>
-  </code>+
 et non  et non 
 <code bash> <code bash>
-  var = 5  +  var = 5 </code>
-  </code>+
 ni  ni 
 <code bash> <code bash>
-  $var=5  +  $var=5 </code>
-  </code>+
 (pas de $ à la déclaration) (pas de $ à la déclaration)
  
-===== Enregistrer le résultat d'une commande dans une variable =====+NB: le ''$'' est un sigil: un caractère spécial permettant de distinguer une variable au sein d'une chaine de caractère. 
 +<code bash>x=
 +>5 
 +echo 'il y a $x pommes dans mon sac' 
 +>'il y a 5 pommes dans mon sac'</code> 
 +Le sigil est notamment utilisé en bash, PHP et Perl. 
 + 
 +==== Enregistrer le résultat d'une commande dans une variable ====
 <code bash>x=$(commande)</code> <code bash>x=$(commande)</code>
 Pour plus de renseignements sur les opérations sur les strings, les listes, etc: [[http://www.arachnoid.com/linux/shell_programming.html|arachnoid]] Pour plus de renseignements sur les opérations sur les strings, les listes, etc: [[http://www.arachnoid.com/linux/shell_programming.html|arachnoid]]
Line 65: Line 70:
  
 ====== Astuces ====== ====== Astuces ======
 +
 +===== Everyday shell life =====
 +Pour se simplifier la vie :
 +  * les [[shell:alias|alias]]
 +  * les [[shell:export|exports]]
 +  * l'[[shell:inputrc|inputrc]]
 +  * l'[[shell:history|historique]]
 ===== notify-send ===== ===== notify-send =====
 La commande notify-send est intallée dans le paquet libnotify dans les dépôts debian. La commande notify-send est intallée dans le paquet libnotify dans les dépôts debian.
 Elle est super pratique pour notifier des choses à l'utilisateur dans les scripts. Elle est super pratique pour notifier des choses à l'utilisateur dans les scripts.
 +===== Zenity =====
 +[[http://doc.ubuntu-fr.org/zenity|Zenity]] permet de conférer facilement un IHM graphique pour des scripts shell. 
  
 ===== Changer la variable $PATH ===== ===== Changer la variable $PATH =====
Line 75: Line 89:
  
 ===== Options & getopts ===== ===== Options & getopts =====
 +Un petit script d'exemple :
 +<code bash>#! /usr/bin/bash
 +# -*- coding: utf-8 -*-
 +
 +echo $@
 +while getopts "ab:c" opt; do # a letter followed by a colon means an option expecting an operand
 +                             # a colon at the beginning means "no warning message"
 +    case $opt in
 +        a) a=1;;
 +        b) b=$OPTARG;; # OPTARG is set to the corresponding operand
 +        c) c=1;;
 +        *) echo plop;;
 +    esac
 +done
 +shift $(($OPTIND-1)) # OPTIND is set to the first argument not processed by getopts => command shifts to the first non optionnal arg
 +echo "a: $a; b: $b; c: $c"
 +echo $@
 +</code>
   * [[http://www.ibm.com/developerworks/library/l-bash-parameters.html?ca=drs-]]   * [[http://www.ibm.com/developerworks/library/l-bash-parameters.html?ca=drs-]]
   * [[http://unix.sjcc.edu/cis157/BashParameters.htm]]   * [[http://unix.sjcc.edu/cis157/BashParameters.htm]]
Line 86: Line 118:
   * [[http://www.museum.state.il.us/ismdepts/library/linuxguides/abs-guide/]]   * [[http://www.museum.state.il.us/ismdepts/library/linuxguides/abs-guide/]]
   * [[http://www.arachnoid.com/linux/shell_programming.html]]   * [[http://www.arachnoid.com/linux/shell_programming.html]]
 +===== Mes scripts =====
 +  * [[Aruba scripts]]
 +  * [[avatar switcher]]
 +  * [[ip_forwarding]]
 +  * [[rhythmbox-load]]
 +===== Commandes Unix =====
 +  * <code bash>#Backup a USB Key
 +# To list partitions: fdisk -l (with root privilegies)
 +dd if=/dev/sdc1 of=/home/user/usb4go_bak.iso bs=16065b</code>
 +===== Useful =====
 +  * Convertir les html entities dans les noms de fichier (ex. : ''%20'' en ''_'') : <code bash>for f in $(ls -1); do mv $f ${f//%20/_} ; done</code>
 +
 +
  
bash.1265746703.txt.gz · Last modified: 2010/02/09 21:18 by ginko