COURS - Commandes Shell et Awk

icon

16

pages

icon

Français

icon

Documents

Écrit par

Publié par

Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres

icon

16

pages

icon

Français

icon

Ebook

Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres

Commandes Shell 20/09/2004 Initialisation Authentification obligée : {LOGIN} + {PASSWORD} Changer de mot de passe : [passwd] système simple [password] système réseau • Shell = Programme qui : - attend des commandes - interprète des commandes - exécute des commandes • Kernel = Programme noyau en arrière-plan qui gère le hardware • Hardware = Le matériel qui constitue l’ordinateur Les fichiers (« tout » est fichier) • Fichiers standard • Pipes = Permet de communiquer avec un programme • Liens symboliques = Raccourci • Entrées dans les périphériques (devices) Ex. : dev0/audio = Écrit dans le fichier de la carte son pour faire de la musique Structure de fichiers Racine = [/] Exécutables = [/bin] [/usr/bin] [/usr/local/bin] Exécutables systèmes = [/sbin] [/usr/sbin] Fichiers systèmes = [/var] Entrées de périphériques = [/dev] [/dev/hda] (disque 1 IDE) [/dev/sda] (disque 1 SCSI) Fichiers de configuration = [/etc] Fichiers de l’état système = [/proc] Répertoires utilisateurs = [/home] Les Shell Shell Bourne = [bash] Utilisé par 50% des utilisateurs C Shell (science) = [csh] Utilisé par 25% des utilisateurs Korn Shell (gestion) = [ksh] Utilisé par 25% des utilisateurs Premières commandes • [ls] = Liste des fichiers [-l] - affichage long [-t] - par date [-s] - par taille [-a] - tous les fichiers sans exception ...
Voir icon arrow

Publié par

Nombre de lectures

105

Langue

Français

Commandes Shell 20/09/2004
  Initialisation  Authentification obligée : {LOGIN} + {PASSWORD}  Changer de mot de passe : [passwd]  système simple  [password]  système réseau    ·  Shell = Programme qui : - attend des commandes  interprète des commandes - - exécute des commandes  ·  Kernel = Programme noyau en arrière-plan qui gère le hardware   ·  Hardware = Le matériel qui constitue l’ordinateur   Les fichiers (« tout » est fichier)   ·  Fichiers standard  ·  Pipes = Permet de communiquer avec un programme  ·  Liens symboliques = Raccourci  ·  Entrées dans les périphériques (devices)  Ex. : dev0/audio = Écrit dans le fichier de la carte son pour faire de la musique   Structure de fichiers  Racine = [/] Exécutables [/bin]  [/usr/bin]  [/usr/local/bin] = Exécutables systèmes = [/sbin]  [/usr/sbin] Fichiers systèmes = [/var] Entrées de périphériques = [/dev]  [/dev/hda] (disque 1 IDE)        [/dev/sda] (disque 1 SCSI) Fichiers de configuration = [/etc] Fichiers de l’état système = [/proc] Répertoires utilisateurs = [/home]  
