Nützliche Einzeiler
Inhaltsverzeichnis
- 1 SSH forwarding von IPv4 Host zu IPv6 Host (www.example.org) über ein Intermediate Dualstack System
- 2 SSH Remote-Tunnel Server <-> Client-ohne-public-port-access
- 3 netcat filetransfer
- 4 netcat proxy
- 5 Dateifreigabe mit Python HTTP-Server
- 6 Ersetze "foo" mit "bar" NUR in Zeilen die "baz" enthalten
- 7 Ersetze "foo" mit "bar" AUSSER in Zeilen die "baz" enthalten
- 8 Ausgabe der Zeilen 45-50 einer Datei
- 9 Directory sharing via http
- 10 csv to vcard converter
- 11 grep access_log und print host info
- 12 Netzwerk Statistiken aus /proc/net/netstat dargestellt
- 13 finde alle symlinks die auf DATEI zeigen
- 14 finde alle symlinks die auf DIRECTORY zeigen
- 15 8 Byte Passwort generieren
- 16 Perl Oneliner um ein Unix-Socket File (Typ: s) zu erstellen
- 17 ssh mit Keys statt Passwort zu entferntem Host
- 18 MAC Adresse des ethx Interface ermitteln
- 19 Serielle Console mit Python (aka minicom)
- 20 Top 10 Prozesse die realen (physikalischen) Speicher im RAM belegen (RSS - Resident Set Size)
- 21 Alle Grub Menueinträge (menuentries) auflisten
SSH forwarding von IPv4 Host zu IPv6 Host (www.example.org) über ein Intermediate Dualstack System
create the tunnel via intermediate system on your local IPv4 host:
ssh -4 user@intermediate-system -L 2222:[2606:2800:220:1:248:1893:25c8:1946]:22
connect to IPv6 host www.example.org (2606:2800:220:1:248:1893:25c8:1946) on port 22:
ssh user@localhost:2222
SSH Remote-Tunnel Server <-> Client-ohne-public-port-access
Bei Internetanschlüssen die keine statische IP-Adresse haben oder CGNAT (bspw. Swisscom) benutzen, kann auf diesen ein Remote-Tunnel zu einem öffentlich zugänglichen
Server aufgebaut werden, so dass von diesem Server trotzdem eine SSH (oder irgendeine andere) Verbindung zu diesem Anschluss aufgebaut werden kann.
Auf dem Client:
ssh -nNT -R 127.0.0.1:22222:localhost:22 -i /home/user/.ssh/id_ed25519 serveruser@server.ch &
Auf dem Server kann dann mit ssh -p 22222 clientuser@127.0.0.1
die SSH-Session aufgebaut werden.
Die Parameter -nNT
erlauben für den User "serveruser" keine Shell in der /etc/passwd zu setzen.
netcat filetransfer
- local:
nc -l -p 77 -e "tee gaga" -v
- remote:
cat file.tar.gz | netcat 192.168.1.113 77
netcat proxy
nc -l -p 1234 | nc www.server.com 80
Dateifreigabe mit Python HTTP-Server
- Python2:
python -m SimpleHTTPServer [port]
- Python3:
python -m http.server [port]
Ersetze "foo" mit "bar" NUR in Zeilen die "baz" enthalten
sed '/baz/s/foo/bar/g'
Ersetze "foo" mit "bar" AUSSER in Zeilen die "baz" enthalten
sed '/baz/!s/foo/bar/g'
Ausgabe der Zeilen 45-50 einer Datei
sed -n '45,50p' filename
Directory sharing via http
- ipv4:
python -m SimpleHTTPServer 80
- ipv6:
???
csv to vcard converter
cat addr_book.csv | awk -F"," '{ print "BEGIN:VCARD\nN:" $3 ";" $2 ";" $1 "\nFN:" $3 "\nEMAIL;TYPE=INTERNET:" $5 "\nEND:VCARD"}' > addr_book.vcf
grep access_log und print host info
grep "GET /<URL-PATH>" /var/log/apache2/access_log | awk '{system("host " "\""$1"\"")}' | uniq
Netzwerk Statistiken aus /proc/net/netstat dargestellt
awk '(f==0) { i=1; while ( i<=NF) {n[i] = $i; i++ }; f=1; next} (f==1){ i=2; while ( i<=NF){ printf "%s = %d\n", n[i], $i; i++}; f=0}' /proc/net/netstat
finde alle symlinks die auf DATEI zeigen
find / -type l -print 2>/dev/null | while read symlink; do echo -n "$symlink"; targ=$(readlink -f "$symlink"); echo "-> $targ"; done | grep "DATEI"
finde alle symlinks die auf DIRECTORY zeigen
find / -type l -xtype d -print 2>/dev/null | while read symlink; do echo -n "$symlink"; targ=$(readlink -f "$symlink"); echo "-> $targ"; done | grep "DIRECTORY"
8 Byte Passwort generieren
openssl rand -base64 6
Perl Oneliner um ein Unix-Socket File (Typ: s) zu erstellen
perl -MIO::Socket::UNIX -e 'IO::Socket::UNIX->new(Type => SOCK_STREAM(),Local => "/tmp/einsocket");'
ssh mit Keys statt Passwort zu entferntem Host
Im Homeverzeichnis des Users:
Schauen was schon an Keys besteht
ls -la .ssh/
RSA Schlüsselpaar erstellen (RSA mit 4096 Bit)
ssh-keygen -t rsa -b 4096
Public-Key zum entfernten Host transferieren
cat .ssh/id_rsa.pub | ssh <user>@<host> 'cat >> .ssh/authorized_keys'
... oder noch besser ... mitttels elliptischer Kurven ein Ed25519 Schlüsselpaar:
ssh-keygen -t ed25519
Public-Key zum entfernten Host transferieren
cat .ssh/id_ed25519.pub | ssh <user>@<host> 'cat >> .ssh/authorized_keys'
MAC Adresse des ethx Interface ermitteln
ip address show dev ethx | awk '$1=="link/ether" {print $2}'
Serielle Console mit Python (aka minicom)
python -m serial.tools.miniterm -e -p /dev/ttyXXXX -b 115200
Top 10 Prozesse die realen (physikalischen) Speicher im RAM belegen (RSS - Resident Set Size)
ps axo rss,comm,pid | awk '{ proc_list[$2] += $1; } END { for (proc in proc_list) { printf("%d\t%s\n", proc_list[proc],proc); }}' | sort -n | tail -n 10 | sort -rn | awk '{$1/=1024;printf "%.0fMB\t",$1}{print $2}'
awk -F\' '/^menuentry / {print $2}' /boot/grub/grub.cfg|cat -n|awk '{print $1-1,$1="",$0}'