Cours et Formation en informatique et mathématiques, apprendre et télécharger gratuitement
 - Aide gratuite -

  Accueil
  Aide informatique
 - Informatique -

  • Télécharger des cours
  • Cours débutant
  • Programmation
  • Gestion de projet
  • UML & Merise
  • Base de données P2
  • Cours réseaux P2 P3
  • Système d'exploitation
  • Cours linux
  • Sécurité informatique
  • Sécurité internet
  • Travaux informatique P2
  • Autres cours
  • Articles informatique
  •  



    Commandes Unix


    Accueil > Cours Linux > Commandes Unix


     Récapitulatif des principales commandes UNIX
       

    Commandes usuelles d'Unix


    Commande

    Action

    who –s

    Utilisateurs connectés et leur station

    man

    Obtenir de l’aide sur une commande Unix

    man –k

    Chercher de l’aide sur un mot clé

    exit

    Se délogger

    pwd

    Obtenir le chemin actif

    ps -A

    Obtenir la liste des jobs actifs

    | pg ou | more

    Paginer une commande (arrêt fin écran)

    kill –9

    Arrêter un job

    ls ("LS" minuscule)

    Liste des fichiers du répertoire courant

    shutdown

    Attendre la question "do you.. continue"

    Répondre "y"

    Au redémarrage, attendre "BOOT"

    Appuyer sur [ENTER]

    Puis [CTRL]+[D]

    Arrêt serveur

    su nom_utilisateur

    Changer de profil utilisateur

    cp fichier_source fichier_destination

    Copier un fichier

    LS –L (en minuscules, ça suffit)

    Commande équivalent au DIR du DOS

    CAT nom_fich

    Commande équivalente au TYPE du DOS. Utiliser MORE pour paginer

    > nom_fichier

    Redirection des sorties vers un fichier



    Autres commandes utiles

    Commande

    Action

    hostname

    Nom de la station sur laquelle on est conncté

    uname

    Nom de l'utilisateur courant

    date

    renvoie la date

    cal

    calendrier

    logname

    nom de login courant

    id

    renvoie les UID et GID de l'utilisateur courant

    more

    permet de paginer une sortie écran

    clear

    efface l'écran

    echo

    visualise une chaine ou variable

    man

    aide d'UNIX

    env

    visualise les variables d'environnement

    whereis

    localise une commande sur les disques

    apropos

    recherche des rubriques connexes de l'aide

    grep

    recherche une chaine

    tty

    donne le nom du périphérique de sortie standard

    mkdir

    créer un répertoire

    mv

    déplace un fichier/répertoire

    cp

    copie un fichier/répertoire

    touch

    crée un fichier vide ou met à jour les flags d'un fichier

    df

    donne l'utilisation des disques

    cd ~ ou cd

    replace dans le $HOME de l'utilisateur courant

    whoami

    donne le nom de login de l'utilisateur courant

    mkdir -p

    crée une arborescence

    rm -r

    supprime une arborescence

    ls -R

    équiv. au tree

    su - loginname

    cette commande permet de changer de login et en plus de lire l'environnement complet de l'utilisateur

    cat fich1 fich2 >fich3

    concaténation de fichiers

    tail -f

    visualise la fin d'un fichier


    tris et actions d'extraction


    Commande

    Action

    sort

    Tri standard

    uniq

    élimine les lignes identiques consécutives

    head

    extrait le début d'un fichier

    tail

    extrait la fin d'un fichier (tail +2 pour sauter une entête par exemple)

    split

    découpage en paquets

    cut

    extraction d'une partie d'un fichier, colonnes, caractères, etc…

    grep

    recherche une chaine et extrait les lignes correspondantes

    paste

    colle ligne à ligne deux fichiers

    join

    réalise une jointure entre deux fichiers de type base de données

    wc

    compte le nombre de lignes ou de mots



    Entrées/sorties basiques

    Commande

    Action

    read var

    attend une saisie au clavier et positionne var

    echo

    affiche à l'écran

    echo -e

    affiche avec codes de contrôle étendus

    tput

    locate + invertion vidéo


    calculs

    on peut faire des calculs en utilisant l'instruction "let". Exemple : let "i = $i + 1"


    Retrouver le répertoire par défaut d'un utilisateur

    Pour retrouver le répertoire par défaut d’un utilisateur Unix:

    · Se logger avec le profil en question et son mot de passe

    · ouvrir un shell

    · taper: echo $HOME

    Le répertoire par défaut de l’utilisateur s’affiche.


    Séquence d'exécution d'un login

    Lorsqu’un utilisateur se connecte, son fichier .cshrc, contenu dans son répertoire par défaut ($HOME) est exécuté. Est exécuté ensuite son fichier .login
    s’il existe.


    Dans le fichier .cshrc se trouvent toutes les déclarations de variables unix, les alias définits pour cet utilisateur.

    Dans le fichier .login se trouvent les informations concernant la configuration du terminal et de l’environnement.


    Métacaractères du shell

    Le shell comprend les caractères étendus suivants:


    ' '

    permet de spécifier une chaine dont le contenu ne sera PAS interprété par le shell

    " "

    permet de spécifier une chaine dont le contenu sera interprété par le shell (peut contenir des variables $ qui seront interprétées)

    *

    tous les fichiers

    ?

    remplace un caractère dans le nom d'un fichier

    [ ]

    spécifie une liste

    ;

    permet d'enchainer des commandes (attention, différent du pipe)

    &

    lancer un processus en arrière-plan

    #

    commentaire

    ` `

    récupére le résultat d'une commande

    $

    = contenu de


    Manipulation des fichiers

    Exemples :

    lister les fichiers commençant par D ou d et finissant par 'pont': ls [Dd]*pont

    lister les fichiers qui ne commencent pas par un chiffre: ls [!0-9]*


    Les liens

    Il existe les liens physiques et les liens logiques.
    Un lien physique est une duplication du descripteur (l'INODE) du fichier cible. Lorsqu'un utilisateur ouvre son lien physique, il ouvre les données contenues dans le premier fichier.
    On peut retrouver qu'il s'agit d'un lien car le nombre de liens dans un
    ls -l est >1.

    Les liens logiques sont en fait des "raccourcis" et sont des fichiers de type 'l' lorsqu'on fait un ls -l.


    Trouver un fichier

    find -name ''


    on peut ensuite enchainer une action sur les fichiers trouvés par la commande find:


    find ~ -name '' -exec '{}' ;


    '{}' signifie "fait porter l'action sur l'ensemble des fichiers trouvés par le critère du find"

    par exemple :


    find ~ -name 'dup*' -exec rm '{}' ;


    recherche à partir du home de l'utilisateur tous les fichiers commençant par 'dup' et les supprime.
    Les fichiers commençant par un "." n'apparaissent pas dans un
    ls, sauf un ls -a.


    Principes de gestion des fichiers et répertoires

    Sous UNIX, tout est fichier.
    Un périphérique, un écran, une imprimante, un répertoire, tout est fichier.
    Un fichier peut être exécutable si son flag d'exécution ( 'x' ) est positionné.
    Un répertoire est un fichier qui contient la liste des fichiers sensés être stockés dans ce répertoire.

    Un fichier est constitué de deux parties: l'INODE qui est le descripteur du fichier (secteurs, n° d'INODE, etc…) et des données. Lorsqu'un fichier est copié, il y a copie de l'INODE et des données. Lorsqu'un lien physique est créé, seule l'INODE du fichier est dupliqué car les données elles-même sont partagées.


    Création de liens

    Pour créer un lien physique :


    ln fichier


    pour créer un lien logique :


    ln -s répertoire


    Droits courants des fichiers et répertoires

    Tout fichier/répertoire a une série de bits définissant les droits d'accès: Ces droits sont formatés comme suit :


    bit " type"

    bit "user"

    bit "group"

    bit "others"

    répertoires

    d

    rwx

    rwx

    rwx

    fichiers

    -

    rwx

    rwx

    rwx

    lien logique

    l

    rwx

    rw

    rwx


    Pour les répertoires :


    le "r" veut dire que l'on peut lire le fichier-répertoire, c'est-à-dire que l'on peut lister les fichiers qu'il contient
    le "w" veut dire que l'on peut écrire dans le fichier-répertoire, c'est-à-dire que l'on peut créer des fichiers dans ce répertoire
    le "X" veut dire que l'on peut se déplacer dans le répertoire


    Pour les fichiers :


    le "r" veut dire que l'on peut lire le fichier
    le "w" veut dire que l'on peut y écrire
    le "x" veut dire que l'on peut l'exécuter (script ou programme compilé par exemple)

    La commande permettant de changer ces droits est "chmod'. Par exemple, si on veut rendre un fichier exécutable (et que ce fichier nous appartient), il faut écrire :


    chmod u+x


    Si on veut donner le droit à tout le monde de lire ce fichier, il faut entrer :


    chmod a+x


    Si on veut donner aux utilisateur de mon groupe le droit de modifier et lire ce fichier, il faut entrer :


    chmod g+wr


    Lorsqu'on crée un fichier, le bit "user" est positionné sur notre UID, les informations de groupe du fichier sont positionnés en fonction de notre GID. Si on veut temporairement endosser les ID d'un autre groupe, on entre :


    chgrp


    Si on veut changer l'UID d'un fichier :



    chown


    On rappelle qu'un répertoire est en fait un fichier contenant la liste des fichiers contenus dans ce répertoire.

    Note: Si on ne donne que le droit "w" à un fichier, on peut modifier ce fichier sans le lire, par exemple avec un echo 'xxxxxxxxx'>> .


    Jobs

    On peut visualiser la liste des processus actifs par ps. On peut également utiliser la commande


    jobs

    Si on veut passer au premier plan un process lancé avec "&", il suffit d'écrire :


    fg %


    Si on veut passer en arrière-plan un job stoppé :


    bg %


    Options de kill des jobs :


    kill -1 pour les démons, relit les fichiers de configuration
    kill -9
    tue le processus sans sécurité
    kill -15
    terminate
    kill -19
    stop


    Le numéro est l'ID du process donné par un ps.


    Redirection

    Toute commande UNIX peut être redirigée vers un fichier par l'utilisation de l'opérateur de redirection ">".
    Les erreurs peuvent elles-aussi être redirigées vers un fichier par l'utilisation de l'opérateur "2>
    ".

    Si on ne veut pas garder trace, on peut rediriger une sortie vers la poubelle d'UNIX: /dev/null.

    Par exemple :


    find ~ -name '…..' >resultats 2>/dev/null


    Variables d'environnement

    UNIX utilise différentes variables dont certaines sont standard :


    $HOME

    renvoit le chemin vers le répertoire de base de l'user

    $PS1

    est le texte correspondant au prompt n°1 du shell.

    $?

    renvoie 0 ou 1 selon que la commande précédente du shelle a été correctement exécutée ou non


    Exemples de commandes shell d'utilisation courante

    affiche le plus gros fichier d'un répertoire :


    ls -l | sort +4nbr | head -n 1


    renvoie le nombre d'utilisateurs connectés :


    who | wc -l


    lister les répertoires :


    ls -l | grep '^d'


    renvoyer le premier champ d'un who :


    who | cut -f 1 -d' '


    Liste des utilisateurs connectés :


    who | awk '{print $1}' | sort | uniq


    ou


    who | cut -f 1 -d' ' | sort | uniq


    Les scripts

    Pour écrire un script, il suffit d'éditer un fichier et d'entrer des commandes shell.
    Il faut ensuite spécifier en première ligne de ce script l'interpréteur de commandes qu'il faudra utiliser pour exécuter le fichier (typiquement, sur le shell en écrivant par exemple
    #!/bin/bash ou #!/bin/csh en fonction du shell utilisé)


    Il faut enfin rendre le fichier exécutable en lançant chmod u+x
    Si on veut débugger l'exécution du script, il faut ajouter le commutateur "-x" sur la ligne du shell à lancer. A ce moment-là, chaque ligne sera affichée avant et après exécution :


    #!/bin/bash -x


    Exemple de script de sauvegarde :


    #!/bin/bash
    # Script de sauvegarde du HOME
    JOUR=`date +%d`
    MOIS=`mois +%m`
    ANNEE=`date +%D`
    REP="/tmp/$ANNEE/$MOIS"
    FICH=${JOUR}.tar
    mkdir -p $REP
    cd $REP
    tar cf $FICH $HOME
    NBFICHS=`tar tvf $FICH | wc -l`
    echo "$NBFICHS ont été sauvegardés dans le répertoire $REP"
    compress -f $FICH
    echo "Fin du travail"
    cd


    calculs

    on peut faire des calculs en utilisant l'instruction "let".
    Exemple: let "i = $i + 1"


    Conditions

    Deux exemples:


    if cmde
    then …
    else …
    fi


    if [ test ]
    then …
    else …
    fi


    où test peut être : [ $# -ge 3 ]

    pour le nombre de paramètres >3. METTRE DES ESPACES PARTOUT car le shell interprète chaque opérateur comme un paramètre.


    [ -f fichier]


    si "fichier" est de type fichier classique.


    La connexion d'un utilisateur à UNIX

    Lorsqu'une session est demandée en ouverture sur un système UNIX, par exemple à partir d'un telnet sur une machine windows, il y a tout d'abord autentification de l'utilisateur et saisie de son pwd;


    La liste des utilisateurs déclarés se trouve dans /etc/passwd
    corrélativement, les mots de passe sont stockés sous forme codés dans/etc/shadow
    de même les informations d'appartenance de groupe se trouvent dans /etc/group


    le format du fichier /etc/password est le suivant :


    login:x:UID:GID:nomprénom:homepath:shell //login est le nom de login de l'utilisateur
    UID: ID d'utilisateur
    GID: ID de groupe de l'user
    nomprénom: est le libellé détaillé de l'user
    homepath: est le chemin absolu de son $HOME
    shell: path est le shell utilisé pour l'user


    L'utilitaire de création des utilisateurs est ADDUSER.


    Sauvegarde et restauration

    les commandes courantes de sauvegarde/restauration sont :


    - sauvegarde : tar cvf


    si on sauvegarde un chemin absolu, la restauration ne pourra être qu'absolue. Il est fortement conseillé de vérifier le contenu du fichier tar en effectuant un affichage : tar tvf


    - restauration : tar xvf


    - compression : compress


    - décompression : uncompress -v


    Editeur standard VI

    VI est l'éditeur standard d'UNIX. Il a été créé au XVIIè siècle est fonctionne à priori sur toutes les plateformes.
    Il faut savoir que VI fonctionne sur deux modes: le mode commande et le mode édition. On passe de l'un à l'autre par [ESC].


    Commandes courantes:


    i

    insérer du texte

    o

    insérer une ligne au-dessous de la ligne courante

    O

    insérer une ligne au-dessus de la ligne courante

    A

    insérer du texte à la fin de la ligne courante

    a

    insérer du texte au début de la ligne courante

    x

    supprimer le caractère courant

    :q

    quitter VI

    :wq

    enregistrer et quiter

    :w [nom]

    enregistrer [sous nom]

    nG

    aller à la ligne n

    dd

    supprimer la ligne courante

    yy

    copier la ligne courante

    p

    coller (placer) la ligne copiée au-dessous de la ligne courante

    P

    coller (placer) la ligne copiée au-dessus de la ligne courante

    :!q

    quitter sans sauvegarder

    R

    remplacer


    Les batches

    UNIX donne la possibilité d'exécuter des scripts ou des commandes en schedulé. On utilise pour cela la commande 'at' pour planifier l'exécution unique ou 'crontab' pour l'exécution récurente d'un programme ou script.


    crontab s'utilise avec le nom d'un fichier "cron" qui a le format suivant:


    minute

    heure

    jour

    mois

    jour semaine

    commande

    0-59

    0-24

    0-31

    0-12

    0-7


    exemples :


    tous les vendredi à 20h :


    minute

    heure

    jour

    mois

    jour semaine

    commande

    0

    20

    *

    *

    5

    commande


    tous les jours à 20h sauf le vendredi :


    minute

    heure

    jour

    mois

    jour semaine

    commande

    0

    20

    *

    *

    1-4

    commande


    Tous les premier lundi du mois à 21h30 :


    minute

    heure

    jour

    mois

    jour semaine

    commande

    30

    21

    1-7

    *

    1

    commande


    Passation de variables dans le shell

    Lorsqu'on exécute une commande, le shell commence par se cloner et passe la commande à son clone, si bien que toutes les variables du clone sont locales au clone.
    Pour exécuter le script ou la commande dans le shell courant et non à un clone (par exemple pour redéfinir des variables d'environnement de ce shell) il faut utiliser l'opérateur point '
    .':


    . script


    exécutera "script" dans le shell courant.


    Si d'autre part on veut qu'une variable contenue dans un script devienne disponible à toutes les occurrences de shell (c'est-à-dire dans le shell courant) il faut utiliser la commande "export".


    export var=valeur


    La variable "var" devient donc disponible dans le shell courant et tous les clones futurs. C'est typiquement l'utilisation des fichiers de configuration.


    Fichiers de configuration

    Quand

    Qui

    shell "sh"

    shell "ksh"

    shell "bash"

    à la connexion

    tout le système

    /etc/profile

    /etc/profile

    /etc/.login

    chaque utilisateur

    $HOME/.profile

    $HOME/.profile

    $HOME/.login

    Au lancement d'un nouveau shell

    chaque utilisateur

    $HOME/.kshrc si on a un export ENV=$HOME/.kshrc dans le .profile

    $HOME/.cshrc

    A la sortie du shell

    chaque utilisateur

    $HOME/.logout


    pour relire son fichier de configuration à un instant t :


    . .profile

    La déclaration des variables d'environnement .profile du $HOME. Ne pas oublier d'exporter les variables de sorte qu'elles soient disponibles pour le shell !
    Par exemple le changement du prompt par défaut, si on veut que figure le chemin de travail :

    PS1="w"


    Passage de paramètres entre commandes : commande arg1 arg2 arg3 …


    les variables se récupèrent dans la commande en utilisant les variables suivantes :$1, $2, … paramètres 1, 2, …


    $# est le nombre d'arguments passés
    $* est la liste constituée des différents arguments
    $0 est le nom de la commande lancée


    Rappelons-nous que l'on peut utiliser les quotes et guillemets si l'on veut passer des paramètres multiples qui, respectivement, ne seront pas ou seront interprétés par le shell.



    www.misfu.com

    Vous pouvez également faire héberger vos tutoriaux sur le site Misfu, il vous suffit de nous les envoyer







     Initiation Linux

  • Philosophie Linux
  • Caractéristiques
  • Interfaces graphiques
  • Utiliser KDE
  • Gestion des fichiers
  • Pré-requis installation
  • Installer Linux
  • Outils multimédia
  • Linux & internet

     Administration Linux

  • Configurer Lilo
  • Gestion utilisateur
  • Packages sous Linux
  • Daemons et Linux
  • Routage IP
  • Commandes réseaux
  • Poste en réseau
  • Sécurité et Linux
  • Système NFS
  • Planification des tâches
  • Compilation noyau Linux
  • SAMBA et Linux
  • Utiliser le DNS
  • Récupérer mdp root
  • Utiliser Grep
  • Recherche et archivage
  • DHCP et Linux

     Divers

  • Midnight-Commander (MC)
  • Equivalence logiciel Linux/Windows
  • Editeur de texte VI
  • Créer un RPM
  • Commandes Linux
  • Commandes Unix
  • Commandes Bash
























  • Publiez vos articles, et cours - Nous contacter
    WDMédia hébergement hébergeur de Misfu
    Copyright © 2005-2012 www.misfu.com
    C'est quoi l'informatique ?