title: “linux shell remove newline”
date: 2020-04-02T11:15:17
slug: linux-shell-remove-newline
| tr -d ‘
’
title: “linux shell remove newline”
date: 2020-04-02T11:15:17
slug: linux-shell-remove-newline
| tr -d ‘
’
title: “AWK – 2. Feld ausgeben, unique sortieren und Zeilen zählen”
date: 2018-04-27T09:27:55
slug: awk-2-feld-ausgeben-unique-sortieren-und-zeilen-zahlen
awk -F'#' '{print $2}' domains | sort -u | wc -l
title: “Show Top 50 open files”
date: 2016-11-18T10:36:11
slug: show-top-50-open-files
lsof -s | awk '$5 == "REG"' | sort -n -r -k 7,7 | head -n 50
title: “tar über ssh”
date: 2016-04-15T12:30:04
slug: tar-uber-ssh
Absolutes Verzeichnis
tar zcPf - /verzeichnis | ssh root@192.168.136.121 'tar zxpPf - '
title: “lsof – list open files”
date: 2015-04-06T19:48:42
slug: lsof-list-open-files
Listed alle Netzwerkdienste und Verbindungen (Ausgabe:COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME)
lsof -i
title: “cp kopieren von Dateien”
date: 2015-04-06T17:08:46
slug: cp-kopieren-von-dateien
Kopieren der Datei readme.txt nach /tmp/readme.txt
cp readme.txt /tmp/readme.txt
Kopieren des Verzeichnisses output recursiv nach /tmp
cp -r output /tmp/
!! Der Befehl oben legt das Verzeichnis output in /tmp an und kopiert den Inhalt dort hinen
cp -r output/\* /tmp/
!! Der Befehl oben legt kein Verzeichnis output in /tmp , der Inhalt des Verzeichnisses output wird gleich nach /tmp kopiert
Kopieren der Datei readme.txt nach /tmp/readme.txt mit Übernahme der Berechtigungen
cp readme.txt /tmp/readme.txt
Wichtige Optionen für cp:
-d do not follow symbolic link (when used with -r)
-f force
-i interactive, prompt before overwrite
-p preserve file attributes
-r recursively copy directories
title: “ps Aktuelle Prozesse anzeigen”
date: 2015-04-06T16:07:58
slug: ps-aktuelle-prozesse-anzeigen
Alle Prozesse des aktuellen Users anzeigen
ps ux
Alle Prozesse aller User anzeigen
ps aux
Alle Prozesse die im aktuellen Terminal laufen anzeigen
ps T
Prozessbaum des aktuellen Users anzeigen
ps xjf
Prozessbaum aller Userprozesse anzeigen
ps axjf
Ausgabe aller laufenden Prozesse mit erweiterten Informationen
ps -ef
Parent Prozess ID (PPID) oder UserID (UID) unter dem der Prozess 3622 läuft anzeigen:
ps -f 3622
Ausgabe ist:
UID = UserID unter welcher der Prozess läuft
PID = eindeutige Prozess ID
PPID = ID des Parent Prozesses
STIME = Uhrzeit zu der der Prozess gestartet wurde
TTY = gibt das Terminal an, auf dem der Prozess läuft
STAT = Gibt den Status des Prozesses aus (Tabelle unten)
CMD = Kommandoaufruf, der den Prozess erzeugt hat
NI – Nice-Priorität des Prozesses
PRI – Derzeitige Priorität des Prozesses
TIME – Bereits von dem Prozess verbrauchte CPU-Zeit
PROCESS STATE CODES
Here are the different values that the s, stat and state output specifiers (header “STAT” or “S”) will display to describe the state of a process:
D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped, either by a job control signal or because it is being traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z defunct (“zombie”) process, terminated but not reaped by its parent.
For BSD formats and when the stat keyword is used, additional characters may be displayed:
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+ is in the foreground process group.
-f – Sehr detailierte Informationen
-a – Alle Prozesse des Terminals
-e, -A – Alle derzeit laufenden Prozesse
-l – Ausgabe aller Informationen im sog. long-Format (Benutzernamen werden aufgelöst etc.)
-U USERNAME – Filtern der Anzeige nach Prozessen des Benutzers USERNAME
Anzeigen der Spalten pid,ppid,pgid,sid,comm
ps xao pid,ppid,pgid,sid,comm
x = Prozesse die nicht nur im Terminal laufen
a = Alle derzeit laufenden Prozesse
o = Gibt die Spalten an die angezeigt werden sollen, nachfolgend die verfügbaren Spalten:
KEY LONG DESCRIPTION
c cmd simple name of executable
C pcpu cpu utilization
f flags flags as in long format F field
g pgrp process group ID
G tpgid controlling tty process group ID
j cutime cumulative user time
J cstime cumulative system time
k utime user time
m min_flt number of minor page faults
M maj_flt number of major page faults
n cmin_flt cumulative minor page faults
N cmaj_flt cumulative major page faults
o session session ID
p pid process ID
P ppid parent process ID
r rss resident set size
R resident resident pages
s size memory size in kilobytes
S share amount of shared pages
t tty the device number of the controlling tty
T start_time time process was started
U uid user ID number
u user user name
v vsize total VM size in KiB
y priority kernel scheduling priority
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 {} +
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