|
TP (2) Commandes GNU/Linux |
Connectez-vous comme root Faites, par sécurité, une copie de sauvegarde du fichier /etc/profile (profil de connexion) :
cp /etc/profile /etc/profile.svgPour définir une commande alias, éditez /etc/profile avec mc et y ajouter la ligne (sans espace autour de =)alias ll="ls -l --color=tty -F -b -T 0"Ouvrir une nouvelle connexion dans une autre console et tester cette nouvelle commande ll Il existe une commande alias pour connaitre la liste des alias définis pour le compte. (Eventuellement, l'installer avec la commande : apt-get install alias)
commande [options] paramètres
Ne jamais hésiter à consulter le manuel relatif à chaque commande.
Connectez-vous comme utilisateur stage Pour connaitre notre système d'exploitation uname -a Examinez le manuel de ls afin d'expliquer le résultat de chacune des commandes suivantes : cd /etc ls -R ls -ir cd /home/stage ls -l ls -la commentez les commandes (| less permet de controler le défilement) ls -l /usr/bin | less cd /etc/network cat interfaces less affiche aussi le contenu des fichiers less inittab pourquoi ce fichier n'est pas trouvé ? où est-il recherché ? pwd où se trouve t-on ? less ../inittab ici, pourquoi est-il trouvé ? less /etc/inittab les chemins absolus sont préférables commentez (cd =change directory) cd pwd cd ~ que signifie ici le symbole ~ ? pwd who tty clear # $USER est une variable système qui contient le login echo Bonjour $USER # attention ! aucun espace autour du = pour définir une variable bash salut="Bonjour $USER " # pour faire référence à la valeur d'une variable, la préfixer par $ echo -n "$salut, aujourd'hui nous sommes le "; date Les variables d'environnement echo $PATH env cettecommande donne la liste des variables d'environnement Les caractères génériques Caractères qui prennent un sens particulier dans un nom de fichier ou de répertoire ? remplace un seul caractère * un nombre quelconque de caractères ls /etc/*.conf : recherche des ... ls /etc/*p*.* : recherche des fichiers ... Comparez ls */init/* ls */init* ls */init/*.* ls */init*/* ls */init*/*.*
que trouve t-on dans le rép. personnel ? ll /home/stage afficher son historique (attention au . il s'agit d'un fichier caché ! less ~/.bash_history history | less history 10
, l'interpréteur
cherche à compléter le mot avec un nom de fichier ou un nom de commande, suivant le contexte.cat /e <TAB> cat /etc/f <TAB> cat /etc/fs <TAB> # chercher de cette manière le script qui controle le service réseau cat /etc/init.d/networking
tac /var/log/messages | less
tail -n 20 /var/log/syslog# (commentaire) pour aller dans son rép. personnel cd #pour créer ce fichier vide touch essai.txt #pour vérifier cat essai.txt # cat avec l'opérateur de redirection > # créerait le fichier s'il n'existait pas ! cat > essai.txt Je suis heureux d'apprendre à travailler avec LINUX #pour terminer et enregistrer Ctrl-d pour ajouter du texte à la suite cat >> essai.txt Vive le logiciel libre ! Ctrl-d pour afficher cat essai.txt
Rechercher mc, ftp, w avec whereis Commentez : find rep -name "*mot*", le nom des fichiers trouvés contient mot find /etc -name "rc*" Si nécessaire, installer locate et initialiser la base de données qu'elle gère avec la commande updatedb locate passwd locate init --> a le meme résultat que locate *init* locate */init locate */init* locate */init/* Trouver tous les fichiers dont le nom commence par bash
Exemples
Etudier et commenter les commandes suivantes : cherche dans le fichier, les lignes dont la 1ère lettre est qcq et la 2ème doit être o grep "^.o" /var/log/messages cherche dans le fichier toutes les lignes et leur numéro où apparait "http" grep -ni http /var/log/messages cherche toutes les lignes se terminant par "se" grep -ni "se$" /etc/passwd (si apache est installé) trouver les numéros de lignes contenant "directory", sans tenir la casse grep -ni "directory" /etc/apache/httpd.conf
-R , recopie récursive, permet de copier toute une arborescence-i avertit l'utilisateur de l'existence d'un fichier du même nom et lui demande s'il veut le remplacer.-p effectue une copie en gardant le propriétaire et le groupe d'origine.-v affiche en clair le nom des fichiers copiés.
rm [option] fichiers=remove, supprimer des fichiers
-i pour demander confirmation à l'utilisateur.
-i (demander confirmation)-r (permet de supprimer un répertoire et ses sous répertoires, attention TRÈS dangereux) -f (en force, permet de supprimer les fichiers protégés en écriture sans demande de confirmation.
mv [option] source fichier = renomme le fichier source
mv [option] source répertoire= déplace le fichiers source dans le répertoire, en gardant son nom
-b (b=backup) effectue une sauvegarde des fichiers avant de les déplacer. La copie porte le même nom suivi d'un tilde.-i (i=interactive) demande confimation avant pour chaque fichier.-u (u=update) pour ne pas supprimer le fichier si sa date de modification est postérieure à celle du fichier remplaçant.
Exemples
cp -R /home /root/tmp, crée une copie dans/root/tmp/home
rm -r /home/toto/tmp, demande à l'utilisateur la permission de supprimer les fichiers un par un, et ne supprime pas le rép. s'il n'est pas vide.rm -rf /home/toto/tmp, détruit sans préavis l'arborescencemv toto titimv /home/*.jpg /tmp/