An der VHS Braunschweig findet eine Schulung im Rahmen der Mitarbeiterfortbildungen der TU Braunschweig zum Thema "Linux - Grundlagen" statt.
Das alternative Betriebssystem Linux hat sich im professionellen als auch im privaten Umfeld etabliert. Hierfür stehen beispielhaft Linux-Distributionen wie Debian oder Ubuntu.
Wir wollen praxisorientiert Fertigkeiten zur Installation, Administration und Verwaltung kennenlernen.
Neben der grafischen Oberfläche (KDE, Gnome) wird die effektive Nutzung der Kommandozeile (Shell) dargestellt und intensiv praktisch eingeübt:
- Linux-Distributionen, Systemarchitektur
- Linux-Installation und –Paketverwaltungen
- GNU und Unix Kommandos und Tools
- Geräte, Linux-Dateisysteme
- Filesystem Hierarchy Standard (FHS - Linux Ordner)
- Bash Shell, Skripte und Datenverwaltung
- Oberflächen und Desktops
Hier die Rahmendaten unseres Seminars:
Ort: VHS Braunschweig, Raum 2.11
Teilnehmerzahl: 14 TN (Mitarbeiter/Innen der TU Braunschweig)
Zeiten: Mo, 18.06. bis Mi, 20.06.2018; jeweils 09.00 - 16.00 Uhr
Anm.: Nach dem Seminar ist vor dem Seminar: wir bieten im Rahmen der Mitarbeiterfortbildungen der TU Braunschweig - in Kooperation mit der VHS Braunschweig - auch ein "Linux Aufbau"-Seminar (26.+27.09.18) an.
Ich werde unser Seminar in diesem Beitrag wieder ausführlich begleiten...
Ihr Trainer Joe Brandes
Mo., 18.06.18
Montag, 18.06.18, 09.00 - 16.00 Uhr
- Orientierungsphase, TN-Themen, Installationsmedium (Wechselplatte/SSD und Ubuntu 18.04 LTS 64-Bit DVD)
- Linux (oder eigentlich GNU/Linux)
freier Betriebssystemkern (hier: monolithisch, wobei aktuelle Entwicklungen nicht mehr nur starr monolithisch vs. Microkernel lauten; siehe Wikipedia-Artikel Link)
engl.: Kernel (siehe Website für den Kern auf kernel.org - Lizenz GNU Public License
erste öffentliche Erwähnung durch Linus Torvalds in Newsgroup comp.os.minix am 26. August 1991 (Wiki-Link L. Torvalds) - Distributionen - Übersicht und Auswahl
Debian - Nummer 1 bei den Server-OS für Web-Services und Co
Ableger: Ubuntu, Ubuntu-Varianten (Derivate: Kubuntu, Edubuntu, Mythbuntu, ...)
Red Hat - Firma mit Serverlizenzen Red Hat Enterprise Linux
Ableger: Fedora mit den offenen/freien SW-Paketen, CentOS
Novell - SLES Suse Linux Enterprise Server
Ableger: openSUSE - freie Community-Variante (siehe de.opensuse.org) - mit Version 42.1 hat Novell die Entwicklungspfade von SLES und openSUSE zusammengelegt (s. Versionen: 13.1 - 13.2 → 42.1 - 42.2 - 42.3)
Distro Ableger der Distro Paketmanagement Red Hat
(Link)Fedora, CentOS
Kaufversion: RHELRPM (Red Hat Package Management)
Standardtool: rpm (ohne Auflösung Abhängigkeiten),
yumNovell (Suse)
(Link)openSUSE (Link)
Kaufversion: SLESRPM
mit YaST2-SW-Verwaltung, zypper, yumDebian
(Link)Ubuntu, Ubuntu Derivate,
Linux MintDEB (Debian Pakete)
Standardtool: dpkg (ohne Auflösung Abhängigkeiten)
APT-Tools: apt-get, apt-cache, ... , aptitudeListe ohne Anspruch auf Vollständigkeit - siehe z.B. Website Distrowatch !
-
Auswahl der Distribution: Ubuntu 18.04 LTS
Für unser Seminar entscheiden wir uns für die aktuelle Langzeit-unterstützte Ubuntu 18.04 (LTS) Distribution.
Ubuntu Portal: https://www.ubuntu.com/ (unterstützende Entwicklungsfirma: https://www.canonical.com/ )
Deutsches Unterstützerportal: https://ubuntuusers.de/ (inkl. Downloads, Infos, Tutorials, Hilfen, Forum)
Tipp: bei Online-Recherche zu Ubuntu-Themen ist das Ubuntuusers-Portal immer eine gute Quelle.
Wikipedia: https://de.wikipedia.org/wiki/Ubuntu (da kann man auch die Ubuntu-Versionsnamen "bewundern" - Installation Ubuntu 18.04 LTS (Bionic Beaver - Bionischer Biber; beispielhafte Screenshots)
Install-Medium: DVD (Download z.B. https://wiki.ubuntuusers.de/Downloads/ )
Tipp: Installation mit Hilfe eines USB-Sticks: gut 4 mal so schnell - außerdem häufig keine Optischen Laufwerke mehr in aktueller Hardware!
Zeit für DVD-Installation: ca. 10 Minuten; danach natürlich noch Aktualisierungen
Setup-Routine ohne viele "Schalter / Konfigurationsdialoge" mit Konzentration auf das Wesentliche
LTS - Long Term Support bei Ubuntu 5 Jahre (!) - System aktualisieren
in Gnome integriertes Tool: Aktualisierungen
inklusive Konfigurationsmöglichkeiten für Updates: Zeiten, Automatisch/manuell, Update-Versionen (LTS, STS)
Empfehlung: bis auf weiteres auf dem LTS-"Kanal" bleiben
Alternative Update-Techniken folgen (siehe Terminal:sudo apt-get update
,sudo apt-get upgrade
)
Anm.: auf allen Systemen - egal wie diese heißen - ist eine stetige Aktualisierung der genutzten Software (hier: Kernel - Distributionssoftware - Anwendungssoftware) immer wichtig. - Gnome Desktop (kleine Übersicht)
Über Gnome Titelleiste (oben rechts) die Einstellungen für das Ubuntu mittels des Gnome-Einstellungen-Tools erkundet (Ubuntu's "Systemsteuerung")
Beispiele für Konfigurationen:
Bildschirmauflösung für Trainer-Beamer-Bild angepasst,
Energieeinstellungen (Bildschirm abdunkeln inkl. Wiederanmeldung deaktiviert),
Tastatureinstellungen (z.B. Druck-Taste für Screenshots im Ordner ./Bilder ; Anm.: Super-Taste ist Windows-Taste), ...
Gnome Dock - die Favoriten nach eigenenen Wünschen angepasst
Tipp: aktuelle Programme einfach per Rechte Maustaste zu Favoriten hinzufügen - nicht gewünschte Favoriten entsprechend entfernen
Tipp: Fenster mit gehaltener Alt-Taste komplett per Maus fassen und verschieben können (nicht nur über Titelleiste)
Alternative Desktop- und Fenstermanager: KDE (siehe openSUSE), XFCE, LXDE, Cinnamon (siehe Linux Mint), FVWM, IceWM, ...
Begriffliche Unterscheidung: Desktop-Manager bringen ausführliche eigene Programme mit (z.B. Office-Tools) während Fenster-Manager "nur" die Grundtechniken zur Fensterverwaltung liefern (siehe www.xwinman.org ).
Anm.: in Seminaren keine Konzentration auf die "Desktops) - also auf spezielle Gnome-Fähigkeiten, Techniken und Konfigurationen - denn später können wir uns ja auch für Alternativen entscheiden! - Dateien - bzw. Dateimanager (Toolname: nautilus)
einfacher Dateimanager mit Übersicht über die Datei- und Ordnerstrukturen des Systems (mehr hierzu später)
kleine Übungen mit Zugriff auf Standard-Ordner, wie man sie auch aus anderen Betriebssystemen kennt: Bilder, Dokumente, Videos
Wichtig - siehe Hover-Infos beim Schweben über Ordner "Downloads":
Anzeige des Pfads/home/joeb/Downloads
(bei User joeb)
Bitte auf die Groß-/Kleinschreibung der Ordner- und Dateinamen achten! (hier: Downloads mit großem D)
Das System hat ein Wurzelverzeichnis "/" (Root-Directory) und kennt keinerlei Laufwerksbuchstaben.
Tipp: Adresszeile öffnen für Anpassung/Eingabe von PfadenStrg + L
Alternative Dateimanager wünschenswert (siehe später gnome-commander, Midnight Commander) - Konsolen / Terminals (tty - Teletyper)
Anm.: hier zusammenstellt - wird in den Seminartagen komplett erarbeitet!
Aufruf von Programmen im Desktop mit Alt + F2 → Programmname
bei Ubuntu:
Terminals 1+2 für Gnome-Desktop
Terminals 3 bis 6 (ohne Desktop) mittels Strg + Alt + F1 ... F6 - zurück zu Desktop mittels (Strg +) Alt + F2
Beenden eines Terminals mittelsexit
(Anm.:logout
nur bei Login-Shells)
erste Gehversuche in der Konsole (shell) mit:ls -a
,ls -al
,cd
,su
,who
,whoami
,ping
,ip, ifconfig
(Paket: net-tools)
Aufrufe von Programmen nur möglich, wenn die Werkzeuge im "Pfad" ($PATH) des Benutzers liegen!
Pfade anzeigen lassen mitecho $PATH
(Pfadvariable)
Anm.: bei Ubuntu sind für den "ersten User" alle wichtigen Pfade für Programme enthalten. - Erste Hilfe in Terminal/Konsole
Man-Pages (z.B.man rm
) oder Befehl mit --help (z.B.rm --help
),
gerne auch Hilfe zur Hilfe mitman man
Alternative:info
Pages oder natürlich Internet-Recherche - Tricks in Terminal/Konsole
Befehle/Verzeichnisse/Dateien mittels Tabulator komplettieren,
mit Cursor-Tasten wiederholen (durchblättern),
nach oben blättern mittels Shift + PgUp (Seite hoch) bzw. Shift PgDown;
die Historie aller Shell-Aufrufe des Users in~/.bash_history
;
Rekursive Suche in History mittelsStrg + R
(vorwärts dann mitStrg + S
)
Löschen der Konsole mittelsStrg + L
Anfang und Ende Kommandozeile mitStrg + A
undStrg + E
Löschen der Kommandozeile von Cursor bis Anfang mitStrg + U
Kopieren und Einfügen (mittlere Maustaste) in der Konsole
Terminalprogramm in Gnome:gnome-terminal
, starten mit Tastenkombination Strg + Alt + T (kann aber auch konfiguriert werden s.o.)
Di., 19.06.18
Dienstag, 19.06.18, 09.00 - 16.00 Uhr
- Rekapitulation, TN-Fragen
- Verzeichnisstruktur
(eine kurze Übersicht - siehe auch ausführlicher Beitrag zu FHS auf Wikipedia)/bin
- Binaries, ausführbare Programme/boot
- Kernel vmlinuz (komprimiert, mehrere Versionen mit Nummern), initrd (Ramdisk)/boot/grub2
- Bootmanger (hier nicht konfigurieren - siehe /etc/default/grub)/dev
- Geräte (/dev/fd0, /dev/sr0, /dev/sda, /dev/sdb, /dev/null, /dev/urandom, ...)/etc
- Konfigurationen (/etc/fstab, /etc/hosts, /etc/hostname, viele Konfigurations-Unterordner: /etc/skel, ...)/etc/X11
- der Ordner für den X-Server (Grundtechnik Grafikausgabe)/home
- Benutzerprofile (/home/username)/lib
- Programmbibliotheken (Libraries; siehe auch /lib64)/lost+found
- bei journaling File Systems Daten für Fehlersuchen/Behebungen (siehe auch Toolreihe fsck)/media
- klassischer Mountpoint für Wechselmedien (bei Ubuntu genutzt, bei openSUSE nicht mehr vorhanden)/run/media/username
- neuer Mountpoint für Wechselmedien bei openSUSE und Co/mnt
- Mountpoint (der alte Standardmount für manuelle Mounts)/opt
- optionale Software (hier am Beispiel XAMPP Lamp Server - Link); auch: kommerzielle Software/proc
- Prozesseverwaltung (siehe Ordner mit PID-Nummern)
Übung: cat /proc/meminfo ; cat /proc/interrupts ; cat /proc/cpuinfo/root
- Homedir für SuperUser root/sbin
- Programme mit hohen Privilegien (SuperUser)/srv
- Serverdienste (Verzeichnisse z.B. für Webserver - diese findet man gerne auch unter /var/www ;-)/tmp
- Temporärer Ordner; gemeinschaftlich im System (später: besondere Zugriffsrechte)/usr
- Großteil der installierten Software im System (Unix System Resources)/var
- Variable Daten
Unterscheidung/Gruppierung von Daten auf Unix/Linux Systemen gemäß
File Hierarchy Standard (FHS):
→ veränderliche / dynamische vs. statische und
→ gemeinsam genutzte vs. nicht gemeinsam genutzte Verzeichnisse
gemeinsam nutzbar nicht gemeinsam nutzbar statisch /usr
/opt/etc
/bootdynamisch /var/mail
/var/spool/news/var/run
/var/lock
beispielhafte Darstellungen: Linux Community - Linux User Zeitschrift (Link - Linux User Ausgabe 11 / 2011) - Dateiberechtigungen
in detaillierter Liste (ls -l
)die Berechtigungen r (read), w (write), x (eXecute) für
u - Benutzer/Besitzer (u - user),
g - Gruppe (g - group) und
o - "alle Anderen" (o - others) hergeleitet,
Standard-Berechtigungen in der (oktalen) Form 755 oder 644 erläutert (technisch 3 mal 3 Bit = 9 Bit)
Hinweis aufumask
(hier: 0 022) mit
Standardberechtigungen für Ordner (777 - 022 = 755) und Dateien (666 - 022 = 644)
Befehl chown (bzw. chgrp) zum Ändern von Besitzer und/oder Gruppechown -R www-data:www-data /var/www/html
(z.B. Web-Dok-Ordner html für Apache2 User:Gruppe konfigurieren)
Anm.: chown kann auch einfach Gruppe setzen mitchown :groupname
Befehlchmod
eingeführt und nachrecherchiert (für Gruppenchgrp
);
Beispiele:chmod -R 750 testordner
(Ordner testordner rekursiv auf 750)chmod u+x skript.sh
(Datei skript.sh für Benutzer/Besitzer ausführbar machen)
Alternativ: Berechtigungen mittels Eigenschaften Dialogfenster mit Dateimanager angesehen (Rechte Maus - Eigenschaften)
Übung mit "chmod" bzw. Dateiberechtigungen über Dolphin (Dateimanager) und Eigenschaften:
Ordner/home/dienstag
mit Berechtigungen 750 (oder sogar 700) ausstatten, und Tests mit ls mit anderen Usern (joeb, mittwoch)
Fürchmod
(Change Modus) an Unterordnern muss -R (Achtung: hier großes R für --recursive) gesetzt werden.
Bei Dateimanager muss ggf. ein Haken für das Anwenden auf die Unterordner aktiviert werden.
Sonder-Berechtigungen:
zusätzliche 3 Bit Berechtigungen "links" von den 3*3 "rwx-Bits":
→chmod 4740
SetUID (Set UserID Bit)
→chmod 2644
SetGID (Set GroupID Bit)
→chmod 1777
Sticky-Bit
Beispiel SetUserId-Bit - Passwortänderungstoolpasswd
:- rwsr----- root shadow /usr/bin/passwd
(siehe Besitzer: root)
Sinn: auch normale User müssen Passworte für sich wechseln können - dazu braucht man aber Schreibzugriffe root auf Passwort-Datei/etc/shadow
!
SetGroupId-Bit: dasselbe Verhalten bei Ausführung von Programmen mit Gruppen-Rechte-Übernahme
Beispiel Sticky-Bit - Temporärordner/tmp
:d rwxrwxrwt root root /tmp
der Temp-Ordner für Alle - im wahrsten Sinne, aber durch Sticky-Bit werden Dateien/Ordner-Berechtigungen und Besitz/Gruppe mit in den Ordner /tmp transportiert und sind so gegen die anderen Nutzer von /tmp schützbar - Benutzer- und Gruppenverwaltung (Teil I)
mittels Terminal aktuelle Benutzer und Gruppe analysiert;
Systembenutzer/Gruppen müssen erst extra ausgewählt (gefiltert) werden;
Anzeige zu Benutzern mittels Befehlenwhoami, who, id, groups
Dateien der Benutzer/Gruppen:/etc/passwd, /etc/shadow, /etc/group
Inhalte und Aufbau der Dateien erläutert und recherchiert;
Rechte analysiert und Benutzer- und Gruppen-IDs kennen gelernt;
weitere Benutzereigenschaften: Home-Dir-Pfad, Shell (Standard/bin/bash
; speziell: siehe www-data:/bin/false
), Sekundäre Gruppen
Abschlussübung:
neue Benutzer mit Ubuntu-Spezialscriptsudo adduser benutzername
angelegt und angemeldet und getestet
Tests mit gegenseitigen Zugriffen der Benutzer - hier ist "Lesen/Stöbern" in anderen Home-Dirs möglich
Wir werden erst mehr über die speziellen Berechtigungen lernen
siehecat /etc/shadow
mit normalem Benutzer → keine Anzeige mit Hinweis "Keine Berechtigung" - Benutzer-"Wechsel" (eine Zusammenfassung)
su
,su -
Switch User (mit - geschieht Wechsel in das Home-Dir)sudo
(quasi ein "Ausführen als") - ist in Ubuntu vorkonfiguriert (siehe Gruppe sudoers/bzw. sudo und Konfigurationen in /etc/sudo)
Ubuntu: Benutzer werden durch Eingabe "ihres" Kennworts zu root! - Benutzer- und Gruppenverwaltung (Teil II)
Tools für Benutzer- und Gruppenerstellungen / Anpassungen:useradd
,usermod
,userdel
,groupadd
,groupmod
,groupdel
Empfehlung: vorheruseradd -D
- zeigt die Defaults/Vorgaben für User) mit Home-Dir und anderen Defaultkonfigurationen.
Profitipp: die Konfiguration für Standarduserumgebung kann mit/etc/default/useradd
vom root angepasst werden!
beispielhafter 2-Zeiler für Benutzererstellung (auf beliebigem Linux):
#useradd -m -c "Teilnehmer 01"
-s /bin/bash
tn01
# Erläuterungen:-m
erstellt Home-Dir;-c
langer Benutzername;-s
Shell für Benutzer
#passwd tn01
(Passwort setzen) - Übungsphase / Rekapitulationen der Inhalte Tag 01 + Tag 02 für Teilnehmer
inkl. Fragemöglichkeiten/Topics - tar (Nachfrage von TN - ohne Übungen)
Archivieren, Packen (Tape Archiver; mit Packertechnik)tar cvzf Archiv.tar.gz ./Dokumente
(packen mit gzip)
Tipp:tar cvzf Archiv-$(date -I).tar.gz ./Dokumente
(erstellt Archiv-2018-06-19.tar.gz)tar xvzf Archiv.tar.gz
(entpacken mit gzip)
Wichtig: nach dem Parameter f muss ein/der Datei-/Archivname folgen - alle anderen hier gezeigten Parameter in Reihenfolge frei
c - compress/create
v - verbose (mitteilungsfreudig, "geschwätzig")
z - Kompression Gzip (Alternative: j - bzip2)
f - Dateiname
x - Extrahieren - Paketmanagement: Software verwalten / aktualisieren
Ubuntu verwendet DEB (Debian Packages) mit diversen Tools,
einfache Softwareinstallationen bei Ubuntu mit dem Tool "Ubuntu Software",
Standard-Konsolentooldpkg
; (leider sehr einfach: kann nicht selbstständig Abhängigkeiten auflösen/installieren)
in DEB-basierten Distros besser:apt-get, apt-cache, apt, aptitude, synaptic
Anm.: apt ist moderne Variante zu apt-get/apt-cache und Co; Tools aptitude, synaptic müssen teilweise nachinstalliert werden
Vergleichsseite von RPM (Red Hat Package Management) vs. DEB Techniken und Aufrufen (Link)
Beitrag: Übersicht "Paketmanagement RPM vs. DEB - dpkg / apt-Tools - ein paar Aufrufe und Beispiele
dpkg -l
(listet alle installierten Pakete auf; gerne dann greppen)
System aktualisieren (in zwei Schritten):apt-get update
(aktualisiert Paketinfos)apt-get upgrade
(bietet Softwareaktualisierungen an - nicht verwechseln mit apt-get dist-upgrade)
Pakete suchen und zeigen:apt-cache search <suchbegriff>
(Suchen im Apt-Cache)apt-cache show <paketname>
(Infos zu Paket anzeigen
Mehr Aufrufe und Techniken in gesonderten Übersichten zur Pakettechnik mit Linux (s.o.) - Midnight Commander (installiert mit
apt-get install mc
oderapt install mc
)
aufrufen in Shell/Konsole mitmc
(Liste mit Funktionstasten / Aktionen in Statuszeile unten)F10
zum Beenden;Strg + O
zum ein-/ausblenden des Commander-FenstersTab
wechselt zwischen Teilfenstern
Tipp Gnome: für dasgnome-terminal
in den Eigenschaften die Funktionstaste F10 deaktivieren, sonst schließt man mit F10 beim Midnight Commander nicht das Programm, sondern öffnet das Menü des Gnome Terminals.
Mi., 20.06.18
Mittwoch, 20.06.18, 09.00 - 16.00 Uhr
- Rekapitulation, TN-Fragen und Themen
- Rekap-Übungen zu Installationen
cowsay, lolcat, cmatrix, fortune-mod, bisschen Spaß ;-)
xeyes (mit &) - über Paket x11-apps schon installiert
Basisbefehle: (siehe eigenen Beitrag zur Paketverwaltung auf diesem Portal)
apt search , apt show , apt install
TN-Thema: manuelle Installation einen DEB-Pakets "Matabolite Detector" der TU Braunschweig
Installationspaket.deb von Website herunterladen
Installation mittels dpkg -i paketname.deb zeigt Fehlermeldungen zu fehlenden Paketen (Qt: core, gui; Dummy-Pakete)
Reparatur der Installation zeigt dann fehlerhafte Verlinkung zu einer Systembibliothek
→ Anleitung nötig für Vorgehensweise der manuellen Installation mit passendem Linux-OS und den einzelnen Schritten zur Installation/Inbetriebnahme - Wechselmedien: USB und DVD
Mounten - Inbetriebnahme von Datenträgern
Hinweis: heutzutage bei allen Wechselmedien (optische, USB) automatisches Mounten durch User (technisch: im Userspace → FUSE)
Das Einbinden von Datenspeichern/Datenträgern und anderen Komponenten (siehe virtuelle Systeme) in das System:
Befehle: (Geräte/Datenträger werden automatisch erkennt und per Klick gemountet)mount
(der eigentliche Hauptbefehl zum Einbinden von Laufwerken/Mounten)
Beispiel:mount /dev/sr0 -t udf /mnt/dvd
(früher: Type -t iso9660)umount
(Mounten beenden)
Beispiel:umount /dev/sr0
Aktuellen Mount-Status anzeigen:mount
ohne Parameter (oder natürlich alternativ:cat /etc/mtab
cat /etc/mtab | grep ^/dev/
(nur die Einträge mit /dev am Anfang - also Geräte)
Anweisungen für das System zum Mounten beim Systemstart:cat /etc/fstab
Darstellung der Techniken und Vorgehensweisen mit einem USB-Stick
Tools:fdisk
,mkfs.ext4
,mount
Alle Analysen mit Hilfe von: (Partitionstools fdisk bitte mit Vorsicht nutzen)lsblk
,blkid
,fdisk -l
,cfdisk
- Partitionen: ein kurzer Einblick
Festplatten (alt, EIDE):/dev/hda
, /dev/hdb ; mit Partitionen/dev/hda1
,/dev/hda2
, ...
Datenträger (HDD, SSD, USB-Medien):/dev/sda
, /dev/sdb ; mit Partitionen/dev/sda1
,/dev/sda2
, ...
Optische Laufwerke:/dev/sr0
, /dev/sr1 , ...
Hinweis: aktueller Virenjäger aus dem Hause Zeitschrift c't "desinfect 2018" ist eine Linux-Live-DVD mit Anzeige der verbauten Datenträger in der Linux-Logik (also mit /dev/...)! - Terminalübungen: Dateien und Ordner
Tools in Aktion:
cd (Verzeichnis wechseln - change Directory) , touch (Datei erstellen) , mkdir (erstelle Verzeichnis - make Directory; s.a. mkdir -p ) , rm (löschen - remove; s.a. rm -R Ordner löschen) - Skript "Hallo Welt"
ein einfache Textdokument als Skript (in erster Zeile: Shebang - Link){code lang:bash showtitle:false lines:true hidden:false}#!/bin/bash
# Kommentar
datum=$(date -I)
echo $datum{/code}Wichtig:
das Skript liegt bei uns im Pfad/home/joeb/Dokumente/skript-hallo-welt.sh
der Aufruf muss also
relativ:./skript-hallo-welt.sh
oder
absolut:/home/joeb/Dokumente/skript-hallo-welt.sh
erfolgen,
da das Skript nicht in unserer Pfadliste (sieheecho $PATH
) liegt!
Und selbstverständlich muss das Skript "ausführbar" gemacht werden:chmod u+x skript-hallo-welt.sh
(dann klappt auch endlich das Vervollständigen mit Tab ;-) - Prozesse in Linux
Starten von Programmen in der Konsole im Hintergrund (Background - bg):gedit mittwoch.txt &
bzw. natürlich auch:sudo gedit /etc/hosts &
Konsole meldet Prozess-ID; Recherche im Verzeichnisbaum:/proc/...
(Ordner mit PIDs)ps
in Kombination mitgrep
zum Suchen bestimmter laufender Prozesse (z.B. sshd)
Befehle:fg
,bg
,jobs
,ps
ps ax | grep firefox
(bitte wieder anps --help
undman ps
denken)
hier: grep für "Filtern" von Daten (Wikipedia Link - global regular expressions print)
Tools:ps, pstree, pstree -p, top,
(Signale beachten; "Overkill SIGKILL" mit -9 möglichst vermeiden, Standardsignal SIGTERM ist -15)
killkillall
kann auch mit Prozessnamen agieren:killall xeyes
Prozesseigenschaften:
PID, Status (running, sleeping, zombie)
Tipp: Grafische Übersicht mit Tool "Systemüberwachung" (oder Aufruf/Suche/Aktivitäten mit System... oder direkt mitgnome-system-monitor
) - Netzwerk: eine kleine Toolsammlung
Befehle Netzwerktechnik:ping -c 10 www.bahn.de
traceroute www.vhs-braunschweig.de
Analysewerkzeuge:ip, route, dig
,host
,nslookup
,arp
,ifconfig
(auch Konfigurationen),iwconfig
(für WLAN)
Konfiguration DNS-Namenserver:/etc/resolv.conf
(natürlich auch alles per NetworkManager einstellbar)
manuelle Namensauflösung für Seminarnetz mit/etc/hosts
(Rechnernamen linux01, ..., linux17)
Zusammenfassung Netzwerkanalyse mit Linux:
IP-Konfiguration Shellaufrufe IPv4-/IPv6-Adresse
Subnetmaskip address show
(zeigt immer alle NICs)ip a s
(kurze Variante)/sbin/ifconfig
Standardgateway
(bzw. Router)/sbin/route -n
hier: in Spalte Flags das G suchen - dann Spalte Routerip route show
ip r s
(kurze VarianteDNS-Server cat /etc/resolv.conf
hier: Zeile mit "nameserver" analysieren
aber: Datei wird bei modernen Linuxen automatisch von Network
Techniken erzeugt und soll nicht mehr editiert werden (s. Zeile 1).
Erklärung zu "nameserver 127.0.0.53":
als Namesolver dient systemd-resolvd als Dienstpartner für DNS!
Den nächsten genutzten DNS-Server ermittelt man mit:systemd-resolve --status
- Screenshot-Sammlung Trainer Joe Brandes
über Public-Freigabe (Samba-Server) für TN
Netzwerkpfad:smb://10.100.200.1/public
per Dateien (nautilus - Strg+L)
in Schulungsnetz auf Samba-Server für TN bereitgestellt - Linux - Aufbauseminar, 2 Tage: 26.+27. September 2018; Ankündigung:
Sie bauen Ihre Fertigkeiten im Umgang mit dem Betriebssystem Linux aus und lernen administrative Linux-Techniken kennen: Administrative Aufgaben (Bash Shell), Grundlegende Systemdienste, Netz-Grundlagen, Sicherheit, Ihre Themen und Fragen
Thema aus TN-Kreis:
Suchen und Filtern in Protokollen/Loggings mit Linux - Letzte Fragen, TN-Bescheinigungen, Feedback
Terminal-Extra
Befehlssammlung zur Konsole/Terminal: (in lockerer "Schüttung" ;)
Eine Auflistung von Konsolenbefehlen gruppiert nach Themengebieten:
Dateien und Ordner | |
touch | Datei erstellentouch datei.ext |
mkdir | Ordner erstellen (make Directory)mkdir Ordnername mkdir -p Ordner/Unterordner/Ordner (3 Ordner in einem Rutsch) |
ls | Ordner/Verzeichnis auflisten (list)ls -al |
cd | Verzeichnis wechsel (change directory)cd ~ cd - cd ordner-bzw-pfad |
mv | Dateien/Ordner verschieben/umbenennen (move)mv test01.txt test-old.txt |
rm | Dateien/Ordner löschen (remove)rm test.txt rm -R Ordnername (rekursiv) |
ln | Links erstellen (Soft- / Hardlinks)ln -s ../../ordner linkzuordner (Softlink Ordner)ln -s ../datei.ext dateisl (Softlink Datei)ln datei.ext dateihl (Hardlink Datei) |
pwd | Aktuelles Verzeichnis anzeigen (print working directory)pwd |
tar | Archivieren, Packen (tape archiver; z gzip; j bz2)tar cvzf Archiv.tar.gz Dokumente/ (packen - gzip)tar cvzf Archiv-$(date -I).tar.gz Dokumente (aktuelles Datum)tar xvzf Archiv.tar.gz (entpacken - gzip) |
grep egrep |
Suche und Filterung von Zeichenketten/Dateien (s. regular expressions)ps ax | grep sshd |
chmod | Berechtigungen für Datei/Ordner festlegenchmod 600 test.txt |
chown |
Besitzer und Gruppe (s.a. chgrp) festlegen |
Benutzer und Gruppen | |
whoami | Aktuellen Benutzer anzeigen (dt. Wer bin ich?) |
who, w | Wer ist eingeloggt? |
id | Die IDs von Benutzern/Gruppen anzeigen |
groups | Gruppen eines Benutzers anzeigen |
passwd | Password anlegen/ändern |
useradd, usermod, userdel | Benutzer anlegen, ändern (modifizieren), löschen (delete) |
groupadd, groupmod, groupdel | Gruppe anlegen, ändern (modifizieren), löschen (delete) |
chown | Benutzer für Datei/Ordner ändern (change owner) kann auch Gruppe ändern: sudo chown root:admins adminprojekte/ |
chgrp | Gruppe für Datei/Ordner ändern (change group) |
Konsole, Pager (Anzeigen) | |
cat | einfache Textausgabe von Dateien in Standardausgabecat /etc/passwd |
more less |
Anzeigen von Dateien lassen sich über Pipelining nutzen |
tail |
Ende einer Datei anzeigen Anfang einer Datei anzeigen tail -f /var/log/zypper.log |
dmesg |
Kernelmeldungen ausgebendmesg -T (mit echtem Datum + Uhrzeit) |
journalctl | neues Tool für Systemmeldungen Hinweis: wegen systemd sind viele /var/log/... weg |
exit |
Konsole schließen alternativ: logout (Abmelden aus Login-Shell) |
clear screen |
Konsole löschen (Strg + L) |
find |
einfache Suche im Verzeichnisbaumfind ./test -name "*.php" find . -type f -perm 0664 |
locate |
Dateien nach Name suchen (Datenbank-gestützt) benötigt updatedb |
System | |
su | Benutzerkontext ändern (switch user - auch als kdesu) |
sudo | ausführen als |
ps | Prozesse auflisten (processes) ps ax |
pstree | Prozessbaum |
top | Prozessmanager (table of processes) |
powertop | Tool für Analyse von Energieverbrauchern |
kill killall |
Prozesse beenden (Signale -1, -15, -9) kill 1516 (kill mit PID) killall mc (killall mit Prozessname) |
shutdown | System herunterfahren bzw. neustarten (s.a. reboot) |
runlevel | Aktellen und vorigen Runlevel anzeigen |
init | Runlevel wechseln |
insserv | einen Dienst (bzw. sein init Skript) für einen Runlevel konfigurieren |
lspci lsusb lsmod lsblk |
Geräte auflisten USB-Technik/Peripherie auflisten Moduel (Treiber) auflisten Blockgeräte auflisten |
hwinfo | Hardware Informationen ausgebenhwinfo --gfxcard |
hostname | Systemname anzeigen |
mount umount |
Dateisystem einbinden (mounten) und entfernen siehe: /etc/fstab |
rpm | Paketmanagement (Red Hat Package Management) Achtung: keine automatischen Auflösungen von Paketabhängigkeiten rpm -qa | grep Mozilla |
zypper | das bessere Paketmanagement in der Konsole von openSUSE zypper lr zypper install findutils-locate |
dpkg | Paketmanagement (Debian) z.B. alle installierten Pakete mit dpkg -l |
Auf diesem Portal für "die Profis" noch eine ausführlichere Zusammenstellung von Konsolenbefehlen: Befehlsreferenz.
Vielen Dank für die sehr erfreulichen Feedbacks und persönlichen Rückmeldungen.
Ich freue mich auf unser Aufbauseminar im September.
Ihr Trainer Joe Brandes