Workshop wiki · SH

Shell Scripting

Complete, versioned learning material for this workshop—from reference documentation and workshop levels to exercises, assessments and the supporting texts for every practice module.

Shell Scripting

My learning progress

With the web app option enabled, your progress is stored on this device.

Learning progress in the web app

Mark chapters as read, view reading progress and check off practice modules after enabling the optional web app. Workshop progress is calculated from chapters across all document pages. Your choices stay on this device; there is no account or server sync. Installation is not required. Withdrawing your choice in Privacy settings deletes the progress.

Workshop progress0%
Practice modules completed0 / 31
Documents read0 / 94
Workshop progress0%
0%
0 / 648 chapters read

Practice modules

Workshop examples as ZIP files

All 31 practice examples in this workshop are available as individual ZIP files. Choose an example to download its package directly.

00lab-skeleton 13 Files · 16.1 KB · SHA-256 ab4c81bb6040 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/lab_skeleton.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
01shebang-exit-codes 13 Files · 16.4 KB · SHA-256 077c5c045c20 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/shebang_exit_codes.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
02variables-quoting 13 Files · 16.3 KB · SHA-256 969d8f61a3e9 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/variables_quoting.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
03redirection-pipelines 13 Files · 16.4 KB · SHA-256 3cc4f4fec87a Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/redirection_pipelines.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
04conditionals-loops 13 Files · 16.4 KB · SHA-256 1cd83620c169 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/conditionals_loops.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
05functions-libraries 13 Files · 16.4 KB · SHA-256 aa119cdcf3cd Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/functions_libraries.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
06getopts-cli 13 Files · 16.0 KB · SHA-256 9dd159f37420 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/getopts_cli.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
07text-processing 13 Files · 16.2 KB · SHA-256 26da66e11f21 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/text_processing.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
08find-xargs 13 Files · 16.1 KB · SHA-256 581a1a1358c8 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/find_xargs.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
09file-permissions-umask 13 Files · 16.8 KB · SHA-256 c60700082e1d Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/file_permissions_umask.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
10bash-arrays 13 Files · 15.9 KB · SHA-256 8e6456b7dc03 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/bash_arrays.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
11traps-cleanup 13 Files · 16.0 KB · SHA-256 97bada8c2d6a Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/traps_cleanup.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
12tempfiles-mktemp 13 Files · 16.2 KB · SHA-256 c0ed6e5fbc2b Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/tempfiles_mktemp.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
13logging-levels 13 Files · 16.2 KB · SHA-256 d1970c92d596 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/logging_levels.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
14config-env-files 13 Files · 16.2 KB · SHA-256 fda879b75d11 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/config_env_files.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
15json-cli-jq-fallback 13 Files · 16.6 KB · SHA-256 bc8689815bd0 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/json_cli_jq_fallback.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
16parallel-jobs-wait 13 Files · 16.4 KB · SHA-256 06a4e3a3174b Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/parallel_jobs_wait.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
17cron-systemd-timer-model 13 Files · 16.9 KB · SHA-256 2da89eb09c37 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/cron_systemd_timer_model.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
18backup-restore-dry-run 13 Files · 16.6 KB · SHA-256 874c2a74aa1e Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/backup_restore_dry_run.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
19idempotent-installers 13 Files · 16.5 KB · SHA-256 e484f2dbd93e Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/idempotent_installers.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
20portability-posix-bash 13 Files · 16.6 KB · SHA-256 6bf8dfce1de6 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/portability_posix_bash.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
21shellcheck-quality-gate 13 Files · 16.6 KB · SHA-256 aa39edba2448 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/shellcheck_quality_gate.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
22bats-test-model 13 Files · 16.2 KB · SHA-256 c502809f11e6 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/bats_test_model.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
23ci-pipeline-scripts 13 Files · 16.5 KB · SHA-256 9703165156b4 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/ci_pipeline_scripts.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
24packaging-release-scripts 13 Files · 16.7 KB · SHA-256 516a06d16e8a Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/packaging_release_scripts.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
25secure-input-validation 13 Files · 16.6 KB · SHA-256 5e81612f276e Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/secure_input_validation.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
26command-injection-prevention 13 Files · 17.0 KB · SHA-256 e8d1d1035573 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/command_injection_prevention.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
27safe-deletion-guardrails 13 Files · 16.8 KB · SHA-256 056537751fe4 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/safe_deletion_guardrails.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
28secrets-env-handling 13 Files · 16.5 KB · SHA-256 a5151862dfb0 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/secrets_env_handling.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
29sudo-path-hardening 13 Files · 16.5 KB · SHA-256 0c5efa55cc0a Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/sudo_path_hardening.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh
30incident-response-debugging 13 Files · 16.8 KB · SHA-256 5706b975a806 Download example ZIP
Files in the ZIP · 13
  • README-EL.md
  • README.md
  • bin/incident_response_debugging.sh
  • config/default.env
  • data/input.txt
  • docs/de/README.md
  • docs/el/README.md
  • docs/en/README.md
  • lib/common.sh
  • run.sh
  • runbook.txt
  • scenario.json
  • tests/smoke.sh

