Så va det ubønnhørli ti førr å græve sæ djupar i Linux-materien. Nei, det ikkje ainna einn fred å få. Oppgaven vårres va å lære sæ ‘vi’, ‘vim’, ‘eiller ‘gvim’ (Det bæste som kain seies om navne e at det e kårt…). Dein e en slags tæksteditor førr Linux som main kain bruke i terminalvinduet. Det bruke et kommandolenje-grensæsnett og oppleves som å bruke Word Perfect versjon ’sluitten av 80-tallet’ førr de som har prøvd det. Æ har, og plages einnu med mareritt! Men det e æffektivt nok når main kain det. Så førr å lære oss aille kommandoa, brytere og svitsja fekk vi i oppgave å lage en jukselapp over de mæst brukte (Ja, du hørte rætt, – jukselapp. Og dettan ska kailles et universitet!). Nu e haindskrefta mi ikkje nåkka æ ønske å publisere offæntlig med mindre æ får betalt førr det, så æ laga mæ heiller en lapp på PeSe’en. Vess nån trur æ ha kopiert innhoilde fra internætt får dåkker tru om igjen: Dettan e egenheindig tasta ner, tægn førr tægn, og resultatet ser dåkker uinner. Heilt komplætt e det ikkje einnu, mæn det kjæm. Og det e skrevven på bokmål av hænsyn tell sarte sjæla…
Cheat Sheet for ‘vi’ (eller ‘GVIM’)
Markørbevegelser
|
:gvim <path>/<filnavn>.txt |
Åpner og viser en tekst-fil på en spesifikk lokasjon. Dersom filen ikke finnes blir det opprettet en ny fil med filnavnet, men som ennå ikke er lagret til noen lokasjon. |
|
h eller piltast ← |
Beveger markør til venstre (tenk ‘home’) |
|
l eller piltast → |
Beveger markør til høyre (tenk motsatt av høyre, dvs. l for ‘left’ |
|
j eller piltast ↓ |
Beveger markør ned |
|
k eller piltast ↑ |
Beveger markør opp |
|
$ |
Beveger markøren til slutten av linjen man er på |
|
0 |
Beveger markøren til begynnelsen av linjen man er på |
|
Ctrl – f eller PgDn |
Beveger markøren én side ned av gangen |
|
Ctrl – b eller PgUp |
Beveger markøren opp én side av gangen |
|
w/W |
Beveger markøren til første tegn i neste ord/BigWord. |
|
e/E |
Beveger markøren til siste tegn i neste ord/BigWord. |
|
b/B |
Beveger markøren til første tegn i forrige ord/BigWord. |
|
) eller ( |
Beveger markøren til neste eller forrige setning |
|
} eller { |
Beveger markøren til neste eller forrige avsnitt |
|
G |
Beveger markøren til første tegn i siste linje av filen |
|
<#>G |
# = et heltall. Eks. 3G: Beveger markøren til begynnelsen av linje nr 3 |
Åpne, editere, lagre og lukk
|
:q |
Lukker gVim |
|
:q! |
Lukker gVim og forkaster endringer |
|
:w |
Lagre endringer i filen |
|
:w <filnavn>.<filendelse> |
Lagrer filen med nytt filnavn (ev. med sti først) |
|
i |
Starter edit-modus |
|
Esc-tast |
Slutter edit-modus, går tilbake til commando-modus |
|
|
Slutter og lagrer (dvs samme som :wq) |
Misc
|
/<regexp> |
Finne et ord eller deler av et ord i teksten |
|
/<regexp> \<spes tegn> |
Eks: / \.gif – Finner alle ord som slutter på gif |
Modifisere tekst i commando-modus
|
x |
Sletter tegn under markør |
|
J |
Koble neste linje sammen med enden av den linjen hvor markøren er nå. |
|
o |
Sette inn ny linje. NB: For å sette inn mange linjer må man trykke ESC mellom hver gang. |
|
r |
Endrer tegn under markør, er fortsatt i commando-modus |
|
dd |
Sletter linjen der markøren er |
|
u |
Undo siste kommando |
|
. |
Repeterer siste edit-kommando |
Insert-mode
|
i/a |
Setter inn tegn før/etter nåværende markørposisjon |
|
I/A |
Setter inn tegn på begynnelsen/slutten av en linje |
|
o/O |
Ny linje under/over nåværende linje |
Dersom nån har løst tel å se korsn et fuillsteindi tastaturskjema ska se ut kain dåkker gå tel deinna linken:
‘Vi’ e’kje spesiælt vanskelig å lære sæ, mæn det e vel som aille aindre teng her i værden: Main må bruke det jævnli før at det skal sett i fengran.
Script
‘Vi’ kain brukes tell mykje, blaint ainna e det nøtti når main skal gjør oppgave som kræve laging av script og læsing/editering av tækstfila. Å lægge inn førr æksæmpel 50 brukera i Linux i en smeill e en oppgave som e god å bruke Script tell, spesiælt om main ska læse inn brukernavn og passord fra ei tækstfil. Et æksæmpel på et sånt script finn dåkker uinner. Scripte va førøvrig nåkka herk å få tell. Og lenjenummeran i scripte e bærre førr at det ska være lættar å førrklare det lenja førr lenja længre ner.
1. #!/bin/sh
2. # Dette er et skript som oppretter 50 brukere fra en txt-fil
3. echo “Oppretter 50 brukere fra filen users.txt, vennligst vent…”
4.
5. while read line
6. do
7. usr=”$(echo $line | cut -d, -f1)”
8. pwd=”$(echo $line | cut -d, -f2 | cut -b 2-)”
9. full=”$(echo $line | cut -d, -f3 | cut -b 2-)”
10.
11. sudo useradd -m -c $full -p `mkpasswd $pwd` $usr
12. done <users.txt
13. echo “Ferdig!”
Tækstfila “users.txt med de 50 brukeran va ei kommaseparert lesta i dettan formate:
bruker1, password1, Bruker1FulltNavn
bruker2, password2, Bruker2FulltNavn … osv. tell 50
Scripte bruke ei løkka tell å læse inn lenja før lenja fra tækstfila. Passordan kuinne main ha laga automatisk via automatiske funksjona, mæn ikkje aille Linux-distroa har sånne default. Sian det ætte mi meining e lite meining i å ha et passord som ikkje nån av de 50 brukeran kain få tak i e det bere at de får et forhåindsbestæmt passord som de kain eindre ætte første innlogging om de vil det.
Førklaring av scriptet:
1. Kun en beskjed tell Ubuntu at det et Bash-shell som brukes.
2. En beskjed til brukarn av scriptet ka det ska gjør. Vises ikkje på skjærmen.
3. En beskjed til brukarn av maskinen (tærminalvinduet) ka som nu skjer. Vises ailtså på skjærmen.
5. Start av do-while løkke. Førr kvær lenja som læses fra fila ska…. (heilt tell det ikkje e fleire lenje igjær å læse)…
6. …dettan gjøres:
7. Gje variablen “usr” værdi. Kjøre først lenja gjønna en “pipe” (|) tel funksjonen CUT. Uttrøkke “-d,” vise at det e komma som æ har angjett som separator meillom værdian. Uttrøkke “-f1” vise at det e første ledd i lenja æ vil ska telordnes variabeln “usr”.
8. Gjør det samme med passore (pwd) som e ledd 2, derav -f2. I tellægg trimme æ av eventuelle tomrom (whitespace) imella leddan førr at det ikke ska bli feil i det eindelige resultate. Det gjøres ved å kjøre uttrøkket gjønna en ny “pipe” med brytarn “-b 2-“.
9. Samme skjer med fuillt brukarnavn.
11. Så litt “magic”: “Sudo” gjør at æ får rættigheta som administrator (root) og dermed kain lægge tel brukera med passord. “Useradd” e default installert i Ubuntu og verke bra. Brytarn -m gjør at brukarn får ei HOME-mappa. Brytarn -c gjør at main kain lægge tell ‘Comments‘, dvs fuillt brukanavn. Brytarn -p e førr å lægge tell passord via dein innebygde funksjonen “mkpasswd“ som lage et kryptert passord basert på det passorde som e heinta fra tækst-fila. Tel sluitt lægges brukarn tell via $usr.
12. Sluitten av do-while løkka, og førtælle samtidig ka slags fil lenjen ska heintes fra.
13. Kun en beskjed tel terminalvinduet at scripte e færdig.
Om det funka? Ja, her e bilda som bevise det:

