source est une commande shell intégrée pratique qui accepte les arguments, analyse les commandes dans un script et les exécute dans l'environnement shell. Le contenu du fichier est lu par la source, puis transmis à l'interpréteur TCL (Tool Command Language), qui exécute les commandes.
Apprenons à utiliser la source pour exécuter des commandes et à travailler avec des environnements shell sous Linux, ainsi qu'une brève explication de sa différence avec la commande bash.
Utiliser la source pour exécuter des commandes dans un fichier
Pour utiliser la commande source, vous devez d'abord créer un exemple de fichier et le remplir avec des commandes shell. Commencez par créer un nouveau fichier avec la commande tactile. Ouvrez le fichier dans un éditeur de texte de votre choix et écrivez quelques commandes shell de base.
touchetest.SMS
vitest.SMS# Écrivez les commandes dans le fichier texte :
écho "Bonjour!"
pwd
ls
# Sourcez le fichier avec la syntaxe source ou la syntaxe à points
. test.SMS
sourcetexte.SMS
Écrivez le fichier texte et passez-le comme argument à la commande source. Le système exécutera les commandes dans le fichier et renverra une sortie.
Maintenant que vous connaissez les bases de l'utilisation de la source, essayons de changer l'environnement du shell Bash. Cependant, avant de continuer, vous devez avoir une compréhension fondamentale de variables d'environnement sous Linux.
Utilisez la commande source pour mettre à jour l'environnement Bash Shell
Sous Linux, les variables d'environnement sont héritées mais immuables. Si vous exécutez un script shell Bash qui modifie une variable d'environnement $TEST, le script générera un nouveau, processus shell forké, et la modification de $TEST aura lieu à l'intérieur de celui-ci au lieu du Bash d'origine environnement.
Le processus enfant ne pourra pas modifier l'environnement du processus parent. Il ne peut modifier que son propre environnement. Comprenons cela avec un exemple pratique:
exporter TEST="deb"
vi exemple# Tapez ces commandes dans le fichier
exporter TEST="lit"
écho $TEST
# Écrivez le fichier, rendez-le exécutable, puis exécutez-le
chmod +x exemple
./exemple # ceci renverra "lit"
écho $TEST # ceci renverra "deb"
C'est ici que la commande source entre en jeu. Avec la commande source, vous pouvez exécuter un script dans le même environnement shell, qui autrement aurait été forké. Ainsi, si vous sourcez un script qui modifie les variables d'environnement, il apportera les modifications à l'environnement shell Bash.
Pour le tester, écrivez les commandes dans la zone de code ci-dessus dans un nouveau fichier et utilisez la commande source au lieu de la rendre exécutable.
# Créer un nouveau fichier et le modifier
vi test déposer
. test_file
écho $TEST # Cela renverra "lit"
Comme vous pouvez le voir, en utilisant la commande source, vous avez pu mettre à jour les variables d'environnement du processus parent. Il s'agit du principal cas d'utilisation de la commande source, c'est-à-dire pour modifier l'environnement parent.
Ce sont toutes les étapes dont vous avez besoin pour mettre à jour l'environnement shell Bash avec la commande source.
Différence entre les commandes Linux bash et source
La différence entre les commandes Linux bash et source est que lorsque vous exécutez un script avec la commande bash, il indique au Linux kernel pour créer un nouveau processus Bash pour lire et exécuter le script, copier la sortie dans le processus shell d'origine et l'afficher.
Mais la commande source est un shell intégré qui lit et évalue un fichier dans le processus shell actuel. Ainsi, toutes les modifications apportées par le script seront conservées dans le shell Bash.
Dépannage des erreurs de commande source
Dans certains systèmes Linux, vous pouvez rencontrer une erreur "source introuvable" en essayant d'utiliser la commande source. Vous pouvez corriger cette erreur de deux manières :
1. Changer la coque
Certains shells ne prennent pas en charge la commande source. Dans ce cas, vous devrez changer votre environnement shell avec le chsh -s ($quel nom_shell) commande.
Lancez un nouveau terminal après changer de coque, et essayez d'utiliser la commande source. Si le nouveau shell prend en charge le sourçage, il devrait fonctionner parfaitement.
2. Utiliser la syntaxe point/période
Certains environnements shell ne prennent pas en charge "source" la syntaxe mais l'alternative "." syntaxe. La syntaxe "source" est synonyme de point dans Bash. Mais cela ne fonctionne pas dans le shell POSIX, donc pour une compatibilité maximale, utilisez la syntaxe du point.
Commandes Linux de base que vous devez connaître
Les commandes shell Linux sont un excellent moyen d'interagir avec le système à l'aide du terminal. Ils sont l'essence même de l'utilisation des systèmes *NIX.
Bien que vous n'ayez pas besoin de connaître toutes les commandes, en connaître quelques-unes utiles s'avérera sûrement fructueux lorsque vous vous aventurerez profondément dans le monde de Linux.