Oppgave 1
a) rm /tmp/fil.txt
b) chmod 744 /tmp/open
c) wget http://www.vg.no/index.html
d) grep sport index.html | wc -l
e) bash: ls: No such file or directory
f) $0 er scriptets navn. Så det starter seg selv om og om igjen.
g) Dette scriptet starter to instanser av seg selv som igjen starter to instanser og så videre. Dermed vil flere og flere prosesser startes og raskt vil maskinen overstrømmes av prosesser og alt annent vil få store problemer med å kjøre.
Oppgave 2
a)
#!/bin/bash utelatt....
b)
#! /bin/bash
if [ $# -ne 2 ]
then
echo "Syntaks: $0 fra-endelse til-endelse"
exit
fi
fra=$1
til=$2
for fil in *.$fra
do
if [ -f $fil ]
then
name=`basename $fil .$fra`
mv $fil $name.$til
echo "Endrer $fil til $name.$til"
found=true
fi
done
if [ ! $found ]
then
echo "Fant ingen filer med filendelse $fra"
fi
Oppgave 3
a) javac kompilerer programmet og generer bytecode som lagres som filen Hello.class.
Kommandoen java starter en JVM som tolker Hello.class og skriver "Hello world!" til
terminal-vinduet.
b) Ja, hvis Java er installert på Sun-maskinen, startes det en Sun-JVM som tolker bytekoden i
Hello.cass og skriver "Hello world!" til terminal-vinduet.
c) Ja, hvis Java er installert på Windows-maskinen, startes det en Windows-JVM som tolker bytekoden i
Hello.cass og skriver "Hello world!" til et terminal-vindu.
d) a.out er maskinkode og den lastes i minnet og utføres direkte, instruksjon for instruksjon.
e) Nei, programmet vil ikke kunne kjøres her, fordi en Sun-maskin har en helt annen arkitektur og den
vil ikke kunne forstå instruksjonene i a.out som er for en X86-prosessor. Programmet må kompileres
på Sun-maskinen for at det skal kunne kjøres og da trenger man kildekoden.
f) Nei, programmet vil ikke kunne kjøres her. Selv om prosessoren i prinsippet forstår instruksjonene i
a.out, er formatet på binær-filen og all kommunikasjon med OS helt uforstålig. OS må kontaktes for f. eks. å kunne skrive
til et terminal-vindu.
g) Shellet /bin/bash startes og tolker koden linje for linje. Det fører til at shellet skriver
"Hello world!" til terminal-vinduet.
h) Det samme vil skje på en Sun-maskin. Det forutsetter at /bin/bash er installert og det er
vanlig i en standard installasjon.
i) På en standard Windows-installasjon er bash et helt ukjent begrep og scriptet vil ikke
kunne kjøre. Men det er mulig å installere en bash-klone fra cygwin.com og da vil den
kunne kjøre bash-script.
Oppgave 4
#! /bin/perl
$host = $ARGV[0];
die "Syntaks: $0 host\n" if($#ARGV != 0);
while($i < 100)
{
$i++;
open(PING,"ping -w 1 -c 1 -t $i $host 2>&1 |");
$line = <PING>;
if($line =~ /unknown host/)
{
print "Ukjent host $host\n";
last;
}
$line = <PING>;
close(PING);
$line =~ /(\S+ \(.*\))/;
print "$i $1\n";
if($line !~ /Time to live exceeded/)
{
last;
}
}