Exercice 15: Commandes Unix/Linux (Environnement, Niveau 0)

Application 1

cd java/cours01
cp ~sam/Public/poeme?.txt .

ou

cp ~sam/Public/poeme?.txt ~/java/cours01

Application 2

cd
cd java/cours01
mkdir test
  1. cp fait une copie, et le fichier original reste, mais mv «déplace» le fichier (cette commande efface donc l'original).
  2. «which ls» indique quelle commande est exécutée par ls. Dans votre environnement cela devrait être un «alias», c'est-à-dire un «surnom»/«raccourci» pour une autre commande (en l'occurence «ls --color=tty», peut importe ce que cela veut dire). Pour de «vraies» commandes, non alias, comme par exemple man (essayez «which man»), ces commandes sont en fait des programmes quelque part dans le système de fichiers et «which» vous indique le nom complet (absolu) de la commande qui est effectivement exécutée lorsque cette commande est donné au Shell.
  3. ls -l *.txt liste, au «format long» (-l), tous les fichiers du répertoire courant ayant pour dernière extension .txt, soit si vous n'avez rien fait d'autre que ce qui est demandé dans la série :
    -rw-r--r--  1 moimoi sc-ba1 3897 Sep 18  2009 poeme1.txt
    -rw-r--r--  1 moimoi sc-ba1 1211 Sep 18  2009 poeme2.txt
    

    Note : il se peut que les droits d'accès soient un peu différents de ceux indiqués ici.

    1. cd test
      touch f1 f2 f4
         
      • ls ?? liste tous les fichiers dont le nom contient deux caractères. Rappel : ? remplace une occurrence de n'importe quel caractère.
      • La commande ls f[123] liste les deux fichiers f1 et f2. Pour afficher f4 également, la commande serait: ls f[124].
      • cat f[123] «concatène» les fichiers f1 et f2, c'est à dire donne le contenu de ces deux fichiers à la suite (dans l'ordre alphabétique : f1 d'abord puis f2 ensuite). Notez bien que f3 est ici ignoré car il n'existe pas. Si vous aviez créé un fichier f3 également, celui-ci serait concaténé à la suite de f1 et f2.
    2. touch albert a.txt zoulou zebre etautres.txt
    3. vous pouvez ici utiliser echo (command d'affichage) ou ls (commande qui liste les informations associées à des fichiers). À ce niveau de simplicité, il n'y a aucune différence.
      echo *
      echo a*
      echo ??????
      
    1. divers est un fichier et autchose est une répertoire.
      C'est la première lettre (- ou d) des attributs (e.g. drwxr-x--x) qui indique la nature du fichier.
    2. Ce fichier appartient à l'utilisateur dupont du groupe dilia.
    3. chmod a+w diversa+w signifie qu'on applique les droits d'écriture (w=write) à tous les utilisateurs (a=all).
    4. Selon les indications pour le groupe: r-x, ces utilisateurs ne peuvent pas écrire dans le répertoire autchose.
    5. Le droit de le traverser. Attention ! c'est une question piège.
      Le droit x pour un répertoire ne signifie pas "exécuter" comme dans le cas des fichiers (ce qui n'aurait aucun sens pour les répertoires) mais "traverser" cela signifie que les personnes concernées peuvent accéder à des fichiers contenus dans ce répertoire (bien qu'elles ne peuvent pas lire (droit r) le contenu).
      Cette possibilité permet par exemple de cacher des fichiers tout en en autorisant l'accès (cf exercice 10).
  4. Et pour terminer :
    ls /etc
    
    ls /usr/share/fonts/../man/f*
    # ou, plus simplement :
    ls /usr/share/man/f*
    
    ls /etc/[on]*[ies]