Sem I (Prak Grund Infor) - N6 Flashcards

1
Q

Was sind Shell-Skripte?

A

Textdateien, die Programme enthalten und von der Shell-Umgebung ausgeführt werden. Sie werden interpretiert, nicht kompiliert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind die Vorteile und Nachteile von Shell-Skripten?

A

Vorteile:
Gut geeignet für Shell-spezifische Aufgaben und Kommandozeilen-Tools.

Nachteile:
Komplexe Syntax und subtile Fallstricke.
Keine richtigen Datentypen, für komplexere Skripte sind andere Sprachen wie Python besser geeignet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist ein Shebang?

A

Ein Shebang (#!) in der ersten Zeile eines Skripts gibt den zu verwendenden Interpreter an.

Beispiel: #!/usr/bin/env bash für Bash-Skripte.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Linux Name des Skripts знак.

A

$0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Linux Argumente des Skripts знак.

A

$1 bis $9

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Linux Alle Argument знак.

A

$@

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Linux Anzahl der Argumente знак.

A

$#

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Linux Rückgabecode des vorherigen Kommandos знак.

A

$?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Linux Prozess-ID des laufenden Skripts знак.

A

$$

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Linux Vollständiges letztes Kommando знак.

A

!!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Linux Letztes Argument des letzten Kommandos знак.

A

$_

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Linux Prozess-ID des letzten Hintergrundprozesses знак.

A

$!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Funktionen in Linux

A

Struktur: funktionsname () { kommando_1; kommando_2; … }
Argumente: Werden wie bei Skripten verwendet ($1, $2, etc.).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Define an array (Linux)

A

fruits=(“Apple” “Banana” “Cherry” “Date”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Access individual elements of an array using their index. (Linux)

A
# Accessing the first element
echo ${fruits[0]}  # Output: Apple

Accessing the second element
echo ${fruits[1]}  # Output: Banana
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Adding Elements to an Array. (Linux)

A
# Add an element at the fifth position (index 4)
fruits[4]="Elderberry"

Print the new element
echo ${fruits[4]}  # Output: Elderberry
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Printing All Elements of an Array. (Linux)

A
# Print all elements
echo ${fruits[@]}  # Output: Apple Banana Cherry Date Elderberry

Print all elements using *
echo ${fruits[*]}  # Output: Apple Banana Cherry Date Elderberry
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Getting the Length of an Array. (Linux)

A
# Get the length of the array
echo ${#fruits[@]}  # Output: 5
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Looping Through an Array. (Linux)

A
# Loop through the array
for fruit in "${fruits[@]}"; do
  echo $fruit
done
# Output:
# Apple
# Banana
# Cherry
# Date
# Elderberry
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Variablenüberprüfung. (Linux)

A
a='Hallo Welt'
[ "$a" ] || echo "Variable ist leer oder nicht gesetzt!"
[[ $a ]] || echo "Variable ist leer oder nicht gesetzt!"
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

String-Vergleiche. (Linux)

A
a="Hallo Welt"
b="Hallo Welt"
[[ $a = $b ]] && echo "beide Variablen sind gleich."
[[ $a != $b ]] && echo "beide Variablen sind ungleich."
22
Q

Integer-Vergleiche: a gleich b”. (Linux)

A
a=3
b=5
[[ $a -eq $b ]] && echo "a gleich b"
23
Q

Integer-Vergleiche: a ungleich b. (Linux)

A
a=3
b=5
[[ $a -ne $b ]] && echo "a ungleich b"
24
Q

Integer-Vergleiche: a größer b. (Linux)

A
a=3
b=5
[[ $a -gt $b ]] && echo "a größer b"
25
Q

Integer-Vergleiche: a kleiner b. (Linux)

A
a=3
b=5
[[ $a -lt $b ]] && echo "a kleiner b
26
Q

Integer-Vergleiche: a größer-gleich b. (Linux)

A
a=3
b=5
[[ $a -ge $b ]] && echo "a größer-gleich b"
27
Q

Integer-Vergleiche: a kleiner-gleich b. (Linux)

A
a=3
b=5
[[ $a -le $b ]] && echo "a kleiner-gleich b"
28
Q

Dateivergleich Linux.

A
[[ -e "./countries.txt" ]] && echo "countries.txt existiert im Arbeitsverzeichnis"
29
Q

If, then, else. Linux

A
function if_then_else(){
    number=$1
    if [ $number -gt 0 ]; then
        echo "Zahl ist positiv."
    elif [ $number -lt 0 ]; then
        echo "Zahl ist negativ."
    else 
        echo "Zahl ist Null."
    fi
}
if_then_else -1
30
Q

Rückgabewerte als Boolsche Werte. Linux.

A
ls * 1>/dev/null; echo $?
ls this-file-does-not-exits 2>/dev/null; echo $?
ls * 1>/dev/null && echo "Das Kommando war erfolgreich (exit code = 0)"
ls this-file-does-not-exits 2>/dev/null || echo "Das Kommando war nicht erfolgreich (exit code != 0)"
31
Q

Wie kann man in Bash einfache und gruppierte reguläre Ausdrücke (regEx) testen? (Linux)

A

Um in Bash reguläre Ausdrücke zu testen, verwendet man den Operator =~ innerhalb einer [[ ]]-Konstruktion.

VAR="Tesus"
if [[ $VAR =~ Th?esus ]]; then
    echo "match"
fi
32
Q

Wie führt man arithmetische Operationen in Bash durch? (Linux)

A

Am besten nutzt man ((…)) für berechnungen ohne Rückgabewert und $((…)) für Expansionen mit Rückgabewert.

a=5
((a++)) # Inkrementiert a um 1
echo $a # Gibt 6 aus

((a*=2)) # Multipliziert a mit 2
echo $a # Gibt 12 aus

echo $((3 + 4)) # Gibt 7 aus
a=5.5
x=$(echo "e(.6+$a)" | bc -l)
echo "$x" # Berechnet den Wert des Ausdrucks
33
Q

Was sind typische Boolesche Rückgabewerte in Bash?

A

In Bash bedeutet ein Rückgabewert von 0 “true” und jeder andere Wert “false”.

number=1
[ $number -gt 0 ]; echo $? # Gibt 0 (true)
[ $number -eq 0 ]; echo $? # Gibt 1 (false)
[ $number -lt 0 ]; echo $? # Gibt 1 (false)

((0)); echo $? # Gibt 1 (false)
((1)); echo $? # Gibt 0 (true)
((number==1)); echo $? # Gibt 0 (true)
((number==2)); echo $? # Gibt 1 (false)
34
Q

Example for While-Schleife (Linux)

A
z=1
while [[ $z -le 5 ]]; do
  echo $z
  ((z++))
done
35
Q

Example for Until-Schleife (Linux)

A
z=1
until [ $z -gt 5 ]; do
 echo $z
 ((z++))
done
36
Q

Example for For-Schleifen (Linux). For-Schleife without any variable or array…

A

Einfache Schleife

for i in {1..5}; do
  echo "Welcome $i times"
done

C-Style Schleife
for ((c=1; c<=5; c++)); do
  echo "Welcome $c times"
done
37
Q

Example for Schleife über Dateien (Linux)

A
for file in ./*.txt; do
  echo $file
done
38
Q

Wie verwendet man Case-Statements in Bash?

A
country=$1
case $country in
  Marokko | Somalia)
    echo "$country liegt in Afrika."
    ;;
  Brasilien | Peru)
    echo "$country liegt in Südamerika."
    ;;
  *)
    echo "$country kenne ich nicht."
    ;;
esac
39
Q

Wie arbeitet man mit Skript-Schaltern in Bash?

A
#!/bin/bash
OPTIND=1

function show_help {
    echo "Usage: ${0} [options]"
    echo "Options:"
    echo " -t  Test run to check the configuration."
    echo " -d  Distributed training."
    echo " -c  Path to configuration file."
    exit
}

while getopts "h?vtdc:" opt; do
    case "$opt" in
        h|\?)
            show_help
            exit 0
            ;;
        v)  verbose=1
            ;;
        t)  test='--test'
            ;;
        d)  distributed=1
            ;;
        c)  config=$OPTARG
    esac
done
40
Q

Was versteht man unter dem Internet und welche grundlegenden Konzepte und Protokolle sind darin enthalten? (BASH)

A

Das Internet ist eine Vernetzung zwischen verschiedenen Computernetzen und ermöglicht den Austausch von Daten und Informationen. Es basiert auf Netzwerkprotokollen, die die Syntax, Semantik und Synchronisation der Kommunikation festlegen.

41
Q

Welche wichtigen Protokolle gehören zur Internetprotokollfamilie und wie sind sie organisiert? (BASH)

A

Zu den wichtigsten Protokollen der Internetprotokollfamilie gehören das Transmission Control Protocol (TCP) und das Internet Protocol (IP). Diese Protokolle regeln den Datenaustausch im Internet und sind oft unter dem Begriff TCP/IP bekannt. Das TCP/IP-Schichtmodell besteht aus vier Schichten:

- Anwendungsschicht: z.B. HTTP, FTP, SMTP
- Transportschicht: z.B. TCP, UDP
- Internetschicht: z.B. IP, ICMP
- Netzzugangsschicht: z.B. Ethernet, WLAN

42
Q

Wie funktioniert die Kommunikation zwischen verschiedenen Schichten im TCP/IP-Modell? (BASH)

A

Die Kommunikation erfolgt durch das Weitergeben von Nachrichten zwischen den Schichten. Beispielsweise erstellt die Anwendungsschicht eine Nachricht, die dann durch die Transportschicht in kleinere Teile aufgeteilt.

43
Q

Was ist das Client-Server-Modell und welche Rollen spielen die jeweiligen Geräte? (BASH)

A

Im Client-Server-Modell stellt ein Server bestimmte Dienste im Netzwerk zur Verfügung und beantwortet Anfragen von Clients. Typische Serverdienste umfassen die Datenbanksuche.

44
Q

Wie erfolgt die Datenübertragung im Internet und welche Rolle spielen Router dabei? (BASH)

A

Daten werden in Pakete aufgeteilt und über Kommunikationsleitungen und Switches/Hubs übertragen. Router verbinden verschiedene Computernetze und leiten die Datenpakete durch diese Netze weiter. Router nutzen Routing-Tabellen, um den optimalen Pfad für die Datenpakete zu bestimmen.

45
Q

Was sind IP-Adressen und wie unterscheiden sich IPv4 und IPv6? (BASH)

A

IP-Adressen identifizieren eindeutig Computer im Internet. Es gibt zwei Adressierungsschemata:

IPv4: 32-Bit-Adressen, dargestellt als vier Dezimalzahlen (z.B. 192.168.0.1).
IPv6: 128-Bit-Adressen, entwickelt wegen der begrenzten Anzahl der IPv4-Adressen.

46
Q

Was ist eine Netzmaske und wie wird sie verwendet? (BASH)

A

Eine Netzmaske markiert den Teil einer IP-Adresse, der das Netzwerk identifiziert. Sie wird verwendet, um festzulegen, welche IP-Adressen im selben Netzwerk liegen und welche über ein Gateway (Router) erreicht werden müssen. Netzmasken können in der CIDR-Notation angegeben werden, z.B. 192.168.0.1/24.

47
Q

Was ist DHCP und wozu dient es? (BASH)

A

DHCP (Dynamic Host Configuration Protocol) ist ein Netzwerkprotokoll, das Geräten dynamisch IP-Adressen und andere Netzwerkkonfigurationsparameter zuweist.

48
Q

Welche Rolle spielt Kryptographie in der IT-Sicherheit und welche Ziele können damit erreicht werden? (BASH)

A

Kryptographie ist ein zentrales Element der IT-Sicherheit, da sie die sichere Kommunikation über unsichere Kanäle ermöglicht. Mit Hilfe von kryptographischen Verfahren können folgende Schutzziele erreicht werden:
1) Vertraulichkeit (Confidentiality): Nur autorisierte Benutzer können Daten lesen oder modifizieren
2) Integrität (Integrity): Daten können nicht unbemerkt verändert werden, und alle Änderungen sind nachvollziehbar.
3) Nicht-Abstreitbarkeit (Non-repudiation): Der Autor einer Nachricht kann deren Verfassen und Inhalt nicht leugnen, da die Authentizität der Nachricht validiert werden kann.

49
Q

Was sind die Unterschiede zwischen symmetrischen und asymmetrischen Verschlüsselungsverfahren (BASH)?

A

Symmetrische Verschlüsselung: Beide Kommunikationspartner verwenden denselben geheimen Schlüssel zum Ver- und Entschlüsseln der Nachrichten. Der Schlüssel muss sicher ausgetauscht werden, was problematisch sein kann. Beispiele für symmetrische Algorithmen sind AES und Blowfish.

Asymmetrische Verschlüsselung: Jeder Kommunikationspartner erzeugt ein Schlüsselpaar, bestehend aus einem öffentlichen und einem privaten Schlüssel. Nachrichten werden mit dem öffentlichen Schlüssel des Empfängers verschlüsselt und können nur mit dessen privatem Schlüssel entschlüsselt werden. Dies löst das Problem des sicheren Schlüsselaustauschs.

50
Q

Was ist das Kerckhoff-Prinzip und warum ist es wichtig? (BASH)

A

Das Kerckhoff-Prinzip besagt, dass ein kryptographisches System auch dann sicher sein muss, wenn alles außer dem Schlüssel öffentlich bekannt ist. Das bedeutet, dass die Algorithmen für Verschlüsselung und Entschlüsselung öffentlich sind und nur die Schlüssel geheim gehalten werden. Dieses Prinzip ist wichtig, weil es die Sicherheit auf die Geheimhaltung der Schlüssel konzentriert

51
Q

Wie erzeugt man ein Private/Public Schlüsselpaar in PEM-Format mit openssl und schützt den privaten Schlüssel mit einer Passphrase? (BASH)

A

1) Zwei Variablen für die Dateinamen des privaten und öffentlichen Schlüssels setzen:
private_keyfile=”private.pem”
public_keyfile=”public.pem”

2) Erzeugung des privaten Schlüssels:
openssl genrsa -out ${private_keyfile} 2048

3) Optional: Schutz des privaten Schlüssels mit AES128-Verschlüsselung (Passphrase wird benötigt):
openssl genrsa -aes128 -out ${private_keyfile} 2048

4) Erzeugung des korrespondierenden öffentlichen Schlüssels (Passphrase wird abgefragt, falls der private Schlüssel verschlüsselt ist):
openssl rsa -in ${private_keyfile} -pubout -out ${public_keyfile}