Linux, terminal and Git

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 permissions

Lessons· one lesson for each topic, in this order

  1. 1Read, write and execute permissions
  2. 2Users, groups, root and sudo
  3. 3Processes and how to see them
  4. 4Stopping processes: signals and kill
  5. 5Foreground, background and jobs
  6. 6Installing developer tools properly
  7. 7Version managers: nvm, pyenv and friends
  8. 8Disk space and system information

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

  • BookFree
    The Linux Command Line

    William Shotts · Beginner

    Its chapters on permissions and processes are the clearest free explanation of this stage

Practise

Keep handy

  • The official README for installing nvm and switching Node versions per project

  • How brew installs, upgrades and cleans up the tools on your Mac

Also worth your time

  • 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.

Tauseef's advice
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.

Mark this stage as not done?