GameShell, le retour

Posté par  . Édité par palm123, Benoît Sibaud et bobble bubble. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
52
26
juin
2021
Ligne de commande

Il y a quelques mois, je postais une dépêche décrivant “GameShell”, un jeu que j’avais développé pour enseigner les bases de la ligne de commandes. Cette dépêche avait provoqué discussions, corrections de bugs et suggestions intéressantes.

Trois mois et quelques centaines de commits plus tard, je me permets de faire une petite mise à jour.

Globalement (mais je suis un peu biaisé), le GameShell d’aujourd’hui est nettement mieux que le GameShell d’hier. Ceci a un coût : la taille d’une archive GameShell a été multipliée par 3. On est passé de 44kio à 140kio !
Je ne sais pas comment on traduit “bloat” en français (“boursouflage” ?), mais pour le moment, ça ne m’empêche pas de dormir !

La version précédente avait été testée par plusieurs générations d’étudiants, parfois très inventifs. Alors n’hésitez pas à vous mettre dans la peau d’un étudiant en faisant une partie avant de me faire un retour.
Je suis preneur de toute critique, suggestion, rapport de bug, ticket, contribution et j’en passe.

Si certains veulent créer des missions, je pourrais faire une petite description de l’architecture d’une mission type. Ce n’est pas très compliqué, et une année, j’ai même eu un étudiant qui en a ajouté une comme « question bonus » !

Forum Linux.général Script local après ssh clos

Posté par  . Licence CC By‑SA.
Étiquettes :
1
15
avr.
2021

Bonjour,

Si j'ai une machine A qui ouvre un shell ssh sur une machine B.

Je cherche mais ne trouve pas comment lancer un script sur A quand la session ssh vers B se termine (exit propre ou coupure de courant peu importe).

Le top ce serait que ça soit un script général pour toutes mes sessions ssh y compris vers les autres machines.

Si je trouve pas, le truc qui existe déjà, je ferai un script ssh que je (…)

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.
Étiquettes :
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 ».

Journal Rashell – Une bibliothèque pour remplacer les scripts shells par du Lisp

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
8
11
oct.
2020

Rashell est une bibliothèque Common Lisp pour écrire des remplacements robustes et propices à la maintenance aux scripts shell.

Rashell identifie quelques façons typiques d'interagir avec les programmes externes:

  • les utilities qu'on utilise comme cp, rm, mv;
  • les tests qu'on utilise comme des prédicats, notamment test ou parfois grep.
  • les queries qu'on utilise pour produire une liste de résultats, comme find ou grep par exemple.
  • les filters qu'on applique sur un fichier, une séquence de lignes (…)

Sondage Votre invite de commande de shell…

Posté par  . Licence CC By‑SA.
Étiquettes :
11
8
sept.
2020

En 2020, le mode texte n’est plus un truc de réac barbus des temps anciens. Outre la prolifération d’émulateurs de terminal et la guerre des shells, on a aussi foison de projets d’invite de ligne de commande. Et vous, qu’utilisez‑vous comme invite de commande ?

  • la configuration par défaut de ma distribution :
    945
    (48.9 %)
  • une configuration personnalisée, maintenue avec amour depuis des années ! :
    529
    (27.4 %)
  • une configuration copiée d’un dotfile sur Internet ou d’un collègue :
    120
    (6.2 %)
  • un projet dédié comme PowerLine shell, starship ou un autre que je vais partager en commentaire :
    145
    (7.5 %)
  • je suis coincé sur cmd.exe  :'-(( :
    48
    (2.5 %)
  • je n’utilise pas le mode texte :
    11
    (0.6 %)
  • Obi‑Wan Kenobi :
    133
    (6.9 %)

Total : 1931 votes

Forum général.général Recherche lien vers bonne référence (fr.) sur bonnes pratiques de programmation Bash / Shell

Posté par  . Licence CC By‑SA.
7
3
juin
2020

Bonjour à tous,

Je peine à retrouver le lien, il me semble paru sur LinuxFr, il y a quelques semaines / mois, vers ce qui m'avait semblé une (très) bonne ressource francophone sur les bonnes pratiques de programmation Bash (et/ou Shell, je ne sais plus). Si le lien est paru dans la section "Liens", c'était (il me semble) sous un titre peu explicite du contenu, en quelque sorte masqué. Sauriez-vous m'aider?

Je n'arrive pas à le retrouver dans mes (…)

Forum Linux.débutant Utiliser "at" pour lancer un programme graphique ?

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
0
13
avr.
2020

Avec at, je peux programmer le lancement d'un script qui sera exécuté par défaut dans /bin/sh :

$ echo "/chemin/script.sh" | at now +1 minute
warning: commands will be executed using /bin/sh
job 6 at Mon Apr 13 11:53:00 2020

Mais je n'arrive pas à lancer de la même façon un programme graphique. Par exemple $ echo "/usr/bin/firefox" | at now +1 minute ou $ echo "/usr/bin/firefox &" | at now +1 minute ne me lance pas de fenêtre.

(…)

Forum Linux.débutant Problème mise à jour Ubuntu

Posté par  . Licence CC By‑SA.
0
18
mar.
2020

Bonsoir,

Depuis quelques jours, j'ai un problème lors de la mise à jour d'Ubuntu.
En effet, lorsque je tape la commande : sudo apt dist-upgrade

L'erreur suivante apparaît :

Préparation du dépaquetage de .../signond_8.60+r698+dbusapi1+pkg3~daily~ubuntu5.0.1_amd64.deb ...
Dépaquetage de signond (8.60+r698+dbusapi1+pkg3~daily~ubuntu5.0.1) sur (8.59+17.10.20170606-0ubuntu1) ...
dpkg: erreur de traitement de l'archive /var/cache/apt/archives/signond_8.60+r698+dbusapi1+pkg3~daily~ubuntu5.0.1_amd64.deb (--unpack) :
 tentative de remplacement de « /usr/share/dbus-1/services/com.google.code.AccountsSSO.SingleSignOn.service », qui appartient aussi au paquet gsignond 1.1.0~r509+pkg4~daily~ubuntu5.0.1
Des erreurs ont été rencontrées pendant l'exécution
(…)

Forum Programmation.shell Une ligne qui s'exécute en ligne de commande, mais pas depuis un script

Posté par  . Licence CC By‑SA.
Étiquettes :
0
12
fév.
2020

J'ai un script tout bête qui contient entre autre ça:

    #!/bin/bash
    # d'autres lignes...
    cd python/lib/python3.8 && rm -rfv !("site-packages")

Je peux copier-coller cette ligne dans un terminal bash ou elle s'exécutera correctement, par contre en lançant ./script.sh j'obtiens l'erreur suivante:
./script.sh: ligne 24: erreur de syntaxe près du symbole inattendu « ( »

Que faire ?

Forum Programmation.shell SCRIPT SHELL

Posté par  . Licence CC By‑SA.
Étiquettes :
0
2
jan.
2020

bonjour tout le monde, je suis nouveau sur Linux et dans le cadre d'un stage je dois faire un petit script shell pour vérifier la présence des répertoires et les trier

je dois vérifier si les répertoires sont bien present sinon envoyer un incident.
Extraire les targets des fichiers.
Faire le tri de cette liste pour qu’il n’y est pas de doublons ou autre chose que des répertoires.
Vérifier que chaque ligne est un répertoire et qu’il est présent  (…)