Outils pour utilisateurs

Outils du site


initiation_au_terminal

page en cours d'édition
Plus d'infos sur le fil dédié du forum HandyLinux

Le Terminal et son langage

Nous tentons au maximum d'éviter l'utilisation du terminal sur HandyLinux, mais il arrive parfois que son usage soit salvateur. Le soucis est que ça fait peur cette petite boite noire (même si on l'a mit en blanc dans la v2 tongue ) … alors on va démystifier tout ça et vous montrer que le terminal peut devenir ton nouvel ami :-D

N'ayez pas peur de tester des commandes, des scripts.. tant que “sudo” n'entre pas en jeu. en revanche ne testez pas votre terminal en mode administrateur !!
Certaines commandes bien pratiques comme “rm” (remove = efface) et permettent de passer par dessus le principe de la “corbeille” mais peuvent être dévastatrices en mode admin sur un système entier.

Dans le doute, n'hésitez pas à poster sur un fil de discussion dédiée, ou venez demander directement sur le salon d'entraide handylinux.

HandyLinux met à votre disposition une page dédiée qui rassemble une bonne partie des commandes Linux avec explication et exemples. Sans oublier de créditer les sources ;)

Présentation et quelques exemples

On va commencer simplement par ce que vous voyez :

La configuration de cet affichage se trouve dans le fichier ~/.bashrc (un fichier caché de votre répertoire personnel), le fichier de configuration de l'interpréteur “bash” qui gère les commandes lancées dans le terminal (pour faire court). bash permet d'envoyer des commandes à travers le terminal jusqu'à la machine afin de lui envoyer des instructions ou obtenir des informations.

Exemple utilisateur

Afin d'apprivoiser le bidule, on va commencer par du simple, “cd” … pour “change directory”, qui vous permet de vous balader dans votre système. Pour aller dans les images… je tape “cd + l'adresse du dossier image” sans les “” puis je presse [Enter] pour “envoyer” la commande :

Vous voyez que le “~” a changé, vous avez changé de répertoire, comme dans Thunar quand vous ouvrez un dossier.
Dans Thunar, lorsque vous ouvrez un dossier, vous “voyez” ce qu'il y a dedans. avec un terminal, il faut lister les éléments avec la commande “ls” :

… simple non .. vous voyez, vous n'avez rien cassé ;-) .. mouais, vous allez me dire que c'est un peu inutile ce genre de truc …

On va passer à des trucs plus sympa:

  • 'uname -r' vous donne la version de votre noyau Linux actif
  • 'uptime' vous donne le temps de fonctionnement de votre session de travail, le nombre d'utilisateurs connectés et la charge système. Le “load average” calcule les processus en cours et en attente durant la dernière minute, il y a 5 minutes et il y a 1/4 d'heure.. afin de voir si des processus ne sont pas trop en file d'attente. Si le load dépasse 1(pour les vieux ordis) ou 2(pour les dualcore et +) cela veut dire qu'un processus est en cours et un autre en file d'attente.
  • revenir à votre dossier personnel ? un petit 'cd' tout seul pour revenir @home :-)
  • yen a trop sur l'écran ? un petit 'clear' videra votre console

Exemple administrateur