Les Shell  Shell Bourne = [bash] Utilisé par 50% des utilisateurs  C Shell (science) = [csh]  Utilisé par 25% des utilisateurs Korn Shell (gestion) = [ksh]  Utilisé par 25% des utilisateurs   Premières commandes  ·  [ls] =  [-l]  [-t]  [-s]  [-a]    [ r] - [--help]  ·  [man + {CMD}] =  · [mkdir] =      ·  [rmdir] =     [-f]  ·  [pwd] =   [cd] = ·  [.]  [..]  [<NULL>]  ou [~]  [-]   [touch + {FILE}] = ·  ·  [rm + {FILE}] =   [-f]  [ r] -
Liste des fichiers - affichage long - par date par taille -- tous les fichiers sans exception inclus les fichiers cachés commençant par [.] - inverse l’affichage - aide Documentation officielle de la commande {CMD} Crée un répertoire Efface un répertoire v ide - force l’effacement même si il y a des fichiers ou dossiers dedans « Print Working Directory » Change de répertoire de travail - répertoire de travail - répertoire parent du répertoire de travail - change de répertoire vers le [/home] de l’utilisateur - retourne là où on était avant le dernier [cd] Change la date du fichier {FILE} en date du jour Crée {FILE} de 0 octets si {FILE} n’existe pas Efface {FILE} - pas de confirmation - destruction récursive
Expression des noms de fichiers  [rm a(A-Z)*] = Efface tous les fichiers qui commencent par a  [rm –rf *] = Efface absolument tous les fichiers sans avertir  [rm \*] = Efface le fichier * (\ est le caractère d’échappement)   Redirection des E/S  [>] = Redirige le résultat de la commande uniquement [2>] = Redirige les messages d’erreurs uniquement [&>] = Redirige le résultats et les erreurs éventuelles  [{CMD} < {FILE}] = Exécute {CMD} avec {FILE} en arguments  [{CMD1} | {CMD2}] {CMD1} envoie son résultat à {CMD2} =  {CMD2} travaille avec les résultats envoyés par {CMD1} en flux continu  [cat] = Envoie <stdin> (clavier) vers <stdout> (écran)   Les variables d’environnement  [env] = Liste des variables d’environnement  [echo ${VAR}] = Affiche la variable {VAR}  Ex : [echo $HOME]  /home/fa123/{LOGIN}   Définition de la variable HOME : [HOME=/usr/]  Définition de la variable PATH en concaténant l’ancienne : [PATH=$PATH;/home/fa123/{LOGIN}/]   
Les utilisateurs  - Utilisateur ‘normal’ = Tous les droits dans son propre HOME  Droits restreints ailleurs  - Utilisateur ‘root’ = Tous les droits partout  [su] = Devenir ‘root’ [su -] = Devenir ‘root’ en récupérant les variables d’environnement  [su (-) {LOGIN}] = Devenir l’utilisateur {LOGIN}  [whoami] = Savoir en qui l’on est loggé   Droits sur les fichiers  Exemple : - [touch toto] - [ls -l]     rw- r-- r-- {LOGIN}:fa123 0 20-sept-2004 toto    Droits du propriétaire Propriétaire Taille Nom  Droits du groupe Groupe Date de créati n  o Droits des autres   [chmod –w toto] = r-- r-- r --[chmod +w toto] = rw- r-- r--  [chmod {APP} ± {RIGHTS} {FILE}] {APP} : U(ser) {RIGHTS} : R(ead)  G(roup) W(rite)  O(ther) X(ecut)  A(ll)  Exemple : rwx rw- r--111  110 100 [chmod 764] = = =                  7 6 4   Les droits sur les répertoires sont les mêmes que sur les fichiers   Propriété  ·  [chown {LOGIN} {FILE}] = {LOGIN} étant le nouveau propriétaire de {FILE}  [-r] - changement récursif
 
Commandes (suite)  Complétion automatique d’une commande tapée avec la touche [TABULATION]  « » = Désigne un fichier contenant des espaces passé à une commande  [\ ] = Désigne un espace insécable  [ ] [ ] = Historique des commandes tapées  [history] = Affichage de l’historique en fonction la taille définit par _ La variable d’environnement HISTORY SIZE  [history | more] = Affichage lisible de l’historique  [!128] = Relance la {CMD} n°128  [mc] = Lance ‘Midnight Commander’ (explorateur de fichiers)   Scripts Shell  Programme formé de commandes interprétables par le Shell directement créé grâce à un simple éditeur de texte comme : -vi    -emacs   Les ligne commençant par ‘#’ sont des commentaires. Sauf la première ligne qui peut commencer par ‘#!’.  Pour vi : [{ESCAPE}:wq] = [{ESCAPE}:w] =   [{ESCAPE}:q!] = [{ESCAPE}i] = [{ESCAPE}x]  = [{ESCAPE}dd] =    Exécution du script : [sh toto] [. toto] [chmod +x toto] [./toto]
Sauvegarder et quitter Sauvegarder Quitter sans sauver Mode insertion Efface un caractère Efface la ligne du curseur
Variables héritées [toto=tata] [export toto] [echo $toto]  [sh]  [echo $toto]   [toto=titi]  [echo $toto]   [exit] [echo $toto]  
tata tata titi tata
Variables d’environnement  [toto=42] [echo toto]  toto [echo $toto]  42   Comment le Shell execute un programme   {DESSIN}     Variables non héritées      [toto=42]    [sh]    [echo $toto] (rien)  toto=43  [ ] o $t  43    [ech oto]  xi  [e t] ot 42  [echo $t o]        Fichiers d’initialisation (démarrage)  Pour tout le monde : [/etc/rc.d/] rc1.d  pas de driver, pas de réseau  rc2.d    rc3.d  normal  rc4.d  non utilise  rc5.d  normal + serveur graphique  rc6.d  reboot   [/etc/rc.d/rc.local/]   [/etc/inittab]  ligne initrunlevel définit le rcX.d à lancer  Utilisateur : [.bashrc]  variables utilisateur  [.login]  [.profile]  Séquence d’initialisation : [rc3.d]  [rc.local]  [login]  [~/.bashrc]
Les liens symboliques  Est un autre nom pour un fichier ou répertoire.   [ln {FILE1} {FILE2}]  lien fort (le fichier s’appelle FILE1 et FILE2)   [ln -s {FILE1} {FILE2}]  lien faible (comme Windows)   Montage de périphériques  Pour ajouter un périphérique non USB   [mount]  liste des périphériques montés   [/etc/mtab]  liste des périphériques montés   [/etc/fstab]  liste des périphériques montables   [mount {DEVICE} {POINT DE MONTAGE}]  montage   [umount {POINT DE MONTAGE}]    démontage   Exemple de la disquette :   [mount /dev/fd0 /mnt/floppy]  [ls /mnt/floppy]  liste le contenu de la disquette  [umount /mnt/floppy]  Un USER peut monter les périphériques déclarés dans /etc/fstab avec [mount]   Montage NFS  Soit : - un serveur SRV dont les autorisations de partage sont dans le fichier [/etc/exports] - un client CLI   [mount -t nfs SRV:/ /mnt/nfs]        
 monte la racine [/] de SRV dans  [/mnt/nfs] de CLI
