+ - 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 / 46

Grading, organization and logistics

2 / 46

Grading

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

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 / 46

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 / 46

Organization, logistics

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

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

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

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

6 / 46

Why even have a course like this?

Well, the goal is to:

7 / 46

Why even have a course like this?

Well, the goal is to:

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

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

9 / 46

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

10 / 46

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.

11 / 46

And now onto the real deal...

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

12 / 46

Why Linux

13 / 46

A bit of computing history

Interaction with computers was done in various ways:

  • lights and switches
15 / 46

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?
16 / 46

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

17 / 46

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

18 / 46

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

19 / 46

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
20 / 46

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
21 / 46

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.

22 / 46

Linux

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

  • Released Linux (kernel) in 1991

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

23 / 46

Historical overview

24 / 46

Historical overview

25 / 46

Text console (terminal)

26 / 46

Text console (terminal)

27 / 46

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)
28 / 46

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
29 / 46

Remote shell

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

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

31 / 46

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
32 / 46

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

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

33 / 46

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

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

34 / 46

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

  • server 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)

35 / 46

Shell Commands

The standard command has the following structure

user@hostname:~$ command [flags] [arguments]
36 / 46

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 --)

37 / 46

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
38 / 46

Shell Commands: Examples

  • The cal command prints out a calendar
user@hostname:~$ cal
39 / 46

Shell Commands: Examples

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

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
41 / 46

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 2021 by passing it as an argument
user@hostname:~$ cal 2021
42 / 46

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 2021 by passing it as an argument
user@hostname:~$ cal 2021
  • Show the first six months of the year 2021
user@hostname:~$ cal -n 6 2021
43 / 46

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

    • exits (finishes the execution of) the shell
44 / 46

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
45 / 46

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
46 / 46

Grading, organization and logistics

2 / 46
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