# Certification Linux LPI/Administrateur système débutant/Examen 101/GNU et commandes Unix/Travailler en ligne de commande
## Objectifs

Description: 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 :

## Ligne de commande

Les lignes de commandes sont de la forme :
Exemples:
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.

## Shells et Bash

L'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 :
Ce qui est différent de :
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

Chaque 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 :
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é.

## Variables du Shell

Toutes 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 :
Pour effacer une variable, utiliser :
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.
ou,
Quelques variables importantes :
    HOME : répertoire utilisateur de celui qui s'est connecté.
    PATH : chemin de recherche des commandes.

### Man pages

Les manuels en ligne décrivent la majorité des commandes disponibles sur votre système.
Si vous cherchez un mot clé dans toutes les man pages, utiliser l'option -k, ou la commande apropos.
La variable MANPATH contient les répertoires où les man pages sont stockées.

## Exercices

* Solution des exercices
* 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.
| Unix et Linux | Exécution de flux de textes en utilisant des filtres |