On passe aux choses sérieuses ?? le mode admin… !
Pour passer une commande en mode administrateur (se substituer à 'root') HandyLinux utilise “sudo” (d'autres distro comme Debian, utilisent “su” pour devenir vraiment “root”).
Lors du passage en sudo, votre mot de passe vous est demandé.
Un exemple simple avec une mise à jour des dépôts, cad la récupération des informations sur les paquets ou les mises à jour disponibles. on lance “sudo apt-get update” :

Une liste d'adresse internet apparaît, ce sont les dépôts utilisé par votre système. Une fois fait, vous pouvez lancer un “sudo apt-get upgrade” pour mettre à jour vos programmes

Sur GNU/Linux, lorsqu'un processus doit modifier votre système, une confirmation vous est généralement demandée. Ici, le terminal vous indique la nature des changements prévus et attend votre accord, soit en pressant simplement [Enter], soit “O”(la lettre, pas le chiffre) pour accepter… soit “n” pour refuser.

Si vous acceptez les changements, vous verrez le processus complet de téléchargement, de configuration et d'installation des paquets concernés. Puis, le terminal vous “rendra la main” en affichant de nouveau l'invite de commande :

Voilà, vous venez de mettre votre système à jour depuis votre console :-D

Alors après on peut s'amuser car les commandes seules… c'est vrai que c'est pas bien utile.. en revanche, les commandes associées dans un “script” permettent l'automatisation d'une suite de processus. Les script les plus compliqués sont les programmes.
Le handymenu est un script écrit en langage “python” qui possède d'autres commandes que “bash” par exemple.

Exemples complets

Cette section est là pour détailler certaines commandes, préciser leurs options et leur utilisation.

source : tutoriel de coyotus
Document récapitulatif pour la commande 'cd' par Mélanie : commande_cd_par_melanie.odt

Sur un ordinateur en général on se déplace de dossier en dossier ou répertoire c'est a dire par exemple de “documents” on va dans le dossier “lettres” et dans celui-ci on se déplace encore dans le dossier “lettres-importantes” par exemple.

Donc pour se déplacer il suffit de lui dire “change de répertoire suivi du chemin ou vous voulez aller”.

Et c'est là que l'on est surprit d'apprendre qu'il suffit de lui dire où aller, c'est presque aussi simple. Le hic c'est que Mr Terminal ne parle pas français, donc on lui demande en anglais. De plus Mr Terminal n'aime pas les espaces et pour terminer, si on devait à chaque fois marquer les mots complet on passerait son temps à écrire.
Alors Mr Terminal a simplifié : il parle anglais en initiales.

Passons à l'adresse de “là où on veut aller”
Je vous explique en gros : votre système est découpé ainsi, il commence toujours par un slash “/” donc pour indiquer le chemin on peut commencer par un slash.
Par exemple, on sait que le dossier “Documents” se trouve dans ma session “identifiant” située dans “home”, donc on peut par exemple lui dire “slash maison ma session mes documents”, mais là comme il n'aime pas les espace il va pas obéir.
Donc pour séparer les répertoires on utilise encore des slash (encore ?) (oui encore !)
ce qui pourrait donner “slash maison slash ma session slash documents
Là il aime déjà mieux mais bon ce n'est pas encore tout à fait ça, il veut de l'anglais Mr terminal donc on traduira ”change le répertoire slash maison slash session slash documents” par

cd /home/user/Documents

plus court non ? ;-)

Donc petit rappel

  • cd = change directory (change de répertoire en anglais).
  • “/” pour marquer la racine de votre système et le passage de dossiers en dossiers.
    Et entre les slashs, le nom des dossiers par lesquels on passe en faisant attention de respecter les minuscules et les majuscules.
  Hé mais comment je sais le nom de mes dossiers moi ?

avec une autre commande aussi simple que cd; “l” (la lettre L en minuscule). En bref on voudrait voir ce qui se trouve dans le répertoire ou l'on se trouve. On a envie de lui dire “liste moi ça”, en anglais donc “list” et l'initiale de list est donc “l”. Donc on tape “l” et il affichera tout ce qui se trouve dans le dossier les sous dossier seront différencié d'un slash pour vous dire qu'il sont des sous dossier histoire de pas essayer de se déplacer dans un fichier.

exemple:

user@linux ~$ l
dossier1/ dossier2/ dossier3/ etc/ fichier1 fichier2 fichier3 executable1*

Il est même capable de vous dire si un fichier est exécutable grâce à un astérisque *, il est trop fort ce Mr Terminal.

Bon et bien maintenant on va optimiser tout ça, parce que savoir se déplacer c'est bien beau mais c'est pas spécialement plus rapide que de cliquer dans une navigateur de fichier.

Donc on sait que pour naviguer on utilise la commande “cd” mais en quoi est ce plus rapide via le terminal ?
Et bien le fait de pouvoir aller en une fois là ou on veux, par exemple si je veux aller directement à la racine de mon disque, je fais simplement un cd slash

cd /

Mais comment je retourne dans mon home, je ne vais quand même pas taper cd /home/user, non non, souvenez vous du début quand j' disais que “~” voulait dire que vous étiez dans votre dossier personnel. Donc il suffit de taper “cd ~” et on se retrouve directement de là ou l'on a commencé.
Gagnons encore du temps, pour vous prouver que Mr Terminal fait bien les choses, si vous voulez revenir dans votre dossier “home” un simple “cd” tout court suffit.

De plus si on ce déplace dans un sous répertoire il est inutile de lui indiquer le chemin depuis la racine de votre système qui est slash mais directement par le nom de celui-ci. Dans le cas de votre dossier “Documents” vous ne ferez pas:

cd /hom/user/Documents

mais

cd Documents

Autocomplétion

Il existe une fonction dans le terminal qui s'appelle l'auto-complétion, mais késako me direz vous…
Et bien c'est simple : c'est une fonction pour les fainéant du clavier, ce qui revient à compléter un mot par la touche tabulation ou [TAB] du clavier.
Par exemple si vous voulez aller dans votre dossier Documents, vous n'écrirez pas

cd Documents

mais

cd D + [TAB]

ce qui complétera le mot pour vous

Mais si plusieurs sous-dossiers commence par D me direz-vous comment on fait ?

Simple on appuie 2 fois sur [TAB] pour avoir la liste des dossier qui commence par D exemple:

cd D + [TAB] + [TAB]
Document    DossierX

Il vous listera les possibilité et alors pour corriger la commande, il suffit de corriger jusqu'à la lettre qui différencie les 2 sous-dossiers, ici “Documents” et “DossierX” on en commun le D et le o donc on ajoute la troisième lettre qui est le c pour différencier “DossierX” de “Documents” donc

cd Doc + [TAB]  = cd Documents

Et il complétera la commande, et ainsi vous n'aurez plus qu'a confirmer par enter pour effectuer l'action.

Maintenant il existe une petite astuce pour revenir dans le répertoire précédent d'un dossier, il ne vous faudra pas taper le chemin complet mais juste deux points, exemple:

cd ..

Et vous vous retrouverez dans le dossier précédent ou supérieur, c'est tout simplement magique non ?

Rappel

Pour trouver le chemin d'un fichier/dossier, 2 possibilités s'offre à vous:

  1. utiliser un chemin relatif, c'est à dire de rentrer le nom du fichier par rapport au dossier où vous êtes.
  2. utiliser le chemin absolu, c'est à dire que vous rentrez le nom du dossier, à partir de la racine de votre disque dur, si ce fichier est dans votre dossier personnel, vous utiliserez cd /home/user/ledossier

Voilà j'espère qu'après cette initiation, la navigation via le terminal n'aura plus trop de secret pour vous.

Lister les fichiers

source : tutoriel de coyotus

Dans le cours précédent, je vous ai expliqué comment naviguer dans votre système, mais à présent, je vais vous indiquer comment lister les fichiers présents sur votre système et en obtenir des informations grâce à la commande “ls” (lister).

La commande “ls” est une commande simple et fort utile qui veut simplement dire “list segment”, c'est un peu l'équivalent de “dir” (directory) pour ceux qui ont connu le “MS-DOS” ou l'invite de commande sous Windows.

La commande de base est “ls” et si vous la taper dans votre terminal vous verrez ceci

coyotus@Debian ~ $ ls
attente  audio.wav  Bureau  colorpng.sh  crackme32  Documents  dwhelper  Images  mame  Musique  Public  Python-3.1.2  Téléchargements  tmp  Vidéos  vmware

Dans le cours précédent on a vu qu'on pouvait lister avec simplement “l” (L) mais en fait il s'agit d'un alias utilisé par défaut sur certaine distributions, généralement basée sur Ubuntu.
En fait “l” est un alias de “ls -CF” vous remarquerez que sur ubuntu que vous fassiez “l” ou “ls -CF” donne exactement la même réponse, c'est pourquoi si vous en avez la possibilité rajoutez l'alias dans votre .bashrc si elle n'y est pas par défaut.

Pour rappel l'option “-F” permet d'ajouter un caractère à chaque nom de fichier pour indiquer son type:

  • “/” pour les dossiers
  • “*” pour les exécutables

