I am looking to create interactive workbooks that teach the Gnu/Linux terminal to students. This would be presented in such a way that one half of the screen is an interactive terminal, running the Gnu bash Unix shell, and the other half of the screen is a workbook, with steps that the student must follow in the included shell. The output from the students' shells would be automatically graded, to ensure that they have correctly followed the steps from the workbook.

So far, I have found two such 'services' http://tuxlab.org/#/ and https://github.com/jakebailey/ua , There are also GitHub classrooms which may fall into this category.

Is anyone else aware of products like this? Preferably open source.

  • 1
    $\begingroup$ Except for auto grading, why do you need a special app? Having two windows (from different apps) open at the same time doesn't seem much worse than two panes of a single window. Do you have so many students that auto grading is a "must have"? $\endgroup$
    – Buffy
    Commented Jun 14, 2019 at 11:27
  • $\begingroup$ Have you explored the possibility of Jupyter Notebooks? They support shell scripts using the %%bash header. $\endgroup$
    – Pål GD
    Commented Jun 14, 2019 at 14:08
  • $\begingroup$ This is an opinion-based question I think, but...one way of learning is to just provide SSH access with a user/password to each student on a Linux machine. This would allow them to explore the system more and to see real feedback. To demonstrate different commands you could simply devise bash scripts and plain text templates for students to copy and work on. The workbook can just be a text document. Keep it simple, students will appreciate it (especially since in the real world, you don't get fancy docs usually ;)) $\endgroup$
    – user8146
    Commented Jun 14, 2019 at 20:40
  • $\begingroup$ The Unix shell is rather limited, as it is more a vehicle for calling complex programs and combining snippets. Is it really worth their while to learn shell in enough depth that this is required? I picked up what I need for my day-to-day use through, well, use; and occasionally peeking at the manual (or doing experiments on line...). $\endgroup$
    – vonbrand
    Commented Aug 8, 2019 at 21:16

1 Answer 1


Not sure about automatic grading, but you can try this combo:

I never used nor tested this particular combination, but you can dig a little bit the documentation to check if it works for you.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.