Premier TP d'UNIX - Martin Prieur de la combe / Abel Derderian PL2 (09/09/2014) 3.7 : Exercices -3.7.1 On affiche le manuel de la commande "man" en écrivant : "man man" On affiche le manuel de la commande printf en écrivant : "man printf" -3.7.2 Depuis le terminal du compte 20130111, on effectue la commande "id", ce qui nous renseigner sur l'UID (= 20130111), et le GID (=10000(eCampus)). On fait de même pour l'tilisateur 20130161, on obtient les résultats similaires (à part pour l'UID = 20130161). -3.7.3 La ligne qui correspond à l'utilisateur root dans le fichier /etc/passwd est la première : "root:x:0:0:root:/root:/bin/bash" -3.7.4 La commande "passwd" permet de changer son mot de passe (ou kpasswd à Efrei). -3.7.5 On utilise la commande "who -m" pour afficher uniquement son identifiant. -3.7.6 On utilise "uname -a" pour connaitre les informations sur l'OS, qui donne toutes les informations (il existe aussi -v et -s) "Linux tuxws01 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux" -5.7.1 Un chemin absolu est le chemin entier du fichier, en partant de la racine du système, donc en prenant tout les dossiers précédents dans le chemin. Exemple : /home/user/etudiant/rapportimportant.txt Le chemin relatif est un chemin donné à partir de l'endroit où l'utilisateur se trouve actuellement. Exemple : Si on se trouve dans son dossier home, et que l'on souhaite se rendre dans le dossier "dossier1" situé dans notre répertoire personnel, il suffit de faire "cd ./dossier1" -5.7.3 Pour déplacer toute l'arborescence repC dans le réperoitre repB, on effectue : "cd" pour être dans le répertoire user "mv ./repA/repC/ ./repA/repB". Le nouveau chemin de repC sera "./repA/repB/repC/" Ensuite, on supprime tout sauf repA, fich11 et fich12, donc on effectue la commande "rm -R ./repA/repB" -5.7.4 Toujours dans le répertoire user, on effectue les commandes suivantes : "mv ./repA ./rep1" pour renommer le dossier repA en rep1 "mv ./rep1/fich11 ./rep1/fichAA" pour renommer le fich11 en fichAA -5.7.5 Création : "mkdir -p ./repA/repB/repC/" Suppression : "rm -f -R ./repA" -5.7.6 La commande "ls -lhiatr" comporte les arguments "-l -h -i -a -t -r" -l Utiliser un format d'affichage long -h Afficher les tailles de manières lisibles -i Affiche le numéro d'index de chaque fichier -a Inclure les entrées débutant par . -t Trier par ordre de modification par ordre de plus récente à plus ancienne -r Inverse l'ordre du tri Donc la commande affiche les dossier/fichiers courrants dans l'ordre du plus ancien au plus récent, avec le numéro d'index en format long, de manière lisible par un humain. -5.7.7 On commence par se mettre dans le dossier utilisateur ("cd"), et on crée l'arborescence : "mkdir ./dirtest/" On crée le fichier de la manière : "touch ./bienvenue.sh" On écrit dans ce fichier en utilisant : "cat > bienvenue.sh", on écrit la commande "echo Bienvenue dans le monde Unix" et on quitte en faisant la combinaison Ctrl + C On exécute la commance en faisant "sh bienvenue.sh" -5.7.8 On créé un fichier texte avec echo avec la commande : "echo mon texte > fichier.txt" En faisant "cat > lol.txt", on peut écrire dans ce fichier. En faisant "echo lol.txt", on affiche le nom du fichier. En faisant "rm lol.txt", on supprime le fichier. -5.7.9 On crée un dosier avec "mkdir", puis on crée un fichier avec "echo" dans ce dossier ("echo 'Bonjour' > Hello.txt"). On supprime les droits d'écriture sur le dossier ("chmod a-w ./dossier"), il est alors toujours possible de lire le fichier avec cat, de le modifier avec echo, mais il n'est plus possible de le supprimer. -5.7.10 On crée un fichier avec "echo", on supprime les droits d'écriture sur ce fichier ("chmod a-w ./Hello.txt"). On peut toujours lire le fichier, mais pas le modifier ou le supprimer -5.7.11 La commande umask définit les droits et permissions par défaut pour un utilisateur lorsqu'il créer un répertoire ou un fichier. On peut par exemple par exemple souhaiter qu'un utilisateur puisse créer un fichier sans pour autant utiliser à les supprimer (dans le cas où on doit créer un fichier dans un répertoire commun aux élèves). -5.7.12 : Question à ne pas faire -5.7.13 On se place dans son répertoire ("cd") 1 : "find /etc/rc* -type f" : Tout les fichiers commençant par rc 2 : "find -uid 20130111 -type f" : Uniquement les fichiers m'appartenant 3 : "find /etc/ -maxdepth 1 -type d" : Tout les répertoires de /etc 4 : "find ~ -mtime -10 -type f" : Tout les fichiers qui n'ont pas été -5.7.14 : Création : "touch ./-i" Suppression : "rm ./-i" -5.7.15 Les fichiers se trouvent dans le répertoire /user/(identifiant)/rep1, mais l'énoncé ne stipule pas de rechercher que dans ce dossier. Il n'y a donc pas de dossiers spécifiés dans les commandes. 1 : On liste tout les fichiers qui commencent par fich. "find -name 'fich*'" 2 : On liste tout les noms commençant par fich suivi d'un seul caractère : "find -name 'fich?'" 3 : On liste tout les noms commençant par fich suivi d'un chiffre : "find -name 'fich[0-9]' 4 : On liste tout les noms commençant par '.' "find -name '[.]*'" 5 : On liste tout les noms qui ne commencent pas par f "find -name '[!fF]*'" 6 : On liste tout les noms qui contiennent 'fich' : "find -name '*fich*'" -5.7.16 On un hard link nommé 'link' vers un fichier nommé 'fichier' (déjà créé) dans notre répertoire personnel (on commence par "cd") : "ln fichier link" On effectue la commande "ls -li", dont les arguments permettent de comparer les inodes de la source et du lien, on obtient 2631299 en valeur (dans la colonne de gauche) pour les deux inodes. On applique un changement de permission sur la source ("chmod 777 fichier") et on effectue "ls -li" : les deux fichiers ont toutes les permissions. En modifiant le contenu de l'un, l'autre est modifié. Si on supprime un des deux fichiers liés, l'autre deviendra un fichier texte indépendant. On a lié deux fichiers, l'un dans /home/(moncompte)/fichier et l'autre dans /tmp/fichier, c'est similaire. -5.7.17 On créé un lien symbolique entre un fichier nommé 'fichier' et un lien que l'on va créer avec la commande : "ln -s fichier lien" (-s est l'argument pour faire un lien symbolique) Les permissions semblement similaires : - Lien : lrwxrwxrwx - Fichier : -rwxrwxrwx On affiche ensuite le contenu du lien symbolique (donc de la source) avec "more lien" et "less lien" On efface le fichier texte : le lien symbolique pointe donc sur un fichier absent, il n'est plus utile. -5.7.18 On affiche l'espace disque restant sur les disques du systèmes en effectuant la commande "df -h", -h étant l'argument nécessaire pour afficher des valeurs avec des unités de mesure compréhensibles. On se place ensuite dans notre répertoire ("cd"), et on effectue la commande "ls -lh" pour connaître la taille des éléments du premier niveau. L'argument -l donne la taille, et -h l'affiche en format compréhensible avec des unités de mesures convenables. -5.7.19 La commande file nous renseigne sur le type de fichier. Dans le cas de /usr/bin/who, on apprend que c'est un fichier exécutable, en 64 bits, avec le SHA1 du fichier en question. Dans le cas de /etc/services, on apprends que c'est un fichier texte encodé en UFT-8 unicode. -5.7.20 On affiche les 11 premières lignes de /etc/services avec la commande : "head /etc/services -n 11", -n est l'argument qui stipule d'afficher les 11 premières lignes (au lieu de 10 par défaut). On affiche les 11 derières lignes de /etc/passwd avec la command : "tail /etc/passwd -n 11", -n est l'argument qui stipule d'afficher les 11 dernières lignes (au lieu de 10 par défaut).