170910

170910

Förmiddag

Läxförhör 20/10

Övningstenta 21/10

Tenta 24/10


Till tentan ska kunna:

What is linux

Multi-user concepts

The X Window System

The linux filesystem

Manipulating files

Shell basics

Archiving and compression

Text processing

Regular expressions

Text Editing

Command shells

Introduction to shell scripting

Process management and job control

Managing software

Messaging

Printing

The secure shell (ssh)

Mounting filesystems & managable removable media


Användare med uid högre än 100 är systemanvändare

Man kan ha riktiga grupper och falska grupper (för enskilda användare).

Filsystem – filträd och sådana saker

Grundläggande om de vanliga filsystemen

journalhantering

navigering av systemet med de vanliga kommandon (ln, cp, mp, ls, grep touch osv).

Shell basics

Regexpar och fnuttar av alla sorter måste sitta

Kunna göra one-liners

; && & | är viktiga att kunna

Veta lite om vilket skal man kör, behöver inte alltid vara bash.

zshell är mer komplett.

If else while do done for in är viktiga.

Managing sofware

Yum yellow dog update manager

RPM redhat pachack manager

Messaging

wall skickar en textrad till alla inloggade på systemet

viktigt att kunna hantera mail via terminalen

Printing

Det är ofta viktigt att kunna skriva ut.

CUPS är det vanligaste systemet för att hantera utskrifter.

SSH

Kunna koppla upp och skicka filer och kommandon

Mounting filesystems

Kunna de grundläggande dragen, hur man monterar och avmonterar samt kunna navigera i fstab


root har uid 0

övriga systemanvändare (funktionsgrupper på datorn) har upp till antingen 100 eller 1000, traditionellt 100 men numer kan det finnas fler relevanta grupper än 100 så då har det utökats till 1000.

Mycket av detta är i princip legacy.

getty=get tty=teletype

Teletype var en gång i tiden den dominerande terminal, den skrev ut direkt det du skrev.

Gettys uppgift är att berätta att användaren är aktiv och sen starta login, bygger på principen med mainfream och dum terminal.

Login presenterar användaren med loginprompten (ofta lite mer information som vilket OS det är).

Login sköter även vad man kopplar upp mot och autentiseringen kring detta.

Slutligen kör den igång ens loginskal.

Graphical logins:

xdm är gammal, gdm och kdm är mer moderna och de som används nu.

Både getty och login startas av init.

Nätverkslogin

telnet, rlogin, ssh osv

också initierade av init.

Switching user

su går till root och andra användare

-c skickar bara ett kommando

- ger den nya användarens sökvägar och liknande

veta vad sudo är och hur det fungerar (tillfällig användning av root-funktioner).

Gathering login session info

Alla har

UID: AnvändarID

GUID:GruppID

terminal: tty, pts (pseudo terminal), osv

kommandon som är bra för att få info om vem du är och vad du gör med vad:

id, whoami, tty

Vem mer är inloggad på systemet

users, who, w, finger (till för att få information över nätverket och är därför rätt ofta kraftigt begränsad)

vilket system:

uname -a säger vad systemet är för något

free information om RAM

nätverksnamn

hostname – vad systemet heter

ifconfig – nätverksinfo

Hjälpfiler

kommando -help

man kommando

info (mer komplett än man med mer funktioner)

$MANPATH är bra att känna till för att man-filerna kan ligga på lite olika platser i vissa fall.

Filsystem

Kolla mina gamla anteckningar


Unix filesystem

En rot i hela filsystemet

Skillnad på stora och små bokstäver

långa filnamn

länkar (mjuka och hårda)

tidsstämplar

ctime – när filen skapades

atime – access time, använd sällan

mtime – är filen ändrades

ext2 och ext3 har utökade attribut (däribland immutable, dvs, går att skriva men inte skriva över)

FHS (filsystem standard)

Principerna hur de ska vara uppbyggda

Till för att man ska kunna hantera var saker ska ligga och inte.

Navigera systemet

cd, pwd

Visande av kataloger

ls

-a show all files

-l long listings

-d show directories not content

-h human readable

-R Recursive

-S sort by file size

du

-h human readable

-s sumarrize, display total only for reach argument

-S do not include size of sub-directories

df

-h human readable

-i list inode information instead of block usage

-T includer filesystem type

Diskkvoter

quota -g [group] listar gruppkvoter

quite -u [user] list quotas of specific users

only available to root

Kvoter gör så att man kan skriva över till en början, men ligger det kvar för länge så får man inte skriva mer efter det.

-g gör att filer ägda av den gruppen får max ta upp en viss mängd

-u gör samma sak fast för filer ägda av en användare

File Ownership

Bara root kan ändra vem som äger en fil, delvis pga diskkvoter

chown till för att byta ägare och potentiellt grupp

chgrp är till för att byta grupp

Används primärt på webhotell och skolor då diskar är så pass billiga numer.

Default Group ownership

Nyskapade filer skapas som användaren och gruppen som skapar den.

newgrp byter grupp

Behörigheter:

Kunna både siffror och siffror

File creation permission

umask definierar vilka rättigheter filer som skapas ska ha per default

chmod -R ändrar rättigheter rekursivt.

SUID viktigt, det körs som ägaren av filen istället för användaren som kör filen, stor säkerhetsrisk för root.

SGID – kataloger och filer under en katalog får rätt behörigheter

Sticky bit – går att skriva men inte ta bort

User private Group Scheme

Numer skapas en grupp för varje användare

Det kommer från tanken att man ska inte råka dela ut saker till gruppen

Deleting and creating files

rm – ta bort filer

touch – skapar filer eller uppdaterar filer (atime och mtime)

Physical unix file structure

block håller data

inoder håller metadata

superblock innehåller filparametrar


Filsystem links

en mjuk länk är egentligen en textfil som berättar var den andra filen ligger


file extensions and content

många program gillar idén med att avsluta filnamn med filtyp förkortad till tre bokstäver, men det finns inga krav på det egentligen


file säger vilken typ av fil det är baserat på vad den innehåller (gissning, kan bli fel).


Visa filer

cat dumpar ut filen på skärmen

more dumpar ut filen segmenterat på skärmen, ofta alias till less

less uppdaterat more, gör att man kan gå tillbaka också

Previewing file

head visar de tio första raderna

tail visar de tio senaste raderna

-n bestämmer antal rader

strings visar ut ASCII-text inne i binära filer

xxd – översätter till hexadecimalt eller oktalt från binära filer

reset återställer terminalen ifall ett program jävlats på något sätt (ctrl+j)


Searching the file system

find

komplext kommando

-print default

-ls skriver ut fulla detaljer kring matchningarna

-exec köra kommando under finden


sudo find /usr/ -exec file {} \; | grep -i image | less

kör find i /usr/, letar efter filer som innehåller image i sin file-info och sen skickar den output till less och ignorerar shiftläge.


sudo find -name '*png'

-name söker på filnamn


locate – verktyg som läser av en databas som uppdateras dagligen, snabb sök men missar nya filer om man inte kör updatedb

wc – räknar ord, tecken, rader osv


STDIN – program tar emot input, ofta det man skriver

STDOUT – program ger ut information

STDERR – var de ger ut information om fel


File redirection

< skicka in output in i ett program

> skicka in output i en fil

2> skicka stdout till en fil

> 2>&1 skickar både output och error till samma fil

&> samma som ovanstående rad (primärt bash)


Piping commands together

| skickar output till ett annat program


`command` är samma som &(command)

Ger output av kommandot till stdout

\ är bra om man har ett kommando som går över flera rader