Outils pour utilisateurs

Outils du site


aide-memoire-bash-et-commandes-systemes

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

aide-memoire-bash-et-commandes-systemes [2011/05/12 12:25]
aide-memoire-bash-et-commandes-systemes [2011/05/12 00:00] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Aide mémoire Bash et commandes systèmes ======
 +
 +
 +
 +====== Bash ======
 +===== Raccourcis clavier =====
 +<code>
 +Ctrl + A Go to the beginning of the line you are currently typing on
 +Ctrl + E Go to the end of the line you are currently typing on
 +Ctrl + L                Clears the Screen, similar to the clear command
 +Ctrl + U Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
 +Ctrl + H Same as backspace
 +Ctrl + R Let’s you search through previously used commands
 +Ctrl + C Kill whatever you are running
 +Ctrl + D Exit the current shell
 +Ctrl + Z Puts whatever you are running into a suspended background process. fg restores it.
 +Ctrl + W Delete the word before the cursor
 +Ctrl + K Clear the line after the cursor
 +Ctrl + T Swap the last two characters before the cursor
 +Esc + T Swap the last two words before the cursor
 +Alt + F Move cursor forward one word on the current line
 +Alt + B Move cursor backward one word on the current line
 +Tab Auto-complete files and folder names
 +</code>
 +
 +===== Evaluer une expression =====
 +<code>
 +let z=z+1
 +z=$(($z + 1))
 +</code>
 +
 +===== Boucles =====
 +
 +
 +==== for ====
 +<code>
 +for i in * ; do            # * retourne la liste des fichiers
 +           echo $i
 +done
 +for i in `cat liste` ; do          # i va prendre les valeurs 
 +                                   #contenues dans le fichier “liste”
 +           ls $i
 +done
 +for i in 1 2 3 ; do # i prend successivement les valeurs 1, 2 et 3
 +           echo $i
 +done
 +for ((i=0;i<10;i=i+1));do echo $i; done
 +</code>
 +
 +==== until ====
 +<code>
 +a=0 
 +until [ $a == 10 ] ; do 
 +          let a=a+1; echo $a;
 +done
 +</code>
 +==== while ====
 +<code>
 +while
 +      Commande_Test
 +do
 +      Commandes
 +done
 +</code>
 +
 +===== I/O =====
 +
 +==== read ====
 +<code>
 +echo ­n "Entrez votre nom :"
 +read nom
 +echo $nom
 +</code>
 +
 +==== select ====
 +<code>
 +select choix in   \
 +         "Choix A" \
 +         "Choix B";
 +         do
 +                    case $REPLY  in
 +                            1) echo "$CHOIX  ­­> $REPLY";;   
 +                            2) echo "$CHOIX  ­­> $REPLY";;       
 +                            *) echo "Vous avez tapé n'importe quoi !";;
 +                    esac
 +         done   
 +</code>
 +
 +
 +===== Tests =====
 +<code>
 +if test 3 ­eq 3 ...
 +if [ 3 ­eq 3 ]....
 +if test $1 == $2 ...
 +if [ $1 == $2 ]...
 +</code>
 +
 +==== Tests sur les fichiers ====
 +  * -­d, si c'est un répertoire
 +  * -e, si le fichier existe
 +  * -f, si le fichier existe et si c'est un fichier standard
 +
 +==== Tests sur les chaînes ====
 +
 +  * s1 == s2, si les chaînes s1 et s2 sont identiques\\
 +  * s1 != s2, si les chaînes sont différentes\\
 +
 +  if [ foo == foo ]; then echo true; fi
 +
 +
 +==== Tests sur les entiers ====
 + 
 +  * n1 ­eq n2, si n1 est égal à n2
 +  * opérateurs ­ne, ­eq, ­gt, ­lt, ­le ­ge (not equal, equal, greater, lower, lower or equal, greater or equal)
 +
 +===== Variables spéciales =====
 +  * Les paramètres sont passés dans $1, $2...$n
 +  * $@, donne la liste des paramètres
 +  * $#, donne le nombre de paramètres
 +  * $$, donne le numéro (PID) du script
 +  * $0, donne le nom du script
 +  * $?, donne la valeur de retour d'un script ou d'une fonction
 +
 +===== Variables d'environnement =====
 +
 +  * Lister les variables d'environnement
 +
 +  env #ou# printenv #ou# export
 +
 +  * Fichier de configuration global. Contient certaines variables d'environnement valables pour tous les utilisateurs du système.
 +
 +  cat /etc/profile
 +
 +  * Fichiers de configuration utilisateur
 +
 +  $HOME/.bash_profile et $HOME/.bashrc
 +
 +  * Placer une variable dans l'environnement (exemple : PS1, modèle de prompt).
 +
 +   PS1="[\u@\h \w]\\$ "
 +   export PS1
 +
 +  * Utiliser les variables d'un script dans un autre script
 +<code bash>
 +source monautrescript
 +# ou
 +. monautrescript
 +</code>
 +
 +
 +
 +
 +
 +
 +===== Regexp - Expressions régulières / rationnelles =====
 +
 +  * [[http://www.grymoire.com/Unix/Regular.html|Tutoriel complet (en)]]
 +  * [[http://www.commentcamarche.net/php/phpreg.php3|Tutoriel sur phpmanuel (fr)]]
 +  * {{regexp.html.txt|Aide mémoire Adobe}}
 +  * [[http://www.siteduzero.com/tutoriel-3-14663-memo-pour-les-regex.html|Aide mémoire - Site du zéro]]
 +  * http://www.lumadis.be/regex/tuto_pcre.php - Excellent tutoriel PCRE
 +
 +===== Liens =====
 +
 +  * [[http://tldp.org/LDP/abs/html/index.html|Advanced Bash scripting guide]]
 +  * [[http://www.c-sait.net/cours/scripts.php|Tutoriel]]
 +  * [[http://marcg.developpez.com/ksh/|Tutoriel Ksh]]
 +
 +
 +====== Commandes ======
 +
 +
 +
 +
 +===== Démarrage =====
 +
 +En général les options de démarrage sont dans le fichier /etc/inittab, exemple :
 +
 +<code>
 +# Default runlevel. The runlevels used by Mandrakelinux are:
 +#   0 - halt (Do NOT set initdefault to this)
 +#   1 - Single user mode
 +#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
 +#   3 - Full multiuser mode
 +#   4 - unused
 +#   5 - X11
 +#   6 - reboot (Do NOT set initdefault to this)
 +#
 +id:3:initdefault:
 +</code>
 +
 +:!: **Dans ubuntu seulement**, depuis 6.06 c'est upstart qui gère les niveaux de démarrage, répertoire /etc/event.d/
 +
 +  * Connaître le runlevel
 +
 +  runlevel
 +
 +  * Changer le runlevel à 2
 +
 +  telinit 2
 +
 +  * Menu de démarrage
 +
 +  cat /boot/grub/menu.lst
 +
 +
 +
 +===== Arrêt =====
 +
 +Ne pas utiliser les commandes halt et reboot
 +
 +==== shutdown ====
 +
 +  * shutdown arrête dans l'ordre les services, démonte les partitions, envoie un message d'arrêt, coupe l'alimentation.
 +
 +<code>
 +#halt
 +shutdown -h now
 +#reboot
 +shutdwown -r now
 +#halt avec message d'avertissement et délai
 +shutdown -h+10 "les services réseaux vont s’arrêter et reprendre dans 2 heures"
 +</code>
 +
 +===== Dépannage =====
 +
 +==== Créer une disquette de démarrage ====
 +
 +
 +<code>
 +mkbootdisk --device /dev/fd0 `uname -r`
 +</code>
 +
 +==== Disquette de root ou rescue ====
 +
 +<code>
 +#Recupérer l'image de la disquette sur le cdrom d'install. Il s'agit d'un fichier ayant l'extension .img souvent dans le répertoire images
 +mkbootdisk --device /dev/fd0 `uname -r`
 +dd if=rescue.img of=/dev/fd0 bs=1440
 +</code>
 +
 +
 +==== Mot de passe de root oublié ====
 +
 +  * booter avec les disquettes de boot et de root ou en mode single, le système ne vous demandera pas de mot de passe,
 +  * ouvrez une session root (pas besoin de mot de passe),
 +  * monter le disque dur exemple
 +
 +  root:~# mount -t ext3 /dev/sda1 /mnt
 +
 +  * modifiez le fichier /mnt/etc/passwd. Attention, ne touchez pas directement au fichier /etc/passwd si les mots de passes sont cachés. Il faut vous "chrooter".
 +
 +  cd /mnt
 +  chroot .
 +  # Là utiliser la commande passwd.
 +  passwd
 +
 +
 +
 +==== Démarrer en single-user ====
 +
 +Au message boot : entrez
 +<code>
 +linux single root=/dev/hdxx initrd=initrd-`uname -r`.img
 +#Charger le clavier : 
 +loadkeys /usr/share/keymaps/i386/azerty/fr-latin1.kmap.gz
 +#monter la racine : (-w = read+write ; -n = ne pas écrire dans /etc/mtab)
 +mount -w -n -o remount /
 +</code>
 +
 +
 +
 +===== Système de fichiers =====
 +==== mkdir ====
 +
 +  * Créer un répertoire en créant les parents en même temps s'ils n'existaient pas
 +
 +  mkdir -p /chemin/de/mon/répertoire
 +
 +==== cp ====
 +
 +  * copier en conservant les droits
 +
 +  cp -cp
 +
 +==== rm ====
 +
 +  * supprimer un répertoire non vide
 +
 +  rm -Rf répertoire
 +
 +  * Supprimer uniquement les fichiers cachés et tous les sous-répertoires (Les ?? servent à exclure le répertoire parent)
 +
 +  rm –rf .??*
 +  
 +
 +
 +==== chmod ====
 +
 +  * changer les droits d'accès (u:user, g: group, o:other)
 +
 +<code>
 +chmod -R 775 ./*
 +#Donner tous les droits pour utiliser avec Apache
 +find LeRepertoire  -type d | xargs chmod a+x
 +find LeRepertoire -type f | xargs chmod a-x,+r
 +</code>
 +
 +==== droits ugoa ====
 +
 +  * Sticky bit
 +
 +   drwxrwxrwt   15 root root  8192 2005­10­07 18:05 tmp
 +
 +Seul le propriétaire de chaque fichier de ce répertoire pourra supprimer le fichier en question.
 +
 +  * suid, sgid
 +
 +  Permet de donner à un programme les droits de l'utilisateur ou du groupe "root" lors de son exécution. Remplace le "x" par un "s"
 +
 +  #exemple
 +  -rwsr-xr-x 1 root root 29104 2007-05-18 11:59 /usr/bin/passwd
 +
 +
 +  * Valeurs des droits
 +
 +| |r|w|x|
 +|Propriétaire|400|200|100|
 +|Groupe|40|20|10|
 +|Autres|4|2|1|
 +
 +
 +|suid|4000|
 +|sgid|2000|
 +|sticky|1000|
 +
 +Remarque : pour un répertoire le droit d'exécution permet d'accéder au répertoire mais pas de le lister.
 +
 +==== chown, chgrp ====
 +
 +  * changer le propriétaire
 +
 +  chown user.group fichier
 +
 +  * changer le groupe
 +
 +  chgrp groupe fichier
 +
 +==== du ====
 +
 +  * Occupation disque
 +  
 +  #Occupation du répertoire courant
 +  du -hs
 +  #Occupation des fichiers et répertoires courants
 +  for i in *; do du -hs $i; done;
 +
 +==== ln ====
 +  * Créer des liens
 +<code>
 +ln Fichier.origine Nom.lien  # crée un lien physique
 +ln -s Fichier.origine Nom.lien  # crée un lien symbolique
 +</code>
 +
 +==== fuser ====
 +
 +  * Lister les pid de processus utilisant un fichier donnée
 +
 +  fuser 139/tcp  #Donne le pid du processus utilisant le port 139 en tcp
 +
 +==== dd ====
 +
 +  * Créer un fichier vide de 100M
 +
 +  dd if=/dev/zero of=test_ext3fs bs=1M count=100
 +
 +
 +
 +
 +
 +
 +
 +
 +===== Partitions =====
 +
 +==== df ====
 +
 +  * (disk free) : espace libre sur chaque partition des disques montés, informations en "human readable".
 +
 +  df -h 
 +==== fdisk ====
 +  * Lister tous les disques (montés et non montés)
 +
 +  fdisk -l
 +
 +==== blkid ====
 +  * Lister les partitions avec leur UUID
 +
 +  blkid
 +
 +
 +==== mount / umount ====
 +
 +  * Lister les disques montés
 +
 +  mount
 +
 +  * Monter un lecteur CD ou DVD
 +
 +  mount -t iso9660 -r /dev/hda /mnt/cdrom
 +
 +  * Monter et démonter une image iso (le périphérique loop sert à monter des systèmes de fichiers virtuels)
 +<code>
 +cd /usr/local/fs
 +# Copie ou téléchargement de l’image du CDROM dans un fichier
 +cp /dev/cdrom image.iso
 +# calcul de l’empreinte digitale de l’image du CDROM et de l’image
 +# vérifiez que les deux empreintes sont identiques
 +# c’est une bonne habitude à prendre.
 +md5sum /dev/cdrom/ && md5sum image.iso
 +mkdir /mnt/virtualcdrom
 +mount -o loop -t iso9660 -v image.iso /mnt/virtualcdrom
 +ls /mnt/virtualcdrom
 +umount -d /mnt/virtualcdrom
 +</code>
 +
 +Inscription dans fstab
 +
 +  /usr/local/fs/image.iso /ou/vous/voulez iso9660 loop,noauto,ro,exec 0 0
 +
 +==== mkisofs ====
 +
 +  * Créer une archive au format iso
 +
 +  cd /tmp && mkisofs -o ‘date +%d-%B-%Y‘-backup.home.iso /home
 +
 +==== losetup ====
 +
 +  * Attribuer le type de périphérique loop à un fichier
 +
 +  dd if=/dev/zero of=test_ext3fs bs=1M count=100
 +  mkfs.ext3 test_ext3fs
 +  losetup /dev/loop1 test_ext3fs
 +
 +  * Utiliser la cryptographie sur un fichier
 +<code>
 +# On charge le module de cryptage
 +modprobe cryptoloop
 +losetup -e aes /dev/loop0 test_ext3fs
 +# Il faudra saisir un mot de passe
 +mkfs.ext3 /dev/loop0
 +mount -t ext3 -v /dev/loop0 /mnt/virtualfs
 +rsync -av /home/ /mnt/virtualfs/home
 +find /mnt/virtualfs
 +umount /mnt/virtualfs
 +losetup -d /dev/loop0
 +# Le système est démonté. Pour le lire il faudra
 +# le remonter et entrer le mot de passe.
 +mount -t ext3 -v -o loop,encryption=aes test_ext3fs /mnt/virtualfs
 +</code>
 +
 +==== cfdisk ====
 +
 +  * changer les partitions d'un disque (attention efface le contenu !)
 +
 +  cfdisk /dev/hda
 +
 +==== mkfs ====
 +
 +  * Formater une partition en reiserfs
 +
 +  mkfs -t reiserfs /dev/hda1
 +
 +==== /etc/fstab ====
 +
 +  * Points de montage des partitions
 +
 +  cat /etc/fstab
 +
 +
 +
 +==== Liens ====
 +  * [[http://doc.ubuntu-fr.org/uuid_et_label|UUID et Label
 +]]
 +  * https://help.ubuntu.com/community/DataRecovery
 +
 +===== Traitement des fichiers texte =====
 +==== awk ====
 +  * Exemples
 +<code bash>
 +awk -F ":" '{ $2 = "" ; print $0 }' /etc/passwd # imprime chaque ligne du fichier /etc/passwd après avoir effacé le deuxième champs
 +awk 'END {print NR}' fichier  # imprime le nombre total de lignes du fichiers
 +awk '{print $NF}' fichier # imprime le dernier champs de chaque ligne
 +who | awk '{print $1,$5}' # imprime le login et le temps de connexion.
 +awk 'length($0)>75 {print}' fichier # imprime les lignes de plus de 75 caractères. (print équivaur à print $0)
 +</code>
 +  * [[http://www.shellunix.com/awk.html|Tutoriel (fr)]]
 +
 +
 +==== cut ====
 +Fait des coupes (sombres) dans les lignes qui lui sont transmises
 +
 +  * Afficher la liste des comptes système
 +  cat /etc/passwd | cut -d":" -f1
 +
 +
 +==== sed ====
 +
 +  * Remplacer day par night dans old vers new
 +
 +  sed 's/day/night/' <old >new
 +
 +  * Supprimer des lignes vides en fin de fichier
 +
 +  find -name "*.php" | xargs sed -i -e :a -e '/^\n*$/{$d;N;ba' -e '}' 
 +
 +=== Liens ===
 +
 +  * [[http://www.english.uga.edu/humcomp/perl/sedtutorial.html|Tutoriel court(en)]]
 +  * [[http://www.gnulamp.com/sed.html|Tutoriel semi-complet (fr)]]
 +  * [[http://www.grymoire.com/Unix/Sed.html#uh-49|La référence sur sed]]
 +
 +
 +
 +==== xargs ====
 +
 +Exécute des commandes système en prenant l'entrée standard comme liste d'objets
 +
 +  * Exemples
 +<code>
 +#Liste toutes les droits du programme passwd
 +which passwd | xargs ls ­-al
 +#Faire la liste alphabétique sur une seule ligne des utilisateurs du système
 +cut -d: -f1 < /etc/passwd | sort | xargs echo
 +</code>
 +
 +
 +==== Découpage de chaînes ====
 +
 +Bash possède de nombreuses fonctionnalités pour découper des chaînes de caractères. L'une des plus pratiques est basée sur des motifs.
 +La notation ## permet d'éliminer la plus longue chaîne en correspondance avec le motif :
 +<code>
 +$ Var='tonari no totoro'
 +$ echo ${Var##*to}
 +ro
 +</code>
 +
 +ici le motif est *to, et la plus longue correspondance "tonari no toto"1. Cette forme est utile pour récupérer l'extension (suffixe) d'un nom de fichier :
 +
 +<code>
 +$ F='rep/bidule.tgz'
 +$ echo ${F##*.}
 +tgz
 +</code>
 +
 +La notation # (un seul #) est similaire mais élimine la plus courte chaîne en correspondance :
 +
 +<code>
 +$ Var='tonari no totoro'
 +$ echo ${Var#*to}
 +nari no totoro
 +</code>
 +
 +De façon similaire, on peut éliminer la fin d'une chaîne :
 +
 +<code>
 +$ Var='tonari no totoro'
 +$ echo ${Var%no*}
 +tonari
 +</code>
 +
 +Ce qui permet de supprimer l'extension d'un nom de fichier :
 +
 +<code>
 +$ F='rep/bidule.tgz'
 +$ echo ${F%.*}
 +rep/bidule
 +</code>
 +
 +% prend la plus courte correspondance, et <nowiki>%%</nowiki> prend la plus longue :
 +
 +<code>
 +$ Y='archive.tar.gz'
 +$ echo ${Y%.*}
 +archive.tar
 +$ echo ${Y%%.*}
 +archive
 +</code>
 +
 +===== Hardware =====
 +==== lshw ====
 +
 +  * Lister la config matérielle
 +
 +  lshw | less
 +
 +==== lsusb ====
 +
 +  * Lister les périphériques usb connectés
 +
 +  lsusb
 +
 +==== lspci ====
 +
 +  * Lister les composants pci
 +
 +  lspci
 +
 +
 +
 +===== paquets =====
 +==== dpkg ====
 +
 +  * installer un fichier .deb
 +
 +   dpkg --install fichier.deb
 +
 +==== apt ====
 +
 +  * réparer des dépendances non résolues
 +
 +   apt-get -f install
 +
 +  * Sources d'apt
 +
 +   cat /etc/apt/sources.list
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +===== Programmes =====
 +
 +==== symbole & ====
 +
 +  * Lancer un programme en tâche de fond
 +
 +  macommande &
 +
 +==== jobs ====
 +
 +  * Lister les travaux en cours
 +
 +  jobs
 +
 +==== fg, bg ====
 +
 +  * Passer du premier plan à l'arrière plan et réciproquement, exemple
 +<code>
 +$ sleep 20
 +#On tape [ctrl]+z dans la foulée et la commande est mise en pause
 +[1]+  Stopped                 sleep 20
 +$ bg 1   #On la redémarre en arrière plan
 +[1]- sleep 20 &
 +$ fg 1   #On la repasse en premier plan
 +</code>
 +
 +
 +==== nohup ====
 +
 +  * Lancer un programme insensible aux HangUPs et en tâche de fond
 +
 +<code>
 +nohup macommande > fichier.log &
 +#Redirige également les messages d'erreur vers le néant
 +nohup macommande > /dev/null 2>&1 &
 +</code>
 +
 +==== ps, pstree, pidof, top ====
 +
 +  * Lister les processus
 +<code bash>
 +ps               # liste des processus du terminal courant.
 +ps -u utilisateur  # liste des processus appartenant à l’utilisateur user.
 +# liste de tous les processus du système.
 +ps -ef
 +ps aux  # (syntaxe BSD)
 +pstree | less # Affiche l'arborescence des processus
 +pidof postgres  # Affiche les pid du service postgres
 +top # Affiche une liste dynamique des processus
 +</code>
 +
 +
 +
 +==== Kill ====
 +
 +Tuer ou envoyer des signaux à des processus
 +<code bash>
 +kill 546  #Tenter de détruire le processus n°546
 +kill -9 546 #Forcer la destruction du processus n°546
 +kill -15 -1 #Tente de détruire tous les processus de l'utilisateur courant
 +kill -9 -1 #Force la destruction de tous vos processus
 +kill `cat /var/run/squid.pid` #supprime le processus squid sur la base de son pid déclaré
 +kill -CONT pid  #Demander à un procesus de redémarrer
 +</code>
 +
 +==== Killall ====
 +
 +  * Relancer un service sans changer son PID (Il relit ses fichiers de configuration)
 +
 +   killall -HUP service
 +
 +  * Tuer un processus dont on connait le nom
 +
 +  killall -9 service
 +
 +
 +===== réseau =====
 +  * Connaître les machines actives sur le réseau local (ping de broadcast)
 +
 +  ping 192.168.1.255 - b
 +
 +  * Connaître les connexions actives et inactives
 +
 +  netstat -taupe | sort
 +  netstat -a | grep monservice 
 +
 +  * Liste des ports prédéfinis
 +
 +  cat /etc/services
 +
 +  * Liste des alias de noms d'hôtes
 +
 +  cat /etc/hosts
 +
 +  * tester les ports ouverts
 +
 +  nmap adresseip
 +  nmap adresseip -p port
 +
 +  * Connaître les fichiers réseau ouverts
 +
 +  lsof -Pi
 +
 +  * Tracer une adresse IP
 +
 +  traceroute adresseIP
 +
 +===== sauvegardes =====
 +==== Avec Tar ====
 +
 +  * décompresser en tar et gzip
 +
 +  tar xzvf cible.tgz
 +
 +  * Compresser en tar gzip
 +
 +  tar czvf cible.tgz source
 +
 +  * Consulter les fichiers de l'archive
 +
 +  tar tzvf archive.tgz
 +
 +  * Faire une sauvegarde de la distribution située en hda1 (source) vers hda2 (cible).
 +
 +Passez en root :
 +
 +  su
 +
 +Montez la cible en /mnt/disk par exemple :
 +
 +   mount /dev/hda2 /mnt/disk
 +
 +Utilisez l'option -t pour préciser le type du système de fichiers si vous rencontrez un problème.
 +
 +Placez-vous dans le répertoire cible :
 +
 +  cd /mnt/disk
 +
 +Lancez la copie de la source :
 +
 +  (cd / ; tar cf - *) | tar xvf
 +
 +
 +
 +==== Avec rsync ====
 +
 +
 +  * fichier exclude.lst
 +<code>
 +/proc/
 +/media/disk/
 +/tmp/
 +/dev/
 +/sys/
 +/etc/fstab
 +/var/tmp/
 +/var/cache/
 +*/cache/*
 +*/Cache/*
 +/var/lock/
 +/var/run/
 +/var/spool/
 +</code>
 +
 +  * commande
 +
 +  rsync -uav --delete --exclude-from=/home/murielle/.rsync/exclude.lst / /media/disk/
 +
 +=== Liens ===
 +
 +  * [[http://www.sanitarium.net/golug/rsync_backups.html|Sauvegardes incrémentales (en)]]
 +  * [[http://olivier.sessink.nl/publications/hotcloning/index.html|Hotcloning(fr)]]
 +
 +==== Avec cpio ====
 +  * Créer une archive sur disquette
 +  
 +   ls   Document1   Photo1   Diaporama1     cpio   –ocvB  > /dev/fd0
 +
 +  * Consulter l'archive
 +
 +  cpio ­tv < archive1
 +
 +  * Ouvrir l'archive
 +
 +  cpio ­i < archive1
 +
 +==== Avec gzip ====
 +  * Compresser et décompresser
 +<code bash>
 +#Compresser  
 +gzip docu
 +gzip -9 docu #Précise le niveau de compression le plus élevé
 +#Décompresser
 +gzip -d docu.gz
 +</code>
 +
 +
 +==== Avec dd ====
 +
 +  * copie d'une disquette
 +
 +  dd if=/dev/fd0 of=Disquette
 +
 +  * Sauvegarder et restaurer le MBR (Master Boot Record)
 +
 +  dd if=/dev/hda of=sauve.mbr count=1 bs=512
 +  dd if=sauve.mbr of=/dev/hda
 +
 +==== liens ====
 +
 +  * [[http://www.lea-linux.org/cached/index/Les_sauvegardes.html|Les sauvegardes sur Lea-linux]]
 +  * [[http://www.securiteinfo.com/conseils/sauvegardes.shtml|Politique de sauvegarde
 +]]
 +
 +
 +===== Utilisateurs et groupes =====
 +
 +==== groupadd ====
 +
 +  * Créer un groupe
 +<code>
 +groupadd web
 +#en précisant le gid (supérieur à 500, sinon réservé au système)
 +groupadd –g gid groupe
 +</code>
 +
 +==== useradd ====
 +
 +  * Créer un utilisateur, fichier de conf : /etc/adduser.conf, fichier squelette (contenant une arborescence type): /etc/skel
 +<code bash>
 +## Créer lutilisateur ulysse avec un commentaire, un répertoire home spécial
 +##+ une date dexpiration et un délai de 8 jours avant la désactivation,
 +##+ appartenant au groupe principal ulysse et aux groupes secondaires web et
 +##+ formateurs. Loption -m permet de créer le répertoire home sil nexiste pas.
 +useradd –c "ceci est mon premier compte" –d /home/formation/ulysse –e 2008­10­15 –f 8  –g ulysse –G web,formateurs –m ulysse
 +
 +#En précisant l'uid (supérieur à 100 sinon réservé au système)
 +useradd –u uid login
 +</code>
 +
 +==== passwd ====
 +
 +  * Changer le mot de passe d'un utilisateur
 +<code>
 +#en tant que root
 +passwd <nomutilisateur>
 +#en tant qu'utilisateur
 +passwd
 +#Changer le mot de passe dans un script (pour des créations en série)
 +echo compte:motdepasse | chpasswd
 +</code>
 +  
 +
 +
 +==== usermod / userdel ====
 +
 +  * Ajouter un groupe à un utilisateur
 +
 +  usermod -a -G nouveau-groupe nom_utilisateur
 +
 +  * Supprimer un compte utilisateur avec son répertoire personnel et ses fichiers
 +
 +  userdel -r nom_utilisateur
 +
 +
 +==== w, who, id ====
 +
 +  * w liste les utilisateurs et ce qu'ils font
 +  * who liste les utilisateurs
 +  * id indique les groupes d'un utilisateurs.
 +
 +
 +===== liens =====
 +
 +  * [[http://tldp.org/LDP/abs/html/index.html|Toutes les commandes sur tldp]]
 +  * [[http://winsa.free.fr/dotclear/index.php?2007/02/20/201-les-principales-commandes-de-linux|commandes]]
 +  * [[http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Systeme/TDTP2003/tp03.html|tutoriel]]
 +  * {{memento-commandes.pdf|}} - [[http://reseau.erasme.org/IMG/command_memento_fr.pdf|Aide mémoire]]
 +
 +
 +
 +
 +
 +