diff --git a/ktouch/.local/share/ktouch/profiles.db b/ktouch/.local/share/ktouch/profiles.db index b208a98..6062cb5 100644 Binary files a/ktouch/.local/share/ktouch/profiles.db and b/ktouch/.local/share/ktouch/profiles.db differ diff --git a/ktouch/custom_courses/bash.xml b/ktouch/custom_courses/bash.xml new file mode 100644 index 0000000..36ee1b2 --- /dev/null +++ b/ktouch/custom_courses/bash.xml @@ -0,0 +1,220 @@ + + + + BASH-Tippen + + Kurs zum Erlernen und Üben typischer Bash-Befehle, + Dateipfade, Optionen, Umleitungen, Pipes und Shell-Skripte. + Ausgelegt für eine deutsche QWERTZ-Tastatur. + + + + + Grundzeile und einfache Wörter + asdf jklö + +asdf jklö asdf jklö +fall lass das alles +date fasse lade +ls ls ls +pwd pwd pwd + + + + + Erste Bash-Befehle + g h r u i e n t + +ls +pwd +cd +clear +date +whoami +hostname +echo + + + + + Dateien und Verzeichnisse + m b c v x z + +ls -l +ls -a +pwd +cd .. +cd / +cd ~ +mkdir test +touch datei +rm datei +rmdir test + + + + + Pfade und Verzeichnisnavigation + / . - _ + +cd /tmp +cd /var/log +cd ~/Dokumente +ls ./datei +ls ../ +pwd +mkdir -p projekt/src +cd projekt +cd src +cd .. + + + + + Dateien kopieren und verschieben + p ö ä ü + +cp datei kopie +mv kopie archiv +mkdir archiv +cp datei archiv/ +mv archiv/kopie archiv/alt +rm archiv/alt + + + + + Optionen und lange Befehle + q w y ö ä ü + +ls -lah +ls --all +ls --human-readable +mkdir --parents projekt/src +cp --interactive datei ziel +rm --interactive datei + + + + + Ausgabe und Umleitungen + > < | & + +echo hallo +echo hallo > datei +cat datei +echo welt >> datei +cat < datei +cat datei | sort +cat datei | less +sleep 10 & + + + + + Pipes und Textverarbeitung + s o k f + +ls -l | less +ps aux | less +cat /etc/passwd | sort +grep root /etc/passwd +ls -l | grep txt +cat datei | wc -l +history | tail + + + + + Suchen mit find und grep + n d v + +find . -name "*.txt" +find /tmp -type f +grep hallo datei +grep -r hallo . +grep -i fehler log.txt +find . -type f | sort + + + + + Variablen und Umgebungsvariablen + $ = " ' { } + +name="Bash" +echo "$name" +echo "${name}" +home="$HOME" +echo "$home" +export EDITOR=vim +echo "$PATH" + + + + + Bedingungen und Rückgabewerte + [ ] ! - + +test -f datei +[ -f datei ] +[ -d projekt ] +[ ! -e alt ] +echo $? +command -v bash +which bash + + + + + Schleifen und kleine Skripte + for do done in if then fi + +for file in *.txt; do + echo "$file" +done + +if [ -f datei ]; then + echo "Datei vorhanden" +fi + + + + + Bash-Kommandos im Fließtext + + +mkdir -p ~/projekt/{src,bin,doc} +cd ~/projekt +touch src/main.sh +chmod +x src/main.sh +echo '#!/usr/bin/env bash' > src/main.sh +echo 'echo hallo' >> src/main.sh +./src/main.sh + + + + + Abschlussübung + + +#!/usr/bin/env bash + +projekt="$HOME/bash-training" +mkdir -p "$projekt" +cd "$projekt" || exit 1 + +for name in eins zwei drei; do + echo "$name" > "$name.txt" +done + +find . -type f -name "*.txt" | + sort | + while read -r file; do + echo "Datei: $file" + wc -l "$file" + done + + + +