<sub class="descriptionSection">09-10-2024 05:11:pm // #Linux // [[BA]]</sub>
____
Die Linux Konsole ist ein mächtiges Werzeug (arguably mächtiger als PowerShell).
## Begriffe in der Linux Welt
- CLI: Command Line Interface - Basically die Konsole
- Shell
- Command Line Interpreter - Also das was die Commands laufen lässt
- Übersetzt Konsolenbfehle in Befehle für das Betriebssystem
- Unterschiedliche Shells sind möglich
- Bourne shell
- C Shell
- tchs
- Ksh (Korn Shell)
- zsh
- fish
- Bash (Bourne-again Shell)
## Bash
Bash ist die standard shell die eigentlich von allen unix based OS genutzt wird. Sie sieht so aus:
![[Pasted image 20241009171414.png]]
### Kommandostruktur
Jede CLI hat eigentlich eine eigene Kommandostruktur in der Linux Welt. Meistens ist sie allerdings so aufgebaut:
![[Pasted image 20241009171522.png]]
Beispiel:
![[Pasted image 20241009171610.png]]
- ls : Kommando (list, directory anzeigen)
- -l : Option 1 (Ausgabe im langen Format)
- --human: Option 2 (Dateigrößen in menschlichen Format anzeigen)
- anstatt --human kann man auch -h schreiben
- anstatt -l -h kann man auch -lh schreiben
- /home: Argument 1 (Pfad des ersten Ordners der angezeigt werden soll)
- /etc: Argument 2 (Pfad des zweiten Ordners der angezeigt werden soll)
### Kommando-History
![[Pasted image 20241009171802.png]]
### Variablen
Um Scripte möglich zu machen gibt es in den meisten Shells variablen. Es gibt zwei typen von Variablen:
- Local Variables
- nur in der aktuellen shell gültig
- Definition und Zuweisung: `variable=value`
- Lesezugriff: `$variable`
- Environmnet Variables
- globale variablen
- Systemweit
- `env` befehl gibt alle aus
- Beispiel
- `PATH` <= In welchen Directories nach binaries zum ausführen gesucht wird
- `HOME` <= Pfad des home directories
- `export variable` machtVariable global
- `unset variable` löscht Variable
### Typen von Kommandos
![[Pasted image 20241009172302.png]]
![[Pasted image 20241009172309.png]]
### Funktionen
Shells haben meistens auch die möglichkeiten funktionen zu definieren:
```shell
function gruessen(){
echo Hallo
echo Servus
echo Grias de
}
```
Im terminal kann die funktion dann so aufgerufen werden:
```shell
gruessen
```
### Verknüpfung von Kommandos
Kommandos können in mehreren Wegen verknüpft werden:
```
command; command2 #Zuerst command1 dann 2 ausführen
command1 && command2 #Erst command1 nur bei erfolg command2 ausführen
command1 || command2 #Command1 ausführen, bei Fehler command2 ausführen
```