Hardware
IRQs
Liste der wichtigsten Interrupts:
| /proc/interrupts zeigt nur Geräte mit geladenen Kernel-Treiber |
IOPorts
Liste der wichtigsten IOPorts:
| /proc/ioports zeigt nur Geräte mit geladenen Kernel-Treiber |
DMA
Informationen zu DMA:
Festplattenzugriff
- CHS = Cylinders Heads Sectors
- Da aus Platzgründen der Registerplatz beschränkt war konnte BIOS nur 1024 Zylinder, 16 Köpfe und 63 Sektoren ansteuern. Das ergab maximal 504 MByte.
- LBA = Logical Block Adressing
- 28Bit = 2^28 * 512Byte = 128 GiB (alte Bios oder Windows 98/ME)
- 48Bit = 2^48 * 512Byte = 131072 TiB = 128PiB (Win2k ab SP3 oder WinXP ab SP1)
- Fat32: 2^28 * 512Byte Clustergröße = 128GiB, 2^28 * 4KiB Clustergröße = 1TiB, 2^28 * 32KiB Clustergröße = 8TiB
MBR
- Im ersten Sektor der Festplatte
- 512Bytes groß
- Endet mit der Byte-Folge 55 AA
- Am Ende 64Bytes für die Partitionstabelle, 16Bytes pro primäre Partition
Partitionstypen
Hardware-Clock setzen und auslesen
PNP-Karten
In einigen Bios können PNP-Karten manuell konfiguriert werden, dazu muss Betriebssystem hat kein PNP-Support im BIOS ausgewählt werden.
Tools zur Konfiguration von PNP-Karten unter Linux:
Soundkarten
Tool zur Konfiguration von Soundkarten:
WinModems
Infos zu WinModems unter Linux: http://www.linmodems.org![]()
Serieller Port
Setzen der Portgeschwindigkeit von COM1:
PCI
PCI ist 32bit breit.
Früher Informationen über /proc/pci, jetzt Verzeichnisstruktur unter /proc/bus/pci
SCSI
- Tagged Command Queuing
- Früher gab es 25-polige SCSI-Stecker
- Weitere Unterteilung nach SCSI-IDs sind LUNs, z.B. CD-Wechsler, aktuelleres Beispiel siehe ISCSI-Storages
- SCSI = 8bit = 3 Adressleitungen = 2^3 = 8 IDs (0-7) = 7 Geräte + SCSI-Karte auf ID 7
- Wide-SCSI = 16bit = 4 Adressleitungen = 2^4 = 16 IDs (0-15) = 15 Geräte + SCSI-Karte auf ID 7
- SCSI-Devicetypen unter Linux: /dev/sd = disk, /dev/scd = cdrom, /dev/sr = raw, /dev/st = tape, /dev/nst = norewind tape, /dev/sg = generic, veraltet, früher für Brenner
USB
- USB-Management übernimmt entweder usbmgr oder hotplug
- usbmgr kann nur USB-Geräte managen
- In /etc/usbmgr/usbmgr.conf sind die Verknüpfungen zwischen Product-ID und Kernel-Modul gelistet
- Module in /etc/usbmgr/preload.conf werden beim Systemstart von usbmgr vorgeladen.
- /etc/usbmgr/host hält Namen des Host-Controller-Treibers (usb-ohci, -uhci, ehci)
- Kernel sendet Info an hotplug und dieser lädt mit Hilfe von Skripten in /etc/hotplug die entsprechenden Module.
- USB erst ab Linux-Kernel 2.2.18
- USB2 erst ab Linux-Kernel 2.4
Host-Controller:
- OHCI usb-ohci.o, UHCI usb-uhci.o (open and universal host controller interface) = USB1.1 = 12Mbit/s
- EHCI usb-ehci.o = USB2 = 480Mbit/s
- Kernel 2.6: uhci-hcd
USB-Klassen:
- Human Interface Device = hid.o (Kernel 2.6: usbhid)
- USB-Stick = usb-storage.o
- Maus/Tastatur: Kernel 2.6: usbmouse, usbkbd
Boot Manager
LILO (LInux LOader)
Lilo-Optionen:
Kernel- und Init-Parameter beim Booten:
Fehlercodes:
/etc/lilo.conf:
GRUB (GRand Unified Bootloader)
/boot/grub/menu.lst:
Linux-System
Init
/etc/inittab:
Diverse Kommandos:
syslogd
- facility: kern, mail, ...
- level: none, debug, warn, err, crit, alert, emerg
ext2/3
Dateirechte
Dokumentation
- apropos durchsucht Kurzbeschreibung der Man-Pages
- whatis wie apropos, jedoch keine Teiltreffer (nur komplette Wörter)
- whereis sucht im Pfad befindliche binäre Dateien (-b), Man-Pages (-m) und Sourcecode (-s).
locate
- Konfiguration in /etc/updatedb.conf
- PRUNEPATH, PRUNEFS: Variable in Konfigdatei, die die Verzeichnisse / die Dateisystemtypen angibt, die von der Suche ausgeschlossen werden sollen.
Packer
- gzip file.txt -c > file.txt.gz
- gunzip = gzip -d
- gunzip -c = zcat
- bunzip, bzip, bzcat das gleiche
ldconfig
- ldd, ldconfig, /etc/ld.so.conf, /etc/ld.so.cache, LD_LIBRARY_PATH
Auflistung aller verfügbaren Shared Libraries:
Paket-Systeme
Debian Paket-Management
- /var/lib/dpkg/info/*: Dateien und Skripte zum Installieren und Deinstallieren der Pakete
- /var/lib/dpkg/status: Status über installierte und wieder deinstallierte Pakete
- /var/lib/dpkg/available: Liste mit allen verfügbaren Paketen
- /etc/apt/sources.list: Quellen für apt-get
- /etc/dpkg/dpkg.cfg: Logging für dpkg
- /etc/apt/apt.conf: Proxy für apt-get
dpkg:
apt-get:
Weitere Tools: dselect, dpkg-reconfigure, alien (alient paket.rpm --to-deb)
RPM Paket-Manager
- Konfiguration in /etc/rpmrc (global, wird nicht überschrieben), /usr/lib/rpm/rpmrc (global, wird beim Update von RPM überschrieben), /usr/lib/rpmrc (veraltet), .rpmrc (Benutzereinstellungen im Homeverzeichnis)
- RPM-Skripte in /usr/lib/rpm
- RPM-Datenbank in /var/lib/rpm
Installation, Update, Deinstallation:
Abfragen der RPM-Datenbank:
DPKG vs. RPM
| Aktion | DPKG Option | RPM Option |
|---|---|---|
| Installieren | -i --install PKGF | -i --install PKGF |
| Updaten | apt-get upgrade | -U --upgrade / -F --freshen PKGF |
| Deinstallieren | -r --remove / -P --purge PKG | -e --erase PKG |
| Status-Infos anzeigen | -s --status PKG | -qi --info PKG |
| Abhängigkeiten eines Pakets | -qR --requires PKG | |
| Inst. Pakete listen | -l --list PKG | -q --query PKG |
| Alle inst. Pakete listen | -l --list | -qa |
| Dateien eines Pakets listen | -L --listfiles PKG | -ql --list PKG |
| Nur Konfig-Dateien listen | -qc --configfiles PKG | |
| Nur Doc-Dateien listen | -qd --docfiles PKG | |
| Paket zu Datei suchen | -S --search FILE | -qf FILE |
| Inst. Paket prüfen | -C --audit PKG | -V PKG |
| Alle -q Optionen mit -p für Paket-Datei statt Paket-Namen kombinierbar! |
Shell
- Umgebungsvariablen werden in Subshells vererbt und werden meist groß geschrieben
- Shell-Variablen werden nicht vererbt und sind klein geschrieben
- /etc/profile: Erste Konfigdatei, enthält PATH, umask, bei Anmeldung eines Benutzers eingelesen
- /etc/bashrc: Kann von .bashrc eingebunden werden, Eingelesen beim Start jeder Shell: Aliase, Funktionen
- ~/.bash_profile: Bei Neuanmeldung des Benutzers direkt nach /etc/profile, PATH-Erweiterung, Standardeditor
- ~/.bash_login: Alternative zu .bash_profile, wird nur ausgeführt, wenn keine .bash_profile vorhanden ist
- ~/.profile: Alternative zu .bash_profile und .bash_login
- ~/.bashrc: Wird bei jeder neuen Shell eingelesen, Benutzerspezifische Einstellungen: Aliase, Funktionen
- ~/.bash_logout: Ausgeführt, wenn Benutzer sich abmeldet
Beliebte Variablen:
Programme identifizieren:
- Stdout und Stderr in eine Datei umleiten: > datei 2>&1 oder &> datei
Wichtige Shell-Tools mit Parameter
| Befehl / Option | Beschreibung |
|---|---|
| cat -A | Alle nicht sichtbaren Zeichen kodiert mit ausgeben |
| fmt -w | Gibt Breite (width) des Textes in Zeichen an |
| nl | Gibt Datei mit Zeilennummern aus |
| pr -h Titel Datei > prfile | Formatierung zum Drucken, der Titel wird oben zentriert angezeigt |
| wc -c -l -w -m | Zählen von Bytes (count of bytes), Zeilen (lines), Wörtern (words) und Zeichen |
| hexdump -C | Ausgabe einer Datei in einer kombinierte (combined) 1Byte-Hex- und ASCII-Darstelung |
| sort -n -r | Nummerische und umgekehrte (reverse) Sortierung der Zeilen einer Datei |
| split -b XXm | Splittet Dateien nach XX Bytes, ohne -b nach XX Zeilen |
| paste Datei1 Datei2 | Kombiniert die Zeilen von Datei1 und Datei2 |
| join -t : -j 1 Datei1 Datei2 | Kombiniert die Zeilen von Datei1 und Datei2 nach der 1 (-j 1) Spalte und trennt die Daten mit : |
| tr za-y a-z | Tauscht Zeichen, hier erhöht alle Buchstaben um 1 |
| mkdir -m 700 /home/user | Erstellt das neue Verzeichnis direkt mit dem Rechten 700 |
| touch -t MMDDhhmm -a -m | Ändern des Timestamps einer Datei, oder nur der Zugriffszeit (acess) oder Änderungszeit (modify) |
| find / -type f -name "test" -print0 | Nach Datei test im kompletten Dateisystem suchen und mit Null-Byte getrennt ausgeben |
| xargs -0 | Elemente nach Null-Byte trennen und hinter einander setzen |
| ps axf | Prozesse in einem Baum anzeigen, ähnlich pstree |
| nice -5 script | Startet einen Prozess mit anderer Priorität, hier mit Prio +5, für -5 muss --5 angegeben werden |
| renice -5 PID | Ändert die Priorität eines laufenden Prozess, hier auf Prio -5, siehe Unterschied zu nice |
| renice 10 -u user1 | Ändert die Priorität aller Prozesse von Benutzer user1 auf 10 |
| grep -ivnE '[OldWiki2:a-z]{2}' datei | caseinsensitiv, nicht zutreffende Zeilen anzeigen (-v), Zeilnummern anzeigen, Erweitere Regexp verwenden |
| sed -e '/^#/d' -e 's/,/;/g' datei | Löscht alle Zeilen, die mit # beginnen und ersetzt alle Kommas durch Semikolons |
| sed -ri 's/a/A/g' datei | Ersetzt alle kleinen a's in große A's direkt in der Datei, mit -r werden erweiterte rexexp verwendet |
| vi file +50 oder +/pattern | Öffnet die Datei und springt zu Zeile 50 oder sucht nach ersten Treffen von pattern |
| fdisk /dev/sda -l | Listet die Partition der ersten SCSI-Festplatte auf |
| mkfs -t ext2 -j -L root -c /dev/sda1 | Erstellt ext2-Dateisystem mit Jounaling (also ext3), setzt ein Label root und check die Partition nach defekten Sektoren |
| fsck -Aycf | Prüft alle Dateisysteme nach Fehlern, repariert sie direkt, checked nach defekten Sektoren und führt die Checks auch aus, wenn das Dateisystem sauber erscheint |
| cat /proc/swaps oder free | Infos über Swap |
| du -sch | Summiert die Größe der angegeben Verzeichnisse auf (-c) und gibt am Ende nocheinmal ein Zusammenfassung von allem (-s), alle Werte human-readable |
| chattr =auAS file | Setzt für file die Dateiattribute, nur anhängen, undeletable (kann wieder hergestellt werden), kein atime Update, sofortiger Sync der Datei |
| stat file | Erweitere Informationen zu einer Datei |
Weitere spezielle Themen
Quota einrichten und nutzen
/etc/fstab anpassen:
Quota-Datenbank erstellen:
Quotas setzen und aktivieren:
Quotas anzeigen:
FHS (Filesystem Hierarchy Standard)
Verschiedene Typen von Dateien nach FHS:
- static: Verzeichnisse wie /opt, /usr/, /boot
- variable: Verzeichnisse wie /home, /var/log, /var/mail
- sharable: Verzeichnisse wie /usr, /opt
- unsharable: Verzeichnisse wie /etc, /boot
X11
- Windowmanager: KWin (KDE), Metacity oder sawfish (Gnome), WindowMaker, FVWM95, twm
- Desktop Environment: KDE, Gnome
- Display Manager: xdm (/etc/X11/xdm-config, /etc/X11/xdm/Xsetup, /etc/X11/Xresources), kdm (/etc/X11/kdm/kdmrc), gdm (/etc/X11/gdm/init/Default, /etc/X11/gdm.conf)
- X11 Konfigdatei: /etc/X11/XF86Config oder /etc/X11/xorg.conf
- Konfigtools: XF86Setup, xf86config (console), xf86cfg, xorgconfig (console), xorgcfg, xvidtune
- Section: Files (FontPath "unix/:7100", RgbPath), InputDevices (Device "kbd", "mouse"), Monitor, Modes (Modeline), Device (Grafikkarte, z.B. Driver "nv"), Screen (Zusammenführung zwischen Monitor und Device=Gfx)
- Screensaver: .xscreensaver
Aufbau einer Section:
Konfiguration von X-Clients: .Xresources
Start von X11:
- Aufruf von startx -> xinit
- xinit sucht nach .xinitrc, danach nach /etc/X11/xinitrc (Starten von X-Clients, wie z.B. Windowmanager)
- xserverrc und .xserverrc Konfigurationen für X-Server
- .Xresources und .Xdefaults für benutzerdefinierte Einstellungen
Entferntes Starten von X-Programmen:
- Druck-Auftrag in Spool:
- cf: controlfile
- df: datafile
- lpr -Plaserjet datei
- lpq -Plaserjet datei
- lprm -Plaserjet ID
- lpc: Syntax: Befehl Warteschlange [OldWiki2:ID]
- start / stop: Drucken starten/stoppen
- enable / disable: Warteschlagen starten/stoppen
- up / down: Kombination aus den beiden obigen
- abort: Aufrag abbrechen
- topq: Job ganz oben in die Warteschlang einreihen
- quit
- grep bla /date | lpr -#8 (8x ausdrucken)
- Konverter mpage: um z.B. mehrere Seiten auf einer zu drucken, versteht auch Grafiken
- Konverter a2ps: ohne Grafiken
- Konverter enscript: Konvertiert auch in HTML, ANSI, RTF
- Druck-Ablauf: lpr -> Queue -> lpd -> Filter (APS- oder Magicfilter) -> PS -> Ghostscript -> Drucker
- /etc/printcap: lp = Name des Druckers, sd = spool directory, sh = supress header, if = input filter (APSfilter oder smbprint), af = accounting file, lf = logfile, mx#0 = maximale Größe eines Auftrags
- Entferntes Drucker: rm = remote machine, rp = remote printer
- Bei CUPS gibt es in der /etc/printcap nur eine Zeile, mit einem remoteprinter, der lokal angeschlossen ist.
- Administration von CUPS: http://localhost:631
(/etc/cups/cupsd.conf), lpadmin (lpc ist sehr eingeschränkt).
Diverses
- kmod: Zum Laden von Kernel-Modulen in Kernel 2.4
- /var/log/boot.log bzw. /var/log/messages enthält Kernel-Meldungen
- lprm, lpq, lpc: Drucker-Tools zum Verwalten der Drucker-Warteschlange
- info ist das von der FSF favorisierte Dokumentationstool
- man-sections: 1 user-cmds, 2 systems calls, 3 C library, 4 Special file names, 5 file format & conventions, (6 games, 7 word preccesing,) 8 sysadmin commands
- shutdown -k oder wall: benachrichtigt alle Benutzer eines Systems
- chkconfig -list: Auflistung aller Runlevels mit verknüpften Init-Skripts
- /etc/hosts.lpd: Steuert, wer auf den Druckserver zugreifen darf
- exportfs -a: Neuladen der /etc/exports
- /etc/default/useradd: Voreinstellungen für useradd
- useradd -D: Voreinstellungen für useradd anpassen
- useradd -m user && userdel -r user: Anlegen des Benutzers samt Homverzeichniss, anschließend wieder samt Homeverzeichnis löschen
- /etc/cron.allow /etc/cron.deny
- tar tvzf test.tgz gibt alle Dateien mit Berechtigungen (-v) des Archivs test.tgz aus.
- /proc/sys/net/ipv4/ip_forward
- /etc/nsswitch.conf: host: file, dns
- named.boot Bind4-Configdatei
- 119 nntp, 161 snmp, 515 printer
- dig @server name type: dig @dns.hpds.de lpi.org mx
- /var/spool/mail: Enthält standardmäßig die Benutzermails
- /var/spool/mqueue
- httpd.conf, src.conf, access.conf: Apache-Konfigdateien
- Listen :80: Port lauschen in Apache-Konfig
- /etc/smb.conf und /etc/samba/smb.conf
- smbadduser und smbpasswd
- tcpdchk prüft /etc/hosts.deny|allow
- passwd -x60 user1 oder chage -M 60 user1: Alle 60 Tage Passwort ändern
- pwconv: Konvertiert Passwörter von /etc/passwd zu /etc/shadow
- /etc/host.conf: order hosts, bind