Workshop wiki · English

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.

Workshop examples as ZIP files
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.

Reading progress0%
0%
0 / 11 chapters read
Other language versionGerman ↗Greek ↗

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.

Target State

You should treat shell scripts as small programs with inputs, outputs, error paths, side effects and security boundaries, not as loose command sequences. Bash is the primary tool while POSIX sh remains the portability reference. The workshop deliberately separates interactive convenience from stable scripting patterns.

01 / 11

Focus

  • Linux Host
  • Pakete
  • Dateirechte
  • Benutzer
  • Isolation
02 / 11

Core Terms

Term Meaning
Shell A program that interprets commands, starts processes, connects streams and can run scripts non-interactively.
Bash GNU Bourne-Again Shell, compatible with many sh concepts and extended with features such as arrays, [[ ... ]], select and process substitution.
POSIX sh A standardized shell language with a narrower feature set; important for portable scripts on Unix-like systems.
Shebang The first script line, for example #!/usr/bin/env bash, that tells the operating system which interpreter to use.
Exit Code Integer command result; 0 means success and other values signal errors or special outcomes.
Quoting Protection against unwanted word splitting, globbing and incorrect interpretation of spaces, metacharacters or empty values.
Expansion Evaluation of parameters, command substitutions, arithmetic expressions, globs and brace expansion before command execution.
Pipeline A chain of processes connected through standard output and standard input; exit status needs deliberate handling with pipefail or PIPESTATUS.
Redirection Routing stdin, stdout, stderr and additional file descriptors into files, pipes or process substitutions.
Function A named shell code block with positional parameters through $@, but without automatic local variables unless local is used.
Strict Mode A combination of set -euo pipefail, deliberate error handling and controlled IFS; useful but not a substitute for design.
Trap Handler for signals and pseudo-signals such as EXIT, ERR, INT or TERM; central for cleanup and interruption logic.
mktemp Tool for safely creating temporary files or directories without colliding names or unsafe path assumptions.
ShellCheck Static analysis for shell scripts that detects common mistakes, quoting issues and unsafe patterns.
Bats TAP-compliant testing framework for Bash and Unix programs; useful for CLI and script behavior.
Idempotence Property where repeated execution reaches the same desired state without unnecessary side effects.
Command Injection Security flaw where untrusted input is interpreted as part of a command.
PATH Hijacking Manipulation of command lookup through unsafe PATH entries or relative program names.
TOCTOU Race condition between checking and using a file or resource.
Secret Handling Handling tokens, passwords and keys without logs, commits, world-readable files or process-list leaks.
03 / 11

Reference Commands

bash
# Versions and interpreter
bash --version
type -a bash
printf '%s
' "$SHELL"

# Syntax and static checks
bash -n script.sh
shellcheck script.sh
shfmt -d script.sh

# Debugging and execution
bash -x script.sh --dry-run
set -o pipefail
trap 'echo cleanup' EXIT

# Common data processing
find . -type f -name '*.log' -print0 | xargs -0 grep -H 'ERROR'
awk -F, '{ print $1, $3 }' data.csv
sed -n '1,20p' file.txt

# Temporary files and permissions
tmpdir="$(mktemp -d)"
chmod 700 "$tmpdir"
rm -rf -- "$tmpdir"
04 / 11

Working Model

  1. Define purpose, inputs, outputs and allowed side effects before writing the script.
  2. Set target shell, shebang, dependencies and portability level.
  3. Write minimal functions and separate parsing, validation, execution and output.
  4. Check syntax, ShellCheck findings, tests and dry-run evidence before touching real data.
  5. Handle error paths explicitly: missing file, empty variable, invalid option, signal, partial pipeline failure.
  6. Document recovery: revert, backup restore, temporary file cleanup, permission repair, secret rotation.
05 / 11

Typical Decisions

Decision Review Question Risk if Wrong
Bash or POSIX sh Does the script need arrays, [[ ... ]] or process substitution? it fails or behaves differently on target systems
Quoting strategy Where is word splitting truly intended? data loss, injection, wrong file names
Error handling Where does set -e help and where do you need explicit checks? aborted scripts or hidden partial failures
Temporary files Who can read them and when are they removed? race conditions, data leaks, stale files
Logging Which output is for humans and which is for machines? CI breaks or parsers read wrong data
Destructive operations How is scope limited before rm, mv, chmod or chown? irreversible changes in the wrong path
06 / 11

Diagrams and Models

The diagrams are text-based on purpose so they remain reviewable without extra tooling.

text
User / CI Runner
      |
      v
+------------------+      argv/env/stdin       +------------------+
| bash interpreter | ------------------------> | script functions |
+------------------+                           +------------------+
      | stdout/stderr                                  |
      v                                                v
logs, files, reports                         commands, files, APIs
text
Input -> validate -> normalize -> execute -> check exit code -> log -> cleanup
                    |                 |
                    v                 v
               reject unsafe      trap on EXIT/ERR
text
Review Gate
  bash -n
  ShellCheck
  shfmt
  smoke tests
  dry-run evidence
  destructive-operation guard
07 / 11

Operations Notes

  • Shell scripts inherit environment, PATH, working directory, locale and open file descriptors.
  • set -e is not error handling; conditions, subshells and pipelines still need understanding.
  • eval, unquoted variables, unsafe temporary files and global cd assumptions are common failure sources.
  • Secrets can leak through logs, process lists, shell history, debug output and temporary files.
  • CI runners are non-interactive; scripts must not depend on implicit TTY or home-directory behavior.
08 / 11

Sources and References

09 / 11

