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
how to find word count?
cat fil.txt | wc
how to combine redirection command (</>) with piping
cat fil.txt | wc > ny_fil.txt (som vi har laget eller lager if not exist)
log out in linux
ctrl d
grep
global regular expression print
search for text within files
Grep word file (if have specified and not in this one)
hva skjer hvis vi bruker cat fil.txt | grep word
vi pipeliner den, så istedenfor å printe ut ordet word som vi finner i fil.txt, så greper vi den og ingenting kommer ut
reverse inside of file?
tac
Get every line without that grep word from a file
cat fil.txt | grep -v word
will print every line that is NOT word
how to best use grep?
use it alone like this with NO cat and pipeline
grep word /file/file (absolutt path)
eller
grep -v word tp get all lines without word
grep -n word
gives line number to where it was found
grep -c word
gives the nr of times the word was find only
grep and capslock
use grep -i word (to not care)
look through every file with grep from a spes file
grep word dir (can mix it with -n // -c etc)
Searches through the dir and all its sub dir and files
how to use grep to find
allows to search files and directories
grep -r word /dir/file
eller
grep -r word *
eller
grep -r word (if were in home and can search through everything)
hoppe over, istedefor cd
pushd file eller /file
popd for å gå tilbake (smart siden om vi ikke husker bare bruk pushd og popd for å shortcut det fra og til)
grep to search for stuff examples (3.5)
cat file | grep word
grep word /absolutt/ sti eller
grep word fil
grep -r word (hvis vi ikke kjenner til ordet)
grep -r fil * (hvet ikke hvor er) eller grep fil * (bare let i alt)
rettigheter til linux catalog og filer
3 grupper:
eier av fila: U (user)
knytte til en gruppe : G (group)
alle systemer kan bruke det: O (others)
rettigheter:
reading: r (4)
writing: w (2)
execute: x (1)
all active: 777 (don’t do that, give access to all)
-rw-r–r– 1 263669 263669 nr date date date fil.txt
(- user group others)
drw-r–r– 1 263669 263669 nr date date date fil.txt (dir)
forandrer det til x for alle ved å gjøre filen executable r-x
chown
brukes for å forandre EIER til en fil, MÅ være root bruker ellers funker ikke
chgrp
forandrer gruppe eierskap
unmask og unmask -S
en bit mask med opprette av rettigheter
chmod
brukes for å endre rettigheter
ved å bruke den med chmod +x file.sh
vi forandrer rettighetene på r– til r-x for alle siden ikke spesifisert
kan forandre det med nr slik:
chmod 700 (read write exec for user only)
chmod 755 (no write for group or others, but exec and read allowed. user allowed all)
chmod +x
selv om vi har gjort filen til en bash skript med #!bin/bash, så trenger vi å ‘aktivere den/gjøre den om til en bash skript med chmod +x filname
kjøre bash fil?
./filename
more
old givefilename
(pager)
(kan bruke space for å få opp og ned i fila)
q for å hoppe ut
less
less filename
can bruke arrowkeys on keyboard
and space for å få opp og ned i fil
search for text in file
kill a process running in terminal
ctrl c
watch commandnavn
redo command every 2 sec
free
shows how much mem in sys
watch free -h
runs forever.
to kill, ctrl c
kill any process running in computer
kill a prog from terminal ex firefox:
killall firefox
you can only do it for something user (yourself) opened up
chmod med user, group, others
chmod u/g/o/a(all) +/- r/w/x/(a)
rev command, how to use
used with echo or cat but always with | to make it reverse (baklengs) after you have read from file with cat, or wanne use echo “hei” | rev to reverse it to ieh
how to get out of a bash session
logged into terminal, done, wanna get out:
exit eller ctrl d
dismiss changes and quit in vim
:q! IKKE :!q (dette er en terminal kommando når vi skriver ! først)
vim plug ins
er customizations you make to your vim editor to suit your own needs and make shortcuts etc
explain how vim works
each key has kommand, eks : means start kommand in normal mode (the start vim file)
quit in vim
:q (saves changes)
what does d and a mean in vim?
delete and append
:colorscheme blue
changes colors
how to make a vim file?
vi filename.c
what does i do in vim?
it enters the insert mode, which means that everything we write now is just a string litereral
all the keys that enter the insert mode
a i o they differ in how they enter insert mode
i write one before the cursor
a write one after the cursor
o makes a new line and write one after the line there (not like enter, no matter where is on line)
how to write into a file to begin with start of file
:w
:set relativenumber does what?
shows where we are, makes all the lines under and over where we are start with one so it’s easier to jump up and down with nr ^/> etc
how to save the writing in vim and quit?
escp (to jump to command line) and :wq
how to escape insert mode?
escape key
change a line
cc (inserts the insert mode, deletes full line, and you can now write)
wanna use mouse
:set mouse=a (kan scroll now)
how to get cap letters
shift key i / a / o
shift i goes to front of line we’re in and writes there
shift a goes to backof line we’re in and writes there
shift o makes a line above we are
plug in to make the screen show numbers how?
:set number
how to jump cursor in vim?
have to be in the text editor (not command line) and write the nr we wanna jump and show if we wanna go up, down or sideways with arrows:
ex. 2 ^
visual mode?
for selecting
use shift v in command line, can noe select a word, delete, and copy it when selcted with cursor
d for deleting
y for yanking (copying)
p for paste eller 10 p for å få de 10 ganger etter hverandre
delete whole line?
dd eller spesifiser hvor mange 5 dd
how to undo and redo in vim
u and ctrl r
how to save the settings when :wq quit
have to have a config file, setting file, that does it for me each time. om den eksiterer så laster vim den, om ikke, så lager vi den. får tak i den i terminal ved å skrive:
vi ~/.vimrc
copy full line
yy
e vim
jumps to the end of the line
ciw yiw ci”” yi”” kan også bruke ci( eller yi(
change in a word
wank in word (copy it)
change in “ “ marks while we are inside them
delete from cursor to end
delete key or cap d
delete and replace for one single character
r
hoppe til neste ord og til forrige ord
w (foran) b (bak)
vi kan være i visual mode og delete det lett da
in which mode do we write and where are we normally most of the time?
we are always mostly in normal mode (escp) med mindre vi skal skrive noe
copy, paste, move, read, delete, undo, search all in normal mode
delete char in nano
ctrl d
going to the next found word when searched for in vim vs nano
in vim, you can just hit enter and it will go to the next one
while in nano you have to use alt key w
move to the next word in nano
ctrl space key
search for a word vim
/word
backwards search (from the back to the top)
?word
copy (cut) and paste in nano
ctrl k (cut) and ctrl u
reverse order (change with ^ command)
:g/^/m0 (alle tallene vi lagde er når baklengs)
how to sub beginning of each line
(kommand line :, % to change, ^meaning start of each line)
:%^/=printf(‘%-4d’, line(‘.’))
gonna sub each line start with line nr
how to copy a file and save it locally (nano as eks)
cp file.txt (eller absolutt sti med det nye tallet) .
(. means in this file)
vil heller bare save det slik:
cp orig nyfil (vi er jo allerde i dir vi vil være)
vil åpne spes sted i nano
nano +4 fil.txt
grammer check nano
ctrl t in nano a file
go to begining og file and end
gg (start) eller bare 0
shift g (end) eller bare $
spes line (nr cap g) eller :nr
search in nano
ctrl w
write word after
d$
delete until the end of the line
how to change a word in vim with another everywhere in the text
:%s/word/subword/g (global sub, meaning everywhere)
sentralisert
pusher sine endringer til et sentralisert prog utv. opmråde. godt for samarbeid, men alle de tjenerne må gå inn og hente nye versjon etc.
ulempten med at det er så sentralisert er at alt går igjennom denne serveren. om noe går galt, eks. interenettet ryker, så er alle andre servere avhengig av det. kan løse det, backup servers).
men poeng er at ingennting kan sendes fra en server til en annen uten at det er den sentralisere serveren
hvordan funker versjonskontrollsystemer
de fleste versj.kon.sys lagrer KUN den aller første versjonen helt. så lagrer de BARE endringene for de versjonene som blir laget. disse endringene kalles for diff/deltaene.
de blir organisert i en rekkefølge.
så prog kan bare rekonstruere filene for å ha alle typs versj.
kalles delta endrignsbasert versojnskontroll.
GIT er IKKE sånn. den lagrer ALLE filer hver gang hvis det er gjort noen endringer. det er som å ta en screenshot av det hver gang noe skjer. tar veldig mye plass slik, så best for bare tekst kode. ikke vids og sånn
tilstander og de 3 områder
- modifisert tilstand: arbeidstreet (working tree)
- klargjøringsområdet (staging tilstand): området av samling av nye filer som skal registreres (oppbevares) kalles bare for index til file (git/index)
git repositoriet (repo) inneholder alle endringene, kommentarer som vi sender inn med git commit -a “fdshfoe”. det er et sted som har alt av kode, modifikasjoner (har history av det).
det ER en egen folder som heter .git/ som er gjemt
ex:
vil jobbe med en fil som allerde eksisterer, sjeker da repo, åpner da i working tree.
så går den til klargjøring når vi gjør endringer og er klar for å sende den inn. så sender den inn og den havner i repo igjen, ny versjon
mv -i ../file.txt meaning
we are moving a file we are one ‘behind us’ (..) to file.txt
and -i means interactive, makins sure to ask if we wanna override the file.txt if we have one with the same name.
distribuert versjonskontroll
har ikke den sentraliserte problem.
sys er ikke avhengig av bare 1 punkt (sentralisert server), alle er likeverdig. alle comps har en versjon av databasen, så selv om server går ned, comps kan individ fortsette.
eks på det er GIT
hva er de 3 tilstandene med GIT?
- modified, endret men ikke klargjort
- staged (klargjort), markert for innregistrering og forsegling (sjekke om den er korrekt/er det samme som før)
- committed (forpliktet), innreg og forseglet
how to keep things updated latest version of file
use a symlink to point to the last version
veldig primitiv
en bedre versjon er database som eks:
GNU revision control system (RCS) som har en fil som peker på den siste versjonen (3), som peker på versjon 2 og som peker på 1st versjon.
git-config kommando
den kan opperere på 3 nivåer:
–system (for alle brukere på i repo i sys, bare root kan skrive til den filen da)ligger i:(/etc/gitconfig)
–global (for alle egne repo, egen hjemme katalog) ligger i. (~/.gitconfig)
–local (for aktiv repo) (.git/config)
husk når “h i” vs ‘h i’
dette er 1 arg, ikke 2 selv om det er mellomrom.
med “” om det er variabler med samme navn (og $ med) så vil det bli skrevet om (expression substitusion)
men ikke med ‘‘dette er string literal
git-init
initialize, vil versjonskontrollere.
viser alle.
makes a .git file that has this versjon of the file. so it makes the space to make changes/modif to the file
git config –list og git config –list –show-origin
henter info, ligger globalt
git-commit
sender inn (sender inn i repo)
hvis vi vil at “ skal være med i echo?
bare ha " ahfoef"
eller
bare ha “" ahfoef"”
view only, cant change the nano. how?
nano -v fil.txt (in terminal)
git-add
git add . (denne katalogen) hvis vi er bak i directory og den legger til alle
(klargjort til å bli commit)
hva heter det når git merker at vi er inni en av de tre tilstandene?
det kalles å være sporet (tracket)
hvis ikke så er det ikke sporet (untracked) (som nye filer)
git clone
lager en kopy av et prosjekt:
git clone 263669@usn.no:fil_navn_som_vi_vil_sende
GIT
før versjonskontroll så brukte de patches som hadde bare de endringene, ikke hele sys, og de skulle bli automatisert inni sys. for hver endring
2005 GIT laget av han som lagde Linux: Linus Torvalds
remove git repo
rm -rf /path/file
GIT kommandoer
git config –global user.name “tom”
git kommando underkommando options arg kommentar(arg)
hvordan sende noe inn med git?
git status for å sjekke om noe mangler
git pull for å hente sist endringer
git add . (denne filen)
git commit “jeg gjorde bla bla bla”
git push
versjonshåndtering
ved utvikling av progs så er det behov om å hente tidligere versjoner av filer, altså versjonskontroll.
en enkel vers er som jeg gjør, finish, dooone, virkelig done etc
git-help
for å få hjelp:
git<underkommando> --help
git help <underkommando>
man git-<underkommando></underkommando></underkommando></underkommando>
ctrl z
vil sette prog på PAUSE (ikke en kommandolinje for prog inni, men generelt)
[1]+ Venter mutt
[dette er hvor mange prosessor som venter]
git remote add and git remote -v
git remote add lkfjeafl
and git remote -v (to show)
and pull from the lkfjeafl thing
git remote -v
-v option stands for verbose and means that we want to get as much feedback info from the sys about this as posible
cat < file vs cat > file
cat < file (reads from file)
cat > file (writes to file)
cat > rev
her so er det en FIL som heter akkurat det samme som kommando rev
git status
sjekker statusen
starter en job i bakgrunnen da vi lager/starter den
bare sett & i enden av kommandoen:
./eks.sh film &
git log
får opp loggen som lagringer og endringer
what is exist status?
when prog runs with no errors, return 0 we can’t see. how to see it?
echo $?
hvis det ER en feil, eks du prøver å få tak i et dir med ls som ikke eksisterer og deretter gjør echo $? vil få tall annet enn 0
to kill a job?
kill %jobnr slik:
kill %1
false && echo hei vs true && echo hei
false && echo hei logisk og, hvis FLØRSTE feiler, ingen vits å kjøre andre da
true && echo hei (returnerer hallo)
hvordan få en liste over jobbene som venter?
bare skriv jobs
rev kommando
akkurat som cat, men baklengs, bare at med tac så må vi bruke cat og | pipelining
rev skriver ut akkurat som cat bare reverse
hva gjør fg
det står for foreground. det er interactiv i terminalen. den occupy terminal helt til den er completed eller suspended.
den gjør at vi kan fortsette eller stoppe en job ved å skrive fg nrjob. si at vi har 3 jobs:
om vi ikke spesifiserer hvilke job etter fg (med tallet deres)
så ÅPNER vi denne prosessen den siste jobben først (3 til 1 liksom)
what is fg?
they are the interactive jobs/processes that rely on user interput and interaction. this is were you include commands, inputs, edit files.happen in the terminal, occupy that space. sp basiacally what you’re doing
actively consume system resources like the cpu, memory. has priority and responsive to user input.
errors are immediedtly shows to user.
lscpu
finner hvor mange cpu brukt
hva er nice?
ps -o “%u %n %c” også nice vi eller nice emcas kommando
høyere niceness, lavere priortitet
hvis vi er root, kan lage neg. niceness for å få høyere prio
drepe process?
ps (får processer opp)
kill prosnr (det som ligger først)
jobs vs processes
en job består av flere prosesser.
process:
når du exec kommando i terminal, det blir en process.
eget minne
kjøre independent eller har child process
eks:åpner text editor = made process
job:
konsept brukt i shell eller bash
any prog interactively start within the shell
assosiert med fg og bg
to suspend fg: ctrl z
to bring it back use fg jobnr
bg start when have & at ending of prog kommand
in the background
time
kan time et prog
eks:
time ls -l
får
real: real time
user: hvor mye tid bruker brukte
sys: hvor mye tid sys brukte
ps kommando
skriver prosessene som er i denne sesjonen vi er i
demonen at
vi kan sette scheduled jobb med at.
at 11:29 (dato vi vil skal skje)
at > echo “hei”
ctrl d (exit)
eller med rederigering:
at 11:29 < fil_med_kommando (les fra denne filen)
stdin vs stdout
< vs >
what is bg?
background job.
happens behind the scene.does NOT run in the terminal/shell.
user does not interact directly with it.
ex: sys maintance, printing, network communication.
examples: daemons, scheduled tasks, long running server processes.
don’t compete for attention. low priority, allow other tasks to go first. errors are in the background, not shown immediately to user.
for å se fremtidig jobbene med demon at?
atq
demonen cron
planlegge GJENTAGENDE fremtidige jobber
denne tabellen kan vedlikeholdes av crontab -e (får editor som gir når den skal gjøres og kommando etter det)
crontab -l (lister den opp)
regex
regular exression sequence of char som viser et pattern.
character sets allow you to match any chars rom spes set.
[^aeiouy] ^negates, så match alt utennom de
slette fremtidig demononen at jobb
atrm
wc
prints newline
sed
stream editor for filtering and transforming text
grep
finner ordet som kommer etter
awk
searches files (eller input stream) for linjer med spes patterns.
når en linje matches, awk performs a user deg actions on that line (som du gjøre for å lese fra en fil husk)
who | awk ‘{denne teksten}’
head
outputs first part of file
tail
outputs last part of file
cmp
compare two files byte by byte
åpne flere paneler i tmux
ctrl b så % (vertikal)
ctrl b så “ (horisontal)
ctrl b < pil for å gå der, samme med opp ned og andre side
STDIN VS STDOUT VS STDERR
STDIN : input stream fra prog eller command. default, connected to keyboard. (0) //(<reads from file)
STDOUT: connected to terminal screen, viser det som skrives ut //(1) >
STDERR (2) //2>(rederect err to file)
> > append
vis alle sesj i tmux
tmux list-sessions
stenge en tmux side oppe
ctrl d eller exit
alle? ctrl b så d
env command
env (uten arg): display enviroment variables. printer liste av alle enviroment variables
det vil liste variables som PATH, HOSTNAME, TERM
eller spes envirment med pipeline
env | grep HOME
viser Val til HOME variable
sort
sortere alphabatisk
tr
translates or deletes char
unique
report /omit repeated lines
split
split file to pieces
fmt
simple optimal text formatter
$PATH
enviroment variable som forteller sjell (command line) hvilke dir to search for executable files (ready to run) when you command use the command.
VISER ALLE CONFIG FILER i terminalen
kan bruke export PATH=”/bin/script:$PATH” som tillater oss å hente den fra hvor som helst fra hvor som helst vi er
remove dir with $PATH
export PATH=”${PATH//:/}”
enviroment
et sted som har info om all behavior til progs. som variables.
global enviroment variables:
accessable from anywhere in the terminal enviroment can define a global varibale in skrript eller terminal.
local enviromen variabels:
confined to specific enviroment
accessing enviroment variables
echo $VARINAME (du vet dette)
display env vari
printenv display all env vari
set list both global and local env vari
env presents a list of global enviroment variables
env command
to modify env
tmux what is
terminal multiplexer.
makes you able to come back to same place after exit tmux a
eller åpne flere paneler i samme sjlengen
arv
når lager dir inside dir, child dir arver rights from parent dir
arv of processes
child process shares mem and file discription fra parent . men kan modif indep også
~
home dir
$#
rep. nr og args passes to a shell script eller func.
./script.sh arg arg2 arg3
$# vil gi 3
$?
show exit status, som er 0 uten errors
#
komment, eller command line i shell skript
!
shebang, start og skript to show its skript
#!/bin/bash
sending arg to a skript
stored as variables inside the script