Outils pour utilisateurs

Outils du site


issue175:c_c

Starting this issue, I thought we could focus on terminal commands and conquer those. Most of us don’t think twice when typing at a terminal, it’s just there. What is actually happening is that you are typing commands into a shell that is interpreting your commands. By default, Ubuntu ships with bash, but you can install another if you like. I will focus on bash. The reason being, that if you ever get to use servers or containers on the internet, chances are good that it is bash. For this command and conquer, I want you to keep this page open in your browser: https://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html I will not waste your time with the history of shells, the internet is full of that, so let’s jump to the meat and potatoes. If you are reading this and your distribution does not have bash by default, like my new work Mac, then use ‘chsh’ (aka. change shell) to change it to ‘/bin/bash’. Now log out and in for the changes to take effect. I have to quickly mention that a terminal emulator is not a terminal emulator is not a terminal emulator, though they may look the same.

À partir de ce numéro, j'ai pensé que nous pourrions nous concentrer sur les commandes du terminal et les conquérir. La plupart d'entre nous ne réfléchissent pas à deux fois lorsqu'ils tapent sur un terminal, il il existe, c'est tout. Ce qui se passe en fait, c'est que vous tapez des commandes dans un shell qui interprète vos commandes. Par défaut, Ubuntu est livré avec bash, mais vous pouvez en installer un autre si vous le souhaitez. Je vais me concentrer sur bash. La raison en est que si vous avez l'occasion d'utiliser des serveurs ou des conteneurs sur Internet, il y a de fortes chances que ce soit bash.

Pour ce « command & conquer », je veux que vous gardiez cette page ouverte dans votre navigateur : https://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html.

Je ne vais pas vous faire perdre votre temps avec l'histoire des shells, l'Internet en est plein, alors passons à l'essentiel. Si vous lisez ceci et que votre distribution n'a pas bash par défaut, comme mon nouveau Mac de travail, alors utilisez « chsh » (alias « change shell ») pour le modifier en « /bin/bash ». Puis, déconnectez-vous et reconnectez-vous pour que les changements prennent effet.

Je dois mentionner rapidement qu'un émulateur de terminal n'est pas un émulateur de terminal n'est pas un émulateur de terminal, bien qu'ils puissent se ressembler.

The quickest way to see any difference is to right click on your terminal and peruse the menu (see bottom left image). My XFCE terminal can have a menu bar and tool bar, but I hide those. So pick one you like and join in the fun. Everyone is familiar with the cd command and it’s quirky use of cd~. We will expand on that and start with the ~ (tilde) as it is a built in shell command that points to $HOME. This means you can use it to go to other user’s home folders, for example cd ~root , so the syntax is: cd ~<username> (this will not work for root if your distribution does not have a root user, nor will it work for users that have not yet signed in.) Now lets have some fun, type: cd /usr Then type: cd /var Now type: cd ~ So we just went full circle, wink wink. Now type: cd ~- , to see where you are, type pwd or dirs. (if your prompt does not show you) Can you figure out what happened? Do it again… What happened? If you have not realised, do it four times. Let’s have some fun with this. Now because the values our command is reading are stored in a variable, $OLDPWD, we are just retrieving it. So can we change it?

Le moyen le plus rapide de voir une différence est de faire un clic droit sur votre terminal et de parcourir le menu (voir l'image en bas à gauche). Mon terminal XFCE peut avoir une barre de menu et une barre d'outils, mais je les cache. Alors choisissez-en un qui vous plaît et amusez-vous.

Tout le monde est à l'aise avec la commande cd et son utilisation bizarre de cd~. Nous allons nous étendre sur ce sujet et commencer par le ~ (tilde) car c'est une commande shell intégrée qui pointe vers $HOME. Cela signifie que vous pouvez l'utiliser pour aller dans les dossiers personnels d'autres utilisateurs, par exemple cd ~root , la syntaxe est donc : cd ~<nom d'utilisateur> (cela ne fonctionnera pas pour root si votre distribution n'a pas d'utilisateur root, ni pour les utilisateurs qui ne se sont encore pas connectés).

Maintenant, amusons-nous un peu, tapez : cd /usr Puis tapez : cd /var Maintenant tapez : cd ~. Nous venons de boucler la boucle, clin d'œil. Tapez maintenant : cd ~- , pour voir où vous êtes, tapez pwd ou dirs. (si votre invite ne vous le montre pas).

Pouvez-vous comprendre ce qui s'est passé ? Recommencez… Que s'est-il passé ? Si vous n'avez pas compris, faites-le quatre fois.

Amusons-nous un peu avec ça. Maintenant, comme les valeurs que notre commande lit sont stockées dans une variable, $OLDPWD, nous ne faisons que les récupérer. Alors, pouvons-nous les modifier ?

A quick visualization exercise. Imagine the towers of Hanoi, the game. You have three pegs that you have to move rings from the first to the last. Imagine the stack to be one of those pegs. To get to the second ring, you need to remove the first. This is how the stack on a computer works, like one of the pegs. Though the directory stack that we are going to use has some short-cuts. The commands to put stuff onto the peg and remove stuff are: pushd and popd (You may have heard of push and pop in programming) So now we push a directory or two onto the stack: pushd /dev/block and again: pushd /var/apt and type ‘dirs’ to see what you did. Now type: cd ~- What happened? Do it again (cd~-). Did it go as expected or not? Just like the ‘.’ and the ‘..’ we see in directories, that can be used in other ways, these values we just pushed onto the stack can be used in other ways too. I have 3 saved paths as you can see, they will be in position 0, 1 and 2. Computers start counting at 0 as a rule of thumb. (There are exceptions) To see what you have, type: echo ~0 and: echo ~1 -Do you see that they count up from left to right?

Petit exercice de visualisation. Imaginez les tours d'Hanoï, le jeu. Vous avez trois piquets sur lesquels vous devez déplacer des anneaux, du premier jusqu'au dernier. Imaginez que la pile est l'un de ces piquets. Pour atteindre le deuxième anneau, vous devez enlever le premier. C'est ainsi que la pile d'un ordinateur fonctionne, comme l'un des piquets. Cependant, la pile des répertoires que nous allons utiliser a quelques raccourcis. Les commandes permettant de mettre des choses sur la pile et d'en retirer sont : pushd et popd (vous avez peut-être entendu parler de push et pop en programmation). Nous allons donc pousser un ou deux répertoires sur la pile : pushd /dev/block et encore : pushd /var/apt et tapez « dirs » pour voir ce que vous avez fait. Maintenant, tapez : cd ~- Qu'est-ce qui s'est passé ? Recommencez (cd~-).

Est-ce que ça s'est passé comme prévu ou non ? Tout comme les « . » et les « .. » que nous voyons dans les répertoires, qui peuvent être utilisés d'autres façons, ces valeurs que nous venons de pousser sur la pile peuvent aussi être utilisées d'autres façons. J'ai 3 chemins sauvegardés comme vous pouvez le voir ; ils sont en position 0, 1 et 2. En règle générale, les ordinateurs commencent à compter à partir de 0. (Il y a des exceptions.)

Pour voir ce que vous avez, tapez : echo ~0 et : echo ~1 - Constatez-vous qu'ils comptent de gauche à droite ?

Now lets use popd to remove one of the paths in the list. Here I will explain a bit how the directory stack differs from the stack inside your CPU. The stack in your CPU works on a last in, first out basis, think towers of Hanoi. Lots of stacks do, but the directory stack, we can reach in and remove, say, the second value. Type: popd +1 and then type: dirs to see what you have. So popd reached over position 0 and removed the second path. You could have said popd +2, basically popd +n-th position, assuming it exists. Another way to think about this is when you type pwd. Print working directory. You can think of these lists of paths as working directories. We used cd~- to move to the previous working directory. Now I want you to use cd~+ to move to the next working directory. Okay, now you should have a better understanding , because you were hands-on. Now feel free to go read that page I had you keep open for reference, in the beginning and see if you understand it better. I hope you learned something this issue. As always, direct any comments or complaints to: misc@fullcirclemagazine.org

Maintenant, utilisons popd pour supprimer un des chemins de la liste. Ici, je vais expliquer un peu comment la pile des répertoires diffère de la pile de votre CPU. La pile de votre CPU fonctionne sur la base du dernier entré, premier sorti, pensez aux tours de Hanoï. C'est le cas de beaucoup de piles, mais avec la pile des répertoires, nous pouvons entrer et retirer, disons, la deuxième valeur. Tapez : popd +1 et ensuite tapez : dirs pour voir ce que vous avez. Donc popd a atteint la position 0 et a supprimé le deuxième chemin. Vous auriez pu dire popd +2, en fait popd +n-ième position, en supposant qu'elle existe.

Une autre façon de penser à cela est lorsque vous tapez pwd. Imprimer le répertoire de travail. Vous pouvez considérer ces listes de chemins comme des répertoires de travail. Nous avons utilisé cd~- pour nous déplacer vers le répertoire de travail précédent. Maintenant, je veux que vous utilisiez cd~+ pour vous déplacer vers le répertoire de travail suivant.

Ok, là, vous devriez mieux comprendre, parce que vous avez mis la main à la pâte. Maintenant, n'hésitez pas à aller lire la page que je vous ai demandé de garder ouverte comme référence, au début, et voyez si vous comprenez mieux.

J'espère que vous en avez appris quelque chose.

Comme toujours, adressez vos commentaires ou vos plaintes à : misc@fullcirclemagazine.org

issue175/c_c.txt · Dernière modification : 2021/12/03 14:40 de andre_domenech