Review Checklist for Bare Metal Environment

  • 01. name the shebang and target shell explicitly: Record the affected file, command, exit code and risk.
  • 02. quote variable expansions unless word splitting is deliberate: Record the affected file, command, exit code and risk.
  • 03. validate inputs before they influence filenames, options or commands: Record the affected file, command, exit code and risk.
  • 04. evaluate and document exit codes explicitly: Record the affected file, command, exit code and risk.
  • 05. separate stderr and stdout: Record the affected file, command, exit code and risk.
  • 06. create temporary files with mktemp: Record the affected file, command, exit code and risk.
  • 07. test cleanup through trap: Record the affected file, command, exit code and risk.
  • 08. guard destructive operations with dry-run, scope checks and confirmation: Record the affected file, command, exit code and risk.
  • 09. never print or commit secrets: Record the affected file, command, exit code and risk.
  • 10. check PATH and external dependencies: Record the affected file, command, exit code and risk.
  • 11. handle ShellCheck warnings or suppress them with a reason: Record the affected file, command, exit code and risk.
  • 12. document portability assumptions between Bash and POSIX sh: Record the affected file, command, exit code and risk.
  • 13. name the shebang and target shell explicitly: Record the affected file, command, exit code and risk.
  • 14. quote variable expansions unless word splitting is deliberate: Record the affected file, command, exit code and risk.
  • 15. validate inputs before they influence filenames, options or commands: Record the affected file, command, exit code and risk.
  • 16. evaluate and document exit codes explicitly: Record the affected file, command, exit code and risk.
  • 17. separate stderr and stdout: Record the affected file, command, exit code and risk.
  • 18. create temporary files with mktemp: Record the affected file, command, exit code and risk.
  • 19. test cleanup through trap: Record the affected file, command, exit code and risk.
  • 20. guard destructive operations with dry-run, scope checks and confirmation: Record the affected file, command, exit code and risk.
  • 21. never print or commit secrets: Record the affected file, command, exit code and risk.
  • 22. check PATH and external dependencies: Record the affected file, command, exit code and risk.
  • 23. handle ShellCheck warnings or suppress them with a reason: Record the affected file, command, exit code and risk.
  • 24. document portability assumptions between Bash and POSIX sh: Record the affected file, command, exit code and risk.
  • 25. name the shebang and target shell explicitly: Record the affected file, command, exit code and risk.
  • 26. quote variable expansions unless word splitting is deliberate: Record the affected file, command, exit code and risk.
  • 27. validate inputs before they influence filenames, options or commands: Record the affected file, command, exit code and risk.
  • 28. evaluate and document exit codes explicitly: Record the affected file, command, exit code and risk.
  • 29. separate stderr and stdout: Record the affected file, command, exit code and risk.
  • 30. create temporary files with mktemp: Record the affected file, command, exit code and risk.
  • 31. test cleanup through trap: Record the affected file, command, exit code and risk.
  • 32. guard destructive operations with dry-run, scope checks and confirmation: Record the affected file, command, exit code and risk.
  • 33. never print or commit secrets: Record the affected file, command, exit code and risk.
  • 34. check PATH and external dependencies: Record the affected file, command, exit code and risk.
  • 35. handle ShellCheck warnings or suppress them with a reason: Record the affected file, command, exit code and risk.
  • 36. document portability assumptions between Bash and POSIX sh: Record the affected file, command, exit code and risk.
  • 37. name the shebang and target shell explicitly: Record the affected file, command, exit code and risk.
  • 38. quote variable expansions unless word splitting is deliberate: Record the affected file, command, exit code and risk.
  • 39. validate inputs before they influence filenames, options or commands: Record the affected file, command, exit code and risk.
  • 40. evaluate and document exit codes explicitly: Record the affected file, command, exit code and risk.
  • 41. separate stderr and stdout: Record the affected file, command, exit code and risk.
  • 42. create temporary files with mktemp: Record the affected file, command, exit code and risk.
  • 43. test cleanup through trap: Record the affected file, command, exit code and risk.
  • 44. guard destructive operations with dry-run, scope checks and confirmation: Record the affected file, command, exit code and risk.
  • 45. never print or commit secrets: Record the affected file, command, exit code and risk.
  • 46. check PATH and external dependencies: Record the affected file, command, exit code and risk.
  • 47. handle ShellCheck warnings or suppress them with a reason: Record the affected file, command, exit code and risk.
  • 48. document portability assumptions between Bash and POSIX sh: Record the affected file, command, exit code and risk.
  • 49. name the shebang and target shell explicitly: Record the affected file, command, exit code and risk.
  • 50. quote variable expansions unless word splitting is deliberate: Record the affected file, command, exit code and risk.
  • 51. validate inputs before they influence filenames, options or commands: Record the affected file, command, exit code and risk.
  • 52. evaluate and document exit codes explicitly: Record the affected file, command, exit code and risk.
10 / 11

Practice Appendix: Bare Metal Environment

This appendix is a working backlog for longer trainings, reviews and repetitions. Each task can be checked locally with Bash, test data and a Git repository.

A001. Linux Host

  • Task: validate input and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A002. Pakete

  • Task: explain exit code and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A003. Dateirechte

  • Task: check quoting and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A004. Benutzer

  • Task: test error path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A005. Isolation

  • Task: review log output and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A006. Linux Host

  • Task: trace cleanup and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A007. Pakete

  • Task: scope portability and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A008. Dateirechte

  • Task: mark security risk and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A009. Benutzer

  • Task: document recovery path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A010. Isolation

  • Task: write review rule and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A011. Linux Host

  • Task: validate input and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A012. Pakete

  • Task: explain exit code and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A013. Dateirechte

  • Task: check quoting and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A014. Benutzer

  • Task: test error path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A015. Isolation

  • Task: review log output and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A016. Linux Host

  • Task: trace cleanup and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A017. Pakete

  • Task: scope portability and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A018. Dateirechte

  • Task: mark security risk and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A019. Benutzer

  • Task: document recovery path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A020. Isolation

  • Task: write review rule and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A021. Linux Host

  • Task: validate input and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A022. Pakete

  • Task: explain exit code and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A023. Dateirechte

  • Task: check quoting and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A024. Benutzer

  • Task: test error path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A025. Isolation

  • Task: review log output and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A026. Linux Host

  • Task: trace cleanup and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A027. Pakete

  • Task: scope portability and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A028. Dateirechte

  • Task: mark security risk and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A029. Benutzer

  • Task: document recovery path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A030. Isolation

  • Task: write review rule and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A031. Linux Host

  • Task: validate input and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A032. Pakete

  • Task: explain exit code and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A033. Dateirechte

  • Task: check quoting and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A034. Benutzer

  • Task: test error path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A035. Isolation

  • Task: review log output and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A036. Linux Host

  • Task: trace cleanup and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A037. Pakete

  • Task: scope portability and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A038. Dateirechte

  • Task: mark security risk and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A039. Benutzer

  • Task: document recovery path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A040. Isolation

  • Task: write review rule and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A041. Linux Host

  • Task: validate input and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A042. Pakete

  • Task: explain exit code and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A043. Dateirechte

  • Task: check quoting and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A044. Benutzer

  • Task: test error path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A045. Isolation

  • Task: review log output and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A046. Linux Host

  • Task: trace cleanup and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A047. Pakete

  • Task: scope portability and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A048. Dateirechte

  • Task: mark security risk and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A049. Benutzer

  • Task: document recovery path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A050. Isolation

  • Task: write review rule and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A051. Linux Host

  • Task: validate input and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A052. Pakete

  • Task: explain exit code and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A053. Dateirechte

  • Task: check quoting and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A054. Benutzer

  • Task: test error path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A055. Isolation

  • Task: review log output and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A056. Linux Host

  • Task: trace cleanup and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A057. Pakete

  • Task: scope portability and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A058. Dateirechte

  • Task: mark security risk and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A059. Benutzer

  • Task: document recovery path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A060. Isolation

  • Task: write review rule and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A061. Linux Host

  • Task: validate input and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A062. Pakete

  • Task: explain exit code and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A063. Dateirechte

  • Task: check quoting and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A064. Benutzer

  • Task: test error path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A065. Isolation

  • Task: review log output and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A066. Linux Host

  • Task: trace cleanup and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A067. Pakete

  • Task: scope portability and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A068. Dateirechte

  • Task: mark security risk and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A069. Benutzer

  • Task: document recovery path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A070. Isolation

  • Task: write review rule and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A071. Linux Host

  • Task: validate input and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A072. Pakete

  • Task: explain exit code and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A073. Dateirechte

  • Task: check quoting and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A074. Benutzer

  • Task: test error path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A075. Isolation

  • Task: review log output and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A076. Linux Host

  • Task: trace cleanup and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A077. Pakete

  • Task: scope portability and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A078. Dateirechte

  • Task: mark security risk and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A079. Benutzer

  • Task: document recovery path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A080. Isolation

  • Task: write review rule and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A081. Linux Host

  • Task: validate input and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A082. Pakete

  • Task: explain exit code and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A083. Dateirechte

  • Task: check quoting and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A084. Benutzer

  • Task: test error path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A085. Isolation

  • Task: review log output and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A086. Linux Host

  • Task: trace cleanup and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A087. Pakete

  • Task: scope portability and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A088. Dateirechte

  • Task: mark security risk and connect the observation explicitly to Dateirechte.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A089. Benutzer

  • Task: document recovery path and connect the observation explicitly to Benutzer.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A090. Isolation

  • Task: write review rule and connect the observation explicitly to Isolation.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A091. Linux Host

  • Task: validate input and connect the observation explicitly to Linux Host.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.

A092. Pakete

  • Task: explain exit code and connect the observation explicitly to Pakete.
  • Evidence: Record the checked command, expected output, actual output and exit code.
  • Operations question: What happens with empty input, missing files, missing tools and repeated execution?
  • Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
  • Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
11 / 11

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.