Stage 4 of 8 · 8 lessons · ~2 weeks
Permissions, processes and packages
Understand who can do what on a Unix system, what is running and how to stop it, and how to install developer tools and language versions without making a mess.
Start: Read, write and execute permissionsLessons· one lesson for each topic, in this order
- 1Read, write and execute permissionsLesson
- 2Users, groups, root and sudoLesson
- 3Processes and how to see themLesson
- 4Stopping processes: signals and killLesson
- 5Foreground, background and jobsLesson
- 6Installing developer tools properlyLesson
- 7Version managers: nvm, pyenv and friendsLesson
- 8Disk space and system informationLesson
Do this
- Read `ls -l` output for five files and explain each permission string.
- Make a script executable with `chmod +x` and set a private file to 600.
- Find a process by name with `ps` or `htop`, then stop it with a normal kill.
- Pause a command with Ctrl+Z, background it with `bg` and bring it back with `fg`.
- Install Node with nvm (or Python with pyenv) and pin a version for one project.
- List where git, python3 and node come from with `which` or `type -a`.
- Find the three largest folders in your home with `du`.
Start with
- BookFreeThe Linux Command Line
William Shotts · Beginner
Its chapters on permissions and processes are the clearest free explanation of this stage
Practise
Keep handy
Also worth your time
- roadmap.sh: LinuxGo deeper
See the users, permissions and process management branches of the Linux map
Before moving on: A written audit of your own machine: where each of your main tools comes from, which language versions are installed and how they are switched, what is using the most disk, and one permission or ownership problem you found and fixed.

Most "my computer is broken" moments are one of three things: a permission problem from a careless sudo, two versions of the same tool, or a process you forgot about. Learn to check those three quickly and you will fix most problems before you need to ask anyone.