Tullio Facchinetti

BashQuest per esercitazioni sui comandi Unix


Sulla piattaforma SSHCode è installato il programma bashquest, che permette di svolgere in autonomia delle esercitazioni pratiche sull’uso dei comandi Unix.

Il codice sorgente di bashquest e la documentazione sufficiente per utilizzarlo è disponibile sul repository GitHub del progetto. Grazie alla disponibilità del codice sorgente, è possibile installare bashquest anche su un proprio computer, ma dal momento che servono altri strumenti per eseguirlo (in particolare, un interprete Python con una versione adatta), il modo più indicato di utilizzarlo è tramite la versione installata su SSHCode.

ATTENZIONE: alcune delle sfide presentate da bashquest richiedono conoscenze che potrebbero andare oltre quanto spiegato a lezione; tali sfide si possono tranquillamente saltare.

Utilizzo

I comandi principali sono illustrati di seguito.

NOTA: una importante differenza tra l’installazione su SSHCode e la documentazione su GitHub, è che per invocare il programma su SSHCode si usa semplicemente il comando bashquest, mentre una propria installazione richiederebbe python bashquest.py.

Inizio di una nuova prova

Per iniziare una nuova sessione da zero:

bashquest start

Questo comando creerà la directory workspace nella directory corrente e presenterà la prima sfida.

Submission di una risposta

Per inviare la risposta della sfida corrente:

bashquest submit [flag]

NOTA: la risposta (flag) è una stringa contenuta da qualche parte nella directory workspace popolato da bashquest, NON il comando richiesto per recuperare la flag stessa.

La flag non è necessaria in caso di sfide di tipo “put-the-flag”, ovvero quando all’utente viene richiesto di creare/inserire qualcosa nell’area di lavoro. In tal caso basta il comando “submit”.

Stampa l’elenco delle sfide

Per elencare tutte le sfide disponibili:

bashquest list

Imposta la sfida attuale

Per passare ad un’altra sfida:

bashquest goto <numero>

Ogni volta che viene impostata una sfida utilizzando “goto”, la configurazione della sfida stessa (directory, file, ecc.) viene rigenerata in modo casuale. Quindi tornando ad una stessa sfida è probabile che ci si trovi a lavorare con dati differenti.

L’opzione --seed, seguita da un numero intero, consente di impostare un seme per il generatore di numeri casuali, in modo che la stessa configurazione possa essere riutilizzata.

Il testo della sfida attuale può essere stampato in qualsiasi momento con:

bashquest challenge

Per terminare una sessione, cancellando completamente la sfida corrente e perdendo traccia delle sfide superate:

bashquest done

Non si abbia timore di creare e cancellare gli workspace a piacimento: trattandosi di un programma per l’auto-apprendimento, si possono tranquillamente saltare (col comado goto) delle sfide già svolte o difficili.


Highlights

  • Publications
  • Students and theses
  • Thesis topics
  • Curated awesome list of CLI apps
  • Last updates (English)

  • Reply-to-all: this is the way ()
  • Students and theses ()
  • Students and theses - English ()
  • Speed up the compilation of LaTex Beamer presentations ()
  • Learn enough C to survive ()
  • Workflow for writing theses collaboratively ()
  • Guidelines for theses and presentations ()
  • Last updates (Italian)

  • Risultati FdI 17-24 Novembre 2025 ()
  • Risultati FdI 18 Settembre 2025 ()
  • Risultati FdI 02 Settembre 2025 ()
  • Risultati FdI 23 Luglio 2025 ()
  • Risultati FdI 25 Giugno 2025 ()
  • Risultati FdI 31 Marzo 2025 e 07 Aprile 2025 ()
  • Risultati FdI 18 Febbraio 2025 ()
  • List of categories

    Article Article_en Article_it C Courses Fdi Lang_en Lang_it Latex Programming Project Research Results Robotics Software Teaching Thesis Tips