sed


title: “sed”
date: 2015-04-06T14:18:58
slug: sed


Ersetzen einen Strings mit einem anderen (linux nach Linux). Das g nachdem Slash bedeutet das im ganzen String ersetzt wird und nicht nur nach dem ersten Vorkommen.

sed 's/linux/Linux/g' readme.txt > ReadMe.txt

Von stdin den String bis zum letzten / abschneiden:
Hier im Beispiel wird von der Ausgabe des Befehles find (beinhaltet Pfad & Dateiname)
/root/.cache/tracker/first-index.txt
der Pfad abgeschnitten so das die Ausgabe nur noch
first-index.txt ist

find / -type f | sed 's/.\*\///g'

Den String in () nach 1 schreiben und ausgeben

sed 's/^Pl: <<"\(.\*\).\*">>$/\1/g'

find zum suchen von Dateien und Verzeichnissen


title: “find zum suchen von Dateien und Verzeichnissen”
date: 2015-04-06T12:36:26
slug: find-zum-suchen-von-dateien-und-verzeichnissen


Find sucht nach Dateien anhand folgender Vorgaben:

Im Verzeichnis “/etc/X11/” recursiv nach allen Dateien und Verzeichnissen beginnend mit x suchen

find /etc/X11/ -name "x\*"

Nach allen Dateien und Verzeichnissen des Users mit der ID 1000 suchen

find / -user 1000

Nach allen Dateien und Verzeichnissen der Gruppe mit der ID 29 suchen

find / -group 29

Nach allen Dateien (ohne Verzeichnissen) des Users mit der ID 1000 suchen

find / -type f -user 1000

Nach Dateien und Verzeichnissen suchen die innerhalb der letzten 24 Stunden verändert worden sind (-mtime = modification time)

find . -name "\*" -mtime 0

Nach Dateien und Verzeichnissen suchen die vor 5 Tagen verändert worden sind (-mtime = modification time)

find . -name "\*" -mtime 5

Nach Dateien und Verzeichnissen suchen die zwischen 5 und 15 Tagen verändert worden sind (-mtime = modification time in Tagen/24h)

find . -name "\*" -mtime +4 -mtime -16

Nach Dateien und Verzeichnissen suchen die innerhalb der letzten 60 Minuten modifiziert worden sind (-mmin = modification time in Minuten)

find . -name "\*" -mmin -60

Nach Verzeichnissen suchen die innerhalb der letzten 60 Minuten modifiziert worden sind (-mmin = modification time in Minuten)

find . -name "\*" -mmin -60 -type d

Als Parameter für -type können folgende Bezeichner verwendet werden:

-type specify the type of file
 b block (buffered) special
 c character (unbuffered) special
 d directory
 p named pipe (FIFO)
 f regular file
 l symbolic link; this is never true if the -L option or the
 -follow option is in effect, unless the symbolic link is
 broken. If you want to search for symbolic links when -L
 is in effect, use -xtype.
 s socket

Nach Dateien suchen die größer als 2MB sind:

find . -name "\*" -size +2M

Als Parameter für -size können folgende Bezeichner verwendet werden:

-size n[cwbkMG]
 'b' for 512-byte blocks (this is the default if no suffix is used)
 'c' for bytes
 'w' for two-byte words
 'k' for Kilobytes (units of 1024 bytes)
 'M' for Megabytes (units of 1048576 bytes)
 'G' for Gigabytes (units of 1073741824 bytes)

Nach Dateien und Verzeichnissen suchen die exakt diese Berechtigung (g=w,o=x,u=r) haben

find . -name "\*" -perm g=w,o=x,u=r

Nach Dateien und Verzeichnissen suchen die eine Berechtigung (g=w) beinhalten
!Das wäre z.B auch bei einer Dateiberechtigung von 777 der Fall

find . -name "\*" -perm -g=w

Nach Dateien und Verzeichnissen suchen deren Owner oder Group (g+w,u+w) Schreibrechte haben

