Certification Linux LPI/Administrateur système débutant/Examen 101/GNU et commandes Unix/Travailler en ligne de commande
Objectifs
modifierDescription: Les candidats devront pouvoir intéragir avec les shells et les commandes en utilisant la ligne de commandes. Cet objectif inclus l’introduction de commandes et de séquences de commandes valides, la définition, la référence et l'exportation de variables d'environnement, l’utilisation de l’historique et des facilités d'édition, l'invoquation de programmes dans et en dehors du chemin, l’utilisation des commandes de substitution, l’application récursive des commandes dans l'arbre des répertoires, et l’utilisation de la commande man pour trouver des informations sur les commandes.
fichiers clés, termes et utilitaires
:
. / source bash echo env exec export man pwd set unset ~/.bash_history ~/.profile
Ligne de commande
modifierLes lignes de commandes sont de la forme :
commande [options] [arguments]
Exemples:
pwd ls -ld ou ls -l -d ou ls -d -l rm -r /tmp/toto cat ../readme helpme > save more /etc/passwd /etc/hosts /etc/group find . -name *.[ch] -print date "+day is %a"
On peut mettre des lignes de commandes dans un fichier, de manière à obtenir un script.
Pour afficher une chaine de caractères sur la sortie standard, utiliser la commande echo.
echo [-n][string|command|$variable] echo my home directory is: $HOME echo I use the $SHELL shell
Shells et Bash
modifierL'ordre de précédence des différentes sources lorsque vous entrez une commande dans le shell sont :
- Les alias.
- Les mots clés comme if, for et more.
- Les Fonctions.
- Les "Built-ins" comme cd, type, et kill.
- Les scripts et les programmes exécutables présents dans les chemins listés dans la variable d'environnement PATH.
Pour connaitre la source exacte d'une commande, utiliser :
$ type kill kill is a shell builtin
Ce qui est différent de :
/bin/kill
Pour lister l’ensemble des commandes "built-in", utilisez l'aide.
/bin/bash peut-être invoqué à l'ouverture d'une session ou explicitement par un utilisateur. À l'ouverture, les fichiers scripts suivants sont utilisés :
- /etc/profile fichier du système par défaut.
- $HOME/.profile s'il existe.
- $HOME/.bash_profile s'il existe
- /etc/bash.bashrc s'il existe
- $HOME/.bashrc s'il existe
Lorsqu'un utilisateur invoque explicitement le shell bash, les fichiers suivants sont exécutés : /etc/bash.bashrc s'il existe. $HOME/.bashrc s'il existe;
L'historique de tout ce qui est tapé se trouve dans le fichier .bash_history.
Un script est une liste de commandes et d'opérations exécutées dans le contexte du shell. Vous pouvez vous servir de scripts bash pour mettre en place votre environnement, vos variables, et plus.
Découvrir /bin/bash
modifierChaque fois que vous exécutez un nouveau programme, une nouvelle tâche est créée. Quand le programme se termine, la tâche se termine aussi et vous retrouvez le prompt en retour. Vous pouvez faire tourner le programme en arrière plan en ajoutant le caractère "&" après la commande :
monscript &
Dans certaines situations, il est également possible d’utiliser le contexte de la tâche bash en utilisant la commande exec [program]
C'est utile quand vous ne voulez pas que le programme rende le prompt à sa terminaison. Le programme login, par exemple, est un bon exemple de réutilisation de la tâche Bash dans laquelle il est démarré.
exec login
Variables du Shell
modifierToutes les variables locales de la session bash peuvent être vues par la commande set. La variable ne sera vue que par le shell où elle a été déclarée.
Pour déclarer une variable locale, utiliser simplement :
$ MAVARIABLE=SAVALEUR
Pour effacer une variable, utiliser :
$ unset MAVARIABLE
Toutes les variables d'environnement peuvent-être vues par la commande env. Pour déclarer une variable qui sera vue par les autres shells, utilisez export.
$ export MAVARIABLE=SAVALEUR
ou,
$ MAVARIABLE=SAVALEUR $ export MAVARIABLE
Quelques variables importantes :
- HOME : répertoire utilisateur de celui qui s'est connecté.
- PATH : chemin de recherche des commandes.
Man pages
modifierLes manuels en ligne décrivent la majorité des commandes disponibles sur votre système.
$ man mkdir $ man cal
Si vous cherchez un mot clé dans toutes les man pages, utiliser l'option -k, ou la commande apropos.
$ man -k compress $ apropos compress
La variable MANPATH contient les répertoires où les man pages sont stockées.
$ echo $MANPATH /usr/local/man:/usr/share/man:/usr/X11R6/man:/opt/gnome/man
Exercices
modifier- Obtenez des informations sur les commandes useradd et userdel.
- Créer deux nouveaux comptes user1 et user2 et donner leur un mot de passe par la commande passwd. En tant que root, bloquez ces comptes et voyez si vous pouvez encore ouvrir une session pour ces comptes.
- Quelle est la commande qui concatène des fichiers ?
- Declarez et Initialisez les variables d'environnement NAME et LASTNAME. Utiliser echo pour les imprimer.
- Lancez un nouveau bash et vérifiez que vous pouvez encore voir ces deux nouvelles variables.
- Utilisez exec pour démarrer un nouveau bash. Voyez-vous toujours ces nouvelles variables ?
- Utilisez la commande date pour afficher le mois.
- Ajoutez un utilisateur notroot et attribuez lui les mêmes privilèges qu’à root. Bloquez le compte root.