Il y a deux options intéressantes dans la commande “ls” la première est l'option “-a” et la seconde l'option “-l”.

  • L'option “-a” signifie “–all” traduit de l'anglais “tout” qui permet d'afficher les fichiers et dossiers cachés, plus rapide que d'aller en graphique dans le dossier et de cocher l'option afficher les fichiers et dossier caché.
    Les fichiers cachés sont généralement représenté avec un point devant leurs noms (.) ce qui permet de les différencier par rapport au dossiers “normaux”.
  • La seconde option “-l” liste les fichiers sous format de “listing”. La grande force de cette option c'est qu'elle donne des informations sur le fichier telles que la taille en octet, le propriétaire du fichier, les droits du fichier, et la date de la dernière modification du fichier.
    Cette option est donc plus rapide que de faire un clic droit sur le fichier et ensuite de cliquer sur propriétés.

exemple:

coyotus@Debian ~ $ ls -a
.  dossier .dossier-caché fichier .fichier-caché
.. dossier1 .dossier-caché fichier1 .fichier-caché

coyotus@Debian ~ $ ls -l
drwxr-xr-x  8 coyotus coyotus    4096 2010-12-09 06:35 Bureau

Pour l'option “-a” vous verrez “.” et “..”. , cela peux vous intriguer, mais rappeler vous l'utilisation des deux point avec la commande “cd”.
Le premier représente en fait le dossier actuel, et “..” représente le dossier parent, c'est-à-dire le dossier précédent ou supérieur dans l'arborescence.

:!: si les points de l'option “-a” vous troublent, sachez que vous pouvez utiliser l'option “-A” avec le a en majuscule qui donnera la même réponse mais sans les point si dérangeant.

Pour l'option “-l” vous ne verrez rien de plus que ce qu'il est précisé plus haut :

  1. Droits sur le fichier.
  2. Nombre de liens physiques.
  3. Nom de la personne propriétaire du fichier.
  4. Groupe auquel appartient le fichier. En général nom du groupe est même que celui du propriétaire.
  5. Taille du fichier, en octets.
  6. Date de dernière modification.
  7. Nom du fichier (ou dossier).

L'option “-R” permet de lister récursivement le contenu des sous-répertoires, si vous le faite, vous aurez un énorme flood parce qu'il vous indiquera tout ce que contient les répertoires et les sous-répertoires et les sous-sous-répertoires etc..
Pour cette option il est parfois préférable d'envoyer la réponse dans un fichier texte avec cette commande:

ls -R > liste.txt

À présent on va exploiter la fonction “-l” pour en obtenir des informations plus détaillées, c'est a dire ajouter à l'option “-l” un “h” un “t” un “a” bref le mieux est de connaître le manpage tant les possibilités sont nombreuses.
Le manpage est disponible en français à cette adresse: http://pwet.fr/man/linux/commandes/ls

  • la fonction “-h”, –human-readable
    Ajouter une lettre indiquant l'unité de taille, comme M pour méga-octets.
  • la fonction “-t”, –sort=time
    Trier le contenu des répertoires en fonction de la date et non pas en ordre alphabétique.Les fichiers les plus récents sont présentés en premier.
  • la fonction “-a”, –all
    Afficher tous les fichiers des répertoires, y compris les fichiers commençant par un `.'.

exemple:

coyotus@Debian ~ $ ls -laht
total 6,9M
-rw-------  1 coyotus coyotus 505K 2010-12-09 13:35 .xsession-errors
drwx------  2 coyotus coyotus 4,0K 2010-12-09 13:34 .gconfd
drwx------  8 coyotus coyotus 4,0K 2010-12-09 13:25 .purple
(....liste trop longue pour être quotée complètement.)

Maintenant que vous avez une base d'utilisation de la commande “ls”, je vais vous présenter la façon de lister des fichier en gagnant du temps.
En graphique pour lister les fichier présent dans un dossier, vous devez vous rendre dans ce dossier et ensuite sélectionner l'affichage en liste dans les option d'affichage ou scroller avec votre souris.
Avec la commande “ls”, il suffit de lui indiquer le chemin du dossier à lister depuis là ou vous êtes.
exemple:

coyotus@Debian ~ $ ls /
bin  boot  cdrom  dev  etc  home  initrd.img  lib  lost+found  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var  vmlinuz

Sans oublier que vous pouvez toujours utiliser les option “-a” ,“-l”, “-lh”, “-lt” etc…

Créer des dossiers et des fichiers

source : tutoriel de coyotus

Après avoir vu comment naviguer dans votre système et lister les fichiers et dossiers, nous allons explorer les différentes manières de manipuler les fichiers et les dossiers. Nous allons tout d'abord commencer par la création de ceux-ci.
Pour créer des dossiers et des fichiers nous allons utiliser plusieurs commandes comme, “mkdir”, “touch”, et “nano”.

Explication des commandes:

  • mkdir : Crée un répertoire (make a directory en anglais)
  • touch : est une commande Unix standard permettant de modifier le timestamp de dernier accès et de dernière modification d'un fichier. Cette commande permet également de créer un fichier vide.
  • Nano : est un éditeur de texte pour les systèmes Unix et dérivés
  • cp : permet de copier un fichier.

mkdir

Lorsque vous créez un répertoire, il aura par défaut les permissions d'accès du créateur c'est a dire en général 777 ce qui équivaut à la lecture et l'écriture, de même que si vous créer un répertoire dans la partie de votre système demandant des droits administrateurs, il aura les mêmes droits administrateurs.
La commande est simple si vous voulez créer un répertoire dans celui où vous vous trouvez, vous n'aurez qu'a taper la commande suivi du nom du répertoire.

mkdir nom_du_répertoire

et pour la partie de votre système demandant des droits administrateurs:

sudo mkdir nom_du_repertoire

il n'y a que 2 options a retenir pour “mkdir” c'est l'option “-p” et “-v” (verbal ou verbeux).

  • “-p” crée les répertoire parents si ils n'existent pas
  • “-v” rajoutera une notification écrite de ses actions, par exemple:
    coyotus@Debian ~ $ mkdir -v test
    mkdir: création du répertoire «test»

touch

touch permet de créer un fichier vide, mais pas seulement, elle permet aussi de modifier l'horodatage d'un fichier.

Exemple pour créer un fichier vide, tapez simplement:

touch nom_du_fichier

et il sera créé dans le répertoire où vous vous trouvez. Naturellement, pour créer le fichier ailleurs que dans le répertoire où vous vous trouvez, indiquez-lui simplement le chemin :

touch /home/arp/Documents/fichier_texte

Les options existantes sons plus nombreuses que pour mkdir. Ici les option sont -a, -c, -d , -f, -m -r et -t

  • -a, –time=atime, –time=access, –time=use
    Modifier uniquement l'heure d'accès.
  • -c, –no-create
    Ne pas créer les fichiers n'existant pas.
  • -d, –date date
    Utiliser la date indiquée (qui peut se présenter sous plusieurs formes) à la place de la date actuelle. La date peut contenir des mois littéraux, des indications de fuseau horaire, les abréviations `am' et `pm', etc…
  • -f
    Sans effet - uniquement pour assurer la compatibilité avec la version BSD de touch.
  • -m, –time=mtime, –time=modify
    Changer uniquement l'heure de modification.
  • -r, –file fichier-référence
    Utiliser les horodatages du fichier_référence à la place de l'heure actuelle.
  • -t MMJJhhmm[[SS]AA][.ss]
    Utiliser la date (Mois, Jour, Heure, Minute, éventuellement Siècle et Année, éventuellement Seconde) à la place de la date actuelle. Notez que cette option viole la syntaxe Posix.

Rassurez-vous, dans un premier temps, en tant que débutant vous n'utiliserez presque jamais la commande touch, mais elle s'avère très utile pour créer un fichier de configuration dans un script par exemple. Pour vous donner un exemple concret, on peux créer le fichier vide qui servira plus tard pour y écrire des options de configuration.

On ne va pas s'attarder sur le changement de date et d'heure d'accès au fichier, on utilise très peux ces fonction lorsqu'on débute en ligne de commande.

changer la date et l'heure d'un fichier

Exemple:

Mettre à la date et à l'heure actuelle.

touch fichier

Résultat:

