dimanche 28 janvier 2018

les commandes linux


Initiation à UNIX – TP



Ces exercices ont pour objectif de revoir le cours et utiliser les commandes UNIX sur les fichiers. Travail en binôme (groupe de 2 étudiants).

  1. Donnez les différentes façons pour créer un fichier vide.

    • touch nom_fichier
    • echo -n > nom_vichier
    • cat /dev/null > nom_fichier
    • > nom_fichier
  2. (2 pts) Supposons qu'un fichier data contient les lignes suivantes :

aaabc2;

absdsdc.

Qwertyui.

zxcasdfgcvb,

aafdsfsdf;

cbccvf45;

ab333c5;

aa34c;

    Que font et quel est le résultat des commandes ci-dessous ?

    $ grep 'a.*c' data

    retourne les lignes du fichier data ayant la lettre a et suivi d'un caractère, de n'importe quel chaine de caractères et la lettre c

    aaabc2;

    absdsdc.

    zxcasdfgcvb,

    ab333c5;

    aa34c;

    $ grep 'c[0-9]' data

    retourne les lignes du fichier data ayant la lettre c, suivi d'un chiffre entre 0 et 9

    aaabc2;

    ab333c5;

  1. (2 pts) Expliquez le résultat des commandes ci-dessous ?

    $ ls -Rl | grep rwxr-- | more

    Affiche page par page tous fichiers, dossier et sous-dossier ayant les droits lecture-ecriture-excution de l'utilisateur et aucun droit pour le group de l'utilisateur et aucun droit pour les autres utilisateur

    $ echo toto | mkdir

    Une erreur car la commande mkdir attend en entrée une chaine de caractere et non une sortie

  2. Affichez la liste de tous les fichiers dont l’extension est « .so » avec leurs attributs (option -l ) dans le répertoire /usr/lib et ses sous-repertoires eventuels (note culturelle : ces fichiers sont des bibliothèques).

    ls -Rl /usr/lib | grep '.so'

  3. Comment peut-on écrire une commande sur deux lignes séparées (dans le cas d'une commande avec beaucoup de paramètres par exemple) ? Expliquez.

    Oui il est possible d'ecrire un commande sur deux lignes séparées

    Il faut terminer toute ligne suivi de la suite de la commande par un "\"

    debut_commande \

    > suite_commande

  4. Quelle est la différence entre ( cd foo; ls; ) et { cd foo; ls; }? Expliquez.

    (cd foo; ls;) permet de regrouper les commandes cd foo et ls en un block

    {cd foo; ls;} n'est pas valide

  5. (2 points) La commande ls -la rep fournit le résultat ci-dessous :

    total 6
    drwxrwxr-x 2 paul staff 512 Oct 13 15:12 .
    drwxr-xr-x 8 root root  512 Sep 23 05:52 ..
    -rwx---r-x 1 paul staff 417 Oct 13 19:17 fiche

    Précisez pour chacune des actions ci-après, si elle est autorisée ou non en donnant la raison :

    1. tout membre du groupe staff peut lire fiche

      Autorisée car le droit de lecture est attribué aux membres du group staff

    2. tout membre du groupe staff peut renommer fiche

      Autorisé car le group staff a tous les droits sur le dossier contenant le fichier fiche

  1. Créez un sous-répertoire question. Supprimez tous les droits d'accès pour le groupe et les autres. Comment peut-on obtenir le même résultat sans utiliser la commande chmod et sans changer le masque du shell après l’opération?

    mkdir -m=u+rwx,g-rwx,o-rwx question

  2. Créez une commande « la » qui liste tous les fichiers d’un répertoire (y compris les fichiers cachés - commençant par un point).

    alias la="ls -al"

  3. Quelle différence existe-t-il entre la copie d'un fichier (avec cp) et l'établissement d'un lien physique (avec ln) ?

    la différence entre cp et ln est que :

    • cp cree un nouveau fichier avec un nouveau inode mais en gardant le meme contenu de fichier
    • ln ne cree pas d'inode pour le lien et garde le meme contenu

    • Quelle est la différence entre $(ls) et `ls` ?

      les deux commandes ne sont pas bonne

    • Quel est le résultat de la commande type help ? Quel est le rôle de cette commande type ?

      help est une primitive du shell

      Elle permet de dire si une commande est interne au Shell ou pas

    • (2 points)Transcrivez les commandes suivantes de la notation classique vers la notation octale, ou vice versa.

      chmod u=rwx,g=x,o=r fic1

      chmod 714 fich1

      chmod u=rx,g=wx,o=r fic2

      chmod 534 fic2

      chmod u=rx,g=wx,o=r fic2

      chmod 653 fic3

      chmod u=rw,g=rx,o=wx fic3

      chmod 103 fic4

      chmod u=x,o=wx fic4

  1. Afficher récursivement le contenu des répertoires dans /home sans l'affichage des nombreux messages d'erreur tels que l'accès au répertoire interdit.

    ls -R /home 2> /dev/null

  2. Donnez la commande qui copie, dans votre répertoire public_html, les fichiers dont le nom se termine par .html ou .htm du répertoire public_html de l'utilisateur paul.

    find $HOME/public_html \( -name "*.html" -or -name "*.htm" \) -exec cp {} /home/paul/public_html \;

  3. Observer le résultat des commandes echo a{d,e,f}b et echo a{1..20..2}. Créer les répertoire lib, src, doc dans le répertoire de travail par une seule commande mkdir avec un seul argument. Que déduirez-vous le rôle du méta-caractère '{}' ici ?

    creation des repertoires : mkdir {lib, src, doc}

    {} permet de passer les argurments se trouvant à l'interieur un à un a la commande

dimanche 14 janvier 2018

Commandes Linux 1 TP2

Cet article est issu des TP de l'IFI-Vietnam Hanoi ( Institut Francophone International).

TP2
4 Redirection
Creation du fichier pwd
$pwd > pwd
Creationn du fichier whoami
$whoami > whoami
Creation du fichier id
$id > id
Creation du fichier activite1
pwd whoami id > activite1

Creation du fichier activite2
$pwd >> activite2
Insertion de whoami dans activite2
$whoami >> activite2
Insertion de id dans activite2
$id >> activite2
Verification a l'aide de diff si activite1 est indentique a activite2
$diff activite1 activite2
les deux fichier etant identique le resultat est vide

 Redirection
Creation du fichier list contenant la liste des entrees du dossier courant
$ls -l >> liste
contenu du fichier liste
total 24
-rw-r--r-- 1 sonfack sonfack 197 janv. 14 22:48 activite1
-rw-r--r-- 1 sonfack sonfack 197 janv. 15 00:00 activite2
-rw-r--r-- 1 sonfack sonfack 172 janv. 14 22:44 id
-rw-r--r-- 1 sonfack sonfack   0 janv. 15 00:07 liste
-rw-r--r-- 1 sonfack sonfack  17 janv. 14 22:44 pwd
-rw-r--r-- 1 sonfack sonfack 936 janv. 15 00:06 TP2_Shell
-rw-r--r-- 1 sonfack sonfack   8 janv. 14 22:44 whoami
contenu du repertoir courant
total 28
-rw-r--r-- 1 sonfack sonfack  197 janv. 14 22:48 activite1
-rw-r--r-- 1 sonfack sonfack  197 janv. 15 00:00 activite2
-rw-r--r-- 1 sonfack sonfack  172 janv. 14 22:44 id
-rw-r--r-- 1 sonfack sonfack  395 janv. 15 00:07 liste
-rw-r--r-- 1 sonfack sonfack   17 janv. 14 22:44 pwd
-rw-r--r-- 1 sonfack sonfack 1044 janv. 15 00:10 TP2_Shell
-rw-r--r-- 1 sonfack sonfack    8 janv. 14 22:44 whoami
Metacaractere
Affichate de : UNIX est un produit de AT&T
$echo " UNIX est un produit de AT&T"
Affichate le texte : Mon repertoire de connexion $HOME est : "le contenu de la variable  a mettre ici "
$echo " Mon repertoire de connexion $HOME  est /home/sonfack "
Affichate le texte : Le code du caractere * est 42
$echo "Le code du caractere * est 42"
Affichate le texte : Le code du caractere " est 34, celui de ' est 39
$echo "Le code du caractere " est 34, celui de ' est 39"
Affichate le texte : La date est  "resultat de la commande a mettre ici "
$echo "La date est $(date)"
Affichate le texte : Le nombre d'utilisateur connecte est  "resultat de la commande a mettre ici "
$echo "La date est $(who)"

Jocker
Affichate successivement la liste des fichier de /usr/bin dont le nom :
 commence par s
 comporte exactement 4 caracteres
 comporte au moins 2 caractères qui ne sont pas des minuscules
 comporte au moins un chiffre