Inhaltsverzeichnis
Tabellenverzeichnis
Liste der Beispiele
Inhaltsverzeichnis
Unix ähnlichi Betriebssystem verfolged dä Asatz, dass alles e Datei isch und die Grundlegendä Dateioperatione wie Läsä und Schriebe unterstützed.
Än Ordner cha verwendet werde um die Dateie zämez'fasse und cha überlicherwiis Hierarchisch ufglisted werde.
Links sind spezielli Dateie wo uf e anderi Datei oder Ordner verwiese chönd.
Au Geräte oder Schnittstelle werde wohl au als Datei Abildet. Das isch überlecher Wiis s'/dev Vozeichnis. Und bildet somit e direkti Schnittstelle zum Kernel und sine Triiber da.
Es chunt je nachdem druf a, welles Unix Betriebssystem mor verwendet, wie Wiit dass es Umgsetzt wird. Aber überlecher Wiis hängt das vo de System Software ab, wo verfüegbar isch. Es isch gängigi Praxis, das Programm portierte werde z.B. für Linux, FreeBSD, OpenBSD, Darwin, GNU Mach oder Minix usw. ...
Unix is es traditionells Mehr Benutzer Betriebssystem. De Standard Zeichesatz dezue isch ANSI. De POSIX Zeichesatz giits i 2 Usfüerige: C und C.UTF-8.
Im Interent wird hüüfig, de zentral europäische Zeichesatz für Lateinisch stammigi Sproche vowendet ISO8859–1.
Mir redet i dem Buech vo GNU+Linux und gönd au vorwiegend druf i. De Kommandoziele- interpreter vo de Wahl isch BASH. Es werded au Bestehendi Richtlinie vom Filesystem Hierarchy Standard igange FHS.
D'Kommando Ufforderig BASH, isch e wiit verbreiteti Shell. Die interaktiv shell unterstützt Stapelvoarbeitig - Batch, und sogar funktione innerhalb vo BASH Skripts, das sind Dateie wo Kommandos im Stapel voarbeited. Die Dateie hend de Dateinamenserwiiterig .sh.
Inhaltsverzeichnis
Linux isch en Kernel, isch im Betriebssystem die Schicht vom Softwarestapel, wo sich um Scheduling, Geräte Iigob & Usgob, Power Management und e abstraktion zur Hardwareschicht abüted.
Oftmols wird Linux als Platzhalter für s'ganze Betriebsystem verwendet, dessen genaui Bezeichnig GNU+Linux isch. Das het de Vorteil, das mor au effektiv Programm uusfüert und nöd nur aluegt wie er lauft.
Dä Linux Kernel bevorzugt d'GNU General Public License i de Version 2 und isch somit freii Software. Er beinhalted aber au Code wo MIT Lizensiert sind.
Anderi gängigi freii Software Lizenze sind Apache 2 License, wo vorwiegend für Webawendige vowendet wird, GNU LGPL oder GNU Affero GPL. Die alli unterscheidet sich i Details zur Umsetzig vo de 4 Freiheite:
D'Freiheit s'Programm uuszfüehre wie mor möchti.
D'Freiheit d'Funktionswies vomne Program z'untersueche.
D'Freiheit s'Programm mit Mitmensche z'teile.
D'Freiheit s'Programm z'verbesserä.
Freii Software isch somit Opensource, aber Opensource mue nöd zwingend freii Software sii. Opensource bedüted eifach de Quellcode isch verfüegbar.
Es giet unzähligi Distributione, wo sich unter anderem vom Packetmanagment zur Softwareinstallation unterscheidet, Standard Desktopumgebig oder System V vs. Systemd, mit oder ohni Kompatibilitätslayer.
Debian GNU/Linux isch e wohl etablierti Distribution bi Entwickler.
OpenSuSE isch ursprünglich e Dütschi Distribution, isch die ältischt uf em Markt und büted YaST zur Konfiguration a.
Fedora isch e sehr eifach z'installierendi Distribution.
Arch isch eher für Fortgschritteni Awender.
Ubuntu wird vo Canonical abüted.
Clear Linux wird vo Intel bereitgstellt und zeichned sich durch Performance us.
Nitrux verfolgt e kommerzielle Asatz.
Es lohnt sich uf jedefall sich mit de Wahl vom Betriebssystem gnauer usenand z'setze. Die Liste isch bi wiitem nöd komplett. A dere Stell möcht i uf DistroWatch.com vowiese.
Inhaltsverzeichnis
S'Bild obe isch en Screenshot vo `mate-terminal`, wobii 2 Befehl uusgführt worde sind. De ersti `whoami` zeigt dir de momentan Benutzername a und de zweiti `uname -r` zeigt d'Kernel Version vom laufende System a.
S'Farbprofil loht sich i moderne Terminals istelle, do isch es Grüen uf Schwarz. Nebe Textbasierted Kommands giets au no söttigi wo d'ncurses Bibliothek vowendet. Wie zum Bispiel Midnight Commander.
Mir verwendet s'Substitutionszeiche ` für Befehl wo mir usfüehre chönd, wie z.B. `echo "Hallo Welt!"`, es dient lediglich zur igrenzig und cha i de Interaktiv Shell weggloh werde.
`mc` isch e Konsole basierte Dateimanager wo mor mit de Muus oder mit de Tastatur bediene cha.
WARNIG, die falsche Befehl chönd dezue füere, dass es en Computer sofort Abschalted, S'Dateisystem beschädigt, alli Date löscht oder sogar en Computer unbruchbar macht.
Zersch zu de spezielle Dateinäme, ein Punkt . isch s'momentane Vozeichnis, 2 ufenandfolgendi Pünkt .. isch s'Elterliche Vozeichnis, d.h. i de Baumstruktur übergordnet. Dateinäme wo mit emne Punkt afönd sind vostekti Dateie.
De Befehl List System `ls` listed alli sichtbare Dateie im Arbeitsvozeichnis uf, `ls -a` isch de glich Befehl, aber het zuesätzlich e Option „-a“ wo dezue führt, dass alli Dateie im Arbeits vozeichnis ufglisted werdet.
Unix System e hierarchische Dateistruktur, s'obersti Vozeichnis nennt mo Root Vozeichnis und mit `ls -lh /` chan mor de Inhalt ufliste. De Slash isch en Dateipfadbegrenzer und nur eine stoht fürs obersti Vozeichnis. De Parameter „-lh“ listed uusfüehrlichi Informatione und menscheleserliche Grösse agabe uuf.
Mir befindet üs aber für gwöhnlich imne Unterordner im Benutzervozeichnis, das chan mor mit em Befehl `echo $HOME` uusgeh. Echo isch en Befehl mit dem mor Zeiche uf em Schirm usgeh chan, $HOME isch e Umgebigsvariable wo de Name vom Benutzervorzeichnis enthalted. Bi mir wär das "/home/joelkraehemann".
Um s'momentane Arbeitsvozeichnis z'ermittle gib `pwd` i - Print Working Directory. Wenn im Benutzerordner bisch erstell es Vozeichnis mit `mkdir -v my-shell-scripts` - Make Directory, de „-v“ Parameter bewürkt dass `mkdir` uusfüerlichi Informatione uusgibt und chönt au weggloh werde.
Do mir en Ordner Agleit hend um Üsri Shell Scripts z'Speicher wechsled mir gad dri mit `cd my-shell-scripts` - Change Directory.
Denn lege mor e leeri Datei a `touch hallo-welt.sh` und fülled sie gad mit enere Dateiumleitig `echo -e '#!/bin/bash\n\necho "Hallo Welt!"\n' > hallo-welt.sh`. De „-e“ Parameter erlaubt es Escape Sequenze z'definiere. Im Text sind do die vowendeti Escape Sequenz \n wo en Zeileumbruch erzügt. S'Grösser als Zeiche leited d'Standard Usgob ine Datei um, deren Name als nögsts ufgführt wird.
Zum überprüefe vom Inhalt `cat hallo-welt.sh` itippe. Wenn es guet usgseht mache mor d'Datei usfüerbar mit em Befehl `chmod u+x hallo-welt.sh` - Change Mode. u+x bedüted em Benutzer - User - d'Berechtigung + hinzuefüege, x stoht für Usfüerbar - Executable.
Denn chan mor de Code im Script usfüere: `./hallo-welt.sh`
Viel Programm erkenned än Parameter „--help“ oder d'Churzform „-h“, z.B. `man --help` oder `man -h`.
`man bash` liefert d'Manual Page vo bash. Manpages sind i insgesamt 8 Sektione unterteilt.
Zum Bispiel `man -s3 printf` liefert d'API vo de GLib C Funktion printf. Hingegeg `man -s1 printf` liefert s'Manual für d'Bash Funktion printf.
`info perl` liefert unter umständ au d'Manpage, aber falls d'Dokumentation installiert isch, isch es meistens umfangriecher.
„Ctrl-C“ bewürkt, dass s'Signal SIGINT an Prozess gsendet wird und führt zu dessem Terminierig.
„Ctrl-Z“ setzt de momentani Prozess in Hintergrund. Mit `fg` chan mor dä wieder in Vordergrund bringe.
`nohup KOMMANDO > DATEI &` isch nützlich zum KOMMANDO im Hintergrund usz'füere de Standard Output STDOUT wird i DATEI umgleited. Das isch guet wenn en Prozess sehr lang goht und mor d'Usgob möcht speichere.
Nano isch en eifach z'handhabende Editor und erfreut sich grosser Beliebheit. Im Bild obe gseht mor en Screenshot vo GNU Nano, wo d'Datei offe het wo mir im vorherige Kapitel mittels Redirect (Standard Usgob ine Datei) erzügt hend.
Usser Standard Bibliotheke het er kei Abhängigkeite. Mittels Tastekombinatione loht sich Ufgobe wie Dateie öffne oder Speichere umsetze, z.B. Ctrl-G zum e Hilf z'öffne. Die Liste unne isch nöd komplett, aber sicher nützlich.
Tabelle 4.1. GNU Nano Tastekombinatione
Tastekombination | Beschriebig |
---|---|
Ctrl-G | Wechsle zum Hilfe Text. |
Ctrl-X | Momentane Puffer schlüsse oder Nano verloh. |
Ctrl-O | Schrieb de momentan Puffer (oder markierti Region) uf d'Harddisk. |
Ctrl-R | Füeg e anderi Datei in momentane Puffer (oder ine neue Puffer). |
Ctrl-W | Sueche vorwärts nochenere Zeichechette oder Regulärem Usdruck. |
Ctrl-\ | Ersetz e Zeichechette oder Reguläre Usdruck. |
Ctrl-U | Füeg de Inhalt vom usgschnittene Puffer i die momentan Cursor Position. |
Ctrl-J | Richte de momentani Abschnitt i. |
Ctr-T | S'Rechtschriebeprogramm ufrüefe sofern vohande. |
Ctrl-_ | Spring a die agebeni Zeile und Spalte im Text. |
Meta-U | Rückgängig mache vo de letzt Operation. |
Meta-E | Wiederhole die letzt rückgängig Operation. |
Ctrl-Q | Sueche rückwärts vonere Zeichechette oder emne Reguläre Usdruck. |
Meta-A | Markiere de Text vo de momentani Cursor Position. |
Meta-6 | Kopiere die momentani Zeile oder markierte Text und füll de usgschnittene Puffer. |
Meta-Q | Sueche nögsti Treffer rückwärts. |
Meta-W | Sueche nögsti Treffer vorwärts. |
Emacs isch en sehr vielfältige Editor und wan er nöd susch no alles chan. Er unterstützt setze vo Debugger Breakpoints mit `gdb`. Het für vieli Programmiersprache Syntax Hervorhebig. Mor chan en entweder uf de Textkonsole starte oder im Fenster Modus.
`emacs -nw` wird s'Programm i de Konsole usfüere de Parameter „-nw“ stoht für No Window. Uf manche System wird d'Meta Taste (Alt) für was anders g'nutzt und statdesse Escape brucht.
Tabelle 4.2. GNU Emacs Tastekombinatione
Tastekombination | Beschriebig |
---|---|
Ctrl-F | Öffne Datei oder erstell e neui. |
Ctrl-X Ctrl-S | Speichere d'Datei unterem ursprüngliche Name. |
Ctrl-X Ctrl-W | Speichere d'Datei unterem neue Name. |
Ctrl-G | S'momentane Kommando abbreche. |
Ctrl-X Ctrl-C | De Editor beende. |
Meta-X menu-bar-open | Öffne d'Menü Liste. |
Ctrl-_ | Rückgängig mache. |
Ctrl-Space | Markierig setze zum kopiere. |
Meta-w | De markierti Text kopiere. |
Ctrl-w | De markierti Text uschniede. |
Inhaltsverzeichnis
`less hallo-welt.sh` zeigt d'Text Datei „hallo-welt.sh“ a. Wenn `less` offe isch chan mor mit „/“ noch Text sueche, „n“ liefert de nögsti Treffer und mit Ctrl-G beendet mor z'suech. Aschlüssend chan mor „Q“ drucke zum `less` z'beende.
Eifachs Scrolle chan mor mit de Pfiel Ufe oder Abe Taste erwirke. Mit „h“ chunt mor uf e Hilfesiite mit Tastekombinatione.
Mit `find` chan mor Dateinäme oder Vozeichnisnäme sueche. Überlicherwies git mor voschiedeni Parameter am `find` Befehl mit.
`find /home/joelkraehemann -name "*.sh" -type f` isch es Bispiel zum min Benutzerrodner „/home/joelkraehemann“ z'durchsueche, de Filter „-name "*.sh"“ fangt mitem Wildcard * (Joker im Chartespiel) a und ended mitem Datei Suffix .sh. De Parameter filtered alli Dateinäme us wo nöd mit .sh endet. De nächst Parameter „-type f“ schlüsst alli Dateipfäd us wo nöd vom Type Datei isch. S'f stoht für File, um nur Vozeichnis ufliste chan mor s'f durch es d ersetze.
`find /home/joelkraehemann -name "*~" -type f -exec rm -f {} \;` wür alli Dateie wo mit enere Tilde im Dateiname endet lösche. Find cha uf jede treffer Kommandos usfüere, i dem Fall isch es `rm` - Remove. De `rm` Parameter „-f“ erzwingt s'lösche au wenn d'Datei schriebgschützt isch.
`grep` durchsuecht Datei anhand vom vorgebene Muster, z.B. de Befehl `grep "Hallo Welt" hallo-welt.sh` durchsuechd d'Datei noch de Zeichechette „Hallo Welt“ und giet die zuetreffend Ziele us.
Um `find` und `grep` z'kombiniere chan mor ä Pipe „|“ zur hilf neh und s'Programm `xargs`.
`find /home/joelkraehemann -name "*.sh" -type f | xargs grep -l "bash"` do werdet alli Pfäd ufglisted wo de Dateisuffix .sh hend, Dateie sind und de Text bash enthalted. Wenn mor grep mit `xargs` vowendet, loht mor de Dateiname weg, wiel de chunt vom vorherige Befehl `find` wo mittels de Pipe uf d'Standard Igoob umgleited wird. Dä Parameter „-l“ bewürkt, dass de Dateiname usgeh wird, anstatt die zuetreffend Ziile.
Inhaltsverzeichnis
Im Screenshot obe gseht mor d'vowendig vonere temporäre Variable „i“. Ä Schleife het immer ä Abbruchbedingig, i dem Fall isch das „i<10“ und bedüted soviel wie solang d'Variable i chliner als 10 isch wieter mache. Im Schleife Körper wird d'Zahl i mit `echo` uf d'Konsole gschriebe.
De for Schleif Chopf hier bestoht us 3 Teil, trennt durch s'Semikolon. De erst Abschnitt isch zum initialisiere vorgseh, z.B. setz de Usgangswert „i=0“.
De zweiti Teil isch d'Abbruchbedingig, das isch en Usdruck wo uf Wohrheit überprüeft, im Programmiere isch es üblich, das de Rückgabewert 0 Falsch isch und alles ungleich 0 Wohr. „i<10“ isch ä Boolsche Operation wo entweder Wohr oder Falsch sii chan.
De dritti Teil isch ä Operation wo pro Iteration (Durchlauf) usgführt wird. Obe isch das „i++“, d'Post-Inkrement Operation wo bewürkt, dass noch einer Iteration d'Variable i um eis erhöt wird.
`env` zeigt alli aktuelle Umgebigsvariable a, die chönd vo andere Scripts oder Programm usglese werde. Mit de ibaute Shell Funktion `export` chan mor wieteri Umgebigsvariable definiere, z.B. `export LANG=C` oder `export LANG=C.UTF-8`.
De ersti export setzt d'Umgebigsvariable „LANG“ uf de Wert „C“ was soviel bewürkt, wie d'Standard Sproch uf d'Standard POSIX Locale setze.
De zweiti export setzt d'Umgebigsvariable „LANG“ uf de Wert „C.UTF-8“ was soviel bewürkt, wie d'Standard Sproch uf d'Standard POSIX Locale mit UTF-8 unterstützig setze.
Um de Inhalt vo Umgebigsvariable z'inspiziere chan es Dollar $ Zeiche vor de Variablename setze und das mit `echo` vowende, z.B. `echo "$LANG"`.
Arrays sind Variable wo us 0, 1 oder mehrere Iträg bestönd, die einzelne Iträg chönd mittels emne index agsproche werde.
Shell Scripts chönd au Variable beinhalte und es gueti Praxis die vorem erste Vowende z'deklariere und z'initialisiere. Variable isch eigentli nüt anders als ä Speicherstell für Zahle, Text oder dynamische Arrays. I BASH sind Arrays immer dynamisch und chönd nur 1-dimensional agleit werde.
Die erst Zeile vomne Script heisst übrigens Sha-Bang und spezifiziert de Script Interpreter wo vowendet werde sött. I dem Buech isch das immer `bash`.
Beispiel 6.1. Variable i Scripts - Ichaufsliste
01: #!/bin/bash 02: 03: function create_shopping_list { 04: # endlos schleife 05: while((1)) 06: do 07: # d'variable entry läsä 08: read entry 09: 10: # abbräche wenn leeri igob 11: if [ -z "$entry" ] 12: then 13: break 14: fi 15: 16: # igob $entry ad datei shopping-list.txt ahänge 17: echo "$entry" >> shopping-list.txt 18: done 19: } 20: 21: function show_shopping_list { 22: # d'shopping-list.txt Datei als Array vo Zeichechette läsä 23: shopping_list=( $(cat shopping-list.txt) ) 24: 25: # for schleife zum Arrays abarbeite 26: i=1 27: 28: for entry in "${shopping_list[@]}"; do 29: # nummerierti iträg 30: echo "$i. $entry" 31: 32: # i inkrementiere 33: i=$(($i+1)) 34: done 35: } 36: 37: # Wenn d'Parameter Azahl ungleich 1 isch gib en Fähler Code -1 zrugg 38: if [ "$#" -ne 1 ]; then 39: echo "Illegal number of parameters" 40: 41: exit -1 42: fi 43: 44: # Entweder Ichaufslist azeige oder erstelle 45: if [ "$1" == "show" ] 46: then 47: # Funktion ufrüefe 48: show_shopping_list 49: elif [ "$1" == "create" ] 50: # Funktion ufrüefe 51: create_shopping_list 52: else 53: echo "provide either \"show\" or \"create\" parameter" 54: 55: exit -1 56: fi 57: 58: # erfolg 59: exit 0 60:
Ä Variable chan ei einzigi Speicherstell für ä Zahl oder Zeichechette sie. Denn giets no arrays, das sind logisch zämähängedi Speicherstelle. I Bash sind arrays nur 1-Dimensional und sind dynamisch. D.h. sie wachsed während mor am endi vom Array Iträg hinzuefüegt.
Variable chan mor direkt initialisiere wie z.B. `MY_VAR=42` oder für äs Array `MY_ARR=(value1 value2 value3)`. `declare` isch ä i Bash ibauti Funktion zum explizit z'deklariere.
`export` zum Variable z'exportiere oder `unset` zum de Inhalt lösche.
`readonly` chan mor verwende zum Variable als Konstante z'markiere.
`MY_VAR=()` wäre quasi de NULL pointer i ANSI C.
Inhaltsverzeichnis
`echo ${#MY_VAR}` giet d'Längi vo de Variable us „MY_VAR“.
`echo ${#MY_ARR}` giet d'Längi vom Array us „MY_ARR“.
${VAR:OFFSET:LENGTH} isch s'Muster noch dem ä teil Zeichechette extrahiert wird.
VAR isch de Variable Name.
OFFSET d'Startposition.
LENGTH wieviel Zeiche behalted werdet.
Inhaltsverzeichnis
Diä eifachsti if bedingig isch „if TEST-BEFEHL; then FOLGENDI-BEFEHL; fi“ De TEST-BEFEHL wird usgführt und wenn dä Rückgabewert wohr isch, wird FOLGENDI-BEFEHL usgführt.
Wohrheit wird durch Zahle festgleit. 0 isch immer Falsch und alles ungleich 0 ergiet Wohr.
Tabelle 8.1. Testusdrück
Usdruck | Bedütig |
---|---|
[ -e DATEI ] | Wohr wenn DATEI existiert. |
[ -d DATEI ] | Wohr wenn DATEI äs Vozeichnis isch. |
[ -f DATEI ] | Wohr wenn DATEI ä reguläri Datei isch. |
[ -L DATEI ] | Wohr wenn DATEI än symbolische Link isch. |
[ -z ZEICHECHETTE ] | Wohr wenn ZEICHECHETTE Längi 0 isch. |
[ -n ZEICHECHETTE ] | Wohr wenn ZEICHECHETTE Längi ungleich 0 isch. |
[ ZEICHECHETTE1 == ZEICHECHETTE2 ] | Wohr wenn ZEICHECHETTE1 gleich ZEICHECHETTE2 isch. |
[ ZEICHECHETTE1 != ZEICHECHETTE2 ] | Wohr wenn ZEICHECHETTE1 ungleich ZEICHECHETTE2 isch. |
[ ARG1 OP ARG2 ] | OP isch ä arithmetischi Operation nämlich -eq, -ne, -lt, -le, -gt oder -ge. Was soviel bedüted wie d'Zahle ARG1 & ARG" sind gliech, ungliech, chliener als, cliener gliech, grösser als oder grösser gliech. |
[ ! USDRUCK ] | Wohr wenn USDRUCK falsch isch. |
[ USDRUCK1 -a USDRUCK2 ] | Wohr wenn USDRUCK1 und USDRUCK2 wohr isch. |
[ USDRUCK1 -o USDRUCK2 ] | Wohr wenn USDRUCK1 oder USDRUCK2 wohr isch. |
if Bedingige chönd mehereri alternativi Teil ha mit oder eini ohni Bedingig, die isch überlicherwies am Schluss. „if [ TEST-BEFEHL ]; then FOLGENDI_BEFEHL; elif [ TEST_BEFEHL ]; then FOLGENDI_BEFEHL; else FOLGENDI_BEFEHL; fi“ wär d'Syntax für if-elif-else Bedinging.
D'case Bedingig isch ideal zum parse vo Parameter.
Beispiel 8.1. case Bedinging - Parameter läsä
01: #!/bin/bash 02: 03: do_start=0 04: do_stop=0 05: 06: while [ $# -gt 0 ]; 07: do 08: case "$1" in 09: -s|--start) 10: do_start=1 11: ;; 12: -k|--kill) 13: do_stop=1 14: ;; 15: esac 16: 17: # überprüef nögsti Parameter 18: shift 19: done 20:
Inhaltsverzeichnis
Die Schleife führt für jede Itrag i de liste ä iteration dure. D.h. die spezifiert Variable het en Itrag vo de List vo Afang bis Endi.
Beispiel 9.1. Schleife - for-Schleife für Liste
01: #!/bin/bash 02: 03: # file0.xml ... file9.xml alege 04: touch file{0..9}.xml 05: 06: # alli .xml Dateie i d'Datei list usgeh 07: ls file[0-9].xml > list 08: 09: # for schleife 10: echo "Erstelle Backup: " 11: 12: for f in `cat list`; 13: do 14: cp -v "$f" "$f".bak 15: done 16:
Bash kennt au for-Schleife im C Stil mit initiliasierigs, abbruch und iterations Teil.
Beispiel 9.2. Schleife - for-Schleife C-Stil
1: #!/bin/bash 2: 3: # for schleife 4: echo "Zeige Backup: " 5: 6: for ((i=0; i < 10; i++)) 7: do 8: ls -lh "file$i.xml.bak" 9: done 10:
Inhaltsverzeichnis
`su -` oder `sudo su` um Administrator Zuegang z'becho. Jetzt bisch de Root Benutzer und chasch au Schade im System verursache, sofern d'Installation e gsundi System Resource Berechtigung het.
`ip link` zeigt die momentan Netzwerkkonfiguration a.
`ip addr change 192.168.1.4/24 dev eth0` ändert d'Netzwerkadresse vo eth0 uf 192.168.1.4 für äs Netzwerk mit de Netzmaske 255.255.255.0, die wird durch d'Grössi vom Netz ageh 24.
`ip route add 192.168.1.0/24 dev eth0` füegt ä Route für's Netzwerk mit de Netzmaske 255.255.255.0 für d'Netwerkschnittstell eth0.
`ip route add default via 192.168.1.1` setzt d'Default Route uf d'Netzwerkaddresse 192.168.1.1.
`echo "nameserver 8.8.4.4" > /etc/resolv.conf` setzt de öffentlich Nameserver 8.8.4.4 i de Systemkonfiguration. DNS Afroge passiered jetzt über 8.8.4.4, Informatione zu Adresse vo dim Internet Provider chasch Online Dokumentatione hinzuebeziehe.
`dhclient -v eth0` zum mit em DHCP Server z'kommuniziere um ä dynamischi Netzwerkadresse z'becho.
`modprobe -v ip_conntrack ip_conntrack_ftp` zum lade vo de Firewall Kernelmodule.
`iptables --list` zum alli bestehende Firewallregle ufzliste.
`iptables -A INPUT --protocol tcp --destination-port 22 -j DROP` zum igehendi TCP Verbindige uf dä Port 22 z'blockiere. Port 22 wird per Konvention vom SSH Server verwendet oder alte FTP Server.
`iptables -D INPUT --protocol tcp --destination-port 22 -j DROP` um die obig Regle wieder z'lösche.
`ping 192.168.1.1` erreichbarkeit vo dä Netzwerkadresse 192.168.1.1 überprüefe, Ping benutzt dezue s'ICMP Protokol.
`traceroute 8.8.4.4` alli Routing Pfäd ufliste wo zum Nameserver 8.8.4.4 vowendet werdet, dass passiert idem mor aktiv Paket a die Entsprechende Hops schickt.
`arp-scan -l` lokale ARP Scan durchfüehre, zeigt alli aktive Netzwerkschnittstelle a.
`nmap localhost` Port Scan für din eigene Computer durefüehre.
Inhaltsverzeichnis
`wget -c http://xn--krhemann-1za.com/download/free-sounds.zip` um d'Zip-Datei free-sounds.zip vo minere Website abelade. D'Option „-c“ bewirkt, dass de Download wietergführt wird noch Abbruch.
`curl http://xn--krhemann-1za.com/download/free-sounds.zip -o free-sounds.zip` das selbe wie obe mit em Program curl.
`LANG=C.UTF-8 lynx` um dä interaktive Webbrowser lynx z'öffne.
Tabelle 11.1. Lynx Tastekombinatione
Tastekombination | Beschriebig |
---|---|
G | zum ä Internet Adresse izgeh. |
D | Abelade vomne Link. |
Ctrl-G | S'momentane Kommando abbreche. |
Up Pfiel | Vorherige Link. |
Down Pfiel | Nächsti Link. |
Page-Up | Ufwärts fahre. |
Page-Down | Abwärts fahre. |
Q | lynx beende. |
`systemctl start ssh` um de lokali SSH Server starte.
`ssh joelkraehemann@192.168.1.4` um de Benutzer joelkraehemann uf em Computer mit de Netzwerkadresse 192.168.1.4 amelde.
`ssh -X joelkraehemann@192.168.1.4` dasselbe wie obe aber demol mit X11 Wieterleitig. X11 isch äs Fenster System für Linux und erlaubt graphischi Programm über s'Netzwerk usz'füehre. So en Server wo Programm zur Verfüegig stellt nennt mor Awendigsserver.
`scp hallo-welt.sh joelkraehemann@192.168.1.4:/home/joelkraehemann/` kopiere d'Datei hallo-welt.sh über s'Netzwerk zu dem Computer mit de Adresse 192.168.1.4 is Vozeichnis /home/joelkraehemann. Mit em Paramenter „-r“ chan mor Rekursive Vozeichnis über s'Netzwerk kopiere.
Hier e Bispiel Samba Konfiguration wo d'Standard Arbeitsgruppe WORKGROUP vowendet.
Beispiel 11.1. /etc/samba/smb.conf
[global] workgroup = WORKGROUP wins support = yes log file = /var/log/samba/log.%m max log size = 1000 logging = file server role = standalone server obey pam restrictions = yes unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes map to guest = bad user security = user usershare allow guests = yes [homes] comment = Home Directories browseable = no read only = no create mask = 0775 directory mask = 0775 valid users = %S
`adduser --create-home --password PASSWORT admin` dä Befehl erstellt en Benutzer mit em Login admin und em Passwort PASSWORT, däbie wird s'Homeverzeichnis agleit. Das wär denn „/home/admin“.
`smbpasswd -a admin` erstellt de Samba Benutzer admin mit Password, wo denn igeh werde muess und mit Entertaste bestätige.
`systemctl restart smbd` zum dä Samba Daemon neu z'starte.
`smbclient -L localhost -U admin` zum Teste vom Zuegriff mit em Benutzer admin, mo mue selbe Passwort vom Erstelle ageh.
`mount -t cifs //192.168.1.4/admin /mnt -o username=admin,password=PASSWORT,domain=WORKGROUP` dä Befehl bindet d'Freigob vom admin is Vozeichnis „/mnt/lfs“ i.
`apt search samba` zum Paket sueche wo samba im Name oder Beschriebig hend.
`apt install smbclient` s'Paket smbclient installiere.
`dnf search samba` zum Paket sueche wo samba enthalted.
`dnf install samba-client` s'Paket samba-client installiere.
`zypper search samba` zum Paket sueche wo samba enthalted.
`zypper install samba-client` s'Paket samba-client installiere.
Inhaltsverzeichnis
`lxc-ls` listed alli vofüegbare Container uf.
`lxc-create -n ubuntu-focal -t ubuntu -- -r focal` erstellt än Container ubuntu-focal ahand vonere Vorlag ubuntu für s'Release focal.
Falls obe en Fehler uftritt wägem Ubuntu Schlüsselbund wo fehlt, chasch de installiere uf debian mit dem Befehl: `apt install ubuntu-archive-keyring`.
Beispiel 13.1. lxc-create Usgob
Current default time zone: 'Etc/UTC' Local time is now: Thu Mar 26 16:53:47 UTC 2020. Universal Time is now: Thu Mar 26 16:53:47 UTC 2020. ## # The default user is 'ubuntu' with password 'ubuntu'! # Use the 'sudo' command to run tasks as root in the container. ##
Obe isch en Usschnit vo dä Usgob vom verherige Befehl `lxc-create`. Do drus chan mor entneh dass de Benutzer für de Container ubuntu heisst und s'Passwort ebefalls ubuntu. Zum Root Privileg z'erlange `sudo su` verwende.
`lxc-start -n ubuntu-focal` started de Container mit em Name ubuntu-focal.
`lxc-stop -n ubuntu-focal` zum dä Container stoppe.
`lxc-attach -n ubuntu-focal` zum in Container z'wechsle.
`lxc-destroy -n ubuntu-focal` zum dä Container z'lösche.
Inhaltsverzeichnis
`qemu-img create -f qcow2 debian-buster.img 40G` zum ä Virtuelli Festplatte mit em Name „debian-buster.img“ z'erstelle. Das Abbild het s'Format „qcow2“ und d'Grössi 40 Gigabyte.
`wget -c https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso` zum s'Netzwerkinstallations Medium vo debian abez'lade.
`qemu-system-x86_64 -m 2048 -hda debian-buster.img -nic tap -cdrom debian-10.3.0-amd64-netinst.iso -boot d` zum d'Virtuelli Maschine z'starte. Diä VM het 2048 Megabyte Arbeitsspeicher, ä NAT Netzwerkschnittstell und booted vomene ISO Image.