Revue des techniques de programmation en shell

114
22
sept.
2014
Ligne de commande

L'été est fini, c'est la rentrée ! Pour se remettre en forme, rien de tel qu'une revue des techniques de programmation en shell — ces techniques sont pour le shell de Bourne /bin/sh mais peuvent être utilisées avec les shells compatibles qui permettent parfois des solutions plus faciles.

GameShell, apprendre les rudiments du shell en s'amusant

Posté par  . Édité par claudex et Pierre Jarillon. Modéré par Pierre Jarillon. Licence CC By‑SA.
80
26
mar.
2021
Ligne de commande

Il y a 4 ans, j'ai pris en charge un nouveau cours intitulé « système d'exploitation » en première année de licence. Le programme est assez large, avec un peu d'architecture, un peu de système, et même un peu de réseau. Là dedans, je devais faire une introduction au shell. Le risque avec ce genre du truc, c'est de se retrouver avec un catalogue de commandes qui rebutera même les étudiants les plus motivés.

Et c'est comme ça qu'est né GameShell, ou gash pour les intimes. GameShell est un jeu où il faut entrer des commandes dans un shell (bash) pour valider des « missions ». Comme il n'y a pas eu de gros bug ces deux dernières années, je me dis que je pouvais en faire la pub. (Attention, il reste probablement plein de bugs. C'est juste que les étudiants ne sont pas encore tombés dessus !). Ça peut intéresser les gens qui veulent apprendre, ou enseigner les rudiments du shell.

Le code est disponible sur GitHub (promis, je changerais un de ces jours) avec une licence GPL : GameShell sur GitHub

N'hésitez pas à me faire des retours d'utilisation, des rapports de bugs, proposer des fonctionnalités, ajouter des missions, etc.
Si vous l'utilisez « en public », ça serait juste bien d'inclure un lien vers le dépôt et / ou mon nom.

GameShell est un jeu en ligne de commandes, où le joueur doit taper des commandes bash pour valider des « missions ».

Terminus : un jeu d’aventure pour apprendre à utiliser la ligne de commande

Posté par  . Édité par Davy Defaud, Nÿco, palm123 et Benoît Sibaud. Modéré par Nÿco. Licence CC By‑SA.
67
20
nov.
2017
Jeu

En 2011, des étudiant·e·s du MIT ont eu l’idée de passer par le biais du jeu vidéo pour apprendre à utiliser la ligne de commande GNU/Linux aux non‐initié(e)s. Trois ans plus tard sortait le jeu Terminus jouable (accès au code source).

Terminus, un jeu avec des gamins, des trolls, et des manuscrits

Mosh, the Mobile Shell

Posté par  . Édité par Nÿco, baud123 et claudex. Modéré par NeoX. Licence CC By‑SA.
58
16
avr.
2012
Ligne de commande

Mosh est une application permettant d'ouvrir une session à distance et sécurisée sur une machine de type Unix.

À la différence du célèbre et incoutournable SSH, Mosh offre la possibilité de maintenir une session ouverte tout en étant connecté par intermittence (roaming IP), d'où son nom : Mobile Shell.
Ce dernier est une alternative au couple SSH+Screen.

Fonctionnement

Mosh utilise SSH pour se connecter sur l'hôte distant. Une fois la connexion établie, un processus mosh-server prend le relais sur un port UDP en ouvrant une nouvelle session sécurisée et ferme la session SSH. Le client communique alors directement avec mosh-server. Avantage de la solution ? Si le client change d'adresse IP et qu'il retente une connexion à travers SSH, mosh-server reprend le dialogue avec la nouvelle adresse IP.

Mosh utilise aussi une approche différente de SSH pour la gestion de l'affichage du terminal client. Mosh n'attend pas une réponse de l'hôte distant pour afficher ce qui a été saisi par l'utilisateur. Le client et le serveur possèdent chacun un instantané (snapshot) de l'écran à afficher. La solution de Mosh repose sur la synchronisation de ces deux états. Ce qui permet à l'utilisateur de réduire les impressions de latence si la qualité de sa connexion est mauvaise.

Autres points importants :

  • Mosh n'a pas besoin des droits super-utilisateur pour s'exécuter.
  • Mosh impose un environnement en UTF-8 et ne gère pas d'autres encodages.
  • Mosh ne gère pas encore le X-forwarding, ni le Port-forwarding.

Sortie de Rivalcfg v4.0, un outil de configuration pour les souris SteelSeries

57
26
août
2020
Matériel

Rivalcfg est un petit utilitaire en ligne de commande ainsi qu’une bibliothèque Python permettant de configurer les souris gaming de la marque SteelSeries sous GNU/Linux, mais aussi sous Windows, macOS, etc.

La version 4.0 venant tout juste de sortir, c’est l’occasion d’en parler un peu et de faire le point sur le projet.

Souris SteelSeries sur le banc de test

htop atteint la version 1.0  !

Posté par  (site web personnel) . Édité par Davy Defaud, patrick_g et Nÿco. Modéré par Xavier Teyssier. Licence CC By‑SA.
Étiquettes :
56
22
nov.
2011
Ligne de commande

htop est un outil en mode texte qui permet d’afficher les processus qui tournent et les informations associées à ces processus, comme leur utilisation du temps processeur ou leur consommation mémoire. htop est publié sous licence GPL et vient d’atteindre la symbolique version 1.0.

htop est un clone de top, mais en mieux. Il permet par exemple :

  • d’avoir un défilement (scroll) horizontal et vertical ;
  • de tuer un processus sans avoir à entrer à la main son identifiant PID ;
  • de démarrer plus rapidement ;
  • d’afficher des barres colorées pour indiquer l’utilisation processeur globale et la consommation mémoire.

Bref, je vous encourage à essayer htop, c’est un très bon remplaçant à top.

Journal rétrospective sur la mise en page en console

51
5
fév.
2022

'jour 'nal.

Dans une enfilage sur le clavier, j'avais avoué ma passion pour l'histoire des systèmes et matériels informatiques ; et dans diverses autres discussion, ici et ailleurs, j'ai souvent évoqué l'influence des télescripteurs (en tant que périphériques d'entrée-sortie) sur le système Unix, un processeur de textes commandé textuellement
C'est cet aspect que j'aimerais rappeler à travers quelques commandes oubliées.

intro au kilomètre

J'ai souvenir qu'on enseignait à une certaine époque (j'ai l'impression que ce n'est (…)

Interminable liste de terminaux

50
14
oct.
2025
Ligne de commande

Ah, la ligne de pêche Maginot commande ! Que ce soit pour gérer ses fichiers, récupérer des commits, lancer une compilation, se connecter à un serveur, redémarrer un service, consulter les logs, voire contrôler la musique, afficher des images, cette interface reste en 2025 exceptionnellement boomer rapide et même parfois confortable.

Sans compter que le terminal est l'endroit où lancer des applications dédiées, pour lire ses mails ou un million d'autres choses.

Bref rappel avant se lancer dans de longues comparaisons

  • TTY vient de teletypewriter. Si vous tapez (Xorg comme Wayland) Control + Alt + F3 par exemple, vous vous retrouverez devant une invite de commande.
  • pts/pty : quand vous ouvrez un terminal

L'invite de commande pourra bénéficier d'un shell personnalisé. Le bureau permettra l'usage d'un terminal.

ack 1.96 — mieux que grep

Posté par  (site web personnel) . Modéré par Xavier Teyssier. Licence CC By‑SA.
48
20
sept.
2011
Ligne de commande

Ack est un outil qui permet de rechercher du texte à l’intérieur de fichiers. C’est donc un clone de grep avec quelques améliorations notables. Voici donc dix raisons de passer à ack si vous utilisez grep :

  1. ack est très rapide, car il ne recherche que ce que vous voulez chercher ;
  2. il recherche récursivement par défaut ;
  3. il ignore les trucs inutiles, comme les répertoires utilisés par les [VCS], les fichiers de sauvegarde (« foo~ » et « #foo# »), les binaires, etc. ;
  4. vous pouvez spécifier simplement le type de fichiers à rechercher, comme « --perl » ou « --nohtml » ;
  5. la coloration syntaxique des résultats est là par défaut ;
  6. vous pouvez utiliser les expressions régulières de Perl, pas juste le sous‐ensemble de GNU ;
  7. l’apprentissage d’ack est très simple, car il reprend les mêmes options en ligne de commande que grep (« -c », « -l », « -w », etc.) ;
  8. il est possible d’avoir des options par défaut dans un fichier « ~/.ackrc » ;
  9. la commande fait 25 % de caractères en moins à taper ;
  10. en fait, c’est même 50 % de gagné par rapport à « grep -r ».

La version 1.96 d’ack est sortie dimanche et apporte quelques améliorations notables :

  • les fichiers JavaScript « minifiés » sont ignorés par défaut ;
  • le langage Groovy est supporté (extensions : « .groovy », « .gtmpl », « .gpp », « .grunit ») ;
  • les fichiers Perl et Lua sont mieux détectés.

Note : pour installer ack sur Debian et Ubuntu, il faut faire un « apt-get install ack-grep » (et pas juste « ack »). En revanche sous Archlinux, un « pacman -S ack » sera suffisant. Les autres distributions (Fedora, Gentoo) utilisent également le simple nom « ack »).

Lidecli : Un outil en ligne de commande pour interagir avec les environnements de bureau

Posté par  . Édité par Julien Jorge, Benoît Sibaud et Ysabeau 🧶. Modéré par Ysabeau 🧶. Licence CC By‑SA.
Étiquettes :
48
13
juil.
2023
Ligne de commande

Lidecli - abréviation de Linux Desktop CLI - est un wrapper libre (MIT) développé en Python permettant de scripter plus facilement le positionnement de vos fenêtres quel que soit votre environnement de bureau. Habituellement, scripter ou automatiser le positionnement des fenêtres nécessite :

  • l’utilisation d’outils bien connus (wmctrl, xprop, qdbus, xrandr, etc.),
  • ou, pour certains environnements - du code (LUA pour AwesomeWM par exemple).

En d’autres termes, il n’existe pas vraiment de moyens « simples » permettant de scripter à sa guise son environnement. Lidecli agit comme un wrapper qui simplifie grandement cette tache.

Lidecli

Journal Weboob - Web out of Browsers - l'outil qui a changé ma vie

Posté par  . Licence CC By‑SA.
47
22
nov.
2011

Sommaire

Monjour, nal !

Aujourd'hui, si je prends ma plume numérique, c'est pour te parler d'un soft. Ce soft, nous ne le connaissons pas. Ni vous ni nous (oh le petit chat).

Il s'agit de weboob.

Weboob, koitesse ?

Weboob, comme son petit nom l'indique, permet d'accéder au web en dehors des navigateurs Web. Ça (…)

Coccigrep, un grep sémantique pour le langage C basé sur Coccinelle

Posté par  (site web personnel) . Modéré par patrick_g. Licence CC By‑SA.
45
2
sept.
2011
C et C++

Lorsque l'on travaille sur un projet C comportant un certain nombre de fichiers et de lignes de code, il arrive fréquemment que l'on se pose des questions comme "Mais où est modifié le champ data de ma structure Packet ?". grep ne suffit pas pour répondre à ce genre de questions car ne comprenant pas C, il ne sait pas, par exemple, que la variable monbopkt est une structure Packet.

coccigrep, basé sur coccinelle qui est un outil très puissant de recherche et de modification automatique de code, est un logiciel libre chargé de répondre à ce genre de questions. Il vient d'être publié en version 1.0rc1, sous licence GPL v3. Il est écrit en Python et s'interface avec les éditeurs Vim et Emacs, ce qui permet de faire les recherches depuis l'éditeur.

Bash 5 : une introduction

Posté par  . Édité par Ysabeau 🧶, Gil Cot ✔, Anonyme, Benoît Sibaud et palm123. Modéré par Ysabeau 🧶. Licence CC By‑SA.
44
5
août
2022
Ligne de commande

La troisième version du document « Introduction à la programmation en Bash » (IUT de Rodez) vient de paraître. Elle est principalement destinée aux étudiants de niveau Licence.

Journal Ligne de commande : les 20 mémos d'un « autodidacte »

44
4
oct.
2018

Depuis avril 2018 j'ai eu l'occasion de publier sur le Grimoire-Command.es les 20 mémos du précédent secrétaire de Gebull (le LUG de Bressuire).

Les sujets abordés sont variés et représentent quelques décennies de lecture de forum et de tâtonnements, scrupuleusement notés et repris en fiches synthétiques.

Comme le reste du grimoire, ce sont des mémos, des penses-bêtes, pour retrouver rapidement une commande que l'on a déjà utilisée ou aperçue. Comme pour les grimoires de jeux de rôle, il faut donc (…)

WebVim, une distribution Vim pour le dévelopment web

Posté par  (site web personnel) . Édité par Benoît Sibaud et Nils Ratusznik. Modéré par ZeroHeure. Licence CC By‑SA.
42
13
nov.
2015
Ligne de commande

WebVim est une distribution Vim qui vient avec un lot de greffons pré-configurés et optimisés pour le développement web et JavaScript/node.js.

Logo WebVim

WebVim offre par défaut quelques fonctionnalités sympas, dignes de certains IDE et éditeurs de code spécialisés :

  • coloration syntaxique ;
  • affichage des erreurs de syntaxes et de styles ;
  • auto-complétion ;
  • refactoring ;
  • curseurs multiples ;
  • formatage et alignement automatiques ;
  • prise en compte de conventions d'édition (editorconfig) ;
  • prise en charge de git ;
  • navigation dans les modules nodes.js ;
  • un mode hardcore (où par exemple la touche Esc et les flèches sont désactivées) ;
  • et tout ce que Vim fournit par défaut (par exemple la vérification orthographiques) !

WebVim utilise le gestionnaire de greffons vim-plug en arrière plan et un système de chargement et de configuration avancé.