Description
Retrouvez ci-dessous la traduction EN → FR de l’article “Learn UNIX in 10 minutes”, écrit sur le site disparu ‘Freeengineer.org’.
Comprendre Unix en 10 Minutes
Préface
Le propos est d’avoir une page contenant les commandes de bases pour démarrer l’usage d’un shell UNIX.
Ce document est protégé par les droits d’auteurs, et placé sous les termes de la licence GNU/FDL.
Répertoires
Les chemins de répertoires et fichiers dans Unix utilisent le symbole ‘/’ (slash) pour séparer le nom des répertoires, dans le contexte du chemin.
exemples:
-
/
répertoire racine -
/usr
répertoire usr (répertoire enfant de la racine) -
/usr/STRIM100
STRIM100 est un sous-répertoire de /usr
Circuler dans le système de fichiers
-
pwd
voir le nom du répertoire courant -
cd
Se rediriger vers votre répertoire utilisateur personnel -
cd /usr/STRIM100
Se diriger vers /usr/STRIM100. -
cd INIT
Se diriger vers le répertoire INIT, qui est un sous-répertoire du répertoire courant. -
cd ..
Se diriger vers le répertoire parent du répertoire courant. -
cd $STRMWORK
Se diriger vers le répertoire renfermé dans la variable d’environnement ‘STRMWORK’. -
cd ~bob
Se diriger vers le répertoire personnel de bob.
Lister le contenu d’un répertoire
-
ls
liste un répertoire -
ls -l
liste un répertoire dans un format détaillé -
ls -a
liste le répertoire courant en affichant les fichiers cachés, ceux-ci commencent par un “.” -
ls -ld
Liste tous les noms de fichiers et répertoires dans le répertoire courant, utilisant un format détaillé. Sans l’option ’d’, la commande ’ls’ listera le contenu des sous-répertoire du répertoire courant. Avec, ’ls’ listera juste le nom des fichiers.
Pour l’exemple :
$ ls -l
drwxr-xr-x 4 cliff user 1024 Jun 18 09:40 WAITRON_EARNINGS
-rw-r--r-- 1 cliff user 767392 Jun 6 14:28 scanlib.tar.gz
^^ ^ ^ ^ ^ ^ ^ ^ ^ ^
|| | | | | | | | | |
|| | | | |id |group |poids |date |heure |nom
|| | | |nombre de contenu
|| | |permissions pour les autres
|| |permissions pour les membres du groupe
||permission pour le propriétaire du fichier : r = lecture, w = écriture, x = éxecution, - = pas de permission
|type de fichier : - = fichier normal, d = répertoire, l = lien symbolique, etc…
Changer les permissions et attributs de fichiers
-
chmod 755 file
Change les permissions du fichiers, en donnant tous les droits au propriétaire du fichier, et les droits de lecture et d’exécution pour le groupe et les autres. (7 = rwx = 111 en binaire ; 5 = r-x = 101 en binaire) -
chgrp user file
Change l’appartenance du groupe sur le fichier. -
chown cliff file
Change le propriétaire du fichier. -
chown -R cliff dir
Change le propriétaire du répertoire, de manière récursive.
Vous devez être le propriétaire des fichiers ou répertoires, ou être en mode administrateur (root) avant de pouvoir interagir ainsi.
Déplacer, renommer, et copier des fichiers
-
cp file1 file2
Copier un fichier -
mv file1 newname
Déplacer ou renommer un fichier -
mv file1 ~/AAA/
Déplacer un fichier dans le sous-répertoire AAA de votre répertoire utilisateur personnel -
rm file1 [file2…]
Supprimer un fichier -
rm -r dir1 [dir2…]
Supprimer un répertoire récursivement, et son contenu. FAITES ATTENTION ! -
mkdir dir1 [dir2…]
Créer un répertoire -
mkdir -p dirpath
Créer un répertoire, incluant tous les sous-répertoires nommés en suivant -
rmdir dir1 [dir2…]
Supprimer un répertoire vide
Voir le contenu et éditer des fichiers
-
cat filename
Afficher le contenu d’un fichier à l’écran, en ascii -
more filename
Afficher le contenu d’un fichier à l’écran de manière progressive. L’appui sur la touche Entrée affiche la ligne suivante ; celui sur la barre d’espace affiche une nouvelle page ; celui sur la touche q permettra la sortie. -
less filename
Un peu comme ‘more’, mais permet l’usage de la touche ^ “Défilement Haut”, pour remonter les pages. Fonctionne sur certains systèmes. -
vi filename
Éditer le fichier en utilisant l’éditeur ‘vi’. Tous les systèmes Unix ont cet éditeur. -
emacs filename
Éditer le fichier en utilisant l’éditeur ’emacs’. Tous les systèmes Unix n’ont pas cet éditeur. -
head filename
Lire les premières lignes d’un fichier. -
head -n x filename
Lire les x premières lignes d’un fichier -
tail filename
Lire les dernières lignes d’un fichier -
tail -n x filename
Lire les x dernières lignes d’un fichier
Shells
Le comportement d’une interface de ligne de commande diffère étroitement du programme shell dans lequel il est utilisée.
Dépendant du shell utilisé, quelques comportements supplémentaires peuvent être utiles.
Il est possible de savoir sous quel shell vous fonctionnez, en utilisant la commande suivante :
$ echo $SHELL
Bien-sûr, vous pouvez créer un fichier ayant une liste de commandes shell, l’exécuter tel un programme. Ceci est appelé un script shell. C’est le but premier de la plupart des shells.
Variables d’environnement
Les variables d’environnement permettent au shell d’enregistrer des données, pour un usage ultérieur.
Par exemple, pour le shell nommé Bash :
-
export CASROOT=/usr/local/CAS3.0
Définit la variable CASROOT avec la valeur /usr/local/CAS3.0. -
export LD_LIBRARY_PATH=$CASROOT/Linux/lib
Définit la variableLD_LIBRARY_PATH
avec la valeur de la variable$CASROOT
concaténé avec/Linux/lib
, ou/usr/local/CAS3.0/Linux/lib
En préfixant la variable du symbole ‘$’, vous pouvez utiliser son contenu dans le contexte de toute commande :
-
cd $CASROOT
Se rediriger vers le répertoire contenu dans la variableCASROOT
-
echo $CASROOT
Afficher le contenu de la variable CASROOT, soit/usr/local/CAS3.0
-
printenv CASROOT
Faire la même chose dans le shell bash ou d’autres environnements.
Historique interactif
Une fonctionnalité des shells bash, tcsh (et certainement d’autres) est de pouvoir utiliser l’accès aux commandes précédentes par l’appui de la touche ^ “Flèche Haut”, de les éditer, et/ou de les exécuter à nouveau.
Certains shells proposent l’usage de la commande history
, qui
affichera l’ensemble des commandes utilisées.
Pour les réutiliser, si besoin, il suffit de précéder le numéro de la
commande du symbole !
.
Complétion de nom de fichier
Une fonctionnalité des shells bash, tcsh (et certainement d’autres) est
de pouvoir utiliser la touche de Tabulation pour compléter un nom de
fichier partiellement tapé. Par exemple, si vous avez un fichier nommé
èconstantine-monks-and-willy-wonka.txt’ dans votre répertoire et que
vous désirez l’éditer, vous pouvez écrire vi const
, appuyez sur la
touche Tab, et le shell remplira le reste du nom de fichier.
Bash est le shell le plus cool
Bash est même capable de compléter le nom des commandes et des variables d’environnement. S’il y a plusieurs complétions possibles, l’appui plusieurs fois sur la touche Tab vous affichera les différentes possibilités.
Bash est le shell par défaut pour les systèmes Linux.
Redirection
-
grep string filename > newfile
Redirige la sortie de la commande grep vers un nouveau fichier -
grep string filename >> existfile
Ajoute la sortie de la commande grep à la fin du fichierexistfile
.
Les directives de redirection >
et >>
peuvent être utilisées pour
diriger la sortie de la plupart des commandes vers un fichier.
Pipes
Le symbole |
(la barre vertical sous le chiffre 6 ; appuyer
simultanément sur les touches Alt Gr et 6) est
utilisé pour diriger la sortie d’une commande vers l’entrée d’une autre
commande.
Par exemple :
-
ls -l | more
Cette commande prend la sortie de la commandels
dans son format détaillé et l’affiche au-travers de la commande ‘more’. Cela permet dans le cas d’une très longue liste d’être affichée page par page. -
du -sc * | sort -n | tail
La commandedu -sc
liste les tailles des fichiers et répertoires, dans le répertoire de travail courant, puis trie le résultat de la plus petite à la plus grosse grâce à la commandesort -n
. Finalement, seront affichés les quelques derniers résultats, les plus gros fichiers, par le biais de la commandetail
.
Substitution de commande
Vous pouvez utiliser la sortie d’une commande comme entrée d’une autre commande d’une autre manière, appelée “Substitution de commande”. Elle est invoquée par l’usage du symbole ` (appui simultané des touches Alt Gr et 7), tel que, pour l’exemple :
$ cat `find . -name aaa.txt`
Ce qui affichera à l’écran tous les fichiers nommés aaa.txt
dans le
répertoire courant, et de ses sous-répertoires.
Actuellement, il est recommandé de l’écrire ainsi :
$ cat "$(find . -name aaa.txt)"
grep : Recherche de chaînes de caractères dans un fichier
grep string filename
affiche toutes les lignes contenant la chainestring
dans tel nom de fichier.
find : Recherche de fichiers
find search_path -name filename
-
find . -name aaa.txt
Cherche tous les fichiers nommésaaa.txt
dans le répertoire courant et ses sous-répertoires. -
find / -name vimrc
Cherche tous les fichiers nommésvimrc
partout dans le système de fichiers. -
find /usr/local/games -name "*xpilot*"
Cherche tous les fichiers containant la chaînexpilot
dans leurs noms, qui existent dans le répertoire/usr/local/games
.
tar : Lire, écrire des sauvegardes et autres archives
La commande ’tar’ signifie “tape archive”. C’est la manière “standard” de lire et d’écrire des archives (qui sont des collections de fichiers, dans un répertoire donné).
Vous trouverez souvent des archives avec des noms tels que stuff.tar
,
ou stuff.tar.gz
. En substance, cela signifie que le répertoire stuff
a été archivé dans une archive tar, et pour le second cas, que cette
archive a été compressée par le moyen du programme de compression gzip
.
Il y a de fortes probabilités que si quelqu’un vous donne une sauvegarde,
faite sur un système Unix, que cette sauvegarde soit faite dans le
format tar… et, dans ce cas, vous devrez utiliser tar
, et votre lecteur
de bande, pour la lire.
De même, si vous voulez écrire une bande de sauvegarde pour quelqu’un d’autre, vous devriez utiliser probablement tar, aussi.
Exemples :
-
tar xv
Extrait les fichiers depuis la sauvegarde, en affichant le nom des fichiers à l’écran. (v
= verbeux) -
tar tv
Liste les fichiers depuis la sauvegarde sans les extraire. -
tar cv file1 file2
Écrit les fichiersfile1
etfile2
dans la sauvegarde. -
tar cvf archive.tar file1 [file2…]
Créer une archive tar, nomméearchive.tar
, contenant les fichiersfile1
,file2
, etc… Ne pas utilisez les symboles[
,]
: c’est juste une convention d’écriture pour signifier l’option… -
tar xvf archive.tar
Extrait les fichiers de l’archivearchive.tar
-
tar cvfz archive.tar.gz dname
Créer une archive compressée par gzip, contenant tout le contenu du répertoiredname
. Ne fonctionne pas avec toutes les versions de tar. -
tar xvfz archive.tar.gz
Extrait une archive compressée avec gzip. Ne fonctionne pas avec toutes les versions de tar. -
tar cvfI archive.tar.bz2 dname
Créer une archive tar compressée avec le programme de compression bzip2. Ne fonctionne pas avec toutes les versions de tar.
Compression de fichiers
compress
Les commandes de compression Unix, par défaut, sont compress
et
uncompress
. Les fichiers compressés ont le suffixe .Z
ajouté à leur
nom.
Pour l’exemple :
-
compress part.igs
Créer un fichier compressé part.igs.Z -
uncompress part.igs
Décompresser le contenu du fichier part.igs.Z
Note que l’usage de .Z
n’est pas requis.
gzip
Un autre utilitaire de compression commun est gzip
(et gunzip
). Ce
sont des outils GNU de compression et décompression. gzip utilise un
meilleur format de compression que le standard compress, mais n’est pas
installé sur tous les systèmes. Le suffixe pour les fichiers compressés
par gzip est .gz
-
gzip part.igs
Créer un fichier compressé part.igs.gz -
gunzip part.igs
Extrait le contenu de l’archive part.igs.gz
bzip2
L’utilitaire bzip2 a (en général) un meilleur taux de compression que gzip, mais prend plus de temps pour compresser ou décompresser des fichiers. Ce n’est pas un utilitaire commun comme gzip, mais il devient de plus en plus disponible. (À ce jour de la traduction, c’est devenu un outil commun !)
-
bzip2 part.igs
Créer un fichier compressé part.igs.bz2 -
bunzip2 part.igs.bz2
Décompresse le contenu du fichier part.igs.bz2
man, apropos : Rechercher de l’aide dans le système
La plupart des commandes ont une page de manuel qui décrit comment
l’utiliser, de manière plus ou moins détaillée. Ces pages de manuels
sont appelés des man pages
parce qu’elles sont faites pour être lues
par des humains.
Exemple :
man ls
Lire le manuel de la commandels
.
Vous pouvez trouver les man pages en utilisant la commande apropos
.
Exemple :
apropos build
Afficher tous les man pages dont la description contient le motbuild
.
Pour l’exemple, exécuter donc un man apropos
pour obtenir l’aide
détaillé de la commande apropos
.
Bases de l’éditeur vi
Ouvrir un fichier
vi nom_fichier
Créer du texte
Les modes d’édition : l’appui sur les touches ci-dessous permettent d’entrer en mode édition, puis d’écrire le contenu de votre document.
-
i
Insérer des caractères avant la position du curseur. -
I
Insérer des caractères au début de la ligne courante. -
a
Ajouter après la position du curseur. -
A
Ajouter à la fin de la ligne courante. -
r
Remplacer un caractère. -
R
Mode remplacement -
<ESC>
Sort des modes insertion.
Suppression de texte
-
x
Supprime un caractère -
dd
Supprime la ligne courante et la met en mémoire-tampon -
ndd
Supprime n lignes (n étant un nombre) et les mets dans la mémoire-tampon. -
J
Attache une nouvelle ligne à la fin de la ligne courante (et supprime les caractères de retour-à-la ligne)
Oups : Erreur de saisie
u
Annule la dernière commande
Copier, Coller
-
yy
Copie la ligne courante dans la mémoire-tampon -
nyy
Copie n lignes dans la mémoire-tamon -
p
Colle le contenu de la mémoire-tampon après la ligne courante -
P
Colle le contenu de la mémoire-tampon avant la ligne courante
Positionner le curseur
Le symbole ^
signifie l’appui simultanée sur la touche Ctrl
puis la touche signalée !
-
^d
Descend d’une page -
^u
Remonte d’une page -
:n
Positionne le curseur à la ligne n -
:$
Positionne le curseur à la fin de la ligne courante -
^g
Affiche le numéro de la ligne courante -
h,j,k,l
Respectivement, à gauche, en bas, au-dessus, et à droite du curseur. Vous pouvez aussi utiliser les touches fléchées si cela fonctionne avec votre clavier.
Remplacement de caractères
:n1,n2:s/string1/string2/[g]
Remplace la chaîne de caractères 1 par la
chaine de caractères 2 sur les lignes n1 et n2. Quand g
est inclus
(pour global), toutes les instances de la chaînes de caractère 1 sur
chacunes des lignes sont remplacées. Si g
n’est pas inclus, seule
la première instance par ligne correspondante est remplacée.
-
^
correspond au début de ligne. -
.
signifie tout caractère -
$
correspond à la fin de ligne.
Ces caractères, ainsi que d’autres “caractères spéciaux” (tels que
l’anti-slash) peuvent être échappés par l’usage du symbole \,
tel que \/usr\/STRIM100\/SOFT
signifiant littéralement la chaîne de
caractère /usr/STRIM100/SOFT
Exemples :
:1,$:s/dog/cat/g
Remplacer chaque instancedog
parcat
, dans tout le fichier. L’usage de:1,$
signifie du début à la fin du fichier.:23,25:/frog/bird/
Sur les lignes 23 à 25, remplacer la première instance defrog
parbird
, dans chacune de ces lignes.
Sauver, quitter et autres commandes ex
Ces commandes sont toutes préfixées par l’usage du symbole :,
et affichées en bas, à gauche de l’écran. Ce sont les commandes ex
,
parce qu’elles font partie de l’éditeur de texte ex
, le précurseur de
l’éditeur de texte vi
.
Vous ne pouvez pas taper une commande ex
quand vous êtes dans un des
modes insertion. (la saisie de texte à l’écran). Pour pouvoir le faire,
il faut appuyer sur la touche ESC, qui vous fera sortir de ce
mode d’insertion.
-
:w
Sauvegarde le fichier courant -
:w new.file
Sauvegarde le fichier courant, dans un nouveau fichier -
:w! existing.file
Sauvegarde un fichier existant avec le contenu du fichier courant. -
:wq
Sauvergarde le fichier et sors de l’éditeur -
:q
Ferme l’éditeur -
:q!
Ferme l’éditeur sans faire de changement -
:e filename
Ouvre le fichier ‘filename’ pour édition -
:set number
Affiche le numéro de ligne -
:set nonumber
Éteint le numéro de ligne
FAQ
Le contenu des Foire-aux-Questions Usenet devraient être le premier endroit à lire pour vos questions. Vous pouvez y trouver beaucoup de manuel RTFM (Read the F*** Manuals ; Lis ce Fichu Manuel).
Le contenu de ce répertoire inclut les FAQs vi, bash, et comp.unix.questions.
Rechercher dans les archives Usenet est souvent très utile, aussi.
Google.com a sa propre archive Usenet (formellement Deja.com), voire les règles “Advanced Group Search”.
Mention originale (traduite)
Ce document (comprendre l’original ; ce n’est pas le cas de la traduction) a été converti depuis un fichier texte, en utilisant Vim. Vim est la meilleure version du seul vrai éditeur de texte : vi.
Copyright (c) 2000-2006 - cliff@freeenginer.org
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with Invariant Section: Preface, with Front-Cover Texts, and with no Back-Cover Texts. A copy of the license can be found on the GNU web site here.
Historique
J’ai écrit historiquement cette traduction sur le wiki de la communauté “OpenBSD Pour Tous”.