Initial commit
This commit is contained in:
commit
737d2d7df5
40
README.md
Normal file
40
README.md
Normal file
@ -0,0 +1,40 @@
|
||||
# Linux systemadministration från grunden
|
||||
Här finner du all exempelkod för *Linux systemadministration från grunden*
|
||||
(ISBN: 978-91-983300-3-8).
|
||||
|
||||
Boken går att köpa från [CyberInfo Sverige](https://www.cyberinfo.se/bocker/),
|
||||
[Bokus](https://www.bokus.com/bok/9789198330038/linux-systemadministration-fran-grunden/)
|
||||
och
|
||||
[Adlibris](https://www.adlibris.com/se/bok/linux-systemadministration-fran-grunden-9789198330038).
|
||||
|
||||
Är du nyfiken på boken så titta gärna i [innehållsförteckningen](https://www.cyberinfo.se/dokument/linux-systemadministration_innehallsforteckning.html).
|
||||
|
||||
## Baksidetexten
|
||||
**Linux systemadministration från grunden** lär dig allt du behöver för att
|
||||
komma igång att administrera Linuxdatorer, vare sig det är servrar på internet
|
||||
eller bärbara datorer. Eller varför inte en Raspberry Pi för mätningar?
|
||||
|
||||
Linux är viktigare och större än någonsin. Det finns överallt. På servrarna som
|
||||
tillhandahåller många av de webbsidor du surfar på. Det finns i stora
|
||||
beräkningskluster, telefoner, bilar och underhållningssystem.
|
||||
|
||||
I början av boken får du grundläggande kunskaper om hur du arbetar med Linux.
|
||||
Här lär du dig bland annat hur Linux är uppbyggt, användbara kommandon,
|
||||
filsystemets uppbyggnad och hur du redigerar filer i både Nano och Vi. Därefter
|
||||
lär du dig att skapa nya användare och grupper i systemet. Du lär dig också hur
|
||||
du sätter filrättigheter i Linux.
|
||||
|
||||
Mot mitten av boken lär du dig mer avancerade ämnen, så som textbearbetning,
|
||||
att skriva egna skalskript, administrera tjänster, processhantering,
|
||||
nätverkskonfiguration och mycket mer.
|
||||
|
||||
Boken fungerar för de flesta Linuxutgåvor. Men bland annat kapitlen om
|
||||
pakethantering och nätverkskonfiguration har skrivits speciellt för Red Hat,
|
||||
CentOS, Fedora, Debian och Ubuntu.
|
||||
|
||||
Till varje kapitel finns det övningsuppgifter så att du själv kan träna på det
|
||||
du lärt dig. En del av övningsuppgifterna går utanför boken, och du måste då
|
||||
själv leta upp rätt kommandon i den inbyggda manualen.
|
||||
|
||||
## Framsidan
|
||||

|
12
kapitel10/sidan_157_ex1.awk
Normal file
12
kapitel10/sidan_157_ex1.awk
Normal file
@ -0,0 +1,12 @@
|
||||
BEGIN {
|
||||
printf "Namn\tSkal\n"
|
||||
printf "----\t----\n"
|
||||
}
|
||||
|
||||
{
|
||||
print $1 "\t" $7
|
||||
}
|
||||
|
||||
END {
|
||||
printf "\nSlut på data\n"
|
||||
}
|
2
kapitel11/sidan_176_ex1.sh
Normal file
2
kapitel11/sidan_176_ex1.sh
Normal file
@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
echo "Dag $(date +%j) på året"
|
3
kapitel11/sidan_177_ex1.sh
Normal file
3
kapitel11/sidan_177_ex1.sh
Normal file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
dag=$(date +%j)
|
||||
echo "Dag $dag på året"
|
6
kapitel11/sidan_185_ex1.sh
Normal file
6
kapitel11/sidan_185_ex1.sh
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
wget -q www.google.se -O /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Internet verkar fungera"
|
||||
fi
|
8
kapitel11/sidan_186_ex1.sh
Normal file
8
kapitel11/sidan_186_ex1.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
wget -q www.google.se -O /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Internet verkar fungera"
|
||||
else
|
||||
echo "Internet verkar varar nere..."
|
||||
fi
|
11
kapitel11/sidan_186_ex2.sh
Normal file
11
kapitel11/sidan_186_ex2.sh
Normal file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
tal=3
|
||||
|
||||
if [ $tal -gt 10 ]; then
|
||||
echo "$tal är större än 10"
|
||||
elif [ $tal -lt 5 ]; then
|
||||
echo "$tal är mindre än 5"
|
||||
else
|
||||
echo "$tal ligger mellan 5 och 10"
|
||||
fi
|
9
kapitel11/sidan_188_ex1.sh
Normal file
9
kapitel11/sidan_188_ex1.sh
Normal file
@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
filnamn="/etc/passwd"
|
||||
if [ -w $filnamn ]; then
|
||||
echo "Du har skrivrättigheter till passwd-filen"
|
||||
echo "Då är du förmodligen root..."
|
||||
else
|
||||
echo "Du har inte skrivrättigheter till passwd-filen"
|
||||
fi
|
6
kapitel11/sidan_188_ex2.sh
Normal file
6
kapitel11/sidan_188_ex2.sh
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
filnamn="/etc/passwd"
|
||||
if [ ! -w $filnamn ]; then
|
||||
echo "Du har INTE skrivrättigheter till passwd-filen"
|
||||
fi
|
8
kapitel11/sidan_189_ex1.sh
Normal file
8
kapitel11/sidan_189_ex1.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
filnamn="/home/kalle"
|
||||
if [ -d $filnamn ]; then
|
||||
echo "$filnamn finns och är en katalog"
|
||||
else
|
||||
echo "$filnamn finns inte, eller är inte en katalog"
|
||||
fi
|
19
kapitel11/sidan_190_ex1.sh
Normal file
19
kapitel11/sidan_190_ex1.sh
Normal file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$USER" == "jake" ]; then
|
||||
if [ $(date '+%H') -le 6 ]; then
|
||||
echo "God morgon Jack-Benny!"
|
||||
elif [ $(date '+%H') -le 16 ]; then
|
||||
echo "God dag Jack-Benny"
|
||||
else
|
||||
echo "God kväll Jack-Benny, hoppas din dag varit bra"
|
||||
fi
|
||||
echo "Klockan är $(date '+%H:%M') och du är i $PWD"
|
||||
elif [ "$USER" == "lisa" ]; then
|
||||
echo "Välkommen tillbaks till systemet Lisa!"
|
||||
echo "Din nuvarande terminal är en $TERM"
|
||||
elif [ $UID -eq 0 ]; then
|
||||
echo "Du är root - du är allsmäktig"
|
||||
else
|
||||
echo "Hej och välkommen till systemet"
|
||||
fi
|
21
kapitel11/sidan_193_ex1.sh
Normal file
21
kapitel11/sidan_193_ex1.sh
Normal file
@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "hej" == "nej" ]; then
|
||||
echo "hej och nej matchar"
|
||||
else
|
||||
echo "hej och nej matchar INTE"
|
||||
fi
|
||||
|
||||
if [ "hej" \> "katt" ]; then
|
||||
echo "hej är 'större än' katt"
|
||||
else
|
||||
echo "Nej du, katt är allt 'större än' hej"
|
||||
fi
|
||||
|
||||
if [ "#" \> "!" ]; then
|
||||
echo "# är 'störe än' !"
|
||||
fi
|
||||
|
||||
if [ "hej" != "nej" ]; then
|
||||
echo "Jag sa ju det, hej och nej matchar inte"
|
||||
fi
|
27
kapitel11/sidan_194_ex1.sh
Normal file
27
kapitel11/sidan_194_ex1.sh
Normal file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
manad=$(date '+%m')
|
||||
|
||||
case $manad in
|
||||
12)
|
||||
echo "Det är vinter"
|
||||
;;
|
||||
0[1-2])
|
||||
echo "Det är vinter"
|
||||
;;
|
||||
0[3-5])
|
||||
echo "Det är vår"
|
||||
;;
|
||||
0[6-8])
|
||||
echo "Det är sommar"
|
||||
;;
|
||||
09)
|
||||
echo "Det är höst"
|
||||
;;
|
||||
1[0-1])
|
||||
echo "Det är höst"
|
||||
;;
|
||||
*)
|
||||
echo "Nånting konstigt har hänt...?"
|
||||
;;
|
||||
esac
|
5
kapitel11/sidan_196_ex1.sh
Normal file
5
kapitel11/sidan_196_ex1.sh
Normal file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
for s in $(cat namn.txt); do
|
||||
echo "Hej $s, hur är läget?"
|
||||
done
|
7
kapitel11/sidan_197_ex1.sh
Normal file
7
kapitel11/sidan_197_ex1.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
for fil in $(ls); do
|
||||
if [ -d $fil ]; then
|
||||
echo "$fil är en katalog"
|
||||
fi
|
||||
done
|
7
kapitel11/sidan_198_ex1.sh
Normal file
7
kapitel11/sidan_198_ex1.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
lista=(9 55 10 99)
|
||||
|
||||
for i in ${lista[@]}; do
|
||||
echo "$i * 10" | bc
|
||||
done
|
7
kapitel11/sidan_198_ex2.sh
Normal file
7
kapitel11/sidan_198_ex2.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
lista=(9 55 10 99)
|
||||
|
||||
for i in ${lista[@]}; do
|
||||
printf "$i"
|
||||
done
|
8
kapitel11/sidan_199_ex1.sh
Normal file
8
kapitel11/sidan_199_ex1.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
lista=(9 55 10 99)
|
||||
|
||||
for i in ${lista[@]}; do
|
||||
printf "$i "
|
||||
done
|
||||
printf "\n"
|
25
kapitel11/sidan_200_ex1.sh
Normal file
25
kapitel11/sidan_200_ex1.sh
Normal file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
lista=( "Hej svejs" "Tjo ho" "Jag kodar" "Det gör Lisa också" )
|
||||
|
||||
echo ""
|
||||
|
||||
printf "Exempel med [*] och dubbelcitat:\n"
|
||||
for i in "${lista[*]}"; do
|
||||
echo "$i"
|
||||
done
|
||||
|
||||
printf "\nExempel med [@] och dubbelcitat:\n"
|
||||
for i in "${lista[@]}"; do
|
||||
echo "$i"
|
||||
done
|
||||
|
||||
printf "\nExempel med [*] utan citat:\n"
|
||||
for i in ${lista[*]}; do
|
||||
echo "$i"
|
||||
done
|
||||
|
||||
printf "\nExempel med [@] utan citat:\n"
|
||||
for i in ${lista[@]}; do
|
||||
echo "$i"
|
||||
done
|
8
kapitel11/sidan_202_ex1.sh
Normal file
8
kapitel11/sidan_202_ex1.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
tal=0
|
||||
|
||||
while [ $tal -lt 10 ]; do
|
||||
echo "Talet är $tal"
|
||||
let tal=tal+1
|
||||
done
|
8
kapitel11/sidan_203_ex1.sh
Normal file
8
kapitel11/sidan_203_ex1.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
tal=0
|
||||
|
||||
until [ $tal -gt 10 ]; do
|
||||
echo "Talet är $tal"
|
||||
let tal=tal+1
|
||||
done
|
10
kapitel11/sidan_204_ex1.sh
Normal file
10
kapitel11/sidan_204_ex1.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
function halsa
|
||||
{
|
||||
echo "Hejsan Jack-Benny"
|
||||
}
|
||||
|
||||
if [ $UID -eq 1000 ]; then
|
||||
halsa
|
||||
fi
|
8
kapitel11/sidan_204_ex2.sh
Normal file
8
kapitel11/sidan_204_ex2.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
function halsa
|
||||
{
|
||||
echo "Hejsan $1, hur är läget?"
|
||||
}
|
||||
|
||||
halsa $USER
|
10
kapitel11/sidan_205_ex1.sh
Normal file
10
kapitel11/sidan_205_ex1.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
function halsa
|
||||
{
|
||||
echo "Hejsan $1, hur är läget?"
|
||||
echo "Ditt UID är $2"
|
||||
echo "Din favoritfärg är $3"
|
||||
}
|
||||
|
||||
halsa $USER $UID "blå"
|
48
kapitel11/sidan_206_ex1.sh
Normal file
48
kapitel11/sidan_206_ex1.sh
Normal file
@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
function hjalp
|
||||
{
|
||||
echo "Ange tre argument, med mellanslag mellan dem!"
|
||||
echo "Exempelvis: 4.5 x 9"
|
||||
echo ""
|
||||
echo "Giltiga operatorer är: + - x /"
|
||||
echo "x motsvarar här multiplikation"
|
||||
exit 1 # Avsluta skriptet om något gick fel
|
||||
}
|
||||
|
||||
# Kontrollera så att användaren angett tre argument
|
||||
if [ $# -ne 3 ]; then
|
||||
hjalp
|
||||
fi
|
||||
|
||||
# Kontrollera så att operatorn antingen är + - / eller x
|
||||
echo $2 | egrep '[+/x-]' &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
hjalp
|
||||
fi
|
||||
|
||||
# Kontrollera så att talen endast är heltal eller flyttal
|
||||
echo $1 | egrep '^[+-]?[0-9]+\.?[0-9]*$' &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
hjalp
|
||||
fi
|
||||
|
||||
echo $3 | egrep '^[+-]?[0-9]+\.?[0-9]*$' &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
hjalp
|
||||
fi
|
||||
|
||||
# Gör om 'x' till '*', och spara ner operatorn i
|
||||
# en egen variabel (även för övriga operatorer)
|
||||
if [ "$2" == "x" ]; then
|
||||
operator="*"
|
||||
else
|
||||
operator="$2"
|
||||
fi
|
||||
|
||||
# Spara ner operanderna i egna variabler
|
||||
operandEtt="$1"
|
||||
operandTva="$3"
|
||||
|
||||
# Utför beräkningen
|
||||
echo "scale=3; $operandEtt $operator $operandTva" | bc
|
6
kapitel12/dummy.service
Normal file
6
kapitel12/dummy.service
Normal file
@ -0,0 +1,6 @@
|
||||
[Unit]
|
||||
Description=Vår egna tjänst
|
||||
[Service]
|
||||
ExecStart=/usr/sbin/dummy.sh
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
7
kapitel12/dummy.sh
Normal file
7
kapitel12/dummy.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
PATH="/bin:/sbin:/usr/bin:/usr/sbin"
|
||||
while true # Skapar en oändlig loop
|
||||
do
|
||||
echo "UNIX-tid $(date +%s)" # Skriver ut UNIX-tid
|
||||
sleep 10 # Pausa 10 sekunder
|
||||
done
|
11
kapitel15/sidan_294_ex1.sh
Normal file
11
kapitel15/sidan_294_ex1.sh
Normal file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
PATH="/bin:/sbin:/usr/bin:/usr/sbin"
|
||||
|
||||
today=$(date '+%Y%m%d')
|
||||
folderToBackup="/home/kalle"
|
||||
targetFolder="/backups"
|
||||
backupname="kalle"
|
||||
backupLog="/root/backup-$today.log"
|
||||
|
||||
tar cvf ${targetFolder}/${backupname}-${today}.tar \
|
||||
${folderToBackup} &> ${backupLog}
|
BIN
linux-systemadministration.png
Normal file
BIN
linux-systemadministration.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 79 KiB |
Loading…
x
Reference in New Issue
Block a user