linux_introduction/essential
waldek 3cd63a682c end of day one 2022-02-18 14:25:50 +01:00
..
readme.md end of day one 2022-02-18 14:25:50 +01:00

readme.md

Essential Linux

Introduction to Linux

Where does Linux originate from?

Who is behind this project?

What is the deal with 'GNU-slash-Linux'?

Linux kernel

Where can you get some Linux?

  • You probably already have a Linux computer running at home!

Timeline

Debian

How to create a virtual machine

Step by step walk-through of a VM creation in virtualbox with some notes on each step with best practice pointers.

virtualbox setup virtualbox setup virtualbox setup virtualbox setup virtualbox setup virtualbox setup virtualbox setup virtualbox setup

Breakdown of the Debian installation

All right, enough talking, let's get started! I'll install a full blown and modern graphical Debian machine and I would like you to not do it yourself but take notes on each step so you'll be able to reference your notes later when I ask you to install a machine yourself.

  • step by step installation instructions
    • don't set a root password, use sudo instead
    • stress the graphical/minimal difference

Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation

Exercise

OK, now it's up to you! Please install a Debian machine with the default graphical environment. Once installed, take some time out to explore the system. Which software is installed by default? How can you tweak the system settings such as language, keyboard, networking? Can you install extra software?

Quick look at an idle system

Debian installation Debian installation Debian installation

Package managers

Graphical installation

Debian installation Debian installation Debian installation Debian installation Debian installation Debian installation

Command line installation

waldek@hellodebian:~$ htop
-bash: htop: command not found
waldek@hellodebian:~$ apt install htop
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
waldek@hellodebian:~$ sudo apt install htop
[sudo] password for waldek: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
  lm-sensors strace
The following NEW packages will be installed:
  htop
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 127 kB of archives.
After this operation, 328 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bullseye/main amd64 htop amd64 3.0.5-7 [127 kB]
Fetched 127 kB in 0s (2,030 kB/s)
Selecting previously unselected package htop.
(Reading database ... 141359 files and directories currently installed.)
Preparing to unpack .../htop_3.0.5-7_amd64.deb ...
Unpacking htop (3.0.5-7) ...
Setting up htop (3.0.5-7) ...
Processing triggers for mailcap (3.69) ...
Processing triggers for desktop-file-utils (0.26-1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1) ...
Processing triggers for man-db (2.9.4-2) ...
waldek@hellodebian:~$ 

htop htop

The menu bar at the bottom shows you can press F10 to quit. This does not work because of a shortcut of gnome-terminal! You can deactivate this shortcut in the preferences though. But pressing q also exits the program.

htop bug with gnome-terminal

Adding a secondary desktop environment

During the initial installation we where offered a choice of desktop environments to install. This menu was an actual program called tasksel we can run again to add different ones! As it's a program that can heavily modify the system, we need administrator privileges.

waldek@hellodebian:~$ sudo tasksel
[sudo] password for waldek: 

tasksel tasksel tasksel tasksel

Changing the runlevel

The first process started by the kernel can be discover by htop and is /usr/sbin/init. This is rather vague but we can find out a bit more about this program via ls which we'll get into more detail later. For now just have a look at the output of the following commmand.

waldek@hellodebian:~$ ls -l /usr/sbin/init 
lrwxrwxrwx 1 root root 20 Jul 13  2021 /usr/sbin/init -> /lib/systemd/systemd
waldek@hellodebian:~$ 

Now, what is this systemd? And more importantly, how do we interact with it? For now just accept that the main program to communicate with systemd is systemctl. A quick look at the man pages gives us the following.

SYSTEMCTL(1)                                                         systemctl                                                         SYSTEMCTL(1)

NAME
       systemctl - Control the systemd system and service manager

SYNOPSIS
       systemctl [OPTIONS...] COMMAND [UNIT...]

DESCRIPTION
       systemctl may be used to introspect and control the state of the "systemd" system and service manager. Please refer to systemd(1) for an
       introduction into the basic concepts and functionality this tool manages.

waldek@hellodebian:~$ sudo systemctl set-default multi-user.target
[sudo] password for waldek: 
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /lib/systemd/system/multi-user.target.
waldek@hellodebian:~$ sudo reboot now

After the reboot you'll be confronted with the following screen. Don't stress, your machine is not broken! It's just running in a more minimal mode. You can log in just as with the graphical login window but you'll only have a command line to interact with the machine. A quick look at htop tells us not a lot of stuff is running, just the bare minimum.

minimal runlevel minimal runlevel

To undo this change and regain the graphical interface again you can run the following commands.

waldek@hellodebian:~$ sudo systemctl set-default graphical.target
[sudo] password for waldek: 
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /lib/systemd/system/graphical.target.
waldek@hellodebian:~$ sudo reboot now

Exercise

Please create a second virtual machine and install a minimal Debian. Minimal means no graphical environment. I advise you to not set a root password. Once this machine is up and running, install a few programs. The only one we saw up until now is htop but maybe try out bmon, elinks and/or ranger.