Learning material

Documentation in the Orthevs Wiki

The material retains its subject-specific structure. German and English versions are cross-linked, and diagrams are generated directly from the included Mermaid sources.

Workshop overview

1

Technical documentation

13
English · 58.3 KB

Architecture: Shell Scripting

This document belongs to the Shell Scripting workshop and describes architecture as training material, reference documentation and review basis.

Open document ↗
English · 58.6 KB

Best Practices: Shell Scripting

This document belongs to the Shell Scripting workshop and describes best-practices as training material, reference documentation and review basis.

Open document ↗
English · 57.4 KB

Commands: Shell Scripting

This document belongs to the Shell Scripting workshop and describes commands as training material, reference documentation and review basis.

Open document ↗
English · 58.1 KB

Concepts: Shell Scripting

This document belongs to the Shell Scripting workshop and describes concepts as training material, reference documentation and review basis.

Open document ↗
English · 65.8 KB

Curriculum: Shell Scripting

This curriculum structures a shell scripting workshop from fundamentals to advanced operations and security review. It combines language basics, practical scripting, tests, CI/CD and safe operational decisions.

Open document ↗
English · 58.4 KB

Diagrams: Shell Scripting

This document belongs to the Shell Scripting workshop and describes diagrams as training material, reference documentation and review basis.

Open document ↗
English · 58.4 KB

Cloud Environment: Shell Scripting

This document belongs to the Shell Scripting workshop and describes environment-cloud as training material, reference documentation and review basis.

Open document ↗
English · 58.3 KB

Bare Metal Environment: Shell Scripting

This document belongs to the Shell Scripting workshop and describes environment-native-baremetal as training material, reference documentation and review basis.

Open document ↗
English · 58.2 KB

VM Environment: Shell Scripting

This document belongs to the Shell Scripting workshop and describes environment-native-vm as training material, reference documentation and review basis.

Open document ↗
English · 58.4 KB

WSL Environment: Shell Scripting

This document belongs to the Shell Scripting workshop and describes environment-wsl as training material, reference documentation and review basis.

Open document ↗
English · 58.0 KB

Operations: Shell Scripting

This document belongs to the Shell Scripting workshop and describes operations as training material, reference documentation and review basis.

Open document ↗
English · 57.8 KB

Security: Shell Scripting

This document belongs to the Shell Scripting workshop and describes security as training material, reference documentation and review basis.

Open document ↗
English · 58.3 KB

Troubleshooting: Shell Scripting

This document belongs to the Shell Scripting workshop and describes troubleshooting as training material, reference documentation and review basis.

Open document ↗

Workshop levels

4

Exercises

4

Assessments and solutions

9
English · 52.5 KB

Shell Scripting Fundamentals: Assessment (EN)

Scope: Syntax, Ausführung, Quoting, Exit Codes, Dateien und erste sichere Skripte.

Open document ↗
English · 53.7 KB

Shell Scripting Fundamentals: Solution (EN)

Scope: Syntax, Ausführung, Quoting, Exit Codes, Dateien und erste sichere Skripte.

Open document ↗
English · 52.5 KB

Shell Scripting Intermediate: Assessment (EN)

Scope: CLI-Design, Funktionen, getopts, Textverarbeitung, Fehlerbehandlung und Cleanup.

Open document ↗
English · 53.7 KB

Shell Scripting Intermediate: Solution (EN)

Scope: CLI-Design, Funktionen, getopts, Textverarbeitung, Fehlerbehandlung und Cleanup.

Open document ↗
English · 52.5 KB

Shell Scripting Professional: Assessment (EN)

Scope: Skriptarchitektur, Tests, CI/CD, Packaging, Observability und teamfähige Standards.

Open document ↗
English · 53.7 KB

Shell Scripting Professional: Solution (EN)

Scope: Skriptarchitektur, Tests, CI/CD, Packaging, Observability und teamfähige Standards.

Open document ↗
English · 52.5 KB

Shell Scripting Advanced Security: Assessment (EN)

Scope: Threat Modeling, Injection-Schutz, Secrets, Rechte, sichere Löschung und Incident Response.

Open document ↗
English · 53.8 KB

Shell Scripting Advanced Security: Solution (EN)

Scope: Threat Modeling, Injection-Schutz, Secrets, Rechte, sichere Löschung und Incident Response.

Open document ↗
English · 45.8 KB

Official Certificates and Exam Alignment: Shell Scripting (EN)

This document does not invent an official Bash or shell scripting certificate. Shell skills are relevant in many Linux, DevOps, SRE, cloud and security exams, but this workshop treats them as a practical core capability and not as a repl…

Open document ↗

Practice modules

31 modules as one continuous learning path.

The sequence remains unchanged: from the lab skeleton through technical foundations and operating models to final troubleshooting. The technical directory names are deliberately preserved.

00 lab-skeleton

2

01 shebang-exit-codes

2

02 variables-quoting

2

03 redirection-pipelines

2

04 conditionals-loops

2

05 functions-libraries

2

06 getopts-cli

2

07 text-processing

2

08 find-xargs

2

09 file-permissions-umask

2

10 bash-arrays

2

11 traps-cleanup

2

12 tempfiles-mktemp

2

13 logging-levels

2

14 config-env-files

2

15 json-cli-jq-fallback

2

16 parallel-jobs-wait

2

17 cron-systemd-timer-model

2

18 backup-restore-dry-run

2

19 idempotent-installers

2

20 portability-posix-bash

2

21 shellcheck-quality-gate

2

22 bats-test-model

2

23 ci-pipeline-scripts

2

24 packaging-release-scripts

2

25 secure-input-validation

2

26 command-injection-prevention

2

27 safe-deletion-guardrails

2

28 secrets-env-handling

2

29 sudo-path-hardening

2

30 incident-response-debugging

2

SH · Orthevs Academy

31 modules as one continuous learning path.

The sequence remains unchanged: from the lab skeleton through technical foundations and operating models to final troubleshooting. The technical directory names are deliberately preserved.

Orthevs – Engineering the foundation for what comes next.

Orthevs as an app

Install Orthevs

The Orthevs web app can be installed on supported mobile devices and desktop browsers.

iPhone and iPad

Open Orthevs in Safari. Tap Share, then Add to Home Screen. Enable Open as Web App if offered, then tap Add.

Android

For the web app, open the browser menu and choose Install app or Add to Home screen. Confirm the installation.

Desktop browser

Open the browser menu or the install icon in the address bar, then choose Install app or Add to Dock.

Web app installation depends on your browser. If no install prompt appears, follow the browser steps shown above.