┌─[icef0x]──[debian]:~$
└──>>ls -l file
-rw-r--r-- 1 icef0x icef0x 1545 nov 24 06:32 file
┌─[icef0x]──[debian]:~$
└──>>touch file
┌─[icef0x]──[debian]:~$
└──>>ls -l file
-rw-r--r-- 1 icef0x icef0x 1545 nov 25 20:03 file
┌─[icef0x]──[debian]:~$
└──>>

Mettre à fichier à une date antérieure.

touch -d $date file

Résultat:

┌─[icef0x]──[debian]:~$
└──>>touch -d 2004-02-29 file
┌─[icef0x]──[debian]:~$
└──>>ls -l file
-rw-r--r-- 1 icef0x icef0x 1545 fév 29  2004 file

nano

La commande “nano” vous sera plus utile lorsque vous débutez en ligne de commande. Certes les confirmés vous diront des “vi” ou “vim” par ci des “emacs” par là mais pour débuter “nano” est idéal, un peu plus lent que les autres voire moins pratique vous dira-ton, mais il ne faut pas le négliger pour autant.

L'usage est très simple, vous ouvrez ou vous créer le fichier à éditer avec la commande:

nano fichier

Si le répertoire où se trouve le fichier à éditer demande des droits “root”, faite “su” ou rajouter “sudo” :

sudo nano fichier

Une fois dans l'éditeur, utiliser les flèches de votre clavier pour vous placer dans la zone de texte à éditer et faites vos modifications ou ajouts. Une fois fait, vous enregistrez avec le raccourcis clavier Ctrl + X. Cette commande demande la sortie de l'éditeur : si le fichier n'a pas été modifié, vous quittez simplement l'éditeur. Si le fichier à été modifié il vous sera demandé si vous accepter les modifications, à laquelle vous répondrez par oui 'O' ou non 'n'.
Ensuite, il vous sera demandé d'appuyer sur la touche [Enter] pour confirmer l'écriture, une fois que vous aurez appuyé sur [Enter], il ne sera plus possible de revenir en arrière, pensez donc à créer un fichier de sauvegarde avec l'option “-B” en majuscule qui veux dire “backup”.

Petit rappel des commandes:

  • Ctrl + G : afficher l'aide
  • Ctrl + K : couper la ligne de texte (et la mettre dans le presse-papier)
  • Ctrl + U : coller la ligne de texte que vous venez de couper
  • Ctrl + C : afficher à quel endroit du fichier votre curseur est positionné (numéro de ligne…)
  • Ctrl + W : rechercher dans le fichier
  • Ctrl + O : enregistrer le fichier (écrire)
  • Ctrl + X : quitter nano

Pour aller plus loin avec nano je vous invite à lire le tuto présent sur le site du zero qui approfondi encore plus l'utilisation de nano, ainsi que le manuel officiel.

La commande 'cp'

La commande “cp” permet de copier des fichiers rapidement, c'est l'équivalent de la fonction “copier-coller”.
La syntaxe est la suivante

cp fichier d'origine chemin de destination

Exemple :

cp fichier.doc Documents/dossier/quelconque/fichier.doc

Pour copier un répertoire, il faut utiliser la commande récursivement, c'est a dire le dossier et tout ce qu'il contient. “-R, -r, –recursive : copie les dossier récursivement.”
Exemple

cp -r dossier Documents/dossier/

De même il est possible de préserver les attributs d'un fichier ou répertoire avec les options “-p” ou “–preserve”, afin de garder les droits du propriétaire du fichier (exemple timestamp).

icef0x@crunchbang ~ $  ls -l /etc/fstab
-rw-r--r-- 1 root root 1723 fév 28  2012 /etc/fstab
icef0x@crunchbang ~ $  cp -p /etc/fstab .
icef0x@crunchbang ~ $ ls -l fstab 
-rw-r--r-- 1 icef0x icef0x 1723 fév 28  2012 fstab
icef0x@crunchbang ~ $  rm fstab 
icef0x@crunchbang ~ $  cp /etc/fstab .
icef0x@crunchbang ~ $ ls -l fstab 
-rw-r--r-- 1 icef0x icef0x 1723 déc 30 09:11 fstab

Dans cet exemple on voit que la date de création du fichier est resté la même avec l'option -p

(…) en construction

initiation_au_terminal.txt · Dernière modification: 2016/08/24 18:58 (modification externe)