GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que la commande source sous Linux et comment ça marche ?

La commande source exécute des commandes à partir d'un fichier dans le shell actuel. Il peut également être utilisé pour actualiser les variables d'environnement et pour être honnête, l'utilisation principale de la commande source est d'actualiser les variables d'environnement.

source filename [options]

Vous pouvez aussi utiliser . (point) au lieu de la commande source comme ceci :

. filename [options]

Comment fonctionne la commande source ?

La syntaxe de cette commande est simple, mais sa compréhension nécessite un examen un peu plus approfondi de certains concepts Linux. Si vous débutez avec Linux ou en programmation, vous n'avez peut-être qu'une vague idée de ce qu'est une variable.

Si vous avez entendu ce terme, mais que vous ne savez pas exactement ce qu'il signifie, ce n'est pas grave ! N'oubliez pas que nous partons tous exactement du même endroit. Personne ne se réveille soudainement le matin en tant qu'administrateur système ou programmeur.

Je vais donner une brève explication avant de continuer.

Vous pouvez passer à l'en-tête suivant si vous savez déjà comment créer des variables dans bash.

Vue d'ensemble des variables

Vous pouvez ouvrir n'importe quel terminal bash et créer de nouvelles variables. Une variable peut être considérée comme un espace réservé qui peut être utilisé pour diriger votre système vers une information (lettres, chiffres ou symboles).

Prenons un exemple. Je vais créer une nouvelle variable appelée nom et je vais lui attribuer la valeur Christopher.

En bash, cela se fait à l'aide de la formule :variable_name=your_variable . N'ajoutez aucun espace entre = symbole et votre texte.

[email protected]:~$ name=Christopher
[email protected]:~$ echo $name
Christopher

Que se passe-t-il si je tape simplement le nom de la variable ?

[email protected]:~$ echo name
name

Si vous oubliez ce symbole, bash renverra le texte que vous avez saisi. Ici, je lui dis de faire écho, ou d'imprimer, "nom". Sans le symbole $, bash ne reconnaît pas que vous souhaitez utiliser la variable que vous avez créée.

Votre variable sera insérée là où elle est appelée. Je peux donc aussi l'inclure dans une phrase comme celle-ci :

[email protected]:~$ echo "Hello, $name. $name is a great name. It's good to meet you."
Hello, Christopher. Christopher is a great name. It's good to meet you.

Il y a beaucoup de choses que vous pouvez faire avec les variables, mais j'espère que cette introduction sera suffisante pour permettre à quiconque lira ceci de comprendre comment elles fonctionnent.

Variables d'environnement vs variables shell

Pour la clé suivante pour comprendre la commande source, parlons de la persistance. C'est un moyen facile de réfléchir à la différence entre la coque et le contenu environnemental. Vous pouvez également y penser en termes de "portabilité" selon le contexte.

En termes simples, si vous créez une variable dans un shell de terminal, elle sera perdue une fois que vous quitterez ce shell.

En revanche, une variable d'environnement est persistante dans votre système d'exploitation. Ces variables utilisent généralement toutes les majuscules pour se distinguer.

Un exemple de ceci est votre nom d'utilisateur qui est connu par le système d'exploitation sous le nom de $USER.

[email protected]:~$ echo $USER
christopher

Bon, vous avez passé pas mal de temps à passer en revue les différences entre les variables d'environnement et de shell. Qu'est-ce que cela a à voir avec la source ? ? Tout, vraiment.

Sinon, il n'y aurait aucune différence en exécutant source et bash . Afin d'illustrer ce point, j'ai une autre démonstration en vue.

Source contre Bash

Si vous connaissez Linux depuis un petit moment, vous avez peut-être rencontré ces commandes et pensé qu'elles faisaient la même chose. Après tout, les deux commandes peuvent être utilisées pour exécuter un script.

La source fonctionne dans le shell actuel, contrairement à l'exécution de bash qui crée un nouveau shell. Ce n'est pas évident puisqu'aucune nouvelle fenêtre ne s'affiche.

Si vous suivez, celui-ci vous demandera d'écrire un script très simple (appelons-le echo.sh) qui ressemble à ceci :

#! bin/bash

echo $USER
echo $name

Avant de faire quoi que ce soit d'autre dans votre terminal, attribuez votre nom au nom de la variable.

[email protected]:~$ name=chris

Ensuite, je vais vous montrer ce qui se passe lorsque vous essayez les 3 commandes dans le même terminal auquel vous avez attribué votre variable.

[email protected]:~$ bash echo.sh 
christopher

[email protected]:~$ source echo.sh 
christopher
chris
[email protected]:~$ . echo.sh 
christopher
chris

Comme vous pouvez le voir, votre variable locale n'était pas reconnue lorsque vous avez exécuté votre script via bash .

Actualiser les variables d'environnement avec la commande source

Source peut également être utilisé pour mettre à jour les variables d'environnement dans le shell actuel. Une application courante pour cette tâche consiste à mettre à jour votre profil bash dans le shell actuel.

Un utilisateur peut vouloir modifier son profil bash pour, par exemple, créer un alias. Normalement, une fois que vous avez enregistré la configuration, vous devrez ouvrir une nouvelle fenêtre de terminal pour que les modifications aient lieu.

[email protected]:~$ source .bashrc 

L'exécuter actualisera les paramètres de votre shell actuel sans vous obliger à ouvrir un nouveau terminal.

Conclusion

Nous espérons que vous avez apprécié ce tutoriel sur la commande source. Comme toujours, n'hésitez pas à nous faire part de vos réflexions dans la section des commentaires. Si vous avez apprécié cet article, partagez-le sur les réseaux sociaux à l'aide des boutons ci-dessous.


Linux
  1. Qu'est-ce qu'un Makefile et comment ça marche ?

  2. Comment fonctionne la commande 'ls' sous Linux/Unix ?

  3. Comment installer TBB à partir de la source sur Linux et le faire fonctionner

  4. Comment ça marche ? Que fait rm ?

  5. Comment fonctionne un débogueur sous Linux ?

Commande de fichier Linux :que fait-elle et comment l'utiliser

Commande Linux Tail :qu'est-ce que c'est et comment l'utiliser

Comment installer et utiliser la commande fd sous Linux

Qu'est-ce que la commande Grep sous Linux ? Pourquoi est-il utilisé et comment fonctionne-t-il ?

Qu'est-ce que BusyBox sous Linux ? Comment l'utiliser?

Comment fonctionne la mémoire d'échange sous Linux ?