Nützliche Einzeiler
Aus Si:Wiki von Siegrist SystemLösungen - Informatik und Rezepte
Version vom 14. Juni 2019, 14:11 Uhr von Sigi (Diskussion | Beiträge) (→ssh mit Keys statt Passwort zu entferntem Host)
Inhaltsverzeichnis
- 1 ssh forwarding von IPv4 Host zu IPv6 Host (www.example.org) über ein Intermediate Dualstack System
- 2 netcat filetransfer
- 3 netcat proxy
- 4 Ersetze "foo" mit "bar" NUR in Zeilen die "baz" enthalten
- 5 Ersetze "foo" mit "bar" AUSSER in Zeilen die "baz" enthalten
- 6 Ausgabe der Zeilen 45-50 einer Datei
- 7 Directory sharing via http
- 8 csv to vcard converter
- 9 grep access_log und print host info
- 10 Netzwerk Statistiken aus /proc/net/netstat dargestellt
- 11 finde alle symlinks die auf DATEI zeigen
- 12 finde alle symlinks die auf DIRECTORY zeigen
- 13 8 Byte Passwort generieren
- 14 Perl Oneliner um ein Unix-Socket File (Typ: s) zu erstellen
- 15 Aliases aus sendmail /etc/aliases extrahieren und mit Domainname in eine Postgresql Datenbank als source,destination Paar einfügen
- 16 ssh mit Keys statt Passwort zu entferntem Host
- 17 MAC Adresse des ethx Interface ermitteln
- 18 Serielle Console mit Python (aka minicom)
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
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
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");'
Aliases aus sendmail /etc/aliases extrahieren und mit Domainname in eine Postgresql Datenbank als source,destination Paar einfügen
Der Oneliner gibt lediglich die 'psql' Statements aus, es wird nichts geschrieben oder verändert. Sind in der Aliases-Datei bereits Einträge in der Form 'user@domain.tld' vorhanden, werden diese so übernommen. Einträgen ohne '@domain.tld' wird jeweils ein '@example.ch' angehängt.
cat /etc/aliases | grep -Pv "^#.*" | grep -v "|" | awk -F: '{ split($2,arr,","); for (i in arr) print $1,arr[i]; }' | sed 's/\\//' | perl -pe 's/(^(?!\S+\@)\S+)\s+((?!.+\@).+)/$1\@example.ch\t $2\@example.ch/' | sort | awk '{print "psql -h 127.0.0.1 -U dbuser -d database -w -X --set ON_ERROR_STOP=on -t --no-align -t --no-align --field-separator \"|\" --single-transaction -c \"insert into schema.forward (source, destination) values (\047"$1"\047, \047"$2"\047);\"" }'
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 | 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