- 1.
pwd
: affiche le chemin du répertoire courant depuis la racine - 2.
ls
: liste le contenu du répertoire courant - 3.
cd
: changement de répertoire (change directory) - 4.
pushd
,popd
etdirs
: pour les allers et retours - 5.
CDPATH
: pour les allés directs - 6.
file
: renvoie la nature d’un fichier - 7.
df
: renvoie l’occupation des partitions - 8.
du
: renvoie l’occupation du répertoire spécifié et de ses sous-répertoires
D’après l’édition 11 des travaux d’Alain Leaper, 2018-04-10
Licence GPL
1. pwd
: affiche le chemin du répertoire courant depuis la racine
$ pwd
/home/<utilisateur>
Indique le répertoire courant dans l’arborescence des répertoires
2. ls
: liste le contenu du répertoire courant
L’intruse de ce mémo, la seule commande gravitant autour des répertoires mais sans « d » (pour "directory") dans son nom.
$ ls
Liste le contenu (sous-répertoires et fichiers) du répertoire courant
Quelques options : ls -l
, ls -a
, ls -R
$ ls -l
-rw-r--r-- 1 alain alain 18 jan 28 10:38 monFichier
Premier caractère (ici -
) :
-
-
: fichier ordinaire -
d
: répertoire (directory) -
l
: lien symbolique -
b
: périphérique en mode bloc (exemple un disque dur) -
c
: périphérique en mode caractère (exemple un port série)
Ensuite, par groupes de 3 caractères (pris dans cet ordre), indiquent les droits :
-
r
: lecture (read) -
w
: écriture (write) -
x
: exécution du fichier (pour un répertoire, droit d’y accéder) -
-
indique l’absence de droit (mis à la place d’un de ces 3 caractères)
Ensuite : le nombre de liens, le nom du propriétaire, le nom du groupe principal, la taille en octets (bytes), la date de création ou modification (mois jour heure) si l’année n’est pas précisée, il s’agit de l’année courante, le nom du fichier.
Sortie console | Légende |
---|---|
|
type |
|
droits du propriétaire (user) |
|
droits du groupe (group) |
|
droits des autres (other) |
|
nombre de liens en dur (links) |
|
nom du propriétaire |
|
nom du groupe |
|
taille (size) |
|
date de dernière modification |
|
nom du fichier |
Un fichier peux être présent dans plusieurs répertoires différents à la fois, et/ou donc avoir plusieurs noms. Il a alors un nombre de liens égal à son nombre de noms.
pour les périphériques la taille est remplacée par les numéros Majeur, mineur |
Le fichier
monfichier
a été créé/modifié le 28 janvier de cette année à 10h38, sa taille est de 18 octets. Son propriétaire estalain
comme son groupe, il possède 1 lien.C’est un fichier ordinaire, son propriétaire a les droits en lecture, écriture, mais pas de le faire exécuter, son groupe a les droits en lecture seulement (pas en écriture, ni exécution) les autres ont les droits en lecture seulement (pas en écriture, ni exécution).
$ ls -a (1)
. .. monFichier
1 | liste tous les fichiers, y compris les fichiers cachés commençant par "." (point)
|
$ ls -R (1)
.:
monFichier sous_rep
./sous_rep:
fic1
1 | liste de manière récursive les sous-répertoires et leurs fichiers |
Ici : le répertoire courant contient monfichier
et sous_rep
qui lui-même est
un répertoire puisqu’il contient le fichier fic1
.
Il est possible de combiner ces options (ordre indifférent) :
$ ls -aRl
.:
total 16
drwxr-xr-x 3 alain alain 4096 mai 8 17:52 .
drwxr-xr-x 20 alain alain 4096 mai 8 10:41 ..
-rw-r--r-- 1 alain alain 18 jan 28 10:38 monFichier
drwxr-xr-x 2 alain alain 4096 mai 8 19:20 sous_rep
./sous_rep:
total 28
drwxr-xr-x 2 alain alain 4096 mai 8 19:20 .
drwxr-xr-x 3 alain alain 4096 mai 8 17:52 ..
-rw-r--r-- 1 alain alain 11 mai 8 17:23 fic1
-rw-r--r-- 1 alain alain 13 mai 8 18:29 fic2
-rw-r--r-- 1 alain alain 38 mai 8 18:36 fic3
-rw-r--r-- 1 alain alain 5314 mai 8 19:19 fic4
Total indique un nombre de bloc de 1024 octets (1ko), sachant qu’un fichier entre 1 et 4096 octets occupe 4096 octets, soit 4 blocs. De 4097 à 8192 ⇒ 8 blocs, etc.
Petit calcul, sous_rep contient :
-
2 répertoire (. et ..) 2 x 4 = 8 blocs
-
3 "petits" fichier : 3 x 4 = 12 blocs
-
1 "gros" fichier (4096 < fic4 < 8192) = 8 blocs
total: 8 + 12 + 8 = 28 blocs
l’option -R permet de repérer les gros fichiers, mais pas les gros répertoires ! Le répertoire parent de sous_rep n’indique que 16 blocs. Pour repérer l’espace disque effectivement occupé par un répertoire, la commande 'du' ci-dessous est plus pratique. |
Autres options :
$ ls -sSRh
-
s
: indiquer la taille -
S
: classement par taille de fichiers (ordre croissant, si-rS
⇒ ordre décroissant) -
R
: récursif (idem ci-dessus) -
h
: donne les tailles en Ko, Mo, Go -
n
: remplace les noms propriétaires et groupes par leur numéros (uid, gid)
3. cd
: changement de répertoire (change directory)
$ cd ..
On passe alors dans le répertoire parent du répertoire courant.
$ cd (1)
$ pwd
/home/alain
1 | sans argument |
Sans argument, passage dans le répertoire personnel du propriétaire du compte.
$ cd /etc/default
$ pwd
/etc/default
4. pushd
, popd
et dirs
: pour les allers et retours
pushd
permet d’enregistrer le chemin d’un dossier dans une mémoire dédiée à cet usage.
popd
permet de retourner au dernier dossier enregistré (un peu comme cd
sans argument qui ramène dans le dossier de l’utilisateur, ou cd -
qui renvoie dans le dossier précédent).
De plus, la mémoire utilisée est en fait une pile, sur laquelle s’ajoutent les chemins de dossier au gré des appels à pushd
. La commande affiche d’ailleurs l’état de cette pile à chaque appel, et c’est également tout ce que fait la commande dirs
.
$ pwd
/usr/share
$ pushd /tmp
/tmp /usr/share
$ pwd
/tmp
$ popd
/usr/share
$ pwd
/usr/share
Appelé sans argument, pushd déplace l’utilisateur dans le dossier qui se situe au sommet de la pile de dossiers, et ajoute le chemin qui était courant au moment de l’appel de la fonction au sommet de la pile. Ainsi, Appeler pushd sans arguments plusieurs fois de suite permet de basculer entre deux dossiers.
|
5. CDPATH
: pour les allés directs
La variable d’environnement CDPATH
permet d’avoir une liste de dossiers
accessibles en permanence, sans avoir à taper le chemin complet (absolu ou
relatif).
Dans cet exemple le dossier ~/projets
contient les dossier boulot
et asso
:
$ mkdir cul-de-sac && cd cul-de-sac (1)
$ cd boulot (2)
cd: aucun fichier ou dossier de ce type: boulot
$ export CDPATH=$CDPATH:~/boulot:~/asso (3)
$ cd April (4)
~/asso/April
$ pwd
~/asso/April (5)
1 | Ici on se place dans un nouveau dossier vide, ne contenant donc aucun sous dossiers |
2 | La commande échoue |
3 | Ici, on exporte, du terminal courant, la variable CDPATH vers les autres terminaux (présents et à venir). De plus, la variable est assignée à sa précédente valeur ($CDPATH ) plus une liste de chemins séparés par des « : ». Deux dossiers ont donc été ajoutés à la liste courante. |
4 | On peut maintenant atteindre les sous-dossiers de ~/asso depuis n’importe où. |
5 | pwd confirme que nous nous sommes déplacés dans le dossier voulu. |
6. file
: renvoie la nature d’un fichier
$ file /bin/cat
/bin/cat: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
Donc un fichier binaire, inutile d’éditer un tel fichier avec un éditeur de texte !
$ file /var
/var: directory
$ file /etc/hosts
/etc/hosts: UTF-8 Unicode English text
7. df
: renvoie l’occupation des partitions
$ df
La réponse dépend des choix faits à l’installation…
Quelques options :
-
-h
: donne les tailles en Ko, Mo, Go -
-T
: donne les types des partitions
8. du
: renvoie l’occupation du répertoire spécifié et de ses sous-répertoires
$ du -ch /tmp
4,0K /tmp/.font-unix
4,0K /tmp/ssh-73OnzW2HKqXX
4,0K /tmp/.ICE-unix
4,0K /tmp/systemd-private-b3aa6dce2e844352bed9c2217f80e08a-rtkit-daemon.service-VUtSSk
4,0K /tmp/pip-gdb4_rzd-unpack
4,0K /tmp/vFKyLyX
24K /tmp
24K total
$ du -ch (1)
1 | sans argument, implique le répertoire courant |
Quelques options :
-
-h
: donne les tailles en Ko, Mo, Go -
-c
: totalise l’espace occupé -
-t 50M
: n’affiche que les éléments de plus de 50 Mo