Her er svar på spørsmål som ofte blir stilt, sortert under forskjellige temaer.
| munin-FAQ |
|---|
| VM-FAQ |
|---|
| generelt-FAQ |
|---|
| bash-FAQ |
|---|
mv $en $to gir feilmeldinger når variablene
inneholder ~, kan det unngås?
if [ "$ja"="$nei" ] Hvorfor ikke? if [ $en = "" ] gir feilmeldingen
[: =: unary operator expected når $en er tom eller ikke
definert?No such file or directory og : command not found
når det kjøres.
| munin-FAQ |
|---|
| 1. Jeg får ingen grafer! |
|---|
|
| VM-FAQ |
|---|
| 1. Jeg har glemt VM-passordet! |
|---|
| Gå inn på fronter, innlevering, inndeling i VM-grupper. Du får opp passordet hvis du klikker på menyen til din innlevering og velger Endre egenskaper. |
| 2. Jeg velger Innlevering > inndeling i VMgrupper > Opprett, men finner ikke last opp eller lignende. |
|---|
| Du trenger ikke å laste opp noe, bare velg Opprett og skriv inn Tittel "Gruppe nr" på innleveringen og velg "lagre". |
| 3. Når jeg logger på Ubuntu-VM via VNC, får jeg bare opp et vindu, uten ikoner og det er ikke mulig å gjøre noe som helst. |
|---|
Logg deg inn med ssh/putty til Ubuntu-VM og utfør
sudo /etc/init.d/gdm restartDa vil GUI restartes og forhåpentligvis være OK når du logger inn på nytt. Hvis ikke prøv reboot som forklart i neste svar. |
| 4. Når jeg logger på Ubuntu-VM via VNC, får jeg bare opp et grått vindu hvor det ikke er mulig å gjøre noe som helst. |
|---|
Logg deg inn med ssh/putty til Ubuntu-VM og utfør sudo reboot. Da vil VM'en restartes og forhåpentligvis være OK igjen om ca to minutter.
|
| 5. Jeg kommer ikke inn på Ubuntu-VM med VNC. |
|---|
Prøv å komme inn med ssh/putty. Hvis du da kommer inn, kan du prøve å rette opp det du tror er galt. sudo reboot er siste utvei. Da vil VM'en restartes og forhåpentligvis være OK igjen om ca to minutter.
|
| 6. Jeg kommer ikke inn på Ubuntu-VM med ssh/putty. |
|---|
| Dobbeltsjekk (på fronter, Inndeling i VM-grupper) at du bruker riktig brukernavn og passord. Hvis du fortsatt ikke kommer inn, send epost til faglærer og samtlige studentassistenter. Den første som tar saken, svarer til alle. |
| 7. Nettet virker ikke! |
|---|
Sjekk om du får svar på ping vg.no, hvis du får det har du kontakt med internett og trolig er det noe annet som er galt. Hvis ikke svar, prøv ping 128.39.89.9. Hvis svar her, er det trolig et DNS-problem. dns3 har vært ustabil. Endre /etc/resolv.conf til
nameserver 128.39.89.8 nameserver 128.39.74.66 nameserver 158.36.161.3Hvis ikke svar, prøv sudo /etc/init.d/networking restart og til slutt siste utvei sudo /etc/init.d/networking reboot. |
| 8. apt-get virker ikke! |
|---|
| Prøv svaret over til spørsmålet nettet virker ikke! |
| 9. Jeg har ikke nok diskplass på VM'ene! |
|---|
Forsøke å slette noen filer og starte med følgende:
|
| generelt-FAQ |
|---|
| 1. Jeg kommer ikke inn på studssh. |
|---|
Dobbeltsjekk at brukernavn (s123456) og passord er riktig. Du skal komme inn med det samme som du bruker på fronter. Hvis du får denne meldingen:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is 05:3f:d0:69:21:ef:0a:01:e3:f3:62:52:f3:00:e5:f0. Please contact your system administrator. Add correct host key in /home/hpc/.ssh/known_hosts to get rid of this message. Offending key in ~/.ssh/known_hosts:14 RSA host key for studssh.iu.hio.no has changed and you have requested strict checking. Host key verification failed.skyldes det 99.99% sikkert at RSA host key har blitt endret på studssh (den ble endret 15 januar 2011 etter reinstallasjon av studssh). Da kommer du inn igjen ved å fjerne linjen som blir angitt i feilmeldingen i filen ~/.ssh/known_hosts, linje 14 i eksempelet over. Du kan også fjerne hele filen hvis du ikke finner den rette filen. |
| 2. Jeg tok eksamen i fjor men vil ta den omigjen i år; må jeg levere obliger? |
|---|
| Nei, det må du ikke, men det anbefales sterkt å gjøre obligene uansett, for det er meget bra trening til eksamen! |
| 3. Jeg gikk ikke opp til eksamen i fjor men fikk obligene godkjent; må jeg levere obliger? |
|---|
| Hvis du var kvalifisert til eksamen, vil du kunne gå opp i år uten å levere på nytt. Men det anbefales sterkt å levere på nytt. Hvis du ikke var kvalifisert, må du ta kontakt med faglærer, så kan det vurderes. |
| 4. Hva skal med i oblig-innleveringen? |
|---|
| Klikk på linken for obligen det gjelder under kolonnen obliger på kurssiden. |
| 5. Jeg klarte ikke kravet på MC-testen, får jeg flere sjanser? |
|---|
| Kontakt faglærer eller studentassistent i en av øvingstimene og be om å få ta testen på nytt. Han kan se hva du har svart og fortelle deg hva du bør jobbe mer med for å passer testen. Og gi deg et nytt forsøk. Du kan få flere sjanser om du ikke klarer det ved andre forsøk heller. |
| bash-FAQ |
|---|
| 1. Hvordan kan jeg sørge for at et script kan kjøres fra alle mine kataloger? |
|---|
Ved å løse oppgave 4 uke 38 og legge scriptene i ~/bin |
| 2. Hvordan trekker jeg ut filnavnet fra en fil gitt med relativ eller full path? |
|---|
Både basename /home/bruker/fil.txt
og basename bruker/fil.txt gir fil.txt |
| 3. Hvordan trekker jeg ut path fra en fil gitt med relativ eller full path? |
|---|
dirname /home/bruker/fil.txt gir /home/bruker og
dirname bruker/fil.txt gir bruker |
4. Kommandoen mv $en $to gir feilmeldinger når variablene
inneholder ~, kan det unngås?
|
|---|
Ja, det har å gjøre med rekkefølgen bash ekspanderer~ og variabler:
dir="~/deleted" cd $dir bash: cd: ~/deleted: No such file or directoryDette skjer fordi shellet substituerer verdien til en variabel etter at den substituerer hjemmekatalogen for ~. Dermed utføres cd '~/deleted'
som ikke finnes.
Så man må da sette:
dir=~/deleted # Her substitueres ~ med hjemmekatalogen $ cd $dirog da går det som ønsket. Man kan eventuelt lage en variabel tilde=~
som vil inneholde brukerens hjemmekatalog. |
5. Denne if-testen blir aldri false: if [ "$ja"="$nei" ] Hvorfor ikke? |
|---|
Du må ha mellomrom på begge sider av en operator: if [ "$ja" = "$nei" ] Ellers
tolkes det som en streng som alltid er true. |
| 6. Hvordan trekker jeg ut filendelsen fra en fil, som kan være gitt med full eller ingen path? |
|---|
echo /home/bruker/fil.min.txt | awk -F. '{print $NF}' gir txt.
Det er -F. som gjør at awk splitter på punktum, NF er antall elementer og
$NF dermed siste element. |
7. Hvordan unngår jeg at testen if [ $en = "" ] gir feilmeldingen
[: =: unary operator expected når $en er tom eller ikke
definert? |
|---|
Ved å bruke doble anførselstegn: if [ "$en" = "" ]. Hvis ikke tilsvarer det
når $en er tom å kjøre testen if [ = "" ] som ikke er
syntaktisk riktig. |
| 8. Hvordan trekker man ut det første tegnet i et filnavn? |
|---|
Hvis variabelen $filnavn inneholder filnavnet:
starttegn=${filnavn:0:1}. |
| 9. Hva betyr -F: som opsjon til awk? |
|---|
| Default så splitter awk input på mellomrom når $1, $2 etc. tilordnes. -F: betyr at awk istedet skal splitte på : |
10.
Mitt feilfrie bash-program gir uforklarlige feilmeldinger som
No such file or directory og : command not found
når det kjøres.
|
|---|
Skjer dette til tross for at kjørerettigheter er satt, kan dette
skyldes at linjene i scriptet slutter med et usynlig ^M tegn
som egentlig er et CR-tegn (Carrage Return = ASCII 13 = \r). Windows avslutter linjer med
CR fulgt av LF (Line Feed = ASCII 10 = \n = newline). Unix bruker bare LF, så når filer laget på
Windows overføres til Unix, blir CR et overflødig tegn. Det går stort sett bra, men kan gi problemer.
Hvis alle linjene i en fil inneholder CR og LF, viser ikke (x)emacs CR-tegnet og det kan ikke fjernes.
Derfor må man bruke vi for å fjerne det.
$ vi program.bashEditoren vi er helt kommandobasert og temmelig kryptisk. For å fjerne ^M i
første linje i scriptet er tastetrykkene som skal til de følgende (tastes bare rett inn
på tastaturet uten å trykke ENTER etterpå):
$ # = gå til enden av linjen x # = fjern tegnet til venstre :wq # = write og quitDet kan være nok å fjærne ^M fra første linje. Sjekk at scriptet nå kjører som det skal. Ellers må alle ^M fjernes. |