Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue176:c_c [2022/01/04 14:45] – auntiee | issue176:c_c [2022/01/05 15:36] (Version actuelle) – andre_domenech |
---|
First, let us talk about variables. You can think of variables as substitutes for something that may change. Please open a terminal and let’s play and learn. ** | First, let us talk about variables. You can think of variables as substitutes for something that may change. Please open a terminal and let’s play and learn. ** |
| |
La plupart d'entre nous ne réfléchit pas quand on écrit sur un terminal ; il existe, c'est tout. En fait, vous saisissez des commandes dans un shell qui qui les interprète. Par défaut, Ubuntu est livrée avec bash, mais vous pouvez installer un autre shell si vous voulez. Je vais me concentrer sur bash, parce que, si vous avez jamais l'occasion d'utiliser des serveurs ou des conteneurs sur l'Internet, il y a de bonnes chances que ce soit bash. | La plupart d'entre nous ne réfléchissent pas quand ils écrivent sur un terminal ; il existe, c'est tout. En fait, vous saisissez des commandes dans un shell qui les interprète. Par défaut, Ubuntu est livrée avec bash, mais vous pouvez installer un autre shell si vous voulez. Je vais me concentrer sur bash, parce que, si vous avez jamais l'occasion d'utiliser des serveurs ou des conteneurs sur l'Internet, il y a de bonnes chances que ce soit bash. |
| |
Le terminal par défaut est ennuyeux. Bon, je l'ai dit. L'une des premières choses que des gens font est de le personnaliser. Je trouve souvent que beaucoup de gens font des recherches sur le Net pour des scripts mystérieux et font du copier/coller sans comprendre ce qu'ils venait de faire. Je pensais que je pouvais essayer d'éclairer le sujet, car copier/coller un truc dont vous ignorez tout fait peur. | Le terminal par défaut est ennuyeux. Bon, je l'ai dit. L'une des premières choses que des gens font est de le personnaliser. Je trouve souvent que beaucoup de gens font des recherches sur le Net pour des scripts mystérieux et font du copier/coller sans comprendre ce qu'ils viennent de faire. Je pensais que je pouvais essayer d'éclairer le sujet, car copier/coller un truc dont vous ignorez tout fait peur. |
| |
Nous allons parler d'abord de variables. Vous pouvez les considérer comme des substituts pour quelque chose qui peut changer. Ouvrez un terminal, s'il vous plaît, pour que nous puissions jouer et apprendre. | Nous allons parler d'abord de variables. Vous pouvez les considérer comme des substituts pour quelque chose qui peut changer. Ouvrez un terminal, s'il vous plaît, pour que nous puissions jouer et apprendre. |
To reference any variable in bash, we need to use the $ - dollar sign. Type: echo “$var1” and press enter. This will simply echo the value of var1 to the screen. Just to make sure, type: echo “var1” and press enter. Do you see what I meant? Now type echo “$var2” and press enter. What result did you get? Do you understand why? If not, you know where to send your questions. We can also combine variables with other variables and even non-variables. Type: “the numbers are $var1” and press enter. All you did was substitute the $var1 for whatever you put inside it. So let’s say we don’t need var1 any more. To get rid of it, simply use “unset”. Type: unset var1 and press enter. Now try to echo it to the screen again to confirm it is really gone.** | To reference any variable in bash, we need to use the $ - dollar sign. Type: echo “$var1” and press enter. This will simply echo the value of var1 to the screen. Just to make sure, type: echo “var1” and press enter. Do you see what I meant? Now type echo “$var2” and press enter. What result did you get? Do you understand why? If not, you know where to send your questions. We can also combine variables with other variables and even non-variables. Type: “the numbers are $var1” and press enter. All you did was substitute the $var1 for whatever you put inside it. So let’s say we don’t need var1 any more. To get rid of it, simply use “unset”. Type: unset var1 and press enter. Now try to echo it to the screen again to confirm it is really gone.** |
| |
Nous utiliserons la commande echo d'abord et le terminal fera echo à tout ce que vous saisissez à l'écran. Tapez echo "Mon nom est Jacques" et appuyez sur entrée et vous verrez ce qui est entre les "" à l'écran. C'est ce que fait echo, rien de sophistiqué ni de caché ici. Nous utiliserons echo pour voir ce qui se trouve à l'intérieur de nos variables. Pour assigner une valeur à une variable, nous utilisons tout simplement l'opérateur de tâche - le bon vieux caractère égale. Tapez : var1=123 et appuyez sur entrée pour assigner la valeur 123 à la variable appelée var1. Puisque les espaces comptent, var1 = 123 ne fonctionnera pas. Il n'y a pas non plus d'espaces dans le nom de la variable. Souvenez-vous de cela et tout se passera très bien. | Nous utiliserons la commande echo d'abord et le terminal fera echo à tout ce que vous saisissez à l'écran. Tapez echo "Mon nom est Jacques" et appuyez sur entrée et vous verrez ce qui est entre les "" à l'écran. C'est ce que fait echo, rien de sophistiqué ni de caché ici. Nous utiliserons echo pour voir ce qui se trouve à l'intérieur de nos variables. Pour assigner une valeur à une variable, nous utilisons tout simplement l'opérateur d'affectation - le bon vieux caractère égal. Tapez : var1=123 et appuyez sur entrée pour assigner la valeur 123 à la variable appelée var1. Puisque les espaces comptent, var1 = 123 ne fonctionnera pas. Il n'y a pas non plus d'espaces dans le nom de la variable. Souvenez-vous de cela et tout se passera très bien. |
| |
Pour référencer n'importe quelle variable dans bash, il faut utiliser le caractère dollar - $. Tapez : echo "$var1" et appuyez sur entrée. Cela reproduira tout simplement la valeur de var1 à l'écran. Pour vous en convaincre, tapez: echo "var1" et appuyez sur entrée. Comprenez-vous ce que je voulais dire ? Maintenant, tapez echo "$var2" et appuyez sur entrée. Quel est le résultat ? Comprenez-vous pourquoi ? Sinon, vous savez où envoyer vos questions. On peut aussi combiner des variables avec d'autres variables et même des non-variables. Tapez : "les chiffres sont $var1" et appuyez sur entrée. Toute ce que vous avez fait était de substituer $var1 pour ce que vous avez mis à son intérieur. Bon. Disons que nous n'avons plus besoin de var1. Pour le supprimer, il suffit d'utiliser la commande « unset ». Tapez : unset var1 et appuyez sur entrée. Maintenant, essayez de le faire echo à l'écran à nouveau pour confirmer qu'elle est vraiment supprimée. | Pour faire référence à n'importe quelle variable dans bash, il faut utiliser le caractère dollar - $. Tapez : echo "$var1" et appuyez sur entrée. Cela reproduira tout simplement la valeur de var1 à l'écran. Pour vous en convaincre, tapez: echo "var1" et appuyez sur entrée. Comprenez-vous ce que je voulais dire ? Maintenant, tapez echo "$var2" et appuyez sur entrée. Quel est le résultat ? Comprenez-vous pourquoi ? Sinon, vous savez où envoyer vos questions. On peut aussi combiner des variables avec d'autres variables et même des non-variables. Tapez : "les chiffres sont $var1" et appuyez sur entrée. Tout ce que vous avez fait a été de remplacer $var1 par ce que vous avez mis à son intérieur. Bon. Disons que nous n'avons plus besoin de var1. Pour le supprimer, il suffit d'utiliser la commande « unset ». Tapez : unset var1 et appuyez sur entrée. Maintenant, essayez à nouveau d'en recevoir l'écho à l'écran pour confirmer qu'elle est vraiment supprimée. |
| |
**A good practice is to use curly braces when referencing a variable, this makes scripting a lot easier. The format is: ${variable} ie: ${var3} | **A good practice is to use curly braces when referencing a variable, this makes scripting a lot easier. The format is: ${variable} ie: ${var3} |
Tapez : var1=typedejeu et appuyez sur entrée. Maintenant tapez echo ${var1}AAA et appuyez sur entrée. | Tapez : var1=typedejeu et appuyez sur entrée. Maintenant tapez echo ${var1}AAA et appuyez sur entrée. |
| |
Maintenant, faites-le à nouveau, mais sans les accolades, pour voir ce qui se passe. Vous pouvez faire plus avec vos chiffres et chaînes que ce que nous avons fait jusqueici. Une variable peut contenir une commande en texte, par exemple, tapyez : space="df -h" et appuyez sur entree. Mainant tapez $space et appuyez sur entrée. Quand vous faites echo à la variable, elle ne se « lance » pas, mais quand vous « l'appelez » avec $space, elle le fait (voir l'image ci-dessous). | Maintenant, faites-le à nouveau, mais sans les accolades, pour voir ce qui se passe. Vous pouvez faire plus avec vos chiffres et chaînes que ce que nous avons fait jusqu'ici. Une variable peut contenir une commande en texte, par exemple, tapez : space="df -h" et appuyez sur entrée. Maintenant, tapez $space et appuyez sur entrée. Quand vous faites echo à la variable, elle ne se « lance » pas, mais quand vous « l'appelez » avec $space, elle le fait (voir l'image ci-dessous). |
| |
**The text was converted to a command. While this is cute and all, I would rather you use an alias if you wanted to do this sort of thing, but you can see what is possible, should you want to script something. | **The text was converted to a command. While this is cute and all, I would rather you use an alias if you wanted to do this sort of thing, but you can see what is possible, should you want to script something. |
Le texte a été converti en commande. Alors que c'est sympa et tout, je préférerais que vous utilisiez un alias si vous vouliez faire ce genre de chose, mais vous pouvez voir les possibilités, si vous voulez scripter quelque chose. | Le texte a été converti en commande. Alors que c'est sympa et tout, je préférerais que vous utilisiez un alias si vous vouliez faire ce genre de chose, mais vous pouvez voir les possibilités, si vous voulez scripter quelque chose. |
| |
Nous pouvons même utiliser la sortie d'une commande comme variable. Pour cela, nous utilisons des parenthèses à la place d'accolades. Tapez x=$(pwd) et appuyez sur entrée. Comme avant, echo $x et appuyez sur entrée pour voir ce qui s'est passé. Cela peut être utile quand vous devez vérifier un journal dans un dossier vers lequel vous ne voulez pas tapez le chemin complet encore une fois ou l'utiliser de multiples fois dans votre script. Cependant, dans certains scripts vous pouvez voir des quotes inverses (`) qui se trouve habituellement sur la même touche que l'è/7. Tapez : echo "ùptime`" et appuyez sur entrée pour voir le résultat. S'il y a un message d'erreur, vous avez sans doute utilisé des apostrophes au lieu de quotes inverses. Et, comme par magie, vous pouvez l'utilisez dans vos propres scripts, une fois que vous l'avez compris. Ces scripts ne semblent pas si mystérieux maintenant, non ? | Nous pouvons même utiliser la sortie d'une commande comme variable. Pour cela, nous utilisons des parenthèses à la place d'accolades. Tapez x=$(pwd) et appuyez sur entrée. Comme avant, tapez echo $x et appuyez sur entrée pour voir ce qui s'est passé. Cela peut être utile quand vous devez vérifier un journal dans un dossier vers lequel vous ne voulez pas taper le chemin complet encore une fois ou l'utiliser de multiples fois dans votre script. Cependant, dans certains scripts, vous pouvez voir des quotes inverses (`) qui se trouvent habituellement sur la même touche que l'è/7. Tapez : echo "`uptime`" et appuyez sur entrée pour voir le résultat. S'il y a un message d'erreur, vous avez sans doute utilisé des apostrophes au lieu de quotes inverses. Et, comme par magie, vous pouvez l'utiliser dans vos propres scripts, une fois que vous l'avez compris. Ces scripts ne semblent pas si mystérieux maintenant, non ? |
| |
**So how do we look at those variables we would like to change? | **So how do we look at those variables we would like to change? |
Exactement comme vous l'avez fait jusqu'ici. Tapez : echo $PATH et appuyez sur entrée. | Exactement comme vous l'avez fait jusqu'ici. Tapez : echo $PATH et appuyez sur entrée. |
| |
Vous remarquerez que PATH est en majuscules. Essayez-le en lettres minuscules pour voir ce qui se passe. Maintenant tapez : echo $USER et appuyez sur entrée. Vous pouvez faire la même chose avec la variable $HOME. La variable PATH est importante. C'est là où le système recherche des fichiers à lancer. Il faut, donc, faire très attention à ce que vous ajouter à ce chemin. Une bonne idée est de copier et coller le résultat dans un fichier texte AVANT de commencer à bricoler avec les variables de votre utilisateur. Tapez : echo $0 et appuyez sur entrée. Maintenant tapez : echo $PS1 et appuyez sur entrée. | Vous remarquerez que PATH est en majuscules. Essayez-le en lettres minuscules pour voir ce qui se passe. Maintenant tapez : echo $USER et appuyez sur entrée. Vous pouvez faire la même chose avec la variable $HOME. La variable PATH est importante. C'est là où le système recherche des fichiers à lancer. Il faut, donc, faire très attention à ce que vous ajoutez à ce chemin. Une bonne idée est de copier et coller le résultat dans un fichier texte AVANT de commencer à bricoler avec les variables de votre utilisateur. Tapez : echo $0 et appuyez sur entrée. À présent tapez : echo $PS1 et appuyez sur entrée. |
| |
Maintenant, examinez les scripts que vous avez récupérés sur le Net à nouveau. Commencent-ils à devenir plus clairs ? Regardez attentivement les caractères dollar et quote inverse quand vous lisez une ligne et si vous n'êtes pas certain de ce qu'ils représente, il suffit simplement d'y faire echo. | Maintenant, examinez les scripts que vous avez récupérés sur le Net à nouveau. Commencent-ils à devenir plus clairs ? Regardez attentivement les caractères dollar et quote inverse quand vous lisez une ligne et si vous n'êtes pas certain de ce qu'ils représentent, il suffit simplement d'y faire echo. |
| |
Vos devoirs | Vos devoirs |
| |
Pouvez-vous dire ce que fait ce remplacement d'invite et pourquoi : PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_o\[\e[0m\]; fi\`[\u@\h:\w]\<strong>\$</strong> " | Pouvez-vous dire ce que fait ce remplacement d'invite et pourquoi : PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_o\[\e[0m\]; fi\`[\u@\h:\w]\<strong>\$</strong> " |