Le Shell
L’interface en ligne de commande est appelée un shell et sur Ubuntu, le shell par défaut est bash.
Un shell est un programme qui affiche un prompt et attends une commande.
Voici les informations du prompt :
adriano@jammy:~$ (1) user@hostname:directory$ (2)
1 | Je suis l’utilisateur adriano et je me trouve dans mon répertoire home sur le serveur jammy. |
2 | Utilisateur@serveur:répertoire courant |
Comme vu précédemment, les raccourcis . et .. correspondent aux dossiers courant et parent.
Nous pouvons ajouter ~ qui représente le dossier home de l’utilisateur.
Le prompt peut-être personnalisé par la variable PS1 ou un programme.
Les variables d’environnements
Le shell utilise des variables que vous pouvez définir ou redéfinir sur la ligne de commande ou à partir de votre fichier ~/.bashrc
Par exemple, quand vous lui donnez le nom d’une commande, le shell va chercher dans les dossiers définis dans la variable PATH un exécutable du même nom.
adriano@jammy:~$ echo $PATH
/bin:/usr/bin:/sbin:/usr/local/bin
adriano@jammy:~$ which nano
/usr/bin/nano
La variable $HOME contient le chemin vers le dossier HOME de l’utilisateur et la variable USER contient son username :
adriano@jammy:~$ echo $HOME
/home/adriano
adriano@jammy:~$ echo $USER
adriano
adriano@jammy:~$ echo $UID
1000
Exécution des programmes et scripts
Lorsqu’un exécutable est dans un des dossiers définis dans la variable $HOME, il suffit d’entrer son nom.
Par contre s’il ne l’est pas, il faut aussi donner le chemin complet ou relatif.
Voici un script bash à créer dans le dossier $HOME :
#!/bin/bash (1)
NAME=$1
if [[ -n $NAME ]]; then
echo "Hello $NAME !"
exit
fi
echo "Hello World !"
1 | Cette ligne indique au shell que si le fichier texte est exécutable, il faut le lancer avec le programme /bin/bash |
Pour l’exécuter, nous pouvons l’appeler comme ceci :
adriano@jammy:~$ bash my_script.sh Adriano
Hello Adriano !
Mais nous pouvons aussi lui ajouter les droits d’exécution et lancer le script sans bash :
adriano@jammy:~$ chmod a+x my_script.sh
adriano@jammy:~$ ./my_script.sh
Hello World !
adriano@jammy:~$ /home/adriano/my_script.sh
Hello World !
Maintenant, nous allons créer un dossier ~/bin/ que nous utiliserons pour y copier nos scripts ou programmes personnels.
Pour ajouter un dossier à la variable $PATH de la session :
adriano@jammy:~$ mkdir ~/bin
adriano@jammy:~$ export PATH=~/bin:$PATH
adriano@jammy:~$ echo $PATH
/home/adriano/bin:/bin:/sbin:/usr/bin:/usr/local/bin
adriano@jammy:~$ my_script.sh Adriano
Hello Adriano !
Cependant, ceci n’est valable que pour cette session.
Si nous voulons que ce changement soit persistant, il faut l’ajouter au fichier de configuration ~/.bashrc :
adriano@jammy:~$ echo 'export PATH=~/bin:$PATH' >> ~/.bashrc