Chapter 1 Flashcards
Hvordan havne på samme sted når du logger inn igjen?
tmux a
Hva er forskjellen mellom unix/linux
Unix: (Dennis Richie (C prog) & Ken Thompson)
1960-1970 (Multix, working on it)
Alternative (can only run 1 prog at a time, made Unics, became unix)
because of monopoly, given to uni freely
different versions (distributions) were made
standards (POSIX) (have these APIs etc)
GNU (GNU is not unix)
finnish guy lionel (clone of unix, not with the source code, but with the philosophy of how it was made)
ls (and options)
list directory (in the catalog we’re in)
list -a (show hidden files too)
list -l (list in a list)
pwd
print working directory (active directory we’re in)
cd
change directory
tree eller tree filename/
viser innhold av katalog
Hvordan gå oppover i rot med cd?
cd ../../fil (2 hakk)
Hvordan gå bakover i rot med cd?
cd ../../.. (2 hakk)
cat filnavn
(concatenate), viser innhold
Bruker pwd til å lage fil (fra der vi er i pwd)
pwd > filnavn.txt (rederigering >)
få loggen
history
Hva skjer når vi har pwd > filnavn.txt og skriver den igjen?
den blir overskrevet
Hva om vi vil legge på (append) en fil med pwd > filnavn.txt?
echo “hola”»_space; filnavn.txt
hva om vi vil skive ut flere filer i 1 katalog?
cat fila filb filc > nyfil
forskjell mellom > og»_space;
> når vi LAGER den, som med pwd > filnavn, eller når vi vil legge de til (og printe de) med cat > filnavn.
pwd»_space; plussfila ((vil APPENDE til den plussfila til der vi ligger i pwd (dir)))
cat fil1 fil2 fil3 »_space; filer (vil sende de inn i en ny fil)
q
går ut av man (manual)
cat (uten args)
leser fra standard fil, som er testaturet. HUSK alt i en pc med linux er filer
så det du skriver etter cat, vil bare bli printet tilbake til deg
end fil?
ctrl d (avslutter når du er i cat (uten arg)
cat > fil.txt (hva gjør den?)
cat (skive, siden ikke noe arg, leser fra standard fil (tastatur) og inni fil.txt.)
få hjelp og forskjellige versjoner av man
man kommandonavn
kort beskrivelse om hva kommandoen gjør
whatis kommandonavn
med man, hva indikerer tallene i (her)?
hvis (1), det er for linux kommandoer
hvis (3), det er for c funksjonene
man man
manual to manual
hvordan spørre om c funk/linux kommandoer man?
man 1 printf (linux)
man 3 printf (c)
stdin (0)
standard innlesning (det er en prosess)
når vi starter prog fra terminal, det vil være tastatur
stdout (1)
standard utlesning
stderr (2)
for errors
Hva skjer når vi åpner en fil i terminalen?
det er 3 åpne filer:
en for standard innskrift(0), utskrift(1) og error (2).
dette gjelder alle prog språk (c, python etc) om vi kjører det på en linux system
vi kan bestemme hvilken rederigering skal skje med filene ved å spesifisere det før > (rederigeringstegnet)
pwd 1> utfil.txt (kan også gjøre det med 2 feks hvis vi vil sende alle error der)
rederigering av en text (tenk på det som (re)redigering av en text)
hvordan skrive ut en text der alle tingene i den er baklengs?
tac < fil.txt (rederigering av stdin siden det er en motsatt vei. her sier vi “les inn fra fil.txt som baklengs”)
semikolon?
det gjør at vi kan utføre flere ting etter hverandre på en linje slik:
cat f; ls -l; tree
hva gjør echo
bare skriver ut akkurat det du skrev inn. forskjell mellom de tog cat er at du bare trenger å skrive cat 1 gang og hoppe ut (ctrl d) mens du må skrive echo for hver gang
joker tegn (spesielle tegn)
de er * og ?
hvilke er de og hva gjør *?
hvis vi bruker ls før vi bruker echo *, så gjør den akkurat det samme som ls. * vil bli erstattet med filnavnene
echo *py
- vil bli erstattet med filnavnene, det vil si at den kommer til å echo (skrive ut) alt som har ….py i enden
echo eks?.?.sh
dette sier finn alt som starter med eks?(har et random tegn vi ikke kjenner til).(deretter har et punktum her)?(så et tegn til vi ikke kjenner til).(så et punktum til)sh(så slutter på sh)
hva gjør ?
det representerer 1 char/tegn
ls -l mynt*
list alle som starter på mynt og har whatever bak seg
her viser vi at vi IKKE trenger å bruke echo om vi ikke vil så lenge vi holder på *
kan vi bruke * med noe annet enn ls (+ versions)?
nei
file kommando
finner ut HVA slags fil det er
file eks?.??
viser hav slags fil det er som starter med eks(random tegn).(to random tegn)
ls fil*
skriver ut alle filer som starter på fil og har whatever bak seg
ls fil.??
skriver ut alle filer som starter på fil og har 2 ukjente tegn bak seg
kan vi bruke ls *fil
nei, siden vi forteller jo den bare å lese ut whatever tegn/char, hva er vitsen med fil her? vi spesifiserer ikke at den skal lete etter en fil som har fil inne-skvist et sted i navnet
mest brukt sections i dette kurset
executable programs or shell commands (sec 1) eller file formats and conventions eg (sec 5) eller system administrations commands (sec 7)
hvordan finne section?
vi sa det før, det er de inne i parantesene (nr)
bruk whatis kommandonavn først
slik finner man hvilken section det er
så kan du skrive det etter man slik:
man nr kommandonavn
apropos komanndonavn
vet ikke hva vi skal gjøre, gir deg forslag
ls -help
får hjelp
Finn ut hvem er pålogget.
Kommandoer: finger, who, w. (På web01 ser du bare brukernavnene, ikke fullt navn).
less kommandoen
Less is a program similar to more (1), but it has many more features.
Less does not have to read the entire input file before starting, so with large input files it starts up faster than text editors like vi(1).
more
more is a filter for paging through text one screenful at a time. This version is especially primitive.
mkdir
make directory, lager catalogs
touch filnavn1 navn2 navn3
mellomrom?
åpner en fil hvis den eksisterer (oppdaterer sist åpnet da)
lager fil hvis ikke
kan lage flere på en gang slik
mellomrom:
må være rundt “her dobble” //ikke gjør det
cp
kopiere, MÅ ha minst 2 args:
cp original kopyfil
vil sette de inni en kat?:
cp original kopyfil katnavn/ (relativ sti til der vi står)
name giving files
bokstaver
tall
-
.
_
ikke spesielle tegn og mellomrom
hidden files
navn som begynner med .
les med ls -a
da får vi det med . (denne kat) og .. (hjemme kat)
mv
move, flytter filer:
mv fil1 kat1/ (må ha / når flytter, flytter bare til KATALOGER. kan ikke ha fil inni en fil)
flytte flere filer som starter på noe:
mv fil* kat1/
eller rename file:
mv gammelnavn nynavn
rm
remove, sletter filer
rmdir
sletter directory (MÅ være tom)
(så vi MÅ bruke dette først:
rm kat1/* (slett alt som er i kat1,
så bruke rmdir kat1)
)
rm -r kat1 eller rm -rf kat1 (f for force)
sletter alt som er i kat og kat seg selv
find vs locate
aktivt søk på det vi har nå, så nyere men tregere
find -name filnavn
Loacte. Uses database so its faster. Not completely up to date. Use when red for speed.
Find. Up to date. Slower. Use when want more advanced
locate
bruker en database, så den er ikke helt up to date
finner ikke egne filer, har ikke tilgang til bruke egne filer, for å ikke få info lekasje
ln, typer og hvordan brukes
lenker symlink (symbolic link) og hard link
ln -s (sym lenke): (shortcut)
ln -s fil1 fil_som_ikke_eksisterer_enda (lager den)
(sym link er en fil som peker på en annen, eller seg selv med forskjellig navn. det er en shortcut basically.
file size er mindre enn original. and inode nr (id nr) er forskjellige fra original file. MEN! om du sletter den originale, så vil symlenkene være useless)
ln (uten noe, er hard lenke):
ln fil1 fil2
(different name, same file, same size file and inode nr. de fungerer her som en KOPI, om du sletter den originale, så sletter du IKKE hardlenkene)
eks:
touch A
ln A B (lenke mellom A og B, de er egentlig samme fil, men forskjellige navn)
echo heii > A (alt som skrives inni A kommer i B)
cat A og cat B viser det samme = heii
(de er samme fil, men om du sletter A så er B fortsatt der. tenk på det som holvika dør bokstaver, sletter en, finnes en annen inngang fordi du lagde den)
en fil kan ha mange navn, trenger ikke engang å være i samme katalog (inngang i 8-klasse bygning eller 10-klasse bygning etc)
inode
inode er det som keep track of linux filesystem and directories
contain:
inode nr
file size
owner info
file type
number of links
etc
does NOT contain
file name
file content
paths, what are the different types?
relativ sti, absolutt sti
relativ sti
relativ path til the working dir vi er i
vi bruker relativ path også når vi bare skriver cd filnavnet
absolutt sti
starter helt fra toppen og går fremover
starter alltid med /
vanskelig å keep track over med amnge nested directories
MÅ begynne med /home/bruker/fil/fil/fil
vi kan gå tilbake til en annet dir med relativ path, hvordan? si du er i gren1 og vil til gren2 inne i trefil
cd ../gren2 (går tilbake ett hakk, så til gren2)
hva betyr . med relativ sti?
peker på seg selv
~ mening
home dir shortcut (alltid med cd!!)
hvordan kombinere ls med dir og * med en relativ sti? (vil gå fremover)
ls -l filforan/fil*
ls .
leser denne filen, akkurat som ls
ls ..
leser forrige fil
ls …
hacker, prøver å skjule en fil
shell/skall
et prog som brukes til å utføre prosessene som vi skriver inn i kommandolinjen. den er command line interface (CLI) basert.
shell/skall typer
sh: Bourne shell
bash: Bourne again shell
csh: C shell (C aktig shell)
mc: midnight commander
etc
vi har forskjellige shells:
command in line shells: provide text based interface where user types commando directly (bash, Zsh, fish, powershell. these are shells good for scripting)
graphical shells (provide visual interface with icons, windows, menus. has a GUI (think windows). ex. (include a desktop enviroment like GNOME, KDE, windows explorer). easier to manage, since it’s visual.
terminal:
user interface where you write commands. a progam that allows ACCESS to the shell!
SO, you ARE using bash in the terminal.
på kommadolinjen, vil hoppe til foran eller bak, shortcut hvordan?
ctrl a (foran)
ctrl e (bak) /tenk på det som end
slette noe foran makrøren (der vi er) og etter markøren
ctrl u (foran markør, dette er ikke i emacs)
ctrl (k) (etter markør) /tenk på kill
vil avbryte kommando
ctrl c
fullføre kommando og filnavn?
tab
kopiere ting i kommandolinje
bare marker og høyre klikk
bash
versatile shell, interprets commands and provide text like interface
to use it, write bash in terminal. that’s it
nano
not suitible for complex tasks
to use:
nano filename.txt to open or make if not exist
emacs
powerful!
to use:
emacs filename.txt to open or make if not exist
bash script make
nano filename.sh (inside #! /bin/bash) Important to write that, save, go out, go in. tada! bash script allowed!
echo dir er $(pwd)
vi får dir der vi er, men vi MÅ ha () rundt og $ foran. it acts like deref pointer
dette er kalt for command substitution
det som er INNI i () blir 1st exec. så det uti
så her finner vi pwd også skriver den ut
lager variabler
var=innhold
$ mening?
retrieve var innhold med echo
echo dette er variable $var /HUSK $ALLTID FOR Å FÅÅ INNHOLDET
/her vil vi få ut dette er variable innhold
hvis det ikke finner en variable navn som heter var, så skrives alt dette ut som en vanlig string:
echo dette er variable $var (var har da ikke noe innhold, det skrives ut bare dette)
den sier at den skal omskrives til innhold:
var=inn
echo $var (var navnet/var skal bli omskrevet med $ til inn(innhold))
var=’pwd’ vs var=”pwd”
echo dir er $var
forskjell? output?
når vi bruker ‘ så skriver vi ut det som er inni den som en string literal. output: dir er pwd
uten “ så er den det samme som $var. Output: dir er home/smash/spill. Variable expansion of command substitution
difference between ‘ and “
‘pwd’ : preserves literal value of what’s inside, so it will just print out pwd with echo (not thee dir, just the word)
will NOT command substitute
(does NOT allow variable expansion)
det vil returnere KUN var navn (dette er for unngår overskriving)
” : WILL command substitute. will print out what’s inside as substitute for the var name. USE THIS!:
var=”name”
echo $var
(allows variable expansion)
with nothing : will print out the actual dir
Variable expansion
imp. in shell scripting.
allow substitution: the value of variable to expression or string
type with {}
HUSK ${} to GET the val of the var
name=”alice”
echo name is ${name}
same:
name=”alice”
echo name is $name
name=”alice”
echo name is $(name) VIL IKKE printe ut alice
hvordan lagre alt i en liste (som vi lister opp) i en var?
var=$(ls filnavn/) //om vi vil lagre det fra spes fil/kat. trenger den ikke
UNNGÅ å overskrive en variabel
entern bruk ‘, så vil den returnere KUN var navn
eller bruk echo $var
Hvorfor ()
ALT som utføres i () skjer først!!!
IKKE bruk den for $() med mindre det er noe inni () som SKAL utføres først (en kommando som ls etc)
forskjell mellom () og {}, når bruke hva?
() groups commands together: (command1; command2; command3)
it creates subshells (echo “this is a subshell”)
use () when you want a command to happen before wihtin the ()
DON’T use them with $(var). WRONG!
use them on arithmetic op:
var=(1-2)
echo $var
{} use with grouping commands too {command1; command2; command3}
use them with echo {a, b, c}: prints a b c out
USE with ${}
editor
prog for å jobbe med ren text, ikke formatert text med all den extra formateringen som vi har på word
flere typer: nano/pico, vi/vim, emacs
word we IKKE en editor, det er en katalog som inneholder FLERE filer inni (xml, etc). vi kan zip den opp unzip navn\ filnavn.doc
nano vs vim vs emacs
nano for lett/simple for store progs
vim: mer unix prog
gjør 1 ting, og gjør den veldig bra og har bra funksjonaliteter
emasc: ikke typisk unix.
kan serfe på nett, kan skrive emails og sende de etc (nesten et OS i seg selv)
piping
want to move data between commands
used to send the output of one command to another command
so output of one command acts as input to another
eks:
cat fil.txt | sort
cat dil.txt | grep peach (word we wanna find)
echo command1 | command2 (com1 given to 2)
clear skjerm?
clear all
sortering av noe inni en fil
sort fil.txt
how display first eks 8 lines?
cat fil.txt | head -8
how to combine and show first 8 lines and last 4 lines?
cat fil.txt | head -8 | tail -4
how display last eks 4 lines?
cat fil.txt | tail -4