Tags:
create new tag
view all tags
Start Presentation

Slide 1: The Linux Operating System

Lecture 2

Uli Raich

First Semester 2017/2018

Slide 2: Starting the Linux System

This is how the screen may loop like after some programs have been started

mainScreen.png

Slide 3: Linux Distributions

Linux comes in many flavors (distributions) which may be different

in how they are configured, their desktop, their software repository,

their target user community

beginners, gurus, programmers, desktop, server …

Here are some distributions:

Ubuntu (which we use), Mint, Debian, RedHat, Fedora, Kali...

Slide 4: Linux versus Windows

Linux can be downloaded and installed for free

The sources of the OS can be accessed freely

Linux has a window system based on X11 and has most facilities Windows offers

For certain commercial hardware there are no Linux drivers (caution!)

Writing your own Linux driver is possible but often the manufacturers do not

open the hardware specs (register meaning, initialization procedure…)

which makes this a very tedious job.

Programmers mostly use the command line interface something

that is hardly ever used in Windows.

The file system layout on disk is different (ext4 vs ntfs)

but there exist drivers on both systems

reading and writing the others files systems

Slide 5: Linux Command Line

When you start up a terminal window, you start a command shell with it.

We will be using bash

When you type a command, bash will check if it is a command

implemented in bash, in which case it is executed immediately,


otherwise a new process is created, the command loaded and executed

After termination of the command the process is removed again.

Either bash waits for termination of the process

or it is run in parallel (“&” after the command)

Where are the commands and how many are there?

Slide 6: Most used Linux Commands

Here are a few very frequently used commands

Command Action
ls List directory content
cat, less, more Print content of a text file
mkdir Create a directory
cd Change working directory
pwd Print current working directory
echo Print variable
vi, nano, emacs, gedit ... Edit a text file
rm, rmdir Remove a file / directory
grep Search for a string in files
Have a look in /bin /usr/bin.

The environment variable PATH tells the system where to look for commands.

The number of commands is unlimited since you can write your own commands

and include them into the system.

Slide 7: Manual pages

This is a small sample of /usr/sbin binaries.png
Each of these commands has plenty of parameters! How do I remember all this?

Well… you don’t, but there is a man (manual) command where you can find

a description of the parameters.

Slide 8: File permissions and user groups

Typing ls -l (l means long listing format) in one of my directories,

this is what I get:

ls.png

The left rwx means that the file owner can

  • Read
  • Write
  • and eXecute
the file. The middle 3 characters have the same meaning for group members

and the last 3 characters for any user.

Slide 9: Changing file permissions

The chmod command allows the file owner to modify file permissions.

This can be done for

  • u: user who owns the file
  • g: users in the same group
  • a: any user
You may add (+) or remove (-) permissions

Example: chmod a+w Makefile (what does it do?)

You can also give octal values representing the permission bits:

chmod 655 Makefile (what will be the file permissions after the command?)

Changing the eXexute flag in a shell script to make it executable is often done:

chmod.png

Slide 10: The super user

As we have seen the owner of a file / directory can do with it whatever he wants

including to refuse access to anybody but himself.

You can modify or destroy your file but you cannot modify system files

or files of other another user if he does not explicitly allow it.

There is one user who has the power to do anything: root: the super user.

Sometimes you may need this power to adapt the system to your needs:

sudo command executes a command with super user privileges.

Be careful when doing this, you have the power to destroy your system!

Slide 11: Adding Software packages


The apt command is a package management to allowing you to

add new software packages

  • remove them
  • upgrade them
  • find out which packages are installed
Software installation and removal can only be done by the super user

Slide 12: Find commands on the system

To find any command click this button

and type a command name in the search box

startButton.png
ubuntuSoft.png

Here you may try to see which software is available on Ubuntu

clicking the Ubuntu Software button

Slide 13: stdin, stdout, stderr

Every program has 3 input/ouput channels associate with it:

stdin: the standard input channel

stdout: the standard output channel

stderr: the error channels

stdin in usually associate with the keyboard

stdout and stderr with the terminal window

from which the application was started.

Any of these may be re-directed with “<” for stdin,

'“>” for stdout and “2>” for stderr

Slide 14: pipes

Unix (and Linux) uses many small programs that can however be

connected to produce more complex commands.

stdout of one command is connected to stdin to another one through a pipe.


Let’s say, I want to know how many instances of bash are running on the system

(with each terminal you get an associated shell)

In this case I can give the command ps ax, which will however print all processes

currently running. If I pipe this output into grep bash

(showing every line containing the string “bash”)

then I have constructed the command I was looking for.

pipe.png

Slide 15: The home directory

Every user has his own home directory into which his personal files are stored.

This also concerns configuration files

Most configuration files are “hidden files” whose file names start with “.” To see these type

ls -a ~ Meaning: show all files in my own home directory.

cd (without parameters) takes you to your home directory

The current working directory is “.”

“..” is the directory one level up from the current working directory

(goto the parent directory of the current directory)

Slide 16: Change Settings

settings.png

Slide 17: Settings

settings-2.png

Slide 18: bash scripts

You can collect a sequence of commands in a script file (e.g. myscript.sh)

The command sh myscript.sh sequentially executes all commands in this file.
Actually bash is a command language with assignments,

conditional and loop statements just like any conventional programming language.

When making your script file executable by changing the permission

bits, you can run it like any other program (how?).

Have a look at your ~/.profile, a shell script which is executed

when you create a new shell (e.g. when opening a new command window).

Slide 19: Other script files

bash is a command interpreter but it is not the only one

There are other command shells like csh, tcsh …

And there are script base programming languages like python, perl …

Often the first comment in the script file tells the

system which interpreter to use:

#!/bin/sh

#!/bin/python

-- Uli Raich - 2017-09-05

Comments

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng binaries.png r1 manage 65.4 K 2017-09-06 - 15:39 UnknownUser  
PNGpng chmod.png r1 manage 26.8 K 2017-09-06 - 15:39 UnknownUser  
Unknown file formatodp lecture_2.odp r1 manage 1050.5 K 2017-09-07 - 08:57 UnknownUser  
PNGpng ls.png r1 manage 16.3 K 2017-11-03 - 13:54 UnknownUser  
PNGpng mainScreen.png r1 manage 332.6 K 2017-09-05 - 16:01 UnknownUser  
PNGpng permissions.png r1 manage 14.4 K 2017-09-05 - 16:14 UnknownUser  
PNGpng pipe.png r1 manage 10.5 K 2017-09-06 - 16:20 UnknownUser  
PNGpng settings-2.png r1 manage 103.6 K 2017-11-03 - 14:31 UnknownUser  
PNGpng settings.png r1 manage 37.2 K 2017-11-03 - 14:31 UnknownUser  
PNGpng startButton.png r1 manage 5.5 K 2017-09-05 - 16:01 UnknownUser  
PNGpng ubuntuSoft.png r1 manage 427.2 K 2017-09-05 - 16:14 UnknownUser  
Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r5 - 2017-11-03 - uli
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback