Det finnes knapt noen grenser for hva man kan lære i Linux. Heldigvis er det en enorm delingskultur i dette universet. Verdensveven bugner av åpne frie ressurser man kan studere.

Her pirkes det litt i overflaten for noen få verktøy i Linux som kan være til nytte.

nano

Nano er en enkel tekstbehandler som er lett å komme i gang med. Før man vet ordet av det, trenger man å redigere tekst. Da er nano kjapp å bruke.

ˆ    = Ctrl-tast

F eks ˆG betyr «Hjelp» og vi trykker da Ctrl+G

M  =  Alt-tast

F eks M-U betyr «Undo» og vi trykker da Alt+U

Det er litt uvant i starten, men man venner seg til det.

Navigere i tekst

En rutinert musebruker kan fort glemme at Linux ikke reagerer på musa. Vi prøver kanskje å scrolle, men nei, det går jo ikke.

Så da får vi bruke piltaster for eksempel. PgUp og PgDn flytter cursor helt opp eller helt ned i tekst. End og Home virker jo som forventet på en linje med tekst.

Markere tekst

Alt+A markerer start, og deretter kan piltaster markere. Dersom hele linjen skal markeres, kan man bruke End eller Home i stedet for å pile framover eller bakover.

Lime inn tekst

Shift+Insert eller Høyreklikk mus hvis tekst er kopiert fra Windows

 Linjenummerering

Dette gir linjenumre i filen test:

nano -l test

Eller, i nano:

Slå på nummerering: Alt+Shift+#

Slå av nummerering: Alt+Shift+#

Slå på nummerering i statusbar: Alt+Shift+C

Slå av nummerering i statusbar:  Alt+Shift+C

For mer info kan man se manualen; man nano, eller søke på Internett etter ressurser.

rsync

Det kan fort bli behov for å kopiere filer. rsync er et verktøy som egner seg spesielt godt fordi det kopierer kun endringene siden forrige kopi. I tillegg går det fort.

La oss ta et eksempel:

sudo rsync -Scavx nettstedadmin@nettstedet.no:www/  /var/www/nettstedet.no/public_html/

Her kopieres det fra nettstedet.no og katalogen www til /var/www/nettstedet.no/public_html på vår lokale utviklingsserver.

Kolon (:) forteller rsync at kopiering skjer over ssh.  Altså opprettes en ssh-fobindelse mellom produksjonsserver og lokal utviklingsserver, slik at filer kan kopieres.

Slash (/) etter www forteller rsync at www-katalogen ikke skal opprettes, men at alt innholdet i katalogen www skal kopieres til public_html-katalogen på den lokale serveren.

Hadde vi tatt bort slash (/) fra www, så ville også katalognavnet www og alt innhold i www bli kopiert til public_html.

Da hadde vi fått /var/www/nettstedet.no/public_html/www og deretter alle underkataloger og filer. Det ønsket vi ikke. Vi ville ikke opprette katalogen www på utviklingsserveren, fordi det er public_html som er «document root» her, og i produksjon er det katalogen www som er «document root».

Altså:

Slash / etter source folder => rsync kopierer kun innholdet i source katalog, ikke katalogen selv.

Slash / etter destinasjonskatalog => rsync limer inn data i eksisterende destinasjonskatalog.

Ingen slash etter kildekatalog => rsync kopierer katalog + innholdet

Ingen slash etter destinasjonskatalog => rsync oppretter destinasjonskatalog + innhold.

I eksempelet over kopierer vi initielt fra produksjon til utvikling. Kilde- og destinasjonskataloger er allerede opprettet, så vi kopierer kun innholdet.

Kun endringer

rsync kopierer kun endringer siden forrige kopiering. Dette skjer ved at rsync sjekker hva som ligger i destinasjonskatalogen og sammenlikner det med hva som ligger i kildekatalogen.  Deretter kopieres det som er endret.

Et eksempel på bruk av switcher

rsync -Scavx

-S Dette håndterer Sparse Files effektivt og tar opp mindre plass på destinasjonen. Sparse Files er utvidbare filer som i utgangspunktet kan vokse innenfor en romslig ramme.

-c Checksum. En metode for å sjekke om en fil er endret eller ikke. Standard metode er å sjekke filstørrelse og endringsdato. Men -c bruker 128 bits checksum. Hvis checksum for samme fil på begge sider er lik: Ingen kopiering. Ulik: Kopiering.

-a Archive mode med rekursjon. Så og si alle egenskaper ved filer og kataloger og innholdet i dem bevares. Det eneste som ikke tas med er hardlinks, fordi det er krevende å finne dem.

-v Verbose. Dette øker informasjon til bruker under overføringen. Gir info om hvilke filer som blir overført, og en kort oversikt til slutt etter overføring.

-x Dette gir beskjed til rsync om ikke å overskride filsystemets grenser når rekursjon kjøres. Antakelig for å stoppe en uendelig loop.

Om rekursjon i rsync

-a switch innebærer blant annet  rekursjon. (Se man rsync)

Rekursjon innebærer at rsync løper gjennom hele fil- og katalogstrukturen som vi vil kopiere.

Rekursive kall stopper når en innebygget stoppbetingelse inntreffer. Likevel kan det være fornuftig å alltid bruke -x switch for å gardere seg mot en uendelig loop hvis f eks stoppbetingelsen ikke slår til.

Det er smart å lese manualen. Kommando: man rsync.  Man bør sette seg godt inn i alle switcher man vil bruke og hva hver enkelt switch gjør. Feil bruk av switcher kan gi resultater man ikke ønsker.

rm

rm benyttes for å slette filer og kataloger. Her må man trå varsomt. Sletting er uopprettelig, og det er fort gjort å slette filer eller kataloger man ikke skulle slette.

Slette en fil

Står i samme katalog som filen:

rm test.txt

Står i home, filen test.txt er i dir1 i home:

rm dir1/test.txt

Står i home, filen test er ikke i home, men i /var/www/ som eksempel:

rm /var/www/test.txt

Slette alle filer med samme etternavn

Dette fjerner alle filer med extension txt  i aktuell katalog:

rm *.txt

Tvinge sletting uten spørsmål for noen filer

rm -f *.txt

-f betyr force. Her slettes alle filer uten interaktive valg og spørsmål.

Slette en tom katalog med rm

rm -d tomkatalog

-d betyr her tom katalog (directory)

Slette flere tomme kataloger med én kommando

rm -d katalog1 katalog2 /sti/til/katalog3

Slette katalog med filer og/eller underkataloger m/filer ved bruk av rekursjon

rm -r katalog1

Dette fjerner rekursivt katalog1 og alle underliggende kataloger og filer under katalog1. Kan ikke gjenopprettes.

Hvis man vil ha litt bedre kontroll:

rm -rI katalog1

Switch –I skal gi mulighet for å avbryte.

Man bør vite hva rekursjon er før man bruker -r svitsj.

Om rekursjon

Et rekursivt kall innebærer at slettekommandoen løper gjennom hele fil- og katalogstrukturen som befinner seg i og under aktuell katalog og dermed også alle underkataloger og filer. Så hvis man kjører sletting av kataloger og filer med rekursjon på en katalog, blir alle filer og underkataloger slettet.

ls

ls benyttes for å se filer og kataloger, og informasjon for disse.

Se innholdet i gjeldende katalog

ls-kommandoen alene (uten svitsjer) vil vise alle elementer som ligger i gjeldende katalog, men ikke skjulte elementer. Kataloger kan være farget (blå) mens filer f eks er hvit tekst på sort bakgrunn.

Vi står i en vilkårlig katalog og vil se eventuelle filer og underkataloger som ligger der:

brukernavn@servernavn:~$ ls

fil1.txt  katalog1

fil2.txt  katalog2

Mer info om elementer vises ved bruk av svitsjer. ls kan kjøres med en rekke ulike svitsjer. Her omtales -a, -s og -l.

Vis alt, også skjulte elementer

brukernavn@servernavn:~$ ls -a

.                               fil1.txt     katalog1

..                              fil2.txt     katalog2

.bash_aliases        

-a switch (eng: -a betyr «all»)

Nå vises også skjulte elementer som f eks .bash_aliases. Skjulte elementer har en dot foran navnet.

Se filrettigheter, eier, gruppe mm

brukernavn@servernavn:~$ ls -l

-rw-rw-r–        1 brukernavn brukernavn        54  Dec 11 2021   fil1.txt

-rw-rw-r–       1 brukernavn brukernavn      49  Dec 15 2021   fil2.txt

drwxrwxr-x  2 brukernavn brukernavn 4096  Feb 25 22:36   katalog1

drwxrwxr-x  2 brukernavn brukernavn 4096  Dec 12 2021    katalog2

-l switch brukes for «long listing format» og viser:

  1. Filrettigheter
  2. Antall linker
  3. Eier
  4. Gruppe
  5. Filstørrelse
  6. Sist endret
  7. Fil/katalog-navn

 Se allokert størrelse

brukernavn@servernavn:~$ ls -s

total 32

4 fil1.txt
4 fil2.txt
4 fil3.txt
4 fil4.txt
4 katalog1
4 katalog2
4 katalog3
4 katalog4

 

 Se filstørrelser med -lh

Svitsjene -lh gir størrelser i «human readable» format.

 brukernavn@servernavn:~/bin$ ls -lh

total 244K
-rwx—— 1 brukernavn brukernavn 1.2K Jan 30 2022 backup1
-rwx—— 1 brukernavn brukernavn 1.9K Feb  3 2022 backup2
-rwx—— 1 brukernavn brukernavn 867  Jan 30 2022 backup3
+ 39 elementer (utelatt her)

 Kombinere svitsjer

Et eksempel:

ls -las 

Dette vil vise all informasjon som svitsjene -l, -a og -s hver for seg gir oss.

Noen vanlige kommandoer

alias En egendefinert tekststreng som referer til kommando(er)
apt Pakkehåndtering, som brukes til oppdateringer og oppgraderinger. apt update, apt upgrade mm.
apt-get Som apt, pakkehåndtering.
bc Kalkulator. Utfører regneoperasjoner på kommandolinjen.
cat Kommando for å se innhold i fil/filer.
cd For å skifte til en annen katalog.
chgrp For å endre eierskap for gruppe til en fil eller katalog
chmod For å endre tilgang til fil
chown For å endre eierskap til fil
cp For å kopiere fil/filer/kataloger
cron Brukes til å utføre jobber til definerte tidspunkt, f eks backup
curl Et verktøy for å overføre data over Internett med ulike protokoller som http, https, ftp  mm.
echo Viser en tekststreng som angis som argument
exit Forlate shell vi står i.
find Finner filer og kataloger og kan utføre handlinger på funn.
grep Søker angitt tekstuttrykk i fil(er) og viser alle linjer med søketreff.
groupadd Opprette ny gruppe
groupdel Slette eksisterende gruppe
groupmod Endre eksisterende gruppe
gunzip Komprimere eller pakke ut filer
help Viser hjelp
hostname Finne vertsnavn, IP mm eller angi vertsnavn
ifconfig Konfigurere nettverkskort
ip Administrasjon av nettverk
kill Terminere angitt pågående prosess
less Lese innhold i en fil side for side i vinduet/skjerm
ln Opprette lenke mellom filer
locate Finne filer
man Brukes for å lese manual for en angitt kommando/verktøy
mkdir Opprette katalog(er)
more Se tekstfiler en side av gangen
mv Flytte filer og kataloger, men også endre navn på filer og kataloger
netstat Se nettverkrelatert info
nslookup Se DNS-relatert info
ping Sjekke nettverksforbindelse mellom datamaskiner (server/host)
printf For å vise en tekststreng i terminalvinduet
ps Viser prosesser som kjører
pwd Viser komplett filsti for katalogen man står i
reboot Kjører omstart av OS
rm Slette filer, kataloger og symlinks
rmdir Slette tomme kataloger
route Konfigurere routing tabeller
rsync Synkronisere filer mellom kilde og destinasjon
scp Kopiere filer mellom datamaskiner
shutdown Slå av server
ssh For sikker tilkobling mellom servere/maskiner over nettverk
sudo Sudobruker kan kjøre en kommando som root med sudo
systemctl For å undersøke og administrere tilstanden for systemd mm
tar For å opprette og pakke ut filarkiver
touch For å opprette navngitt fil uten innhold (tom).
tree For å se katalogstruktur og filer der som et tre med greiner og blader
tty Viser info om terminalen man arbeider på
useradd Legge til ny brukerkonto
usermod Modifisere egenskaper for en bruker
users Viser brukere som er logget inn
userdel Slette en bruker
vi Standard teksteditor
wc Teller antall linjer, ord etc i spesifisert(e) fil(er)
wget For å laste ned filer fra Internett
whatis Gir kort beskrivelse av hva et verktøy gjør
who Info om brukere om er logget inn
whoami Viser mitt brukernavn når jeg er logget inn