Berny’s Knowledgebase > Betriebssysteme > Linux > Alle Distributionen
CD brennen (Kommandozeile)
für 1:1-Kopie
dd if=/dev/cdrom1 of=test.iso
oder aus Filesystem
mkisofs -iso-level 3 -o test.iso ./bin
cdrecord -eject -v dev=2,0,0 test.iso
oder
cdrecord -eject -v dev=/dev/cdrom test.iso
Duplicate rpm’s entfernen
gelöschte Partitionen wiederherstellen
Knoppix (http://www.knoppix.org/) booten
testdisk verwenden
Typ der Platte: intel
Booten im Single-User-Mode
Falls die Root-Partition nicht schreibbar ist:
mount -o remount,rw /
Nicht alle CPUs nutzen
Auf einem System sollen nicht alle vorhandenen CPUs benutzt werden, z. B. aus Lizenzgründen
in /etc/grub/grub.conf den Paramer maxcpus verwenden, z. B.
kernel /vmlinuz-2.4.9-e.62smp ro root=/dev/cciss/c0d1p1 maxcpus=2
weiter Infos siehe:
man bootparam
Swap-Space vergrößern
Wieviel swap wird aktuell benutzt?
free
Auf welcher Partition bzw. welchem Volume liegt der Swap-Space?
grep swap /etc/fstab
Jetzt kommt es darauf an, ob man logical Volumes verwendet.
swapoff -a
Volume mit Hilfe von LVM vergrößern, siehe https://tldp.org/HOWTO/LVM-HOWTO/extendlv.html
mkswap <Device> swapon -a free
mit fdisk eine zusätzliche Swap-Partition anlegen, dabei mit t den Type auf 82 (für swap) ändern und anschliessend mit w abspeichern. Ggf. ist danach ein Reboot nötig.
neue swap-Partion zusätzlich in /etc/fstab eintragen (entsprechend dem schon vorhandenen Eintrag)
mkswap <neue Swap Partition> swapon -a free
ulimit
Diverse Limits sollen geändert werden.
ulimit -a
Alle Limits fuer den aktuellen Benutzer anzeigen
ulimit -n
(oder andere Optionen) ein speziellen Limit anzeigen
ulimit -n 32000
(oder andere Optionen) setzen
Wie hoch ein nicht privilegierter User die einzelnen Werte setzen darf ist definiert unter
/etc/security/limits.conf
Prozeß nachträglich nice machen
top
aufrufen, r drücken, PID eingeben, Prio eingeben
Tastatur-Emulation
wenn Funktionstasten über Telnet/SSH nicht funktionieren:
Esc-3 entspricht F3 usw.
Whois
rausfinden, auf wen eine Domain oder ein Netzwerkbereich reserviert ist
whois -h whois.internic.net <domain>.(com)|(net)|(org) whois -h whois.denic.de <domain>.de
Server-Anwendung direkt ansprechen
Wenn wir eine beliebige Server-Anwendung (HTTP, SMTP, …) zu Testzwecken direkt ansprechen wollen, tun wir das üblicherweise mit
netcat <hostname> <port>
oder (je nach Distribution) auch mit
nc <hostname> <port>
hilfsweise auch
telnet <hostname> <port>
Handelt es sich um eine SSL/TLS-verschlüsselten Dienst, hilft
openssl s_client -connect <hostname>:<port>
DHCP leases
Leases die in DHCP-Client von einem DHCP-Server erhalten hat, stehen in
/var/state/dhcp/dhcpd.leases
Das File sollte nicht manuell geändert werden, kann aber problemlos gelöscht werden, um den Client dazu zu zwingen, bei der nächsten Anfrage ein (vollständig) neues Lease anzufordern.
Runlevel-Editoren
Um Daemons zu Runlevels hinzuzufügen oder sie zu entfernen, können (statt manuell Symlinks in /etc/rc?.d/ zu setzen oder zu entfernen) auch Runlevel-Editoren eingesetzt werden.
rcconf --dialog
oder
update-rc.d
chkconfig
Timestamp in EXIF-Informationen von JPG-Bildern ändern
Viele Bilder-Datenbanken verlassen sich nicht auf den Timestamp der Datei, sondern lesen Erstellungsdatum und -uhrzeit aus den EXIF-Headern von z. B. JPG-Bildern aus.
Was tun, wenn Datum oder Uhrzeit in der Kamera bei der Aufnahme falsch eingestellt waren? Die Bilder-Datenbank zeigt die betroffenen Bilder dann immer zeitlich falsch einsortiert an.
Ich bevorzuge zum Ändern die Kommandozeilenlösung:
(zunächst wird mit Änderungszeitpunkt der Datei angepasst - im Beispiel auf 15.11.2008 15:20 Uhr - und dann im nächsten Schritt der Timestamp der Datei in den EXIF-Header kopiert)
touch -t 0811151520 <filename> jhead -dsft <filename>
Festplatten-Image mit mehreren Partitionen mounten
Sie haben - z. B. mit dd oder ddrescue - ein Image einer ganzen Festplatte (mit mehreren Partitionen) erstellt. Wie kann man die einzelnen Partitionen jetzt mounten?
kpartx -l <imagefile>
zeigt eine Übersicht der enthaltenen Partitionen an.
kpartx -a <imagefile>
mappt die Partitionen auf Loop-Devices loop0p1, loop0p2,…
mount /dev/mapper/lppo0p1 /mnt/tmp/ -o loop,ro
mountet eine der Partitionen.
kpartx -d <imagefile>
entfernt die Device-Mappings wieder. Vorher unmounten!
Bedienung von info-Seiten
Manche Linux-Befehle haben neben der obligatorischen Man-Page oder als Alternative eine oder mehrere Info-Pages, die dann zu erreichen sind über
info <Befehl>
also z. B.
info screen
Info ist dabei etwas sperrig in der Bedienung:
Pfeiltasten |
scrollen |
Leertaste |
eine Seite nach unten |
Tab |
springen zum nächsten Link |
Backspace oder Del |
zurück |
n |
nächstes Kapitel |
p |
voheriges Kapitel |
Wo immer die Möglichkeit besteht Pakete nachzuinstallieren, ist es empfehlenswert pinfo zu benutzen, es hebt Links farbig hervor und bedient sich auch sonst recht flüssig im Stil von lynx.
Magic Sysrequest Keys
Wenn ein Linux-System auf keinerlei Benutzereingaben mehr reagiert, heisst es nicht unbedingt, dass es abgestürzt ist. Vielleicht verbraucht nur ein amok laufender Prozess alle Resourcen, sodass das System für nichts anderes mehr Zeit hat. Um das System jetzt wieder in einen sauberen Zustand zu bekommen, braucht man die Magic Sysrequest Keys. Wenn man die Funktionen nutzen will, sollte man zunächst - solange das System noch sauber arbeitet - prüfen, ob diese überhaupt freigeschaltet sind.
cat /proc/sys/kernel/sysrq
Hier sollte eine Zahl größer 0 stehen. Falls nicht, einfach eintragen:
echo 1 > /proc/sys/kernel/sysrq
1 schaltet alle Funktionen frei, man kann aber auch die Summe der Indizes aller erlauter Funktionen (laut unten stehender Tabelle) eintragen. Am besten setzt man den gewünschten Wert gleich in einem Start-Script beim Boot.
Existieret /proc/sys/kernel/sysrq gar nicht, muss der Kernel neu übersetzt werden, mit Option CONFIG_MAGIC_SYSRQ.
Ist das System dann in einem problematischen Zustand, drückt man
Alt+Druck+<Taste>
wobei man <Taste> aus der Tabelle entnimmt.
Taste | Funktion | Index |
---|---|---|
r |
X11 die Tastatur entziehen |
4 |
e |
SIGTERM an alle Prozesse ausser Init schicken (bitte beenden) |
64 |
i |
SIGKILL an alle Prozesse ausser Init schicken (hart abschiessen) |
64 |
s |
Filesystem-Puffer schreiben (sauberen Zustannd herstellen) |
16 |
u |
Dateisysteme read-only mounten |
32 |
b |
Reboot |
128 |
k |
alle Prozesse im aktuellen Terminal beenden |
4 |
f |
speicherfressenden Prozess abschiessen |
64 |
0-9 |
Loglevel festlegen |
2 |
o |
System ausschalten |
128 |
w t q p m l |
um dem System noch diverse Debug-Informationen zu entlocken |
8 |
c |
Reboot über kexec |
8 |
n |
Prioriäten von Echtzeit-Tasks ändern |
256 |
Im Zweifelsfall empfiehlt es sich, die ersten 6 Kommandos in der genannten Reihenfolge auszuführen: Merkhilfe: busier rückwärts
Soft-RAID
Eine hervorragende Einführung zum Thema Soft-RAID (und damit zum Befehl mdadm) bietet c’t kompakt 1/2009 Linux S. 50. Es gibt neben den theoretischen Grundlagen auch Beispiele, die man selber nachbauen kann, darunter sogar eine Anleitung, wie man ein bestehendes Linux in ein RAID umwandeln kann.
Etwas unpraktisch gelöst ist die Einrichtung eines neuen Systems unter Ubuntu mit RAID über diverse Umwege, obwohl das über die Alternate-CD alles auch direkt im Installer möglich ist. (Dann hat man sogar zusätzlich die Möglichkeit, noch ein LVM auf das RAID zu packen.)
Prozesse an eine (oder mehrere) CPUs binden
Dazu dient das Kommando taskset. Es kann gleich beim Start verwendet werden:
taskset -c 0 <command>
bindet den Befehl <command> an die CPU 0
taskset -c 0-2 <command>
bindet ihn an die CPU 0, 1 und 2, d. h. bei einer 4-Kern-Maschine wird ein Core freigehalten.
Oder man kann taskset auch nachträglich anwenden. Erst mal abfragen:
taskset -p <PID>
nachträglich binden:
taskset -p 1 <PID>
Weitere Infos wie fast immer in
man taskset
Warnung: Mit der Bindung an CPUs kann man die Gesamt-Performance durchaus auch verschlechtern, da der Scheduler (der seinen Job normalerweise recht gut macht) nicht mehr so kann, wie er gerne wollte. |
Bash
siehe Bash
Zsh
siehe Zsh