Environnement de travail
Il vous faut ouvrir une session sur votre poste de travail. Vous pouvez utiliser soit le
mode console soit l'interface graphique.
Dans les deux cas, vous allez travailler « en ligne de commande ».
Manipulations
Étape n°0 : commandes de base
Voici quelques commandes de base :
pwd : affiche le chemin d’accès au répertoire courant
man : le manuel
gcc : compilateur (transforme un fichier source en un fichier
exécutable)
vi, vim : éditeurs de texte
clear : efface l’écran
echo : affiche une ligne de texte
date : affiche et modifie la date et l’heure
cal : affiche le calendrier
bc : calculatrice
cd : permet de se déplacer dans une arborescence
ls : liste le contenu d’un répertoire
ls -lR : affiche une arborescence et ses caractéristiques
rm : supprime un fichier
rm -rf : force la destruction d’une arborescence (rmdir)
cp : permet la copie de fichier (voir aussi cp -a)
mv : déplace ou renomme une partie d’une arborescence
mkdir : crée un répertoire dans une arborescence
1 LINUX_TP0.doc
du : affiche une arborescence et sa taille (du -h)
df : fournit la quantité d’espace occupé par les systèmes de fichiers
(df -Th)
file : affiche le type des fichiers
type : indique le type pour une commande
locate : localise un fichier
find : recherche des fichiers sur le système
whereis : permet de trouver l’emplacement d’une commande
whatis : donne une description d’une commande
which : donne le chemin complet d’une commande
cat : affiche et/ou concatène le(s) fichier(s) sur la sortie standard
od : affiche le dump d’un fichier
wc : compte les caractères, les mots et les lignes en entrée
more : affiche à l’écran l’entrée standard (page par page)
less : idem avec possibilité de retour en arrière
cut : permet d’isoler des colonnes dans un fichier
expand : transforme les tabulations en espace
head : affiche les n première lignes
join : joint les lignes de deux fichiers en fonction d’un champ
commun
sort : trie les lignes de texte en entrée
paste : concatène les lignes des fichiers
tail : affiche les n dernières lignes d’un fichier
tac : concatène les fichiers en inversant l’ordre des lignes
uniq : élimine les doublons d’un fichier trié
rev : inverse l’ordre des lignes d’un fichier
tr : remplace ou efface des caractères
grep : recherche des chaines de caractères dans des fichiers
2 LINUX_TP0.doc
Étape n°1 : arborescence de fichiers
Créer l’arborescence ~/tpos/tpos3
Se déplacer dans l’arborescence :
$ cd tpos/tpos3
Créer le répertoire temp :
$ mkdir temp
$ cd temp
Copier le fichier /etc/passwd dans le répertoire courant (désigné par un .) :
$ cp /etc/passwd .
Lister le contenu du répertoire :
$ ls
Remarque : le fichier passwd contient la liste des utilisateurs de la machine et le répertoire /etc contient
l’ensemble des fichiers de configuration de la machine (ce sont tous des fichiers textes ASCII)
Faire une copie de sauvegarde d’un fichier :
$ cp ./passwd ../[Link]
Renommer un fichier :
$ mv ./passwd ./[Link]
Visualiser le contenu d’un fichier texte ASCII :
$ more [Link]
$ cat [Link]
$ less [Link]
Rechercher un fichier dans son répertoire personnel :
$ find $HOME -name [Link] -print
$ find $HOME -name *.txt -print
Remarque : l’étoile * est un caractère joker qui a la particularité de remplacer n’importe quel caractère
autant de fois que nécessaire
3 LINUX_TP0.doc
Effacer un fichier :
$ rm [Link]
Remarque : l’option -f force la suppression (sans demander de confirmation) et celui-ci a été supprimé
de manière définitive !
Déplacer un répertoire :
$ mv $HOME/tpos/tpos3/temp $HOME
Déplacer un fichier :
$ mv $HOME/tpos/tpos3/[Link] $HOME
Effacer un répertoire :
$ rm -rf $HOME/tpos/tpos3
Remarque : Le répertoire (et tout son contenu avec l’option -r) a été supprimé définitivement !
Effacer un fichier :
$ rm $HOME/[Link]
Remarque : Il ne doit plus rester aucune trace (fichier ou répertoire) de cette manipulation sur votre
système.
Étape n°2 : les commandes
Il existe plusieurs types de commandes :
les commandes internes (au shell)
les commandes externes (donc des programmes)
les alias (voir plus loin)
Les commandes externes (donc des exécutables) sont généralement stockées dans un répertoire de nom
bin.
Il existe des exécutables dans :
le répertoire /sbin contient les commandes pour root
le répertoire /bin on trouve des commandes et des shells
4 LINUX_TP0.doc
le répertoire /usr/bin est le répertoire de base des programmes
Voici quelques commandes sur les commandes :
// Localiser une commande :
$ which cat
// Localiser l’exécutable, le source et la page de manuel d’une commande :
$ whereis file
// Rechercher le nom du fichier qui sera exécuté à l’appel de commande :
$ type -p strings
// Déterminer le type d’une commande :
$ type echo
$ type cat
$ type ll
// Obtenir de l’aide sur une commande :
$ man mkdir
$ help test
$ info pwd
// Rechercher de noms complets dans la base de données whatis :
$ whatis mkdir
// Rechercher des chaînes de caractères dans la base de données whatis :
$ apropos mkdir
// Lire la page d’introduction qui présente une section (ici la section 3 sur les Fonctions de bibliothèque) :
$ man 3 intro
// Obtenir de l’aide en précisant la section (ici la section 7 sur Le manuel d’administration) :
$ man 7 mailaddr
5 LINUX_TP0.doc
Remarque : Il existe d’autres sources d’informations qui sont les HowTo, les FAQ et les répertoires doc.
Les HowTo sont des textes qui expliquent comment faire une installation, une configuration ...
Les FAQ (Frequency Asked Questions ou Foire Aux Questions) sont des recueils de questions-réponses
les plus fréquemment posées.
Les documentations sont généralement archivées dans /usr/share/doc/.
Le terme alias signifie synonyme et permet créer de nouvelles commandes ou d’en redéfinir d’autres pour
obtenir des comportements différents.
// Lister les alias actuellement définis :
$ alias
// Créer un alias :
$ alias mot=commande
$ alias dir=’ls -alh’
$ dir
// Supprimer un alias :
$ unalias mot
$ unalias dir
Remarque : les alias nouvellement créés n’existent seulement pour cette session.
Étape n°3 : informations diverses
Obtenir quelques informations sur le système d’exploitation et l’utilisation qui en est faite.
// Afficher des informations sur le système :
$ hostname
$ uname –a
$ ifconfig
$ cat /etc/os-release
$ cat /etc/lsb-release
$ cat /etc/issue
6 LINUX_TP0.doc
// Afficher des informations sur le matériel :
$ cat /proc/cpuinfo
$ cat /proc/cpuinfo | grep -e "^\(vendor_id\|model name\|cpu\)"
$ cat /proc/meminfo
$ cat /proc/mtrr
$ dmesg
$ df
$ lspci
$ cat /etc/network/interfaces
# lsusb
# lshw
# dmidecode
Rappel : toute commande précédée de l’invite # nécessite les privilèges du super-utilisateur (root). Pour
“passer“ sous le compte super-utilisateur, on utilise la commande su pour ouvrir une session ou sudo pour
exécuter une simple commande. Pour revenir sous son compte, on tape la commande exit.
// Afficher des informations sur l’environnement de travail :
$ echo $SHELL
$ env
// Afficher des informations sur les utilisateurs :
$ whoami
$ who am i
$ logname
$ who
$ last
7 LINUX_TP0.doc
$ w
$ users
$ id
$ getent passwd
// Afficher des informations sur l’utilisation du système :
$ uptime
$ ps e
$ ps x
$ top (q pour quitter)
$ free
$ vmstat
$ history
// Afficher des informations sur la date et l’heure :
$ date
$ date +%x
$ date +%X
$ cal
$ cal 2016
8 LINUX_TP0.doc
Questions de révision
Question 1. Un chemin absolu commence toujours par ?
Question 2. Un chemin relatif commence par ? Citer les deux possibilités.
Question 3. Donner le chemin absolu de votre répertoire racine personnel.
Question 4. Je suis dans le répertoire /usr/bin/, quel est le nom de mon répertoire parent désigné par
.. ?
Question 5. Je suis dans le répertoire /usr/bin/, quel est le nom du répertoire courant désigné par . ?
Question 6. Dans quel répertoire suis-je après l’exécution de ces commandes ?
$ cd / ; cd etc ; cd ../usr ; cd ./bin
Question 7. Que contient la variable $HOME ?
Question 8. Quelle(s) est (ou sont) l’(es) erreur(s) dans cette commande ? $ cd/ETC
Question 9. Peut-on connaître la durée depuis laquelle le système fonctionne ?
Question 10. Qu’est-ce qu’un PID ?
Travail demandé
Exercice 1 : divers
Question 11. Donner l’option de la commande ls qui permet de lister une arborescence complète
(fichiers, répertoires et sous-répertoires).
Question 12. Quelle est la commande qui permet d’afficher le répertoire de travail dans lequel je suis ?
Question 13. Pourquoi le fichier .[Link] ne s’affiche-t-il pas lors d’un ls -l ?
Question 14. Quelle option de ls permettrait de l’afficher quand même ?
Question 15. Quelle est la version du noyau GNU/Linux de votre machine ?
Question 16. Quelle est la version de votre distribution Ubuntu ?
9 LINUX_TP0.doc
Exercice 2 : exploitation évoluée des commandes
L’objectif de cet exercice est de s’initier au rôle d’administrateur.
L’administrateur d’un système n’a pas les mêmes besoins qu’un simple utilisateur. Il est souvent amené
à:
automatiser des traitements longs (par des scripts) et à
exploiter les services offerts par le système (par les options des commandes)
La commande find permet d’effectuer des recherches approfondies dans une arborescence. Elle est
souvent utilisée, compte tenu de la richesse de ses critères, en frontal d’une autre commande, pour
procéder à la sélection de fichiers. On vous demande d’exploiter les « pouvoirs » de la commande find !
Il est donc indispensable de faire un : $ man find
Question 17. Donner la commande find qui permet de rechercher seulement les fichiers cachés dans
votre répertoire personnel.
Question 18. Donner la commande find qui permet de rechercher les fichiers de taille >1000 Koctets
dans votre répertoire personnel et afficher cette taille avec une unité adaptée (K, M ...).
Remarque : pour chaque résultat trouvé par find, il faut lui demander d’exécuter la commande du -h. Le
représentera chaque fichier trouvé : cela fait partie de la syntaxe de la commande find (ainsi que le n;).
Question 19. Donner la commande find qui permet de rechercher les fichiers qui ont été modifiés
depuis 24 heures dans votre répertoire personnel.
10 LINUX_TP0.doc