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

Why Linux

2 / 40

A bit of computing history

Interaction with computers was done in various ways:

  • lights and switches
4 / 40

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?
5 / 40

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

6 / 40

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

7 / 40

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

8 / 40

Unix

  • one of the first operating systems

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

    • first implemented on DEC PDP-7
  • later (1973) re-written in C

    • great win for portability to other architectures
9 / 40

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
10 / 40

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.

11 / 40

Linux

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

  • Released Linux (kernel) in 1991

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

12 / 40

Historical overview

13 / 40

Historical overview

14 / 40

Text console (terminal)

15 / 40

Text console (terminal)

16 / 40

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)
17 / 40

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
18 / 40

Remote shell

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

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

20 / 40

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

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

22 / 40

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

23 / 40

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)

24 / 40

Shell Commands

The standard command has the following structure

user@hostname:~$ command [flags] [arguments]
25 / 40

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

26 / 40

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
27 / 40

Shell Commands: Examples

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

Shell Commands: Examples

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

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
30 / 40

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 2020 by passing it as an argument
user@hostname:~$ cal 2020
31 / 40

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

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
33 / 40

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
34 / 40

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
35 / 40

Grading, organization and logistics

36 / 40

Grading

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

Grading

  • Each lab is worth 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

38 / 40

Grading

  • Each lab is worth 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

39 / 40

Organization, logistics

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

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

  • Everything organized via Google Classroom

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

40 / 40

Why Linux

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