Linux pour l’utilisateur¶
Pages en cours d'écriture ... |
Comme sous Windows, on peut faire beaucoup de manipulations avec le bureau fourni par Linux. Cet interface graphique permet de lancer des logiciels ; copier, déplacer, renommer, supprimer ... des objets et bien d'autres choses encore. Cependant beaucoup de nos utilisateurs dont le cœur de métier n'est pas l'informatique se retrouvent un jour ou l'autre à devoir lancer la fenêtre Terminal et à passer des commandes Linux voire à entrer dans le code d'un ensemble de commandes.
C'est pour eux que ces pages tentent d'expliciter les commandes et leurs options les plus couramment utilisées.
Ces pages s'appuient sur :
- les diapositives des supports de cours de la plateforme bioinfo de Genotoul
- le cours Unix réalisé par la plateforme Migale en 2005 à la SGQA
- le document "B.A.-ba pour l'utilisation d'Unix au CTIG" mis à jour en 2010
Ces 3 cours ont permis de réaliser une synthèse qui a été utilisée lors de la migration d'AIX (Unix IBM) vers Linux en 2012 pour les utilisateurs du CTIG.
Ces pages sont là pour valoriser le travail effectué lors de la migration AIX->Linux et pour aider ceux qui les liront ;-)
- Linux pour l’utilisateur
- Linux, les objets
- Linux, manipulations des objets
- Linux, le contexte
Linux, les objets¶
Se déplacer dans l'arborescence¶
|---usr | |---etc | |---tmp | |---temp / --| |---mdupont---| | | |---cmp |---home---| |---brouillons | | |---doc-----|---encours | |---testutl---| |---archives | |---donnees |---travail | |---projet1
Les objets sont répartis sous forme d'une arborescence. Pour faire simple, les répertoires contiennent des fichiers et des répertoires. Les premiers répertoires de l'arborescence (usr, etc, tmp, home ...) sont nommés les file-system, on peut les assimiler à des disques virtuels. Tout démarre à la racine (ou root) symbolisé par le caractère "/".
Commande pwd - où suis-je ?¶
Avant de savoir où aller il faut connaître où l'on est. La commande pwd
(print working directory) affiche le chemin du répertoire courant.
# pwd /home/testutl/doc/encours
Le chemin affiché est le chemin absolu car il commence à la racine ou autrement dit par le caractère "/".
On peut utiliser des chemins relatifs qui démarrent à partir du répertoire courant, exemple : doc/archives ceci à partir de /home/testutl.
Commande cd - changement de répertoire¶
La commande cd
(change directory) permet de se déplacer dans l'arborescence, on précise le répertoire où l'on veut aller soit avec le chemin absolu soit avec le chemin relatif. Si on est perdu ... la commande sans destination ramène à la maison, sous son répertoire de base (ou home directory), celui où l'on est arrivé après s'être connecté.
# pwd /home/testutl # cd doc/archives # pwd /home/testutl/doc/archives # cd /home/testutl/doc/encours # pwd /home/testutl/doc/encours # cd # pwd /home/testutl
Les caractères ".." permettent de remonter au niveau supérieur de l'arborescence dans le répertoire "père".
# pwd /home/testutl/doc # cd encours # pwd /home/testutl/doc/encours # cd ../archives # pwd /home/testutl/doc/archives
Connaître les objets¶
Les options d'un commande se placent après le nom de la commande, elles sont précédées du caractère "-". La plupart du temps l’ordre des options dans la commande n’a pas d’importance, la commande ls –lh
est équivalent à ls –hl
. Les options sont cumulatives.
Attention : Linux fait la différence entre les majuscules et les minuscules (option -r différente de l'option -R).
Commande ls¶
Pour voir ce qu'un répertoire contient on utilise la commande ls
. Ses options précisent les caractéristiques des objets ou leur mode d'affichage.
-a
: affiche les fichiers cachés
-l
: utilise le format long
-h
: taille dans un format lisible par un humain (ex: 1K, 234M ou 2G)
-t
: trie sur la date et l'heure -r
: inverse l'ordre-R
: applique la commande sur tous les sous-répertoires de l'arborescence. -d
: affiche les caractéristiques du répertoire et pas son contenu
# ls Aeffacer doc documents.txt donnees # ls -l total 48 -rw-r--r-- 1 testutl ugen 27053 5 août 16:08 Aeffacer drwxr-xr-x 5 testutl ugen 4096 5 août 14:58 doc -rw-r--r-- 1 testutl ugen 9866 5 août 16:07 documents.txt drwxr-xr-x 2 testutl ugen 4096 5 août 16:06 donnees
L'affichage se fait avec l'ordre aplhabétique par défaut.
Les caractéristiques sont : type d'objet (- pour fichier, d pour répertoire ...), droits (ex: rwxr-xr-x), nombre de liens, propriétaire, groupe, taille en octets, date de dernière mise à jour et nom de l'objet.
# ls -lh total 48K -rw-r--r-- 1 testutl ugen 27K 5 août 16:08 Aeffacer drwxr-xr-x 5 testutl ugen 4,0K 5 août 14:58 doc -rw-r--r-- 1 testutl ugen 9,7K 5 août 16:07 documents.txt drwxr-xr-x 2 testutl ugen 4,0K 5 août 16:06 donnees # ls -ltr total 48 drwxr-xr-x 5 testutl ugen 4096 5 août 14:58 doc drwxr-xr-x 2 testutl ugen 4096 5 août 16:06 donnees -rw-r--r-- 1 testutl ugen 9866 5 août 16:07 documents.txt -rw-r--r-- 1 testutl ugen 27053 5 août 16:08 Aeffacer # ls -a . .bash_profile doc .gconfd .gvfs .local .pulse-cookie .Xauthority .. .bashrc documents.txt .gnome2 .ICEauthority .mozilla .recently-used.xbel Aeffacer .cache donnees .gnote .icons .nautilus .ssh .bash_history .config .emacs .gnupg .imsettings.log .nx .themes .bash_logout .dbus .gconf .gtk-bookmarks .kshrc .pulse .thumbnails
Les fichiers cachés sont les fichiers dont le nom commence par le caractère ".", ce sont la plupart du temps des fichiers contenant des paramétrages de logiciels.
# ls -lhR .: total 48K -rw-r--r-- 1 testutl ugen 27K 5 août 16:08 Aeffacer drwxr-xr-x 5 testutl ugen 4,0K 5 août 14:58 doc -rw-r--r-- 1 testutl ugen 9,7K 5 août 16:07 documents.txt drwxr-xr-x 2 testutl ugen 4,0K 5 août 16:06 donnees ./doc: total 12K drwxr-xr-x 2 testutl ugen 4,0K 5 août 14:58 archives drwxr-xr-x 2 testutl ugen 4,0K 5 août 16:26 brouillons drwxr-xr-x 2 testutl ugen 4,0K 5 août 16:27 encours ./doc/archives: total 0 ./doc/brouillons: total 16K -rw-r--r-- 1 testutl ugen 8,4K 5 août 16:26 fichier1 -rw-r--r-- 1 testutl ugen 33 5 août 16:26 fichier2 ./doc/encours: total 0 -rw-r--r-- 1 testutl ugen 0 5 août 16:27 notes.txt ./donnees: total 0
Sur beaucoup de Linux, la commande ll
est un alias de la commande ls -lh
Pour en savoir plus sur la commande, tapez : ls --help
Linux, manipulations des objets¶
On peut être très efficace en utilisant des commandes, le prix à payer est d'avoir une bonne mémoire et/ou les utiliser assez souvent. C'est pour palier à ces contraintes que les interfaces graphiques existent et on peut être efficace aussi en les utilisant. Cependant lorsqu'on doit automatiser des actions, le plus naturel est d'utiliser des commandes et des enchainements de commandes, nommés script.
Création/suppression d'objet¶
Commande touch¶
La commande touch crée un fichier vide s'il est inexistant ou met à jour la date de dernière mise à jour d'un objet déjà existant.
# touch fichier1 # ll f* -rw-r--r-- 1 testutl ugen 0 7 août 16:41 fichier1
Commande mkdir - création d'un répertoire¶
La commande mkdir crée un répertoire.
# mkdir repertoire1 # ls Aeffacer Desktop doc documents.txt donnees fichier1 repertoire1
L'option -p permet de créer une arborescence de répertoires.
# mkdir -p repertoire2/sousRep2 # ls -R repertoire2 repertoire2: sousRep2 repertoire2/sousRep2:
Commande rm - suppression¶
La commande rm (remove) supprime un ou des objets.
Le fichier documents.txt a été effacé.
# ls Aeffacer Desktop doc documents.txt donnees fichier1 repertoire1 # rm doc* rm: impossible de supprimer « doc »: est un dossier # ls Aeffacer Desktop doc donnees fichier1 repertoire1
Le répertoire doc et toute son arborescence seront supprimés avec l'option -R.
# rm -R doc # ls Aeffacer Desktop donnees fichier1 repertoire1
Attention, pas de corbeille avec la ligne de commande ! Utiliser l'option -i pour demander une confirmation.
# rm -i fichier1 rm : supprimer fichier vide « fichier1 » ? o # ls Aeffacer Desktop donnees repertoire1
Commande cp - copie¶
La commande cp permet de copier un fichier ou un répertoire vers un espace cible, elle permet aussi de renommer le fichier.
Copie du fichier ficDepart
dans le répertoire donnees
avec le nouveau nom Data01.csv
.
# cp ficDepart donnees/Data01.csv # ls -R .: Aeffacer donnees ficDep1 ficDepart repertoire1 ./donnees: Data01.csv ./repertoire1:
Copie du répertoire
donnees
et de son contenu dans le répertoire repertoire1
.# cp -R donnees/ repertoire1/ # ls -R .: Aeffacer donnees ficDep1 ficDepart repertoire1 ./donnees: Data01.csv ./repertoire1: donnees ./repertoire1/donnees: Data01.csv
Avec l'option -p, les caractéristiques des objets à copier seront préservées (propriétaire, groupe, date... ).
Commande mv - déplacement/renommage¶
La commande mv
déplace les objets, elle sert aussi à renommer un objet.
Déplacement du répertoire Data01
et de son contenu dans le répertoire repertoire1
et renommage de ficDepart en FicResult-130812.
# ll total 44K -rw-r--r-- 1 testutl ugen 27K 7 août 16:43 Aeffacer drwxr-xr-x 2 testutl ugen 4,0K 12 août 13:11 Data01 -rw-r--r-- 1 testutl ugen 33 12 août 12:45 ficDepart drwxr-xr-x 4 testutl ugen 4,0K 12 août 13:10 repertoire1 # mv Data01/ repertoire1/ mv ficDepart FicResult-130812 # ll -R .: total 40K -rw-r--r-- 1 testutl ugen 27K 7 août 16:43 Aeffacer -rw-r--r-- 1 testutl ugen 33 12 août 12:45 FicResult-130812 drwxr-xr-x 5 testutl ugen 4,0K 12 août 13:11 repertoire1 ./repertoire1: total 12K drwxr-xr-x 2 testutl ugen 4,0K 12 août 13:11 Data01 ./repertoire1/Data01: total 8,0K -rw-r--r-- 1 testutl ugen 33 12 août 13:11 fic01 -rw-r--r-- 1 testutl ugen 33 12 août 13:11 fic02
les facilitateurs de commande¶
Il est utile de connaître les facilitateurs d'utilisation de commande tels que les caractères spéciaux ou la complétion.
Les caractères spéciaux¶
Quelques caractères ont une signification particulière pour Linux :
caractère | signification | exemple |
---|---|---|
.. | répertoire père | cd ../archives |
. | répertoire courant (celui où l’on se trouve) | ls -ld . |
~ | répertoire de base (home directory) | cd ~/doc |
Les jokers ou métacaractères | ||
* | remplace 0,1,des caractères dans les noms des fichiers | ls Data* |
? | remplace un caractère dans les noms des fichiers | ls bov?.seq |
[ ] | remplace un caractère parmi une sélection | ls [123]* |
Les redirections | ||
> | dirige le résultat de la commande au début d'un fichier | date > liste01 |
>> | ajoute le résultat de la commande à la fin d’un fichier | ls -l >> liste01 |
2> | dirige les messages d’erreurs de la commande dans un fichier | ls ficTest 2> list-err |
&> | pour rediriger en même temps la sortie standard et la sortie erreur |
ls -l ficTest? &> suivi01 |
| | passe le résultat de la commande à la commande suivante | ls -l | more |
Les commandes | ||
& | permet de lancer une commande en arrière plan, la ligne de commande n’est pas bloquée | xterm & |
; | enchaine les commandes sur la même ligne | cd ~;pwd |
La complétion¶
Le shell permet à l'utilisateur de dialoguer avec le système. Quand vous ouvrez une fenêtre Terminal, vous êtes dans un shell qui attends votre commande. Le shell interprète les commandes, les exécute, gère l’environnement (variables, alias) et les ouvertures/fermetures de connexion.
Il existe plusieurs types de shell. Sous Linux, le shell bash est utilisé par défaut.
L’utilisation du shell est plus confortable notamment avec la complétion, en effet le shell bash peut deviner une commande ou un nom de fichier s'il est unique. Il peut compléter automatiquement les noms de fichiers que vous êtes en train de saisir sur la ligne de commande. Il suffit de taper le début du nom de fichier suivi d'une pression sur la touche <tabulation> ou <tab>.
En cas de conflit (plusieurs noms qui commencent de la même façon), donnez alors un caractère supplémentaire ou plusieurs.
Commande history¶
La commande history
affiche l'ensemble des commandes en mémoire liées au shell en cours d'exécution.
Les flèches verticales permettent un rappel séquentiel des dernières commandes. Il est alors possible soit de valider pour exécuter à nouveau une commande précédemment appelée, soit de la modifier avant validation.
On peut aussi rappeler et exécuter une commande par son numéro d'historique :
# history 144 cd 145 pwd 146 cd doc/archives 147 pwd 148 cd .. 149 pwd 150 cd encours 151 pwd 152 cd ../archives 153 pwd # !146 cd doc/archives # pwd /home/testutl/doc/archives
Pour interrompre une commande en cours d'exécution, on envoie un signal via l'appui simultané sur les touches Contrôle et C.
Conseils pour nommer les objets¶
Quelques conseils pour se simplifier la vie notamment en cas d’échange de fichiers avec d’autres systèmes d’exploitation :- ne pas utiliser de caractères accentués,
- ne pas utiliser le caractère espace car il s'agit du caractère séparateur. Sinon mettre le nom comprenant un blanc entre le caractère double-quote ( " ),
- utiliser uniquement les caractères alphanumériques, n'insérez pas les caractères comme / et \ ou !
- Linux fait la différence entre les lettres minuscules et majuscules. Ainsi, les noms « Resultat », « RESULTAT » et « resultat » sont tous les trois différents,
- la taille d'un nom de fichier est de 256 caractères maximum,
- ne pas hésiter à utiliser des extensions (suffixes) logiques en fonction du type de fichier. Exemple : projet.out pour le résultat,
- utiliser le point « . », le tiret « - « ou le souligne « _ » ainsi que la majuscule comme délimiteur dans un nom de fichier. Exemple : Data-T012012 ou bovResultat2013err.csv .
A vous de jouer¶
A la fin de cette séquence d'exercices, vous êtes en mesure de vous déplacer correctement dans l'arborescence du serveur, connaître les objets que vous voyez, vous savez utilisez la complétation et utilisez les commandes élémentaires de manipulation des objets.