Contrôle de flux   if <CONDITION>  then <INSTRUCTION>    else  <INSTRUCTION>  fi  Les conditions de fichiers  [ -f <FILENAME> ] [ -x (-r) (-w) <FILENAME> ] [ -d <FILENAME> ]  Les conditions numériques  [ a –ge b ]   –gt  >  –le   –lt <  –eq =    –ne   Négation d’une condition   [ ! <CONDITION> ]  Boucle for   for <VARIABLE> in <LISTE>  do <INSTRUCTION>    done                   
        
Test si le fichier existe Test l’existence du droit (x, r, w) sur le fichier Test l’existence du répertoire
Exemple : for x in toto titi 42 BX27 do  echo $x done for x in $(seq 100) do  touch toto$x done
 for x in 0 1 2 3 4 5 6 7 8 9  do  for y in 0 1 2 3 4 5 6 7 8 9  do  touch toto$x$y  done  done  L’instruction case   case <VARIABLE> in  val1 ) <INSTRUCTION>  val2 ) <INSTRUCTION>  |  valx ) <INSTRUCTION>  esac  Récupérer le résultat d’un programme  `<PROGRAMME> <ARGS>` Démodé $(<PROGRAMME> <ARGS>) Fashion                    
          
       
          
       
Exemple : for x in $(ls) do  if [ d $x ] - then  echo $x est un dossier  else  exho $x est un fichier  fi done
for x in $(seq 12) do  if [ $x –eq 8 ]  then  echo $x  fi done
Passage d’arguments à un script  <SCRIPT> Arg1, Arg2, …, Arg3  Il n’y a que 10 variables passée à un script : $0 Nom du script  $1 Arg1  |  $9 Arg9  $@ Liste des arguments  $# Nombre d’arguments (y compris >10)  Pour pouvoir utiliser plus de 9 arguments, on utilise la commande : [ shift ]  Décale la liste d’arguments d’un argument vers la droite  $1  $2  |  $9 Arg10  Remplacement de motifs  Soit le script ‘toto’      
./toto x*
 [CTRL x*]
./toto xa xb xc
Les différents filtres  Syntaxe : [{CMD1} | {FILTRE}]  ·  [more]   = Affichage page par page  [espace] - page suivante  [enter]   - ligne suivante  ·  [less] = Idem que [more] mais on peut revenir en arrière  ·  [lead] = 10 premières lignes  [-n 20]   - 20 premières lignes  ·  [tail] = 10 dernières lignes  [-f] - En continu (dynamique)  ·  [cut] = Affichage en colonnes  [-f + {NBRE}]  - Numéro de champ à afficher  [-d + {CARAC}] - Séparateur de champ   [cut] peut être remplacé par : [cat {FILE} | awk ‘{print $1}’]  Exemple pour récupérer les lignes 10 à 15 du fichier {FILE} : [cat {FILE} | head -n 15 | tail -n 6]   [grep] (Get Regular Expression)   Syntaxe : [grep {SWITCHES} {MOTIF}] Affiche les lignes contenant ou non le {MOTIF}   {SWITCHES} ·  [-i] - Ne pas tenir compte de la casse  [-v] - Ne contenant pas le {MOTIF}  [-n] - Affiche les numéros de ligne   Exemple d’utilisation avec une commande :  [{COM} | grep {MOTIF}]   Ce qui équivaut à :    [{COM} > {FILE}]  [grep {MOTIF} {FILE}]
Voir icon more
Alternate Text