Inhaltsverzeichnis

(An)sammlung nützlicher oft gebrauchte Befehle

Oft benutzte Befehle, die ich mir nicht merken kann/konnte. ;-)

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

 # date -s 08/23/11

Setzt das Datum auf den 23.08.2011 und die Uhrzeit auf 00:00:00

Uhrzeit einstellen

 # date -s 07:13:30

Stellt die Systemuhr auf 07:13:30 Uhr

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

 # rpm --import <GPG-KEY-FILE>

Abfrage aller importierten GPG-Schlüssel

 # rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'

Löschen eines importierten GPG-Schlüssel

 # rpm -e gpg-pubkey-e42d547b-459f07a4

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

 # rpm -qi Paketname

Abhängigkeiten eines Paketes anzeigen

 # rpm -q --requires $Paketname

Nach einem Paket suchen

# rpm -qa | grep Paketname

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:

  1. Im ersten Schritt holen wir uns das RPM auf den lokalen Rechner.
    $ wget http://wxtoimg.com/downloads/wxtoimg-2.10.11.i386.rpm
  2. Dann kucken wir in das RPM, ob die gewünschte Datei auch enthalten ist.
    $ rpm2cpio wxtoimg-2.10.11.i386.rpm | cpio -it
  3. 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
  4. 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

 # rpm -qf /voller/Pfad/Datei

Nur die Konfiguratinsdateien Paketes anzeigen lassen

 # rpm -qlc Paketname

Nur die Dokumentation eines Paketes anzeigen lassen

 # rpm -qld Paketname

ChangeLog eines Paketes anzeigen lassen

 # rpm -q --changelog Paketname

Abfrage wann ein Paket zuletzt installiert/upgedated wurde

 # rpm -q --last Paketname

Rund um Zertifikate

Zertifikat komplett anzeigen

 # openssl x509 -noout -text -in <zertifikatsname.crt>

Herausgeber des Zertifikats anzeigen

 # openssl x509 -noout -issuer -in <zertifikatsname.crt>

Zertifikats-Inhaber anzeigen

 # openssl x509 -noout -subject -in <zertifikatsname.crt>

Gültigkeitszeitraum des Zertifikats anzeigen

 # openssl x509 -noout -dates -in <zertifikatsname.crt>

Gültigkeitszeitraum des Zertifikats kombiniert anzeigen

 # openssl x509 -noout -issuer -subject -dates -in <zertifikatsname.crt>

Hashwert des Zertifikates anzeigen

 # openssl x509 -noout -hash -in <zertifikatsname.crt>

MD5-Fingerprint des Zertifikates anzeigen

 # openssl x509 -noout -fingerprint -in <zertifikatsname.crt>

SSL-Zertifikat überprüfen

 # openssl verify -CApath /etc/pki/tls/certs -verbose <zertifikatsname.crt>

SSL-Port auf Zertifikate abfragen

 # openssl s_client -CApath /etc/pki/tls/certs -connect localhost:636 -showcerts

Die Passphrase eines Keyfiles entfernen

 # openssl rsa -in <zertifikatsname.key> -out <neueskeyfile.key>

Die Passphrase eines Keyfiles ändern

 # openssl rsa -des3 -in <zertifikatsname.key> -out <neueskeyfile.key>

Einen CSR Erzeugen

4096 Bit RSA-Key erzeugen

 # openssl genrsa -out <zertifikatsname.key> 2048
 

Key mit einer Passphrase versehen

 # openssl rsa -des3 -in <zertifikatsname.key> -out <zertifikatsname.key.sec>
 

Ein Certificate Signing Request erzeugen

 # openssl req -new -key <zertifikatsname.key> -out <zertifikatsname.csr>

Ein Certificate Signing Request anzeigen

 # openssl req -noout -text -in <request.csr>

Zertifikate von PEM nach DER konvertieren

 # openssl x509 -outform der -in certificate.pem -out certificate.der

Zertifikate von PEM nach P7B konvertieren

 # openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

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

 # openssl x509 -inform der -in certificate.cer -out certificate.pem

Zertifikate von P7B nach PEM konvertieren

 # openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

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

 # openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

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'
1) disk usage