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

Début de la boite de navigation du chapitre
Travailler en ligne de commande
Icône de la faculté
Chapitre no 2
Leçon : GNU et commandes Unix
Chap. préc. :Unix et Linux
Chap. suiv. :Exécution de flux de textes en utilisant des filtres
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « GNU et commandes Unix : Travailler en ligne de commande
Certification Linux LPI/Administrateur système débutant/Examen 101/GNU et commandes Unix/Travailler en ligne de commande
 », n'a pu être restituée correctement ci-dessus.

Objectifs

modifier

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 :

. / source
bash
echo
env
exec
export
man
pwd
set
unset
~/.bash_history
~/.profile

Ligne de commande

modifier

Les 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

modifier

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 :

$ 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

modifier

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 :

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

modifier

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 :

$ 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

modifier

Les 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
  1. Obtenez des informations sur les commandes useradd et userdel.
  2. 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.
  3. Quelle est la commande qui concatène des fichiers ?
  4. Declarez et Initialisez les variables d'environnement NAME et LASTNAME. Utiliser echo pour les imprimer.
  5. Lancez un nouveau bash et vérifiez que vous pouvez encore voir ces deux nouvelles variables.
  6. Utilisez exec pour démarrer un nouveau bash. Voyez-vous toujours ces nouvelles variables ?
  7. Utilisez la commande date pour afficher le mois.
  8. Ajoutez un utilisateur notroot et attribuez lui les mêmes privilèges qu’à root. Bloquez le compte root.