Initial commit

This commit is contained in:
Jack-Benny Persson 2022-01-08 21:40:00 +01:00
commit 737d2d7df5
29 changed files with 347 additions and 0 deletions

40
README.md Normal file
View 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
![Linux systemadministration från grunden](linux-systemadministration.png)

View File

@ -0,0 +1,12 @@
BEGIN {
printf "Namn\tSkal\n"
printf "----\t----\n"
}
{
print $1 "\t" $7
}
END {
printf "\nSlut på data\n"
}

View File

@ -0,0 +1,2 @@
#!/bin/bash
echo "Dag $(date +%j) på året"

View File

@ -0,0 +1,3 @@
#!/bin/bash
dag=$(date +%j)
echo "Dag $dag på året"

View File

@ -0,0 +1,6 @@
#!/bin/bash
wget -q www.google.se -O /dev/null
if [ $? -eq 0 ]; then
echo "Internet verkar fungera"
fi

View 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

View 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

View 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

View File

@ -0,0 +1,6 @@
#!/bin/bash
filnamn="/etc/passwd"
if [ ! -w $filnamn ]; then
echo "Du har INTE skrivrättigheter till passwd-filen"
fi

View 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

View 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

View 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

View 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

View File

@ -0,0 +1,5 @@
#!/bin/bash
for s in $(cat namn.txt); do
echo "Hej $s, hur är läget?"
done

View File

@ -0,0 +1,7 @@
#!/bin/bash
for fil in $(ls); do
if [ -d $fil ]; then
echo "$fil är en katalog"
fi
done

View File

@ -0,0 +1,7 @@
#!/bin/bash
lista=(9 55 10 99)
for i in ${lista[@]}; do
echo "$i * 10" | bc
done

View File

@ -0,0 +1,7 @@
#!/bin/bash
lista=(9 55 10 99)
for i in ${lista[@]}; do
printf "$i"
done

View File

@ -0,0 +1,8 @@
#!/bin/bash
lista=(9 55 10 99)
for i in ${lista[@]}; do
printf "$i "
done
printf "\n"

View 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

View File

@ -0,0 +1,8 @@
#!/bin/bash
tal=0
while [ $tal -lt 10 ]; do
echo "Talet är $tal"
let tal=tal+1
done

View File

@ -0,0 +1,8 @@
#!/bin/bash
tal=0
until [ $tal -gt 10 ]; do
echo "Talet är $tal"
let tal=tal+1
done

View File

@ -0,0 +1,10 @@
#!/bin/bash
function halsa
{
echo "Hejsan Jack-Benny"
}
if [ $UID -eq 1000 ]; then
halsa
fi

View File

@ -0,0 +1,8 @@
#!/bin/bash
function halsa
{
echo "Hejsan $1, hur är läget?"
}
halsa $USER

View 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å"

View 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
View 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
View 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

View 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}

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB