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