+ - 0:00:00
Notes for current slide
Notes for next slide

Intro to GNU/Linux command line

Learning just enough to be dangerous

Marek Šuppa
Ondrej Jariabka
Adrián Matejov

1 / 47

Grading, organization and logistics

2 / 47

Grading

  • Each lab is worth about 5% of your final grade (there will be some bonuses)
3 / 47

Grading

  • Each lab is worth about 5% of your final grade (there will be some bonuses)

  • You can get at most 50% of the grade in the labs

  • The other 50% comes from the test at the lectures with Dr. Janacek

4 / 47

Grading

  • Each lab is worth about 5% of your final grade (there will be some bonuses)

  • You can get at most 50% of the grade in the labs

  • The other 50% comes from the test at the lectures with Dr. Janacek

  • At least 50% is necessary for the E grade

5 / 47

Organization, logistics

  • Labs every week, 1810 in H6 (or online)

  • Short (40 minute) lecture on some topic + various labs

  • We'll try to organize via MS Teams (of all places...)

  • Labs will take place on a remote server, so nothing to install

  • You will have 18 hours to finish the labs

6 / 47

Organization, logistics

  • Labs every week, 1810 in H6 (or online)

  • Short (40 minute) lecture on some topic + various labs

  • We'll try to organize via MS Teams (of all places...)

  • Labs will take place on a remote server, so nothing to install

  • You will have 18 hours to finish the labs

  • Every additional hour after the deadline compounds the decrease of points you can get by 1%

7 / 47

Why even have a course like this?

Well, the goal is to:

8 / 47

Why even have a course like this?

Well, the goal is to:

  • show you the cool things (your) computers are capable of
9 / 47

Why even have a course like this?

Well, the goal is to:

  • show you the cool things (your) computers are capable of

  • get you acquainted with UNIX-like operating systems, the tradition which powers much of modern computing

10 / 47

Why even have a course like this?

Well, the goal is to:

  • show you the cool things (your) computers are capable of

  • get you acquainted with UNIX-like operating systems, the tradition which powers much of modern computing

  • be a fun break from other classes

11 / 47

Why even have a course like this?

Well, the goal is to:

  • show you the cool things (your) computers are capable of

  • get you acquainted with UNIX-like operating systems, the tradition which powers much of modern computing

  • be a fun break from other classes

What you are studying is non-trivial already. It is not our job to punish you for choosing to do that but to give you some practical skills that will let you apply it straight away.

12 / 47

And now onto the real deal...

As in, why even learn about (Linux) Command Line in 2022,
when I want to be a Data Scientist!?!

13 / 47

Why Linux

14 / 47

A bit of computing history

Interaction with computers was done in various ways:

  • lights and switches
16 / 47

A bit of computing history

Interaction with computers was done in various ways:

  • lights and switches

  • numerical displays

  • textual displays and terminals

    • first Operating Systems
    • punchcards, tapes ..., disks (over 1MB!)
    • command line?
17 / 47

A bit of computing history

Interaction with computers was done in various ways:

  • lights and switches

  • numerical displays

  • textual displays and terminals

    • first Operating Systems
    • punchcards, tapes ..., disks (over 1MB!)
    • command line?
  • graphical display

    • window manager
  • mouse, touchpad, tablet, touch screen

18 / 47

A bit of computing history

Interaction with computers was done in various ways:

  • lights and switches

  • numerical displays

  • textual displays and terminals

    • first Operating Systems
    • punchcards, tapes ..., disks (over 1MB!)
    • command line?
  • graphical display

    • window manager
  • mouse, touchpad, tablet, touch screen

  • voice control, Virtual Reality...?

19 / 47

Ken Thompson (sitting) and Dennis Ritchie working together at a PDP-11

20 / 47

Unix

  • one of the first operating systems

  • Ken Thompson, Dennis Ritchie (and friends) in 1969

    • first implemented on DEC PDP-7
    • at (AT&T's) Bell Labs
  • later (1973) re-written in C

    • great win for portability to other architectures
21 / 47

Free Software Foundation and GNU

  • Richard Stallman founded the GNU (GNU's Not Unix) project in 1984
    • free UNIX clon, various system tools, without the kernel
22 / 47

Freedoms of Free Software

  1. The freedom to run the program as you wish, for any purpose.

  2. The freedom to study how the program works, and change it so it does your computing as you wish.

  3. The freedom to redistribute copies so you can help your neighbor.

  4. The freedom to distribute copies of your modified versions to others.

Note that free does not necessarily need to mean free of charge.

23 / 47

Linux

  • Linus Torvalds, 21 year old student of the University of Helsinki

  • Released Linux (kernel) in 1991

  • Linux kernel + GNU = Linux (GNU/Linux system)

24 / 47

Historical overview

25 / 47

Historical overview

26 / 47

Text console (terminal)

27 / 47

Text console (terminal)

28 / 47

Text console (terminal)

  • The whole concept comes from "teleprinters" (or "teletype" -- tty)
  • input from the keyboard
  • output onto the screen (printer, or any other output device)
29 / 47

Text console (terminal)

  • The whole concept comes from "teleprinters" (or "teletype" -- tty)
  • input from the keyboard
  • output onto the screen (printer, or any other output device)

Interpreter (shell)

  • the application that takes care of the command-line interface
  • receives and manages input and output
  • ensures that the received commands are executed
  • captures (and outputs) their output
  • examples include sh, bash, csh or zsh
30 / 47

Remote shell

  • To connect to a shell at a remote machine we'll generally be using ssh "Secure Shell"
$ ssh user@remote.computer.com
31 / 47

Remote shell

  • To connect to a shell at a remote machine we'll generally be using ssh "Secure Shell"
$ ssh user@remote.computer.com
  • Needs to be executed from a terminal/console application (aka "terminal emulator")

  • Starts an interpreter (shell) on the remote computer and connects the terminal/console to it

32 / 47

Remote shell

  • To connect to a shell at a remote machine we'll generally be using ssh "Secure Shell"
$ ssh user@remote.computer.com
  • Needs to be executed from a terminal/console application (aka "terminal emulator")

  • Starts an interpreter (shell) on the remote computer and connects the terminal/console to it

Windows

  • also has terminal emulators
  • the standard one is called putty
33 / 47

Shell

  • Whenever you star a shell (remote or not), you'll be welcomed by something on the order of
user@hostname:~$
  • user will be replaced with the user you run this shell as

  • hostname will be replaced with the name of the computer this shell is running on

34 / 47

Shell

  • Whenever you star a shell (remote or not), you'll be welcomed by something on the order of
user@hostname:~$
  • user will be replaced with the user you run this shell as

  • hostname will be replaced with the name of the computer this shell is running on

  • $ (and potentially # in case of administrator accounts) denotes a place to enter commands

35 / 47

Shell

  • Whenever you star a shell (remote or not), you'll be welcomed by something on the order of
user@hostname:~$
  • user will be replaced with the user you run this shell as

  • hostname will be replaced with the name of the computer this shell is running on

  • $ (and potentially # in case of administrator accounts) denotes a place to enter commands

user@hostname:~$ command [ENTER]

(the [ENTER] here means literally pressing the Enter key on the keyboard)

36 / 47

Shell Commands

The standard command has the following structure

user@hostname:~$ command [flags] [arguments]
37 / 47

Shell Commands

The standard command has the following structure

user@hostname:~$ command [flags] [arguments]

such as for instance

user@hostname:~$ command -x --longflag

where -x and --longflag are flags. (Long flags start with two dashes --)

38 / 47

Shell Commands

The standard command has the following structure

user@hostname:~$ command [flags] [arguments]

such as for instance

user@hostname:~$ command -x --longflag

where -x and --longflag are flags. (Long flags start with two dashes --)

Flags (or options) can be either boolean (present/not-present) or with some value

user@hostname:~$ command -x 123
user@hostname:~$ command --longflag somestring
39 / 47

Shell Commands: Examples

  • The cal command prints out a calendar
user@hostname:~$ cal
40 / 47

Shell Commands: Examples

  • The cal command prints out a calendar
user@hostname:~$ cal
  • Show three months with the -3 flag
user@hostname:~$ cal -3
41 / 47

Shell Commands: Examples

  • The cal command prints out a calendar
user@hostname:~$ cal
  • Show three months with the -3 flag
user@hostname:~$ cal -3
  • Show the next six months by passing a value to the -n flag
user@hostname:~$ cal -n 6
42 / 47

Shell Commands: Examples

  • The cal command prints out a calendar
user@hostname:~$ cal
  • Show three months with the -3 flag
user@hostname:~$ cal -3
  • Show the next six months by passing a value to the -n flag
user@hostname:~$ cal -n 6
  • Show the calendar for 2022 by passing it as an argument
user@hostname:~$ cal 2022
43 / 47

Shell Commands: Examples

  • The cal command prints out a calendar
user@hostname:~$ cal
  • Show three months with the -3 flag
user@hostname:~$ cal -3
  • Show the next six months by passing a value to the -n flag
user@hostname:~$ cal -n 6
  • Show the calendar for 2022 by passing it as an argument
user@hostname:~$ cal 2022
  • Show the first six months of the year 2022
user@hostname:~$ cal -n 6 2022
44 / 47

Useful commands

  • date

    • prints out the date
  • uname -a

    • shows information about the system (-a means "all information")
  • man command

    • shows a help page for command
    • the program can be exited by pressing q
45 / 47

Useful commands II

  • w

    • info about logged-in users
    • which terminal, what program are they running...
  • who

    • list of logged-in users
  • whoami

    • answers the question "Who am I?"
    • prints out the name of the current user
46 / 47

Useful commands III

  • pwd

    • shows the path to the current directory
  • cd directory

    • changes the working directory of the shell (its position on the disk) to directory
  • cd ..

    • return to one level above in the directory/folder structure on the disk
  • ls

    • lists the contents of the current directory
  • exit

    • exits (finishes the execution of) the shell
47 / 47

Grading, organization and logistics

2 / 47
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow