Aller au contenu

1NSI : Commandes Linux sur les Dossiers et Fichiers⚓︎

Notations Utiles sur les Dossiers et Fichiers⚓︎

Dossier Personnel / Home ~

On note ~ le Dossier Personnel ou Dossier Home de l'utilisateur connecté:

  • Pour tous les utilisateurs (sauf root) il se trouve toujours dans /home/nomUtilisateur
  • Pour l'utilisateur root il se trouve dans /root C'est le dossier par défaut lorsque l'on lance un Terminal

d'utilisation de ~

  • Si emma est connectée, alors (pour elle) ~ désigne le dossier /home/emma :
  • Pour elle, ~/Images désigne donc /home/emma/Images
  • Si eleve est connecté, alors (pour elle/lui) ~ désigne le dossier /home/eleve :
  • Pour lui, ~/Images désigne donc /home/eleve/Images

Dossier Courant . & Dossier Parent ..

  • Notation Dossier Courant : On note . le dossier courant (d'un dossier, ou bien d'un fichier)
  • Notation Dossier Parent : On note .. le dossier parent (d'un dossier, ou bien d'un fichier)

Caractères Spéciaux ? et *

Certains caractères ont une signification particulière dans les commandes entrées dans le Terminal :

  • ? désigne n'importe quel (unique) caractère
  • * désigne n'importe quel chaîne de caractères

Quelques Commandes Utiles pour les Dossiers et Fichiers⚓︎

Supposons que l'utilisateur courant est eleve. Lancer un Terminal (combinaison des touches Ctrl+Alt+T sur Manjaro)

  • pwd = Print Working Directory = Affiche le répertoire courant

    Exp

    $ pwd         # (Print Working Directory) affiche le dossier courant
    /home/eleve   # nous supposons que l'utilisateur courant est 'eleve'
    
  • ls = LiSt / affiche les fichiers et dossiers du répertoire courant

    Exp

    $ ls               # Liste/Affiche les fichiers et dossiers du dossier courant
    $ ls monDossier/   # Liste/Affiche le contenu du dossier 'monDossier"
    $ ls monDossier    # Idem: les "/" finaux sont facultatifs pour les dossiers
    $ ls -l            # Liste les fichiers et dossiers du dossier courant, VERSION LONGUE,
                       # SANS les fichiers/dossier cachés
    $ ls -Al           # Liste les fichiers et dossiers du dossier courant, VERSION LONGUE,
                       # AVEC aussi LES FICHIERS/DOSSIERS CACHÉS commençant par un point "."
    
  • cd = Change Directory = Change de Dossier/Répertoire

    Par défaut, lorsqu'un Terminal est lancé (Ctrl+Alt+T sur Manjaro) le prompt se trouve dans le dossier /home de l'utilisateur courant.

    Exp

    $ cd ..     # remonte d'un cran dans l'arborescence Linux
                # donc se déplace dans le dossier parent
    $ cd /      # se déplace à la racine
    $ cd /usr   # se déplace dans le répertoire /usr
    $ cd /usr/share # se déplace dans le répertoire /usr/share
    $ cd ~      # se déplace/revient dans le répertoire /home 
                # de l'utilisateur courant. Equivalent à juste 'cd'
    
  • mkdir = MaKeDIRectory = Crée un répertoire

    Exp

    $ mkdir monDossier # remonte d'un cran dans l'arborescence Linux
    $ ls -l     # Vérifier que le dossier a bien été créé
                # Affiche tous les Dossiers (dont le nouveau 'monDossier')
    [...]
    drwxr-xr-x  2 eleve eleve  4096 24 juin  17:15 monDossier
    [...]
    $ ls -l monDossier # Affiche SEULEMENT les détails pour 'monDossier'
    
  • touch = Créer un fichier texte qui soit vide

    Exp

    $ cd                  # revenir (si besoin) dans son Dossier Personnel inclus dans /home
    $ touch monfichier    # crée le fichier monfichier dans /home/eleve
    $ ls -l monfichier    # vérifie la bonne création + affiche les détails de 'monfichier'
    -rw-r--r--  1 eleve eleve     0 24 juin  19:18 monfichier
    
  • rm = ReMove Directory = Supprimer RÉCURSIVEMENT -R un répertoire
    ⚠ ATTENTION DANGER : À UTILISER AVEC PRÉCAUTION!!!! ⚠

    Exp

    $ rm  monfichier   # supprime le fichier 'monfichier'
    $ rm -R monDossier # supprime RÉCURSIVEMENT le Dossier 'monDossier' ET TOUT SON CONTENU !!!
    

    🧠 L'oubli de l'Option récursive -R provoque l'erreur rm: impossible de supprimer 'monDossier/': est un dossier, même lorsque le dossier est vide...

  • cat = Affiche le contenu d'un fichier dans le Terminal

    Exp

        $ cat /etc/hosts     # Affiche le Fichier 'hosts' contenu dans le dossier /etc
    
  • nano = Editeur de texte en ligne de commande (très simple), dans un Terminal

    Exp

        $ nano monfichier   # ouvre 'monfichier' en Ecriture dans le Terminal
                            # ...puis Taper quelquechose dans le fichier...
                            # Interactivité:
                            # Ctrl+O sauvegarde vos modifications dans le fichier. 
                            # (extension de fichier non obligatoire)
                            # Ctrl+X sort du fichier
        $ cat monfichier    # affiche 'monfichier' dans le Terminal, avec les nouvelles modifs
    

    Remarques

    • Quelques Raccourcis Clavier Utiles dans un Terminal:
      • Ctrl+Shift+C pour Copier dans un Terminal
      • Ctrl+Shift+V pour Coller dans un Terminal
      • Ctrl+Shift+Up pour faire défiler vers le Haut dans un Terminal
      • Ctrl+Shift+Down pour faire défiler vers le Bas dans un Terminal
    • il existe d'autres Editeurs de Texte en ligne de commande, dans un Terminal, notamment:
      • vi ou vim: Puissant éditeur de texte, sorte d'IDE en ligne de commande : coloration syntaxique de 200 langages, complétion automatique, comparaison de fichiers, recherche évoluée. Plus complexe d'utilisation néanmoins, déconseillé aux débutants.
      • (GNU) emacs: Puissant éditeur, extensible et personnalisable. Sorte d'IDE également pour de nombreux langages, mais pas uniquement: c'est aussi un navigateur internet, un client de messagerie, un client irc, etc...
  • cp = CoPy = Créer une copie d'un fichier et/ou dossier

    Copier un Fichier

    $ cp monfichier_source monfichier_destination
    

    Copier RÉCURSIVEMENT un Dossier

    $ cp -r mondossier_source mondossier_destination
    
    L'oubli de l'option récursive -r provoque une erreur: cp: -r non spécifié ; omission du répertoire 'mondossier_source'

  • mv = MoVe = Déplacer ou Renommer un fichier et/ou dossier

    Déplacer/Renommer un Fichier

    $ mv monfichier_source /nouveau/chemin/monfichier_nouveauNomOuPas     # Déplace le fichier
    $ mv monfichier_ancienNom monfichier_nouveauNom                       # Renomme le fichier
    

    Déplacer/Renommer un Dossier

    $ mv mondossier_ancienNom/ /nouveau/chemin/mondossier_nouveauNomOuPas/  # Déplace un dossier
    $ mv mondossier_ancienNom mondossier_nouveauNom                   # Renomme le dossier
    $ mv mondossier_ancienNom/ mondossier_nouveauNom/                 # Renommer le dossier, les '/' finaux sont facultatifs
    
    Remarque : ici, pas besoin de l'Option récursive -r

le masque utilisateur umask⚓︎

Vous avez peut-être remarqué que la création d'un fichier ou d'un dossier donne automatiquement des droits par défaut à votre fichier/Dossier (pas les mêmes d'ailleurs..) :

  • pour un fichier les droits par défaut sont -rw-r--r--
  • pour un dossier les droits par défaut sont drwxr-xr-x

Il faut voir ceci comme des droits par défaut à enlever (sous-entendu, par rapport à la totalité des droits), c'est ce que l'on appelle un masque utilisateur 🇫🇷 ou user mask 🇬🇧 ou umask, lors de la création d'un nouveau fichier/dossier :

1⃣ En général, Par défaut umask = 0022 = -----w--w- qui sont les droits à enlever automatiquement à toute création quelle qu'elle soit (fichier et/ou dossier)
2⃣ si c'est un dossier qui est créé : umask = 0022
Droits par défaut Dossier = 777 - umask = (drwxrwxrwx) - (-----w--w-) = drwxr-xr-x
3⃣ Si c'est un fichier qui est créé : umask = 0133
⚠ Le umask des fichiers est plus contraignant : il doit aussi enlever les droits d'exécution pour tous (u+g+o) : AUCUN FICHIER N'ADMET DE DROITS D'EXÉCUTION PAR DÉFAUT, POUR PERSONNE, ni pour u ni pour g, ni pour o, autrement dit :
Droits par défaut Fichier = 777 - umask = (-rwxrwxrwx) - (---x-wx-wx) = -rw-r--r--

Remarque

La valeur par défaut de umask peut varier selon les distributions Linux.
En général : umask = 0022