(An)sammlung nützlicher oft gebrauchte Befehle
Archiv (ent)packen
Ein tar.bz2-Archiv erstellen:
tar cfvj test.tar.bz2 tarfiledir
Ein tar.bz2-Archiv auspacken:
tar xfvj test.tar.bz2 tarfiledir
gerafftes Konfig.-File ausgeben
Konfigurationsfiles können durch die diversen Kommentare bisweilen doch sehr umfangreich und üppig werden. Mittels eines inversen greps kann man sich die aktiven Zeilen einer Konfigurationsdatei anzeigen lassen:
egrep -v '(^#|^$)' /etc/httpd/conf/httpd.conf
Damit werden alle Zeilen übersprungen, die entweder leer sind oder mit einem # beginnen.
bind Namserver
Konfiguration überprüfen
Möchte man die Konfiguration(sdatei) seinen bind-Nameservers überprüfen so nutzt man den Befehl named-checkconf
# named-checkconf
Benutzt man hierbei die Option -p wird, sofern keine Fehler existieren, die Konfigurationsdatei named.conf ohne Kommentare auf der Konsole ausgegeben.
# named-checkconf -p
Versionsabfrage
Will man die Version eines Namservers abfragen, so kann man dies mit Hilfe folgenden Befehls erreichen.
# dig txt chaos version.bind.
Zonenfiles überprüfen
Will man (s)ein Zonenfile überprüfen und/oder die verwendete Seriennummer ausgeben, so nutz man den Befehl named-checkzone
# named-checkzone dmz.nausch.org /var/named/dynamic/dmz-forward
zone dmz.nausch.org/IN: loaded serial 2011100601 OK
Zonenfiles neu laden
Das Neuladen der Zonenkonfigurationsdateien eines DNS-Server, ohne den DNS-Server neu starten zu müssen, erreicht man mit:
# rndc reload
Datum und Uhrzeit
Datum einstellen
Uhrzeit einstellen
Systemzeit in Hardwareclock speichern
Möchte man die aktuelle Uhrzeit in die Hardwareuhr des Rechners übertragen benutzt man den befehl clock mit der Option u und w.
# clock -u -w
Disk- und Fileoperationen
Verzeichnisbelegung abfragen
Einen Überblick über die Verzeichnisse, mit den größten Belegungen verschafft man sich mit Hilfe von:
# du -mx / --max-depth=1 | sort -nr
bzw. an Hand des folgenden Aufrufes:
# du -hx / | sort -rh | more
Aufstellung der größten Dateien abfragen
Eine Aufstellung der Dateien, die größer als 15 MB Platz ver-/gebrauchen bekommt man mit:
# find / -mount -size +15M -printf '%k %p\n' | sort -nr
Aufstellung der zuletzt geänderten Dateien
Zuletzt geänderte Dateien im Verzeichnisbaum auflisten:
# find -type f -printf '%TY.%Tm.%Td %p\n' | sort -nr | more
Aufstellung der reservierten Blöcke im Dateisystem
Eine Aufstellung der reservierten Blöcke in einem Dateisystem bzw. Partition erhält man mit:
# tune2fs -l /dev/mapper/vg_r60-lv_root | grep -i reserved
Reserved block count: 430284 Reserved GDT blocks: 1021 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root)
Aufstellung der freien/belegten Partitionen
Eine Aufstellung der freien/belegten Partition mit Angabe der Größen erhält mit mit dem Aufruf:
# df -h
Dateisystem Size Used Avail Use% Eingehängt auf
/dev/mapper/vg_r60-lv_root
33G 7,6G 24G 25% /
tmpfs 1007M 428K 1007M 1% /dev/shm
/dev/sda1 485M 46M 414M 11% /boot
Möchte man statt der Größe die belegten/freien Inodes abfragen benutzt man die Option i.
# df -hi
Dateisystem Inodes IUsed IFree IUse% Eingehängt auf
/dev/mapper/vg_r60-lv_root
2,1M 120K 2,0M 6% /
tmpfs 216K 9 216K 1% /dev/shm
/dev/sda1 126K 44 125K 1% /boot
Rund ums Netzwerk(en)
Netzwerkinterfaces abfragen
Eine Überblick über die aktiven Netzwerkverbindungen kann man über die beiden Befehle ip und/oder ifconfig erhalten.
$ /sbin/ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:1d:7d:0b:69:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.40/24 brd 192.168.10.255 scope global eth0
inet6 fe80::21d:7dff:fe0b:6938/64 scope link
valid_lft forever preferred_lft forever
3: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
inet6 fe80::200:ff:fe00:0/64 scope link
valid_lft forever preferred_lft forever
$ /sbin/ifconfig
eth0 Link encap:Ethernet Hardware Adresse 00:1D:7D:0B:69:38
inet Adresse:192.168.10.40 Bcast:192.168.10.255 Maske:255.255.255.0
inet6 Adresse: fe80::21d:7dff:fe0b:6938/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:85391 errors:0 dropped:0 overruns:0 frame:0
TX packets:49875 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:113788651 (108.5 MiB) TX bytes:5066516 (4.8 MiB)
Interrupt:185 Basisadresse:0xa000
lo Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
inet6 Adresse: ::1/128 Gültigkeitsbereich:Maschine
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2217 errors:0 dropped:0 overruns:0 frame:0
TX packets:2217 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:3540424 (3.3 MiB) TX bytes:3540424 (3.3 MiB)
virbr0 Link encap:Ethernet Hardware Adresse 00:00:00:00:00:00
inet Adresse:192.168.122.1 Bcast:192.168.122.255 Maske:255.255.255.0
inet6 Adresse: fe80::200:ff:fe00:0/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:0 (0.0 b) TX bytes:10842 (10.5 KiB)
Dazu muss man nicht unbdingt root-rechte haben, wie man im obigen Beispielen sehen kann - hier ist lediglich der volle Pfadname incl. /sbin/ anzugeben.
Netzwerkinterfaces deaktieren
Will man vorübrgehend ein Interface deaktivieren, so nutzt man die Option down beim Aufruf von ifconfig als root.
# ifconfig virbr0 down
Netzwerkinterfaces aktieren
Zum Aktivieren einer Netzerkschnittstelle, für die wir eine Konfigurationsdatei im Systempfad /etc/sysconfig/network-scripts/ haben genügt der Aufruf von ifconfig mit der Option up als root.
# ifconfig virbr0 up
Möchten wir eine Netzwerkschnittstelle aktivieren für die wir keine Konfigurationsdatei vorhalten, oder wenn wir einem netzwerkinterface eine zweite Adresse zuweisen wollen, so müssen wir lediglich die Daten entsprechend beim Aufruf von ifconfig mitgeben. Im folgendem Beispiel weisen wir der Schnittestelle eth0 eine zweite Netzwerkadresse zu:
# ifconfig eth0:1 10.20.10.10 netmask 255.255.255.0 broadcast 10.20.10.255 up
neue Netzwerkadresse via DHCP holen
Soll der Rechner sich eine neue Adresse bzw. seine bereits bestehende Adresse neu holen, so benutzt man einfach folgenden Befehl.
# dhclient eth0
Internet Systems Consortium DHCP Client V3.0.5-RedHat Copyright 2004-2006 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ Listening on LPF/eth0/00:1d:7d:0b:69:38 Sending on LPF/eth0/00:1d:7d:0b:69:38 Sending on Socket/fallback DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 DHCPOFFER from 192.168.10.1 DHCPREQUEST on eth0 to 255.255.255.255 port 67 DHCPACK from 192.168.10.1 bound to 192.168.10.40 -- renewal in 8848 seconds.
Netzwerkroute ausgeben
Zum Ausgaben der vorhandenen Netzwerkrouten stehen die beiden Befehle route und netstat zur Verfügung.
# route -n
Kernel IP Routentabelle Ziel Router Genmask Flags MSS Fenster irtt Iface 82.135.16.28 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
# netstat -rn
Kernel IP Routentabelle Ziel Router Genmask Flags Metric Ref Use Iface 82.135.16.28 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
Netzwerkroute setzen
Mittels route können wir auch das Standard-Gateway (Default-Route) setzen. Im folgenden Beispiel setzenm wir das Default-Gateway auf das Interface ppp0.
# route add default dev ppp0
Möchten wir die Default-Route auf ein Netzwerkinterface setzen so benutzen wir z.B. folgenden Aufruf.
# route add default gw 192.168.10.1
Netzwerkroute löschen
Das Löschen einer Netzwerk-Route geschieht mit der Option del beim Aufruf von route; so löschen wir im folgenden Beispiel die defaultroute.
# route del default
Netzwerkkarte suchen
Hat man mehrere Netzwerkkarten in einem System verbaut, so kann man, vorausgesetzt die Hardwar und der Treiber unterstützen dies, die Karte optisch suchen. Die LEDs der ausgewählten Netzwerkkarte blinken und man kann die gesuchte Karte leicht ausmachen.
# ethtool -p eth2
Rund um RPMs
Importieren eines GPG-Schlüssels
Abfrage aller importierten GPG-Schlüssel
Löschen eines importierten GPG-Schlüssel
Paketnamen nach Einrichtungsdatum
Zur Anzeige aller installierten Pakete, sortiert nach aktualität der Installation/Updates verwenden wir:
# rpm -qa -last
Möchten wir eine alphabetische Liste aller installierter Pakete mit dem Datum der Installation bzw. des letzten Updates, so sortieren wir einfach die Ausgabe:
# rpm -qa -last | sort
Interessiert und die Gesamtanzahl aller installierten Paketem, dann nutzen wir:
# rpm -qa | wc -l
Informationen zu einzelnen Paketen abrufen
Informationen über ein installiertes Paket
Abhängigkeiten eines Paketes anzeigen
Nach einem Paket suchen
Auflistung der Pakete nach deren Größe
Eine Auflistung aller installierten Pakete nach deren Größe erhält man mit:
$ rpm -qa --queryformat '%{SIZE} %{NAME}\n' | sort -nr | more
Dateiliste eines heruntergeladenen RPMs ansehen
Hat man sich ein RPM aus dem WWW heruntergaladen und möchte vor dem Installieren wissen, welche Dateien und Verzeichnisse in dem RPM enthalten sind, benutzt man folgenden Aufruf:
$ rpm2cpio rpmforge-release-0.5.2-2.el6.rf.i686.rpm | cpio -it
einzelne Datei aus einem RPM holen
Will man nur eine einzelne Datei aus einem RPM holen, ohne das komplette RPM zu installieren, so geht man wie, wie im nachfolgenden Beispiel aufgezeigt, vor:
- Im ersten Schritt holen wir uns das RPM auf den lokalen Rechner.
$ wget http://wxtoimg.com/downloads/wxtoimg-2.10.11.i386.rpm
- Dann kucken wir in das RPM, ob die gewünschte Datei auch enthalten ist.
$ rpm2cpio wxtoimg-2.10.11.i386.rpm | cpio -it
- Dann holen wir uns das Objekt der Begierde aus dem RPM.
$ rpm2cpio wxtoimg-2.10.11.i386.rpm | cpio -id ./usr/local/lib/wx/tle/weather.txt
- Zum Schluss sehen wir uns die extrahierte Datei an.
less usr/local/lib/wx/tle/weather.txt
Dateiliste eines installierten Paketes
# rpm -ql Paketname
# rpm -ql dhcp /etc/dhcpd.conf /etc/rc.d/init.d/dhcpd /etc/rc.d/init.d/dhcrelay /etc/sysconfig/dhcpd /etc/sysconfig/dhcrelay /usr/bin/omshell /usr/sbin/dhcpd /usr/sbin/dhcrelay /usr/share/doc/dhcp-3.0.5 /usr/share/doc/dhcp-3.0.5/IANA-arp-parameters /usr/share/doc/dhcp-3.0.5/README /usr/share/doc/dhcp-3.0.5/RELNOTES /usr/share/doc/dhcp-3.0.5/api+protocol /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-authentication-14.txt /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-dhcp-dns-12.txt /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-failover-07.txt /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient-script.8 /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient.8 /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient.conf.5 /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient.leases.5 /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhcp-eval.5 /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhcp-options.5 /usr/share/doc/dhcp-3.0.5/rfc1542.txt /usr/share/doc/dhcp-3.0.5/rfc2131.txt /usr/share/doc/dhcp-3.0.5/rfc2132.txt /usr/share/doc/dhcp-3.0.5/rfc2485.txt /usr/share/doc/dhcp-3.0.5/rfc2489.txt /usr/share/doc/dhcp-3.0.5/rfc951.txt /usr/share/man/man1/omshell.1.gz /usr/share/man/man5/dhcpd-eval.5.gz /usr/share/man/man5/dhcpd-options.5.gz /usr/share/man/man5/dhcpd.conf.5.gz /usr/share/man/man5/dhcpd.leases.5.gz /usr/share/man/man8/dhcpd.8.gz /usr/share/man/man8/dhcrelay.8.gz /var/lib/dhcpd /var/lib/dhcpd/dhcpd.leases
Somit findet man sehr schnell und einfach heraus, wo die
- ausführbaren Programm(teil)e
- Programmdokumentation
- Konfigurationsfiles und -beispiele
liegen.
Nachfrage zu welchem Paket eine Datei gehört
Nur die Konfiguratinsdateien Paketes anzeigen lassen
Nur die Dokumentation eines Paketes anzeigen lassen
ChangeLog eines Paketes anzeigen lassen
Abfrage wann ein Paket zuletzt installiert/upgedated wurde
Rund um Zertifikate
Zertifikat komplett anzeigen
Herausgeber des Zertifikats anzeigen
Zertifikats-Inhaber anzeigen
Gültigkeitszeitraum des Zertifikats anzeigen
Gültigkeitszeitraum des Zertifikats kombiniert anzeigen
Hashwert des Zertifikates anzeigen
MD5-Fingerprint des Zertifikates anzeigen
SSL-Zertifikat überprüfen
SSL-Port auf Zertifikate abfragen
Die Passphrase eines Keyfiles entfernen
Die Passphrase eines Keyfiles ändern
Einen CSR Erzeugen
4096 Bit RSA-Key erzeugen
Key mit einer Passphrase versehen
Ein Certificate Signing Request erzeugen
Ein Certificate Signing Request anzeigen
Zertifikate von PEM nach DER konvertieren
Zertifikate von PEM nach P7B konvertieren
Zertifikate von PEM nach PFX konvertieren
# openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
Zertifikate von DER nach PEM konvertieren
Zertifikate von P7B nach PEM konvertieren
Zertifikate von P7B nach PFX konvertieren
# openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
oder
# openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
Zertifikate von PFX nach PEM konvertieren
Zeichenkette in beliebigen Dateien suchen
Will man nach einer beliebigen Zeichenfolge einer oder mehreren Dateien suchen, so benutzt man:
# find -name "*" | xargs grep porn.net
So werden z.B. alle Datein im Suchpfad dansguardian aufgelistet, in denen die Zeichenfolge porn.net auftauchen.
aktuellen runlevel ausgeben
Zum Anzeigen des letzten und den aktuellen Runlevel - in dieser Reihenfolge - benutzt man /sbin/runlevel.
# runlevel 3 5
Aktueller Runnlevel = 5, letzterer 3
Verzeichnisänderungen beobachten
Zum online-Verfolgen der Änderungen in/an einem Verzeichnis bedienen wir uns:
# watch -n 1 ls -alF
-n 1 aktiviert dabei eine 1 sec. Änderung.
Verzeichnisgröße und -belegung anzeigen
Will man wissen, in welchem Verzeichnis der größte Verbrauch/-belegung vorliegt, nutzen wir den Befehl du1):
# du -sk * | sort -n
Der Inhalt / Belegung des gewählten Verzeichnisses wird dedr Größe nach aufsteigend ausgegeben.
wget über proxy
Damit wget einen Proxy nutzen kann, ist vorab die Umgebungsvariable http_proxy zu setzen.
$ export http_proxy='http://proxy.nausch.org:3128'