-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Linux User and File management Course
User and File management Course Overview
Below you can find the ordered content of the topic, in a linear progression
The linear progression of content aims to cover all content, course by course, workout by workout as follows:
- first course is the only core one, denoted by its manifest
- the next course is denoted by the first item of the next array in each course manifest
- each course has its order of workouts designated by the sections field in the same aforementioned manifest
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | customizing-bash-via-bashrc | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
2 | what-are-environment-variables | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
3 | understanding-the-path-environment-variable | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ✅ | ❌ |
4 | manipulating-environment-variables | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ❌ | ❌ | ❌ |
5 | manipulating-environment-variables-ii | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ❌ | ❌ | ❌ |
6 | manipulating-environment-variables-iii | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ❌ | ❌ | ❌ |
7 | manipulating-environment-variables-iv | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ❌ | ❌ | ❌ |
8 | adding-directories-to-your-path | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ✅ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | the-directory-tree | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | matching-multiple-files-with-wildcards | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | using-which-to-find-executables | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ✅ | ❌ |
4 | using-find-to-search-by-filename | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | using-find-to-search-by-file-size | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | set-file-permissions-for-users | ✅ | 👶 introduction | ❌ | ✅ | ❌ | ❌ | ❌ |
2 | more-about-chmod | ✅ | 👶 introduction | ❌ | ✅ | ❌ | ❌ | ❌ |
Exercises:
Game:
name | type | aspects | standards | done |
---|---|---|---|---|
sudo-fu | tetris | 💪 workout | ❌ | ❌ |
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | deleting-non-empty-directories | ✅ | 💪 workout 👶 introduction |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | using-touch-to-alter-files-modification-time | ✅ | 💪 workout 👶 introduction |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | wrap-text-with-fold | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | truncate-files-with-cat-instead-of-rm | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
5 | deleting-files-in-a-secure-manner | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
5. shell
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | what-is-a-shell | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
2 | the-basics-of-environment-variables | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
3 | quick-cd-tips | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | terminal-based-browser | ✅ | 🔮 obscura 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
5 | rapidly-invoke-an-editor-to-write-a-long-complex-or-tricky-command | ✅ | 🔮 obscura 💪 workout |
❌ | ❌ | ✅ | ✅ | ❌ |
Exercises:
Game:
6. pipelines
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | the-standard-streams-stdin-stdout-and-stderr | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | the-basics-of-the-pipe-operator | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
3 | input-and-output-redirection-with-and | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | the-basics-of-command-substitution | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | appending-output-with | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
6 | difference-between-redirection-and-pipe | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ✅ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | adding-new-users-with-useradd | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | changing-user-passwords-with-passwd | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ✅ | ❌ |
3 | linux-user-management | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | usermod-recipes | ✅ | 💪 workout 👶 introduction |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | running-a-command-as-another-local-user | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | users-and-groups-on-linux | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
2 | file-ownership | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | changing-file-ownership-with-chown | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | changing-file-permissions-with-chmod | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ✅ | ❌ |
5 | changing-group-membership-with-usermod | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | quick-bash-shortcuts | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | clear-the-terminal-instantly | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | retrieve-previous-arguments | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | useful-aliasing-in-bash | ✅ | 💪 workout | ❌ | ✅ | ✅ | ✅ | ❌ |
5 | find-any-unix-linux-command | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
10. conditions
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | conditional-command-execution-operator | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
2 | else-statements-using-the-operator | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
3 | sequential-execution-using-the-statement-separator | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | the-test-built-in | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | compound-commands | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | easy-way-of-sharing-files | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
2 | finding-file-with-regexes | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
3 | identify-files-using-the-file-command | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
4 | working-with-gz-files | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
5 | preserving-permissions-and-structure-with-rsync | ✅ | 💪 workout 🦑 deep |
❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | understanding-umask | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ✅ | ❌ |
2 | the-setgid-permission | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | the-setuid-permission | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | the-sticky-bit-permission | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
5 | making-a-file-unalterable-with-chattr | ✅ | 🔮 obscura 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | su-vs-sudo | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | get-file-permissions-in-octal-form | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | granting-root-access-to-a-user | ✅ | 💪 workout 👶 introduction |
❌ | ❌ | ✅ | ❌ | ❌ |
4 | run-previous-command-as-root | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
5 | executing-commands-with-sudo-without-password | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
name | type | aspects | standards | done |
---|---|---|---|---|
know-your-rights | fillTheGap | 💪 workout | ❌ | ❌ |
14. terminal-history
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | bash-history-reverse-search | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
2 | keep-useful-commands-in-your-shell-history-with-tags | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | execute-a-command-without-saving-it-in-history | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
4 | terminal-incognito-mode | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
5 | clear-bash-history | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
15. pipeline-tools
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | using-xargs-to-build-commands | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
2 | progress-of-data-through-a-pipe-with-pv | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ❌ | ❌ | ❌ |
3 | duplicate-pipe-content-with-tee | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | shebang-explained | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | the-2-1-redirection | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ✅ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | get-to-know-your-commands-with-type | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
2 | fast-file-indexing-with-updatedb-and-locate | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | best-password-generation-utilities | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
4 | random-password-generator | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
5 | find-the-unknown-process-preventing-deleting-of-files | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
✅ - At least one insight covers this
❌ - Nothing covers this
🛠️ - This standard has no objectives yet
- ❌ Traverse the file system with cd
- ❌ Analyze directories with ls
- ❌ Create files with touch
- ❌ Create directories with mkdir
- ❌ Move or rename files with mv
- ❌ Copy files with cp
- ❌ Delete files with rm
- ❌ Delete directories with rmdir
- ❌ Output a file's contents to stdout with cat
- ❌ Append to a file
- ❌ Watch a file with tail
- ❌ Distinguish relative file paths from absolute file paths
- ❌ Change the colors of your terminal
- ❌ Add data to your terminal's line
- ❌ Change your display name
- ❌ Change your shell
- ❌ Add startup scripts and environment variables by modifying shell lifecycle configuration scripts
- ❌ Inspect environment variables in your shell
- ❌ Set environment variables manually
- ❌ Set environment variables with a shell script, like .bash_rc
- ❌ Use environment variables in a shell command
- ❌ Use environment variables in a shell script
- ❌ Distinguish the purpose and output of the standard streams
- ❌ Redirect stdout to a file
- ❌ Use the stdout of one program as the stdin for another program with a pipe
- ❌ Direct stdout and stderr to different places
- ❌ Tail a stderr and stdout log in two terminal windows
- ❌ Use pipes to direct data through multiple programs
- ❌ Create and remove users
- ❌ Identify the system artifacts of a user account
- ❌ Manage the passwords of users
- ❌ Grant and revoke system privileges to users
- ❌ Create and remove groups
- ❌ Add or remove users from groups
- ❌ Grant and revoke system privileges to groups
- ❌ Use system administration tools like w to monitor user activity
- ❌ Evaluate the read, write and execution permissions of a file using POSIX-compliant permissions
- ❌ Grant or restrict read, write, and execute permissions to users and groups
- ❌ Determine the appropriate permissions for a file
- ❌ Manage the ownership of a file
- ❌ Use simple unix programs such as expr to operate on numerical values
- ❌ Use simple unix programs such as cat and grep to operate on string values
- ❌ Compose simple unix programs to produce strings or numerical values
Given the insights are tagged with aspects, we can filter over the linear content progression and create learning sub-paths.
These sub-path progressions will most likely not cover all content, but they will ensure and enforce an unified learning experience, tailor for the user wish.
For example, a user might be interested in new additions and updates of a language, rather than introduction lessions. Note that these sub-paths don't take games into consideration
If you are being introduced to the topic for the first time
Insights:
- customizing-bash-via-bashrc
- what-are-environment-variables
- understanding-the-path-environment-variable
- manipulating-environment-variables
- manipulating-environment-variables-ii
- manipulating-environment-variables-iii
- manipulating-environment-variables-iv
- adding-directories-to-your-path
- the-directory-tree
- matching-multiple-files-with-wildcards
- using-which-to-find-executables
- using-find-to-search-by-filename
- using-find-to-search-by-file-size
- set-file-permissions-for-users
- more-about-chmod
- deleting-non-empty-directories
- using-touch-to-alter-files-modification-time
- what-is-a-shell
- the-basics-of-environment-variables
- the-standard-streams-stdin-stdout-and-stderr
- the-basics-of-the-pipe-operator
- input-and-output-redirection-with-and
- the-basics-of-command-substitution
- appending-output-with
- difference-between-redirection-and-pipe
- adding-new-users-with-useradd
- changing-user-passwords-with-passwd
- linux-user-management
- usermod-recipes
- running-a-command-as-another-local-user
- users-and-groups-on-linux
- file-ownership
- changing-file-ownership-with-chown
- changing-file-permissions-with-chmod
- changing-group-membership-with-usermod
- conditional-command-execution-operator
- else-statements-using-the-operator
- sequential-execution-using-the-statement-separator
- the-test-built-in
- compound-commands
- understanding-umask
- the-setgid-permission
- the-setuid-permission
- the-sticky-bit-permission
- su-vs-sudo
- get-file-permissions-in-octal-form
- granting-root-access-to-a-user
- run-previous-command-as-root
- using-xargs-to-build-commands
- progress-of-data-through-a-pipe-with-pv
- shebang-explained
- the-2-1-redirection
Theory put into practice/that’s how you achieve X points
Insights:
- customizing-bash-via-bashrc
- what-are-environment-variables
- understanding-the-path-environment-variable
- manipulating-environment-variables
- manipulating-environment-variables-ii
- manipulating-environment-variables-iii
- manipulating-environment-variables-iv
- adding-directories-to-your-path
- the-directory-tree
- matching-multiple-files-with-wildcards
- using-which-to-find-executables
- using-find-to-search-by-filename
- using-find-to-search-by-file-size
- deleting-non-empty-directories
- using-touch-to-alter-files-modification-time
- wrap-text-with-fold
- truncate-files-with-cat-instead-of-rm
- deleting-files-in-a-secure-manner
- what-is-a-shell
- the-basics-of-environment-variables
- quick-cd-tips
- terminal-based-browser
- rapidly-invoke-an-editor-to-write-a-long-complex-or-tricky-command
- the-standard-streams-stdin-stdout-and-stderr
- the-basics-of-the-pipe-operator
- input-and-output-redirection-with-and
- the-basics-of-command-substitution
- appending-output-with
- difference-between-redirection-and-pipe
- adding-new-users-with-useradd
- changing-user-passwords-with-passwd
- linux-user-management
- usermod-recipes
- running-a-command-as-another-local-user
- users-and-groups-on-linux
- file-ownership
- changing-file-ownership-with-chown
- changing-file-permissions-with-chmod
- changing-group-membership-with-usermod
- quick-bash-shortcuts
- clear-the-terminal-instantly
- retrieve-previous-arguments
- useful-aliasing-in-bash
- find-any-unix-linux-command
- conditional-command-execution-operator
- else-statements-using-the-operator
- sequential-execution-using-the-statement-separator
- the-test-built-in
- compound-commands
- easy-way-of-sharing-files
- finding-file-with-regexes
- identify-files-using-the-file-command
- working-with-gz-files
- preserving-permissions-and-structure-with-rsync
- understanding-umask
- the-setgid-permission
- the-setuid-permission
- the-sticky-bit-permission
- making-a-file-unalterable-with-chattr
- granting-root-access-to-a-user
- executing-commands-with-sudo-without-password
- bash-history-reverse-search
- keep-useful-commands-in-your-shell-history-with-tags
- execute-a-command-without-saving-it-in-history
- terminal-incognito-mode
- clear-bash-history
- using-xargs-to-build-commands
- progress-of-data-through-a-pipe-with-pv
- duplicate-pipe-content-with-tee
- shebang-explained
- the-2-1-redirection
- get-to-know-your-commands-with-type
- fast-file-indexing-with-updatedb-and-locate
- best-password-generation-utilities
- random-password-generator
- find-the-unknown-process-preventing-deleting-of-files
Prerequisite knowledge consisting of 2 or more 👶/💪 workouts
Insights:
Recently added/gained traction feature
Stories, obscure details that don’t specifically relate to a learning objective
Insights:
- terminal-based-browser
- rapidly-invoke-an-editor-to-write-a-long-complex-or-tricky-command
- making-a-file-unalterable-with-chattr
✅ All content has been tagged with aspects.
Want to contribute to this wiki? Go right ahead! If it has to do with how the Enki software ecosystem works, or editorial guidelines for how to write, let us handle that. Anything else, edit away!
Curriculum Format:
- Topic Documentation
- Course Documentation
- Workout Documentation
- Insight Documentation
- Glossary Documentation
Contributor Resources:
Curriculum overview:
Topic pages: