Les commandes pour « jouer » avec les fichiers et les dossiers

Voici quelques commandes utiles pour organiser ses dossiers et ses fichiers

Lister le contenu d'un répertoire

ls

La commande ls permet d'obtenir beaucoup d'informations sur les fichiers et répertoires.

ExempleLister tous les répertoires et fichiers présents à l'endroit où l'on se trouve

$ ls

Remarque

A la racine du système, on obtient la liste des dossiers système (exemple) :

bin boot cdrom dev devfs etc floppy home initrd lib lost+found mnt opt proc root sbin sys tmp usr var

ExempleLister tous les répertoires et fichiers présents dans un répertoire spécifique

$ ls /dossier/dossier

Se déplacer dans l'arborescence de répertoires

cd

Tout fichier (ou répertoire...) se trouve à un endroit précis, appelé son chemin d'accès, constitué :

  • du nom du répertoire racine qui est présent sur tous les systèmes, donc commun à tous les chemins et par convention appelé « / » (« barre oblique », plus communément appelé slash) ou Le tout premier répertoire, , est appelé « / ». Tous les autres répertoires y prennent plus ou moins directement racine)

  • suivi de la série des noms des répertoires qui y mènent, deux noms consécutifs étant séparés au moyen de la barre oblique

  • suivie de son nom

Si un répertoire nommé « répertoire1 » contient un répertoire appelé « répertoire2 » recelant lui-même un fichier « monfichier » le chemin complet de ce dernier est : /répertoire1/répertoire2/monfichier

ExemplePour se placer dans la « racine » du système

$ cd /

ExempleRevenir dans votre répertoire personnel

$ cd ~

est la commande orthodoxe, toutefois cd suffit.

Truc & astuceLa commande ls

La commande ls va faire la liste des répertoires et des fichiers présent dans le dossier où se situe l'utilisateur.

Créer un répertoire

mkdir

Pour créer un répertoire, il suffit de taper la commande suivante (ici je crée dans « /home/delcros » un répertoire nommé « personnel »):

$ mkdir personnel

ComplémentUne option de mkdir est souvent utile: mkdir -p permet de créer une suite de répertoires.

Supposons que je veuille créer dans mon répertoire /home/moi la suite de répertoires suivante : doc/mygale/mail.

Je peux faire soit :

$ mkdir doc

$ cd doc

$ mkdir mygale

$ cd mygale

$ mkdir mail

Ou bien utiliser l'option -p qui me permet de créer la suite de répertoires « parents » le plus simplement du monde :

$ mkdir -p doc/mygale/mail

Copier un fichier ou un répertoire

cp

La syntaxe est:

$ cp [option] nom-fichier(s)-origine nom-fichier-ou-répertoire-destination

ExempleFaire une copie d'un fichier du répertoire où l'on se trouve nommé « linux-test » en un fichier « linux-test2 »

$ cp linux-test linux-test2'''

Attention

ATTENTION: si vous effectuez une copie d'un fichier sur un autre qui existe déjà, le contenu de ce dernier sera remplacé par celui de l'autre!

ExempleCopier le fichier linux-test dans un répertoire (par exemple « /tmp »)

$ cp linux-test /tmp'''

ExempleDonner un autre nom :

$ cp linux-test /tmp/linux-test2'''

Trouver un fichier

La commande est « find »

Permet de chercher des fichiers et éventuellement d'exécuter des commandes sur ceux-ci ; la recherche est récursive c'est-à-dire qu'elle concerne le répertoire de départ et toute sa descendance (sous-répertoires ainsi que toute leur descendance ...)

RemarqueOptions les plus fréquentes :

-name : Recherche d'un fichier par son nom

-iname : Même chose que -name mais insensible à la casse

-type : Recherche de fichier d'un certain type

-atime : Recherche par date de dernier accès

-mtime : Recherche par date de dernière modification

-link : Recherche du nombre de liens au fichier

-user : Recherche de fichiers appartenant à l'utilisateur donné

-group : Recherche de fichiers appartenant au groupe donné

RemarqueOpérateurs les plus fréquents :

-a : Opérateur ET

-o : Opérateur OU

! ou -not : Opérateur NOT

ExempleRechercher un fichier commençant par monfichier

$ find monfichier*

ExempleRechercher un fichier contenant monfichier et ayant pour extention .ogg

$ find -name *monfichier*.ogg

ExempleRechercher les fichiers .odt dans un dossier et les déplacer dans un autre dossier

A compléter

Déplacer ou renommer un fichier

mv

Pour comprendre la commande mv (penser à move), voyons une suite de commandes qui effectuent des opérations différentes:

  • mv perso perso écrase le fichier existant avec le fichier copié (dit « source »).

  • mv personnel mon-répertoire: renomme le répertoire « personnel » en « mon-répertoire ».

  • mv perso /home/delcros/mon-répertoire: déplace le fichier « perso » dans le répertoire /home/delcros/mon-répertoire

Exemplerenomme le fichier « linux-test » en « perso »

$ mv linux-test perso

Supprimer un fichier

rm

Pour supprimer le fichier "linux-test2":

$ rm linux-test2

RemarqueOptions

-i

comme pour cp, l'option -i permet à rm de demander à l'utilisateur s'il souhaite vraiment supprimer le ou les fichiers en question.

-r

supprime un répertoire et ses sous-répertoires (attention, c'est TRÈS dangereux)

-f

supprime les fichiers dans lesquels il est interdit d'écrire ainsi que les répertoires, sans demander une confirmation (à utiliser avec précaution...)

Modifier les permissions d'accès à un fichier ou à un répertoire

chmod (Signification : change mode)

Type d'autorisations (une autorisation d'exécution sur un répertoire autorise son ouverture) :

  • + : Ajoute une permission

  • - : Enlève une permission

  • = : Autorise uniquement l'autorisation indiquée

  • r : Lecture ; Valeur octale 4

  • w : Ecriture ; Valeur octale 2

  • x : Execution ; Valeur octale 1

  • s : Utilise les droits du propriétaire ou du groupe lors de l'exécution

  • u : Propriétaire du fichier

  • g : Groupe propriétaire du fichier

  • o : Tous les autres utilisateurs

  • Options les plus fréquentes :

  • -R : Récursif, modifie les autorisations d'un répertoire et tout ce qu'il contient

  • -c : Ne montrer que les fichiers ayant été réellement modifiés

  • -f : Ne pas afficher les messages d'erreur

ExempleAjouter l'exécution (ouverture) du répertoire monRep à tous (propriétaire, groupe, autres)

$ chmod ugo+x monRep

ExempleSupprimer l'autorisation d'écriture et l'exécution de monRep au groupe et aux autres

$ chmod go-wx monRep

ExempleFixe l'autorisation de lecture et d'écriture au propriétaire de MonFichier et une autorisation de lecture au groupe et aux autres.

$ chmod u=rw,go=r MonFichier

ExempleExactement la même chose que ci-dessus mais en utilisant les valeurs octales (Nota : 6 = 4+2 = lecture + écriture)

$ chmod 644 MonFichier

ExempleFixer l'autorisation d'ouverture et de lecture de MonFichier au propriétaire, uniquement la lecture au groupe et interdit tout accès aux autres.

$ chmod u=rw,g=r,o= MonFichier

ExempleExactement la même chose que ci-dessus mais en utilisant les valeurs octales

$ chmod 640 MonFichier

Changer le propriétaire et le groupe propriétaire d'un fichier

chown

Signification : change owner

Options les plus fréquentes :

  • -R : Modifie récursivement un répertoire et tout ce qu'il contient

ExempleChanger le propriétaire de MonFichier en autreUtilisateur

$ chown autreUtilisateur MonFichier

ExempleChanger le propriétaire en lui et le groupe propriétaire en nous du répertoire monRep ainsi que tout ce qu'il contient

$ chown -R lui:nous monRep

Modifier le mot de passe d'un utilisateur

passwd

Signification : password

Options les plus fréquentes :

  • -S : Affiche l'état d'un compte (nom du compte, bloqué (L), si l'utilisateur n'a pas de mot de passe (NP) ou a un mot de passe utilisable (P), date de dernière modification du mot de passe, durée minimum avant modification, durée maximum de validité, durée d'avertissement, durée d'inactivité autorisée)

A moins d'être administrateur système ou réseau (auquel cas pourquoi lisez-vous ces lignes ;-) ?) cette commande s'utilise généralement sans option.

Exemplechanger le mot de passe

$ passwd

Ajouter un utilisateur ou un groupe, au système

adduser

Signification : "ajouter un utilisateur" (en anglais : add user)

Options les plus fréquentes :

  • --disabled-login : Crée un nouvel utilisateur qui ne pourra se connecter jusqu'à ce qu'un mot de passe lui soit attribué.

  • --disabled-password : Comme --disabled-login sauf que le nouvel utilisateur pourra se connecter en SSH avec des clefs RSA : pratique pour créer un utilisateur qui ne se connectera que via SSH.

  • --system : Crée un utilisateur système.

  • --group tel-nom : Un groupe portant le nom fourni en paramètre est créé.

  • --group --system : Un groupe ayant le même nom et le même identifiant numérique que l'utilisateur système est créé.

  • --home tel-répertoire : Utilise "tel-répertoire" comme répertoire personnel de l'utilisateur, plutôt que la valeur par défaut. Si le répertoire n'existe pas, il est créé, et les fichiers du squelette y sont copiés.

  • --no-create-home : Ne crée pas de répertoire HOME.

ExempleCréer l'utilisateur toto

$ adduser toto

Supprimer un utilisateur du système

deluser

Signification : delete user

Option la plus fréquente :

  • –system : Ne supprime l'utilisateur que si c'est un utilisateur système.

  • –remove-home : Supprime l'utilisateur ainsi que son répertoire dans le home.

ExempleSupprime l'utilisateur toto

$ deluser toto