find . -perm /g+w,u+w

Nach Dateien und Verzeichnissen beginnend mit Do mittels regulärem Ausdruck suchen
(findet z.B. Downloads und Documents aber nicht zzzDownloads)

find . -regex '\./[D][o].\*'

Alle Dateien mit der Inodenummer 935 anzeigen lassen (Hardlinks)

find . -inum 935

Alle Dateien mit gesetztem suid Bit anzeigen
(2>/dev/null leitet Fehler um, werden nicht gezeigt, z.B: find: `/proc/9679/fd/5′: No such file or directory )

find / -user root -perm +4000 2> /dev/null

Alle Links (soft & hard) einer Datei anzeigen lassen
Wenn -L weg gelassen wird, werden nur Hardlinks angezeigt

find -L . -samefile sdafsd

Suchen nach Dateien und Verzeichnissen mit einer Verzeichnisstiefe von 1 (nur im Angegebenen Verzeichnis, keine Unterverzeichnisse)

find /home/ -maxdepth 1 -name findme

Suchergebnisse (alle Dateien im aktuellen Verzecihnis) weiterverarbeiten, z.B dem Befehler “ls -l” übergeben

find . -name "\*" -type f -exec ls -l {} +

File System utilities


title: “File System utilities”
date: 2015-03-24T19:50:03
slug: file-system-utilities


Partition Types:

7: extended
82: Linux/Swap
83: Linux

Speicherplatz im File System des aktuellen Verzeichnisses anzeigen

df .

Speicherplatz im File System des Root Verzeichnisses anzeigen

df /

fsck Parameter

-f: Force checking even if the file system seems clean.
-a or -p: automatische Reparatur
-c: Read only Scan
-A: prüft alle in /etc/fstab aufgeführten Dateisysteme

Aufbau /etc/fstab

<file system> <mount point> <type> <options> <dump> <pass>

 Enthält die Beschreibung des eingehängten Geräts, also z.B. Festplatten-Partitionen wie /dev/sda8, ein CD-Lesegerät /dev/cdrom oder auch das proc-Dateisystem des Kernels "proc".
 Hier wird der Einhängepunkt ("Mountpunkt") festgelegt, d.h. der Ordner, in den die Partition eingehängt werden soll. Die Angabe "none" wird verwendet, wenn die Partition keinen Einhängpunkt unter / besitzt. Beispiel: Swap
 Enthält die Art des Dateisystems, gemäß dem mount-Parameter -t.
 Enthält alle verwendeten Optionen, gemäß dem mount-Parameter -o. Unter Linux verbreitet ist die Option "defaults", die den Optionen "rw,suid,dev,exec,auto,nouser,async" entspricht.
 Wenn man das Backup-Programm dump einsetzt, wird hier festgelegt ob die Partition gesichert wird. Voreinstellung ist "0" = keine Sicherung.
 Gibt an, ob und in welcher Reihenfolge die Partition beim Systemstart in die regelmäßigen Dateisystemprüfungen einbezogen wird. Meist ist hier für die Root-Partition (die Wurzel des Dateisystems, /) "1" eingetragen, für alle anderen Partitionen "2" (danach prüfen) oder "0" (keine Überprüfung) z.B. für Windows-Dateisysteme.

Dateisystem remounten (ro)

mount -o remount,ro /dev/hda1

Dateisystem remounten (rw)

mount -o remount,rw /dev/hda1

Weitere Optionen (nach -o)
nodev,nosuid,noexec,users,noauto

DISC Quotas (Edit /etc/fstab and add usrquota to the options)

edquota -u <user> (Edit quotas for each user)
quotaon –a (Start enforcing quotas:)
repquota -u /home/ (Lists Users and their statistiks/quota usage)
quotacheck –ca (Start the quota stats:)
quota user (Lists statistiks from user)
repquota -a (Lists Users and their statistiks/quota usage)

Dateien auflisten (Zugriff vergangener 2 Tage)

find ~ -atime -3

Dateien auflisten (Zugriff vor mehr als 2 Tagen)

find ~ -atime +2

-atime = access time (schreiben & lesen)
-mtime = modification time (schreiben)
-ctime = change time (Änderung Dateiattribute)

Gefundene Dateien einem Kommando übergeben (Im Beispiel ‘ls -l’)

find / -name \\*.txt -exec ls -l {} \;

Buchstaben für Dateitypen:
d: Directory
l: Symlink
c: character device
b: block device
p: fifo
s: socket

Text Processing Utilities


title: “Text Processing Utilities”
date: 2015-03-23T15:12:24
slug: text-processing-utilities


Display file content

cat /var/log/messages

Display file content with Line Number (skip empty lines)

cat -b /var/log/messages or
nl -bt /var/log/messages

Display file content with Line Number (number lines as well)

cat -n /var/log/messages or
nl -ba /var/log/messages

List 20 first lines of /var/log/messages

head -n 20 /var/log/messages
or
head -20 /var/log/messages

List 20 last lines of /etc/aliases

tail -20 /etc/aliases

List text starting at line 25 in /var/log/messages

tail +25 /etc/log/messages

Count number of lines

cat /var/log/messages | wc -l

Count number of words

cat /var/log/messages | wc -w

Count number of character

cat /var/log/messages | wc -c

Split a file every 5 lines into new files

split -l 5 /var/log/messages

Split a file into 20MB files

split -b 20m bigarchive.tar.gz

Standardprefix= xaa, xab, xac,…..

eigenen Prefix festlegen:

split -b 20m bigarchive.tar.gz mypref

myprefaa, myprefab, myprefac

Erstes Feld vom Eingabestring anzeigen, Trenner is :

cut -d':' -f1

Erstes und drittes Feld vom Eingabestring anzeigen, Trenner is :

cut -d':' -f1,3

Ein Feldtrenner für die Ausgabe kann auch fewstgelegt werden:

--output-delimiter=" "

Zeichen 2 bis 10 jeder Zeile einer Datei ausgeben:

cut -c2-10 /var/log/messages

Und zusätzlich von Zeichen 12 bis Zeilenende:

cut -c2-10,12- /var/log/messages

Ein Textfile formatieren (zb. Block mit 20 Zeichen pro Zeile)

cat /var/log/messages | fmt -w 20

Zeichen in einem Textfile ersetzen (k->K, e->E)

cat /var/log/messages | tr 'ke' 'KE'

Strings in einem Textfile ersetzen (kernel -> modul)

cat /var/log/messages | sed 's/kernel/modul/g'

/g = global
/I = Gross- Kleinschreibung ignorieren

Dateien in anderen Formaten anzeigen (octal, ASCII,…)

cat /var/log/messages | od

Parameter für od
-t a, select named characters, ignoring high-order bit
-t o1, select octal bytes
-t c, select ASCII characters or backslash escapes

Dateien zum drucken konvertieren:

cat /var/log/messages | pr

Tabs im Textfile nach Leerzeichen konvertieren

cat /var/log/messages | expand

Textdatei Hexadecimal ausgeben

cat /var/log/messages | hexdump

Zwei Dateien (mit Shlüsselfeldern) zeilenweise zusammenfügen

join a.txt a.txt

Zwei Dateien zeilenweise zusammenfügen (wie Vergleichfenster)

paste a.txt a.txt

Datei reverse anzeigen (cat andersrum, z.B erste Einträge im Logfile werden als letztes)

tac /var/log/messages

Sort (textstream sortieren)

du | sort

Numerisch sortieren: -n
Reverse Ausgabe -r
Nach Monat sortieren -M

Aptitude Paketverwaltung


title: “Aptitude Paketverwaltung”
date: 2015-03-23T14:19:29
slug: aptitude-paketverwaltung


•aptitude update – update the list of available packages.
•aptitude install – will install new software ,
•aptitude reinstall – will reinstall an existing package
•aptitude remove – will remove an existing package
•aptitude purge – will remove a package and its associated configuration files
•aptitude search – will allow you to search the list of available packages.

Paketverwaltungstool DPKG und apt-xxx


title: “Paketverwaltungstool DPKG und apt-xxx”
date: 2015-03-23T13:51:57
slug: 304


Die wichtigsten Befehle für das Paketverwaltungstool DPKG (Paket Installation ohne Abhängigkeiten)

Paket installieren

dpkg –i hello\_2.1.1-4\_i386.deb

Paket installieren aber nicht konfigurieren

dpkg --unpack hello\_2.1.1-4\_i386.deb

Installiertes Paket konfigurieren

dpkg --configure iceweasel

Paket deinstallieren (remove, Config Dateien bleiben erhalten)

dpkg -r iceweasel

Paket deinstallieren (purge, Config Dateien werden auch gelöscht)

dpkg -p iceweasel

Installierte Pakete auflisten

dpkg -l

Suche nach Paketnamen mittels Dateinamen (installiert)

dpkg -S /etc/apache2/apache2.conf

Alle Dateien eines installierten Paketes anzeigen

dpkg -L apache2.2-common

APT tool (Paket Installation mit Abhängigkeiten)

apt-cache
Nach Paket suchen

apt-cache search

Informationen pber ein Paket ausgeben

apt-cache show

apt-get

Paketliste updaten

apt-get update

Paket iceweasel installieren

apt-get install iceweasel

Installierte Pakete upgraden (Es empfiehlt sich vorher ein apt-get update)

apt-get upgrade

Paket nur downloaden

apt-get download iceweasel

Paket iceweasel deinstallieren

apt-get remove iceweasel

User / Group Administration


title: “User / Group Administration”
date: 2015-03-23T12:39:21
slug: user-group-administration


Add User To System

useradd username

Add User To System and create Home Directory

useradd -m username

Add User To System and create Home Directory with specified Path

useradd -m username -d /var/www/home

Add User To System and specified primary group

useradd -g groupname username

Add User To System and specified supplementary groups

useradd -G groupname1,groupname2,groupname3 username

Add user to a group (leave primary group unchanged)

usermod -a -G groupname user

Change Users primary group

usermod -g groupname user

RPM Command


title: “RPM Command”
date: 2015-03-23T11:10:43
slug: rpm-command


Die wichtigsten Befehle für das Paketverwaltungstool RPM

-q (query) options:
[-i,–info]
[-l,–list]
[-R,–requires]

-i (install) options:
[–force]
[–nodeps]
[–test]
[-h,–hash]

-V (verify) options
[–nodeps]

-e (erase) options
[–nodeps]
[–test]

-U (Update)
[–force]
[–nodeps]
[–test]
[-h,–hash]

Query modes
Three query types: uninstalled packages, installed packages and files

Package file -qp
Installed package -q
File -qf

Paket Integrität (vergleicht die Installierten Dateien mit dem aus dem Quellpaket)

rpm -V iptables

Normal sollte keine Ausgabe erscheinen, es erfolgt nur eine Ausgabe wenn Änderungen zwischen den Dateien erkannt wurden.
Folgende Änderungen werden erkannt (Return Code am Anfang):

. the test was successful
? the test couldn’t be performed
S file size has changed
M permission mode or file type has changed
5 the file’s MD5 sum has changed
D device major/minor number miss-match
L broken symbolic link
U the user owner of the file has changed
G the group owner of the file has changed
T the mtime (modified time) has changed

SSL Zertifikate checken mir openssl


title: “SSL Zertifikate checken mir openssl”
date: 2015-03-06T10:42:41
slug: ssl-zertifikate-checken-mir-openssl


HTTPS:

openssl s\_client -showcerts -connect 10.111.111.20:443

TLS Protokoll:

openssl s\_client -showcerts -connect 10.111.111.20:21 -starttls smtp|pop3|imap|ftp|xmpp