Skip to content

thehar/learnyoubash

Repository files navigation

learnyoubash

learnyoubash

Learn how to use the terminal and write your first Bash script with an interactive, robust TUI.

Features

  • Interactive terminal UI (TUI) with keyboard navigation (up/down/enter, and more)
  • Multi-language support (English, Ukrainian)
  • Progress tracking and exercise completion
  • View problems, run solutions, verify your scripts, and see reference solutions
  • Accessibility improvements: hotkeys and (optionally) left/right navigation
  • User-friendly error handling and clear messages

Requirements

Installation

Clone the repository and install dependencies:

git clone https://github.com/denysdovhan/learnyoubash.git
cd learnyoubash
npm install

To use the CLI globally from your terminal (recommended for development):

npm link

Usage

Run the program from your terminal:

learnyoubash

Or, from the project directory without linking:

node bin/learnyoubash

Language Selection

You can start the program in a specific language:

learnyoubash --lang en
learnyoubash --lang uk

Or use the "CHOOSE LANGUAGE" option in the main menu.

How it Works

  • Navigate the menu using arrow keys and Enter.
  • Select exercises, view problems, run and verify solutions.
  • Your progress is saved automatically.
  • The TUI is robust: all prompts use raw-mode keypress handling for maximum reliability.

Contributing & Testing

  • See the test/ directory for Bash exercise validation scripts.
  • Integration tests for the CLI are planned (see project issues/todos).

Security Note

  • User scripts are executed with the current user's permissions.
  • Do not run scripts from untrusted sources, as they can access or modify files you have access to.
  • This is expected for a Bash learning tool, but always exercise caution with third-party code.

License

See LICENSE.md for original creator and MIT license.

Original creator: Denys Dovhan

About

Learn how to write bash scripts

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors