diff --git a/4.html b/4.html index f523418..60d9188 100644 --- a/4.html +++ b/4.html @@ -45,44 +45,284 @@ Deutsche Angestellten Akademie
+ + +Begriffe +
Wurzelverzeichnis / (engl. root) + | +Höchstes Verzeichnis im Verzeichnisbaum + | +
Aktuelles Arbeitsverzeichnis + | +Das Verzeichnis, in dem Sie sich im Augenblick befinden + | +
Vollständige Pfadangabe + | +Ein Pfadname beginnend mit / (Wurzel); alle anderen Verzeichnisse werden ebenfalls mit einem / getrennt. + | +
Relative Pfadangabe + | +Der Pfad ist relativ zum aktuellen Arbeitsverzeichnis; hierbei wird kein voranstehendes / verwendet. + | +
Vollständiger Dateiname + | +Pfadangabe inklusive Angabe zur entsprechenden Datei (bspw. /home/you/Dokumente/brief.txt) + | +
Vollständiger Pfadname + | +Pfadangabe zu einem Verzeichnis, in dem sich die entsprechende Datei befindet (bspw. /home/you/Dokumente) + | +
.. (zwei Punkte) + | +Verweisen auf ein Inhaltsverzeichnis, das sich eine Ebene höher befindet + | +
. (ein Punkt) + | +Verweist auf das aktuelle Inhaltsverzeichnis + | +
Benennung von scripten + +
which script_name
+ +
; Befehls-Trennzeichen
+& Hintergrund-Verarbeitung
+( ) Befehls-Gruppierung
+| Pipe
+< > & Umlenkungssymbole
+* ? [ ] ~ + - @ ! Meta-Zeichen für Dateinamen
+` ` (Backticks) Befehls-Substitution
+$ Variablen-Substitution
+[newline] [space] [tab] Wort-Trennzeichen
+
+ a=hello # einer Variablen "a" den Wert "hello" zuweisen
+ echo $a # die Variable "a" stdout ausgeben
+ a=7 # der Variablen "a" einen neuen Wert zuweisen
+ b=8 # einer Variablen "b" den Wert "8" zuweisen
+ c=$[a+b] # einer Variablen "c" die Summe von a+b zuweisen
+ echo $c # die Variable "c" an stdout ausgeben
+ * Alle Aufrufparameter als ein String ("$*" == "$1 $2 $3 ...")
+@ Alle Aufrufparameter als einzelne Strings ("$@" == "$1" "$2" "$3" ...)
+# Anzahl der Aufrufparameter
+? Rückgabewert des letzten Kommandos
+$ Prozessnummer der aktiven Shell
+0 Name des aktuellen script
+ERRNO Fehlernummer des letzten fehlgeschlagenen Systemaufrufs
+PWD Aktuelles Verzeichnis (wird durch cd gesetzt)
+PATH Suchpfade
+USER Benutzername
+
+ Beispiele +
echo $PATH
+ echo $$
+
+
+
+ Var. Zuweisung:
a=10
+ Var. Abruf:
echo $a
+ Programmstart +
ls
chmod +x tolles_script.sh
./tolles-script.sh
#!/bin/bash
+clear
+echo "Diese Infos werden von mysystem.sh bereitgestellt."
+echo "Hallo, $USER"
+
+echo "Heute ist der `date \"+%d.%m.%Y - %H:%M:%S\"`, dies ist Woche Nr. `date +"%V"`."
+echo
+
+echo "Diese Benutzer sind im Moment verbunden:"
+w | cut -d " " -f 1 - | grep -v USER | sort -u
+echo
+
+echo "Dies ist `uname -s` und wir laufen auf einem $(uname -m) Prozessor."
+echo
+
+echo "Die uptime ist:"
+uptime
+
+MSG="\nDas ist alles! Bye, $USER! \n\n"
+printf "${MSG}"
+
+ https://git.scytec.de/danthefan/linuxkurs/raw/master/beispiele/mysystem.sh
+ echo "Hallo, $USER"
+ echo "Heute ist der `date \"+%d.%m.%Y - %H:%M:%S\"` "
+ w | cut -d " " -f 1 - | grep -v USER | sort -u
+ `uname -s` vs $(uname -s)
+ MSG="\nDas ist alles! Bye, $USER! \n\n"
+printf "${MSG}"
+ Ausführende Shell festlegen ( sog. She-Bang )
+#!/bin/bash
+ #!/usr/bin/env ruby
+ #!/usr/bin/env python3
+ #!/usr/bin/php
+
+ Nötig, damit die shell weiss, wie das script interpretiert werden soll.
https://danielmiessler.com/study/vim/ -
bash mysql-backpup.sh
+ . mysql-backpup.sh
+ oder
+ php mysql-backpup.php
+ oder
+ ruby mysql-backpup.rb
+ Prozess in der bash - Erklärung:
+neue Datei anlegen : finduser
+#!/bin/bash
+find / -user dany -print 2>/dev/null
+ dany@laptop:~/bin$ chmod u+x finduser
+dany@laptop:~/bin$ ./finduser 1>/dev/null &
+
+ dany@laptop:~/bin$ ps -f
+ UID PID PPID C STIME TTY TIME CMD
+dany 4987 23893 0 12:50 pts/4 00:00:00 /bin/bash ./finduser
+dany 4988 4987 68 12:50 pts/4 00:00:01 find / -user dany -print
+dany 5011 23893 0 12:50 pts/4 00:00:00 ps -f
+dany 23893 4143 0 12:33 pts/4 00:00:00 bash
+
+ Die bash startet eine sub-shell, in der das Kommando ausgeführt wird +
Der Kontext aller Script Variablen ist der der sub-shell +
export PATH=$PATH:/pfad/zum/script
~/bin/
-> diesen zur $PATH
dazu#!/bin/bash
+suf=$1
+if [ $# -gt 0 ]
+ then
+ for file in *.$suf; do
+ bn=`basename "$file" .$suf | tr [:blank:] _`
+ new=$bn.$suf
+ echo "neuer Dateiname:"
+ echo $new
+ mv "$file" $new
+ done
+ else
+ echo "Verwendung: strip-space.sh SUFFIX"
+ echo "Beende ...."
+fi
+
+ Kommando Verkettung
+ +