Outils pour utilisateurs

Outils du site


admin:linux

Différences

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

Lien vers cette vue comparative

admin:linux [2011/02/02 23:42] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Learn UNIX in 10 minutes. Version 1.2 FR 1.0 ====== ​
  
 +Les commandes de base de la ligne de commande UNIX (le shell) : dernière révision 17 Mai 2001\\
 +Site Original : [[http://​freeengineer.org/​learnUNIXin10minutes.html|Learn UNIX in 10 minutes]]
 +
 +===== Avant Propos =====
 +
 +
 +
 +
 +Ce document a été rédigé il y a quelques années pour des étudiants en Dessin Assisté par Ordinateur (DAO) .
 +Le but était d'​avoir sur une page les commandes de base pour utiliser le Shell Unix (comme ça ils ne me demanderaient pas quoi faire lorsque quelqu'​un leur donnerait une sauvegarde)
 +
 +Ce document est copyrighté mais peut être reproduit selon les termes de la [[http://​www.gnu.org/​copyleft/​fdl.html|GFDL]].
 +Envoyez-moi vos commentaires,​ corrections ou tout autre ajout qui vous semble absolument nécessaire dans ce document.((This is something that I had given out to students (CAD user training) in years past. 
 +The purpose was to have on one page the basics commands for getting started using 
 +the UNIX shell (so that they didn't call me asking what to do the first time someone ​
 +gave them a tape). \\
 +This document is copyrighted but freely redistributable under the terms of the GFDL . 
 +Send me comments, corrections,​ and extra stuff that you think should absolutly must be 
 +included. I'll gladly listen.\\
 +[[http://​www.faqs.org/​docs/​linux_intro/​gfdl-8.html|Invariant translations]]))
 +
 +
 +
 +===== Sections =====
 +
 +==== Chemins ====
 +
 +
 +Les chemins de fichiers et de dossiers sous Unix utilisent le slash "/"​ pour séparer les noms des dossiers.
 +
 +
 +Exemples :
 +
 +| / |   ​Dossier "​racine"​|
 +|/usr |  Dossier usr (sous-dossier du dossier "​racine"​) |
 +|/​usr/​STRIM100 |           ​STRIM100 est un sous-dossier de /usr |
 +
 +==== Se déplacer dans le système de fichier ====
 +
 +
 +| pwd  | montre le nom du dossier de travail courant (//Present Working Directory//​) ​    |
 +| cd   | change le dossier de travail pour le dossier HOME     |
 +| cd /​usr/​STRIM100 | change le dossier de travail pour /​usr/​STRIM100 |
 +| cd INIT  | change le dossier de travail pour INIT, qui est un sous-dossier du dossier courant ​ |
 +| cd ..  | change le dossier de travail pour le dossier parent |
 +| cd $STRMWORK | change le dossier de travail pour le dossier défini par la variable d'​environnement '​STRMWORK'​|
 +
 +==== Lister le contenu d'un dossier ====
 +
 +
 +''​ls''​ liste le dossier de travail courant
 +
 +''​ls -l //​dossier//''​ liste au format détaillé le dossier //​dossier// ​
 +
 +Par exemple : 
 +
 +   $ ls -l /​home/​sheherazade/​work/​
 +   ​drwxr-xr-x ​   4 sheherazade ​   staff     ​1024 ​ 2004-04-04 09:40 ToDo
 +   ​-rw-r--r-- ​   1 sheherazade ​   staff    767392 2004-04-04 14:28 scanlib.tar.gz
 +   ^ ^  ^  ^     ​^ ​  ​^ ​            ​^ ​          ​^ ​     ^        ^      ^
 +   | |  |  |     ​| ​  ​| ​            ​| ​          ​| ​     |        |      |  ​
 +   | |  |  |     ​| ​ Propriétaire ​ Groupe ​     Taille Date     ​Heure ​ Nom 
 +   | |  |  |    Nombre de fichiers ou dossiers que le dossier listé contient
 +   | |  | Permissions pour tous
 +   | | Permissions pour les membres du groupe staff
 +   ​|Permissions pour le propriétaire ​ r = lecture (read), w = écriture (write), x = exécute (execute), ​ - = pas de droits
 +  Type de fichier * : - = Fichier régulier, d = Dossier, l = Lien symbolique ou autre...
 +
 +* [[http://​linux.ensimag.fr/​fichiersunix.html|Sous Unix tout est fichier]]
 +
 +==== Modifier les permissions et les droits ====
 +
 +
 +
 +  chmod 755 file
 +
 +change les droits de //file// afin qu'ils deviennent rwx pour le propriétaire,​ et rx pour le groupe et les autres. ( on veut  rwx lire/​écrire/​exécuter donc 111 en binaire qui vaut 7 en décimal. On veut r-x lire/**pas ecrire**/​exécuter donc 101 en binaire qui vaut 5 en décimal).
 +
 +  chgrp staff fichier
 +
 +change le fichier //fichier// afin qu'il appartienne au groupe //staff//.
 +
 +  chown sheherazade fichier
 +
 +fait de sheherazade la propriétaire du fichier ​ //​fichier//​.
 +
 +  chown -R sheherazade dir
 +
 +fait de sheherazade la propriétaire du dossier //dir// et de **tous** ses sous dossiers.
 +
 +Vous devez être le/la propriétaire du fichier/​dossier ou être root avant de taper ces commandes. Sous Ubuntu il faut les préfixer par **sudo**.
 +
 +==== Déplacer, renommer et copier des fichiers ====
 +
 +|cp fichier_source fichier_destination | copie un fichier |
 +|cp -r dossier_source dossier_destination | copie un dossier |
 +| mv fichier1 nouveau_nom_fichier1 | déplace ou renomme un fichier |
 +| rm fichier1 [fichier2 ...] | supprime un fichier (ou une liste de fichiers) (( **Il n'y a pas de corbeille**)) |
 +| rm -r dossier1 [dossier2...] | supprime un dossier et **tous** ses sous-dossiers,​ à manier avec précaution |
 +| mkdir dossier1 [dossier2...] ​  | crée un dossier ​ |
 +|rmdir dossier1 [dossier2...] | supprime un dossier vide|
 +
 +==== Visualiser et éditer les fichiers ====
 +
 +
 +
 +| cat fichier | affiche le contenu du fichier à l'​écran en ASCII |
 +| more fichier | affiche progressivement un fichier à l'​écran : Entrer = descend d'une ligne, Espace = descend d'une page, q = quitte |
 +| less fichier | comme more, mais on peut utiliser la touche Page Précédente. Pas disponible sur tous les systèmes. |
 +| vi fichier | éditer un fichier avec l'​éditeur vi. Tous les systèmes Unix ont un éditeur //à la// vi. |
 +| emacs fichier | éditer un fichier avec l'​éditeur emacs. Pas disponible sur tous les systèmes. |
 +| head fichier | affiche les premières lignes d'un fichier |
 +| head -n fichier | affiche les n premières lignes d'un fichier |
 +| tail fichier | affiche les dernières lignes d'un fichier |
 +| tail -n fichier | affiche les n dernières lignes d'un fichier |
 +
 +==== Shells ====
 +
 +
 +Le comportement de l'​interface en ligne de commande diffère légèrement en fonction du programme shell utilisé.
 +
 +Suivant le shell utilisé, quelques comportements peuvent être pratiques.
 +
 +Vous pouvez connaître le shell que vous utilisez avec la commande :
 +
 +
 +  printenv SHELL
 +
 +Vous pouvez bien évidemment créer un fichier contenant une liste de commandes shell et l'​exécuter comme un programme pour exécuter une tâche. On appelle cela un script shell. C'est en fait le but premier de la plupart des shells, et non pas le comportement interactif de la ligne de commande.
 +
 +==== Variables d'​environnement ====
 +
 +
 +
 +Vous pouvez apprendre au shell à '​mémoriser'​ des informations pour utilisation ultérieure grâce aux variables d'​environnement.
 +Par exemple avec bash :
 +
 +  export CASROOT=/​usr/​local/​CAS3.0
 +
 +définit la variable CASROOT avec la valeur /​usr/​local/​CAS3.0.
 +
 +  cd $CASROOT
 +
 +change le répertoire de travail courant pour CASROOT.
 +
 +  export LD_LIBRARY_PATH=$CASROOT/​Linux/​lib ​
 +
 +définit la variable LD_LIBRARY_PATH qui prendra la valeur CASROOT avec /Linux/lib ajouté à la fin, c'​est-à-dire /​usr/​local/​CAS3.0/​Linux/​lib.
 +
 +  printenv
 +
 +affiche toutes les variables d'​environnement
 +
 +  printenv CASROOT
 +
 +affiche la valeur de la variable d'​environnement nommée CASROOT : ///​usr/​local/​CAS3.0.//​
 +
 +  echo $CASROOT
 +
 +fait exactement la même chose.
 +
 +==== Historique Interactif ====
 +
 +
 +Une fonctionnalité de bash et tcsh (et parfois d'​autres) est de pouvoir utiliser la touche "​flèche vers le haut" pour accéder aux dernières commandes entrées, les éditer, et les re-exécuter.
 +
 +==== Complétion des noms de fichiers ====
 +
 +
 +
 +
 +Une des fonctionnalités de bash et tcsh (et probablement d'​autres) est de pouvoir utiliser la touche TAB pour compléter un nom de fichier tapé partiellement. Par exemple, si vous avez un fichier nommé constantine-monks-and-willy-wonka.txt dans votre répertoire et si vous voulez l'​éditer,​ vous pouvez taper 'vi const',​ enfoncer la touche TAB, et le shell va remplir le reste du nom pour vous (à condition qu'il soit unique).
 +
 +==== Bash vous montre la voie ====
 +
 +
 +Bash complète aussi bien les noms de commandes que les variables d'​environnement.
 +En cas de possibilités multiples de complétion,​ taper deux fois sur la touche TAB vous montrera toutes les complétions possibles. Bash est le shell par défaut de la plupart des systèmes Linux.
 +
 +==== Redirection ====
 +
 +  grep chaine fichier > nouveau_fichier ​
 +redirige la sortie de la commande précédente '​grep'​ dans un fichier nommé //​nouveau_fichier//​. //Si nouveau_fichier existe il sera remplacé/​ecrasé//​
 +
 +  grep chaine fichier >> fichier_existant
 +ajoute la sortie de la commande '​grep'​ à la fin du fichier //​fichier_existant//​.
 +
 +Les opérateurs de redirection > et >> peuvent être utilisés sur la sortie de la plupart des commandes, pour les placer dans un fichier.
 +
 + 
 +
 +==== Pipes ====
 +
 +Le symbole tube ("​pipe"​) "​|"​ est utilisé pour rediriger la sortie d'une commande vers une autre.
 +
 +Par exemple :
 +
 +  ls -l | more
 +
 +Cette commande prend la sortie du listage au format long des fichiers dans un répertoire produit par "ls -l" et la redirige vers la commande "​more"​ (aussi appelé filtre). Dans ce cas, une très longue liste de fichier peut être vue page par page.
 +
 +==== Substitution de Commande ====
 +
 +
 +
 +
 +
 +Vous pouvez utiliser le résultat d'une commande comme paramètre d'​entrée pour une autre, en d'​autres termes pour une substitution de commande.
 +Une substitution de commande a lieu lorsque vous encadrez une commande avec des apostrophes inversées.
 +Par exemple :
 +
 +  cat `find . -name aaa.txt`
 +
 +va afficher à l'​ecran (voir cat) le contenu de tous les fichiers nommés aaa.txt dans le dossier de travail courant ou ses sous-dossiers.
 +
 +
 +=== Rechercher une chaîne de caractères : La commande grep ===
 +
 +  grep chaine fichier
 +
 +affiche toutes les lignes de //fichier// contenant //chaine//
 +
 +
 +=== Rechercher des fichiers : La commande find ===
 +
 +Syntaxe :
 +  find chemin -name fichier
 + 
 +
 +  find . -name aaa.txt ​   ​
 +
 +cherche les fichiers nommés aaa.txt dans le dossier courant ou ses sous-dossiers.
 +
 +  find / -name vimrc
 +
 +cherche les fichiers nommés vimrc depuis le dossier racine
 +
 +  find /​usr/​local/​games -name "​*xpilot*" ​
 +
 +cherche tous les fichiers dont le nom contient //xpilot// dans le dossier /​usr/​local/​games ​
 +
 +==== Créer des archives : La commande tar ====
 +
 +
 +La commande tar signifie '​**t**ape **ar**chive'​ (archive sur bande). C'est la méthode '​standard'​ pour lire et écrire des archives.
 +
 +
 +Vous trouverez souvent des archives de fichiers avec des noms comme fichiers.tar,​ ou fichiers.tar.gz. Ce sont respectivement des fichiers dans une archive tar et des fichiers dans une archive tar qui a été compressée avec le programme de compression gzip.
 +
 +Il est très probable, si quelqu'​un vous envoie des fichiers, qu'ils soient compressés dans une archive tar.
 +
 +De même, si vous devez envoyer des fichiers, vous devriez utiliser tar.
 +
 +
 +
 +| tar xvf archive.tar ​ | e**x**trait les fichiers de l'​archive archive.tar,​ en affichant les noms des fichiers qui la composent |
 +| tar xvfz archive.tar.gz ​ | e**x**trait les fichiers de l'​archive en utilisant gzip puis tar |
 +| tar jxvf archive.tar.bz2 ​ | e**x**trait les fichiers de l'​archive en utilisant bzip2 puis tar |
 +| tar cvf archive.tar fichier1 [fichier2...] ​ | **C**rée un fichier "​archive.tar"​ contenant fichier1, ​ fichier2... |
 +| tar cvfz archive.tar.gz mon_dossier | crée un fichier gzip contenant tout le contenu du dossier '​mon_dossier'​|
 +
 +
 +==== Compression de fichier : gzip, bzip2 ====
 +
 +== gzip ==
 +
 +gzip est un outil GNU de compression et de decompression. L'​extension pour les fichiers gzippés est .gz.
 +
 +| gzip fichier.txt | crée le fichier compressé fichier.txt.gz |
 +| gunzip fichier.txt.gz | extrait le fichier fichier.txt |
 +
 +
 +== bzip2 ==
 +
 +L'​utilitaire bzip2 offre (en général) un meilleur taux de compression que gzip, mais au coût d'un temps de compression et décompression plus élevé.
 +
 +| bzip2 fichier.txt | crée le fichier fichier.txt.bz2 |
 +| bunzip2 fichier.txt.bz2 | décompresse le fichier fichier.txt.bz2. ​ |
 +
 +
 +
 +==== Besoin d'aide : La commande man ===
 +
 +La plupart des commandes ont une page de manuel qui donne une description de leurs utilisations plus ou moins détaillées,​ parfois utiles, parfois obscures. Certains disent qu'​elles ont été appelées "man pages",​ parce qu'​elles ne s'​adressent qu'aux vrais Hommes.
 +
 +Exemple:
 +  man ls
 +affiche la page de manuel pour la commande ls
 +
 +Pour obtenir des man pages en français :
 +  sudo apt-get install manpages-fr
 +
 +==== Commandes de base de l'​éditeur Vi ====
 +
 +== Ouvrir un fichier ==
 +
 +  vi nom_du_fichier
 +
 +== Mode édition ==
 +
 +''​i''​ :    **i**nsère avant le curseur\\
 +
 +''​I''​ :   ​**I**nsère au début de la ligne courante\\
 +
 +''​a''​ :    insère **a**près le curseur\\
 +
 +''​A''​ :    insère à la fin de la ligne\\
 +
 +''​r''​ :    remplace 1 caractère\\
 +
 +''​R''​ :    passe en mode **R**emplacement\
 +
 +''<​ECHAP>''​ : met fin au mode Edition (insertion ou remplacement)
 +
 +== Effacer du texte ==
 +
 +''​x''​ :    efface un seul caractère\\
 +
 +''​dd''​ :   ​efface la ligne courante et la place dans un buffer\\
 +
 +''//​n//​dd''​ :  Efface //n// lignes (n est un nombre) et les place dans le buffer\\
 +
 +''​J''​ :    déplace la ligne suivante à la fin de la ligne courante (effacement des caractères de retour chariot)
 +
 +== Oups ==
 +
 +''​u ''​ :   ​annule la dernière commande
 +
 +== Copier et coller ==
 +
 +''​yy''​ :   copie la ligne courante dans le buffer
 +
 +''//​n//​yy''​ :  copie //n// lignes dans le buffer (n est un nombre)
 +
 +''​p''​ :    colle le contenu du buffer après la ligne courante
 +
 +
 +''​P''​ :    colle le contenu du buffer avant la ligne courante
 +
 +== Positionnement du curseur ==
 +
 +''​^d''​ :   une page en bas (//​**D**own//​)
 +
 +''​^u''​ :   une page en haut (//​**U**p//​)
 +
 +'':​n''​ :   ​positionne le curseur à la ligne n
 +
 +'':​$''​ :   ​positionne le curseur à la fin de la ligne
 +
 +''​^g''​ :   ​affiche le numéro de la ligne
 +
 +''​h,​j,​k,​l''​ : respectivement gauche, bas, haut et droite ; les flèches de direction fonctionnent aussi...
 +
 +== Substitution de chaîne de caractères ==
 +
 +'':​n1,​n2:​s/​chaine1/​chaine2/​[g]''​ :      substitue chaine1 pour chaine2 sur les lignes n1 à n2. Si g est indiqué (**g**lobal), ​ toutes les références de chaine1 sont remplacées,​ sinon seule la premiere référence est remplacée.
 +
 +''​^''​ : méta-caractère de début de ligne
 +
 +''​.''​ : méta-caractère,​ vrai sur n'​importe quel unique caractère sauf retour chariot
 +
 +''​$''​ : méta-caractère de fin de ligne
 +
 +Ces caractères,​ tout comme les autres caractères spéciaux, peuvent être '​échappés'​ à l'aide du \ :
 +c'​est-à-dire pour capturer la chaine de caractères "/​usr/​STRIM100/​SOFT",​ il faut utiliser l'​expression régulière "​\/​usr\/​STRIM100\/​SOFT" ​
 +
 +
 +
 +Exemples:
 +
 +  :​1,​$:​s/​chien/​chat/​g
 +
 +Remplace '​chien'​ par '​chat',​ pour chaque occurence du fichier - de la ligne 1 à la fin du fichier ($)
 +
 +  :​23,​25:/​chien/​chat/​
 +
 +Remplace '​chien'​ par '​chat'​ des lignes 23 à 25. Une fois par ligne, dès la première apparition.
 +
 +
 +== Sauver, quitter et commandes d'​exécution ==
 +
 +Ces commandes sont toutes prefixées par les deux points (:) et apparaissent dans le coin inférieur gauche de la fenetre. \\
 +Vous ne pouvez pas saisir ces commandes en mode édition.
 +Appuyer sur  <​ECHAP>​ pour sortir du mode édition
 +
 +'':​w''​ :              enregistre le fichier (**W**rite)
 +
 +'':​w nouveau.fichier''​ :       ​enregistre le fichier sous le nom '​nouveau.fichier'​
 +
 +'':​wq''​ :              enregistre le fichier et quitte le programme
 +
 +'':​q''​ :              quitte
 +
 +'':​q!'' ​ :            quitte sans enregistrer les changements
 +
 +'':​e fichier''​ :       ouvre '​fichier'​ pour l'​édition
 +
 +'':​set number''​ :      affiche les numéros de ligne
 +
 +'':​set nonumber''​ :    cache les numéros de ligne
 +
 +'':​set noai''​ :        désactive l'​auto-indentation
 +
 +===== FAQs =====
 +
 +
 +
 +Vous trouverez la plupart du temps toutes les réponses à vos questions dans le manuel ou la documentation du programme.
 +Si toutefois vous ne trouvez pas de réponse, pensez à chercher sur les forums ou les groupes de discussion **avant** de poser votre question.
 +
 +===== Copyrights =====
 +
 +Le document original a été rédigé à l'aide de Vim. Vim est la meilleure version du seul véritable éditeur de texte : vi 
 +
 +Copyright (c)  2000,​2001 ​ C R Johnson
 +Permission vous est donnée de copier, distribuer et/ou modifier ces documents selon les termes de la Licence GNU Free Documentation License, Version 1.1 ou ultérieure publiée par la Free Software Foundation ;  avec comme la préface section invariante, pas de couverture ni quatréme de couverture. Consultez la GNU Free Documentation License : [[http://​www.gnu.org/​licenses/​fdl.html|GFDL]].
admin/linux.txt · Dernière modification: 2011/02/02 23:42 (modification externe)