Abfrage der aktuellen Übertragungsrate eines Fli4l Routers via Imond/Telnet Schnittstelle:
(sleep 0.2; echo "pass xxxxxxxxxxx"; sleep 0.2; echo "rate pppoe"; sleep 0.2; echo "quit") | telnet <fli4l.ip> 5000
https://www.shellcheck.net/ - Shell Checker
Das aktuell laufende System ermitteln:
cat /etc/os-release
Geschwindigkeit der LAN Schnittstelle ermitteln:
sudo mii-tool -v enp7s0
Beispiel vlc
:
vlc_pid=`pstree -n -p | grep -i vlc -m 1 | cut -d"(" -f2 | cut -d")" -f1`; kill -9 $vlc_pid # oder vlc_id=`pstree -n -p | grep -m1 -i vlc | cut -f2 -d'('| cut -f1 -d')'`; kill -9 $vlc_id
Laufende (Hintergrund-) Prozesse anzeigen:
$ jobs [1]+ Running PROCESS_1 &
Aktuellen im Vordergrund laufenden Prozesse in den Hintergrund verschieben:
$ jobs [1] Running PROCESS_1 & bg %1 [1]+ PROCESS_1 &
Aktuellen im Hintergrund laufenden Prozesse in den Vordergrund holen:
$ jobs [1] Running PROCESS_1 & fg %1
Aktiverte Systemdienste anzeigen:
systemctl list-unit-files | grep enabled
To list all the systemd service which are in state=active and sub=running\\ systemctl list-units --type=service --state=running\\ To list all the systemd serice which are in state=active and sub either running or exited\\ systemctl list-units --type=service --state=active\\ systemctl show service -p TimeoutStartUSec systemctl cat networking systemctl cat dhcpcd systemctl status dhcpcd.service
apt-get clean apt-get autoclean
Sollte mal ein apt-get upgrade
nicht funktionieren und eine Reihe Pakete zurückgehalten werden kann die Ursache mit folgender Zeile ermittelt werden:
apt-get -o Debug::pkgProblemResolver=yes upgrade
Quelle: http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.de.html
aptitude search ~U
aptitude install ~U
Im Akkubetrieb die aktuelle Leistungsaufnahe anzeigen lassen:
powerstat -d 10 5 100
Mit PowerTop den Energieverbrauch des Systems analysieren und daraus eine HTML-Seite erstellen
powertop --html
SATA Leistungsaufnahme reduzieren
echo SATA_ALPM_ENABLE=true | tee /etc/pm/config.d/sata_alpm
IDLE Timer zum automatischen Dimmen der Displaybeleuchtung auslesen:
gsettings get org.gnome.settings-daemon.plugins.power idle-dim-time
IDLE Timer setzen:
gsettings set org.gnome.settings-daemon.plugins.power idle-dim-time 90
Fortlaufende Ausgabe der Kernel Meldungen, z.B. nützlich bei der Inbetriebnahme neuer Hardware:
tail -f /var/log/messages
Fortlaufende Ausgabe der Kernel Meldungen auf dem Desktop per osd_cat
tail -f /var/log/messages | osd_cat --pos=bottom --delay=20 --color=black --offset=50 --indent=500 --lines=10 --font=-*-terminal-*-*-*-*-14-*-*-*-*-*-*
Finde alle eingebundenen Partitionen [sda…sdz]
und unmounte sie:
MP=`mount | grep -i sd[a-z] | cut -d" " -f3`; echo "Mountpoint: \"$MP\""; umount $MP
Wenn sda1
im System vorhanden ist dann mounte diese Partiton nach /ftp
cat /proc/partitions | grep -q -e sda1 && mount /dev/sda1 /ftp
Eine Partition anhand Ihrer Herstellerbezeichung finden und mounten:
ls -l /dev/disk/by-id/ ... lrwxrwxrwx 1 root root 10 Jul 27 08:22 usb-TOSHIBA_External_USB_3.0_20150324xxxxxxxxxxxxxx-0:0-part1 -> ../../sde1 ... mkdir -p /media/Toshiba-2TB mount /dev/disk/by-id/usb-TOSHIBA_External_USB_3.0_20150324xxxxxxxxxxxxxx-0:0-part1 -t ext4 /media/Toshiba-2TB
Prozesse finden, die ein unmount
blockieren
sudo su fuser -kim /PFAD/ZUM/MOUNTPOINT /PFAD/ZUM/MOUNTPOINT: <Prozessnummer> wird angezeigt # mit ''N'' abbrechen pstree -n -p | grep -i <Prozessnummer>
UUID eines Laufwerkes ermitteln:
sudo su blkid /dev/mmcblk0: PTUUID="c62b16eb" PTTYPE="dos" /dev/mmcblk0p1: UUID="42146a70-75a6-4ee7-b315-ffad2d408385" TYPE="ext2" PARTUUID="c62b16eb-01" /dev/mmcblk0p2: UUID="855ca3a0-0307-45e5-8ac7-020275c8801f" TYPE="ext4" PARTUUID="c62b16eb-02" /dev/mmcblk0p5: UUID="2f3771cc-68e2-4e44-a97d-6fe99eea34f0" TYPE="swap" PARTUUID="c62b16eb-05" /dev/sda1: LABEL="TOSHIBA-1TB" UUID="afeb5bfa-bf16-42f0-a8d0-8f57619746a8" TYPE="ext4" PARTUUID="00084934-01" # nano /etc/fstab UUID=afeb5bfa-bf16-42f0-a8d0-8f57619746a8 / ext4 defaults 1 1 </code ==== Samba ==== Freigaben eines Samba-Servers anzeigen <code bash> smbclient -L <SMB-SERVER-IP> -U <SMB-USERNAME>
Eine Sambafreigabe eines Servers komfortabel einbinden:
vi /etc/fstab
... //<IP_DES_SERVERS>/<SAMBA_SHARE_NAME> /home/<USERNAME>/LOKALER_MOUNTPUNKT> cifs credentials=/<ABSOLUTER_PFAD/smbcredentials,rw,users,noauto,exec 0 0
Sog. credentials
File anlegen:
username=<SMB-USER_NAME> password=<SMB_PASSWORT>
Grafikkarte ermitteln:
lshw -C video
RAID Status ermitteln:
cat /proc/mdstat
Defekte Festplatte aus dem System entfernen:
mdadm /dev/md1 --remove /dev/hdf1
Einen bootfähigen USB-Stick zur Installation von Windoews 10 erstellen:
# getestet mit Ubuntu 16.04 LTS sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt update sudo apt install winusb sudo winusb --format /home/andrei/Downloads/win10.iso /dev/sdc
Um einen USB-Stick mit VFAT zu formatieren muss man zusätzlich die Option -I angeben. In einigen Fällen ist die Schreibgeschwindigkeit eines USB-Sticks ohne Partition(en) deutlich schneller als mit. Bei mir z.B. bei einem Intenso 64GB USB 3.0 Stick. Nach dem Entfernen der ersten Partition stieg die Schreibgeschwindigkeit von ca. 17MB/s auf knapp über 30MB/s an.
mkfs.vfat -I [-n DEVICENAME] /dev/sd[x]
Für die Verwendung mit USB-Sticks sind die standard Dateisysteme wie z.B. VFAT
(FAT16/FAT32) oder NTFS
eher ungeeignet. Speziell für FLASH Speicher wurde das Dateisystem exFAT
entwickelt.
Installation:
sudo apt-get install exfat-fuse exfat-utils
Formatierung eines USB-Sticks:
mkfs.exfat [-n DEVICENAME] /dev/sd[x][n]
dd count=1 bs=512 if=/dev/zero of=/dev/sdx && sync
In regelmäßigen Abständen sollte eine Festplatte oder Partition auf defekte Blöcke untersucht werden. Das erledigt der folgende Aufruf indem er einen Dateisystemcheck erzwingt (-f
) und anschließend nach defekten Böcken sucht (-c
). Dabei wird ein Fortschrittsbalken im Terminal ausgegeben (-C0
).
sudo su umount /dev/sdd1 fsck.ext4 -fc -C0 /dev/sdd1
Und für FAT formatierte Partitionen:
fsck.vfat -w -r -l -a -v -t /dev/sdd1
Es kann immer mal vorkommen, dass ein USB-Stick nicht die angegebene Speicherkapazität hat die er laut Hersteller oer Verkäufer haben soll.
Um das herauszufinden gibt es die Tools f3read
und f3write
.
sudo su apt-get install f3 f3write /media/testuser/<USB-STICK>/ Free space: 975.86 MB Creating file 1.h2w ... OK! Free space: 16.00 MB Average writing speed: 1.84 MB/s f3read /media/testuser/<USB-STICK>/ SECTORS ok/corrupted/changed/overwritten Validating file 1.h2w ... 1965792/ 0/ 0/ 0 Data OK: 959.86 MB (1965792 sectors) Data LOST: 0.00 Byte (0 sectors) Corrupted: 0.00 Byte (0 sectors) Slightly changed: 0.00 Byte (0 sectors) Overwritten: 0.00 Byte (0 sectors) Average reading speed: 10.81 MB/s
Tritt der Fehler „reset high speed USB device using ehci_hcd and address yy“ beim Schreiben auf eine per USB angeschlossene Festplatte (hier /dev/sda1) häufiger auf so hilft evtl. folgendes:
echo 128 > /sys/block/sda/device/max_sectors
Quelle: http://jolzer.blogspot.de/2009/12/usb-1-6-reset-high-speed-usb-device.html
hwinfo --usb
Eine praktische Methode die Übertragungsrate (nur Schreiben) eines USB-Sticks zu testen ist folgende:
dd count=1000 bs=1M if=/dev/urandom of=/media/usb/test # oder dd if=/dev/zero of=/mnt/sda1/test bs=1M count=1k; rm /mnt/sda1/test
Mit der o.a. Komandozeile werden 1000 * 1 Megabyte = 1GB Zufallsdaten aus dem Zufallszahlengenerator (/dev/urandom) in die Datei …\test geschrieben.
Dabei ist unbedingt zu beachten dass dd
ohne Rückfrage auf das angegebene Ziel (of = output file), hier of=/media/usb/
schreibt. Wer sich hier vertippt oder einen anderen Fehler macht zerstört evtl. sein gesamtes System. ALSO ERHÖHTE VORSICHT BEI DER VERWENDUNG VON dd
!!!. Dafür beloht dd
dann am Ende der Schreiboperatin mit der Ausgabe einer realen Transferrate .
dd bs=4M if=/dev/sdd of=sd-card_backup.img
dd bs=4M if=/dev/sdd | gzip > sd-card_backup.img.gz
cat sd-card_backup.img.gz | gunzip | dd bs=4M of=/dev/sdd
Ein komplettes Verzeichnis als „*.tar.gz“ packen:
tar -zcvf FILENAME.tar.gz /Pfad/zum/Verzeichnis
Ein komplettes Verzeichnis als „*.tar.gz“ packen und Unterverzeichnisse ausschließen:
tar --exclude='Verzeichnis/Unterverzeichnis_1' --exclude='Verzeichnis/Unterverzeichnis_2' -zcvf yyyymmdd_Dateinme.tar.gz Verzeichnis
Ein komplettes Verzeichnis als „*.zip“ packen:
zip -r DATEINAME.zip QUELLORDNER
Mit Datum/Uhrzeit im Dateinamen:
TIMESTAMP=`date "+%Y%m%d_%H:%M"` && tar -zcvf $TIMESTAMPFILENAME.tar.gz /Pfad/zum/Verzeichnis TIMESTAMP=`date "+%Y%m%d_%H:%M"` && tar -zcvf $TIMESTAMP_rootfs.tar.gz /mnt/rootfs
Eine Datei in selben Verzeichnis entpacken:
tar xfz FILENAME.tar.gz
Eine Datei in ein anderes Verzeichnis entpacken:
tar xfz FILENAME.tar.gz -C /anderes/Verzeichnis/absolut # oder tar xfz FILENAME.tar.gz -C ../../anderes/Verzeichnis/relativ
7z-Dateien entpacken:
sudo apt-get install p7zip-full 7z x PACKAGE.7z
cd /PFAD/ZUR/QUELLE/ find . -depth -print | cpio -pdm /PFAR/ZUM/ZIEL/
for TMP in `ls`; do mv $TMP `echo $TMP| cut -d. -f1,3`; done
find /PFAD/ZUM/VERZEICHNIS/ -type f | wc -l
find /PFAD/ZUM/VERZEICHNIS/ -type d | wc -l
Findet alle Dateien mit „DATEINAME“ im Dateinamen, unabhängig von der Schreibweise
find -iname <*DATEINAME*>
Findet alle Dateien mit „DATEINAME“ im Dateinamen und sucht nur darin das „WORT“
find . -name <*DATEINAME*> -print0 | xargs -0 grep -iHR "WORT"
file -i <Datei.txt>
iconv -f ISO-8859-1 -t UTF-8 Input-file.txt -o Output-file.txt
#!/bin/sh for file in ./*/*/*/info.vdr ; do echo "Bearbeite Datei: $file" iconv -f ISO-8859-1 -t UTF-8 "$file" -o "$file".tmp mv $TMP.tmp $TMP #fname=$(basename "$file") #echo "hat den Namen: $fname" #fdir=$(dirname "$file") #echo "und steht im Verzeichnis: $fdir" done
Grundsätzliche RegEx Metazeichen:
Zeichen | Bedeutung/Funktion |
. | nur ein einzelnes Zeichen |
(..) | Gruppe von Elementen |
..| .. | ODER-Verknüpfung |
[0-9A-F] | eigene Gruppe von Zeichen |
^ | Invertierung (einer Zeichengruppe) |
\d | Ziffern, entspricht der Gruppe [0-9] |
\D | keine Ziffern, entspricht der Gruppe [^0-9] |
\w | alphanumerische Zeichen, entspricht der Gruppe [a-zA-Z0-9_] |
\W | keine alphanumerischen Zeichen, entspricht der Gruppe [^a-zA-Z0-9_] |
\s | Whitspace, z.B. Leerzeichen, Tab, Return |
\S | kein Whitspace |
? | kein Mal oder ein Mal |
* | kein Mal oder beliebig oft |
+ | min. einmal |
{n,m} | min. n-mal, max. m-mal |
^ | am Anfang |
$ | am Ende |
„Quellverzeichnis“ wird unterhalb von „Zielverzeichnis“ angelegt und der komplette Inhalt dort hin kopiert:
rsync --progress --stats -a /PFAD/ZUM/QUELLVERZEICHNIS /PFAD/ZUM/ZIELVERZEICHNIS/
Nicht mehr vorhandene Daten im Zielverzeichnis löschen:
rsync --progress --stats --delete -a /PFAD/ZUM/QUELLVERZEICHNIS /PFAD/ZUM/ZIELVERZEICHNIS/
Per Netzwerk auf einen anderen Rechner:
rsync -a -v --delete --password-file/.rsync/secret /PFAD/ZUM/QUELLVERZEICHNIS rsync://HOST/ZIELVERZEICHNIS/
Auf einen Datenträger mit exFAT
Formatierung, z.B. USB-Stick:
rsync -rltDv --progress --stats --delete /PFAD/ZUM/QUELLVERZEICHNIS /PFAD/ZUM/ZIELVERZEICHNIS/ # oder rsync -rltDv --progress --stats --delete-before --delete-excluded --exclude="System Volume Information" --exclude="\$RECYCLE.BIN" /PFAD/ZUM/QUELLVERZEICHNIS /PFAD/ZUM/ZIELVERZEICHNIS/ # oder #TEMPLATE: rsync -rltDv --progress --stats --delete-before --delete-excluded --exclude="System Volume Information" --exclude="\$RECYCLE.BIN" --exclude="lost+found" --exclude=".Trash-1000" --exclude="\#recycle" /PFAD/ZUM/QUELLVERZEICHNIS /PFAD/ZUM/ZIELVERZEICHNIS/
z.B. die Seiten des 29C3
wget --wait=2 --limit-rate=200K -r -p -U Mozilla --no-parent -c http://mirror.fem-net.de/CCC/29C3/
oder eine spezielle Seite innerhalb einer Homepage
wget -p -m -k -K -E -np http://<DOMAIN>/innere/ebene/
wget -m -np http://download.fli4l.de/3.10.3/x86/ wget -m -np http://download.fli4l.de/3.10.3/x86_64/
oder besser mit:
FLI4L_VERSION="3.10.x" wget -r -l1 -H -t1 -nd -N -np -erobots=off -A .gz http://download.fli4l.de/${FLI4L_VERSION}/x86/ cd non_gpl wget -r -l1 -H -t1 -nd -N -np -erobots=off -A .gz http://download.fli4l.de/${FLI4L_VERSION}/x86/non_gpl/ # oder wget -r -l1 -H -t1 -nd -N -np -erobots=off -A .gz http://download.fli4l.de/${FLI4L_VERSION}/x86_64/ cd non_gpl wget -r -l1 -H -t1 -nd -N -np -erobots=off -A .gz http://download.fli4l.de/${FLI4L_VERSION}/x86_64/non_gpl/ # # oder # FLI4L_VERSION="4.0" wget -r -l1 -H -t1 -nd -N -np -erobots=off -A .gz http://tarball.fli4l.de/${FLI4L_VERSION}/testing/x86/ cd zusatzpakete wget -r -l1 -H -t1 -nd -N -np -erobots=off -A .gz http://tarball.fli4l.de/${FLI4L_VERSION}/testing/x86/opt_db/ cd .. cd non_gpl wget -r -l1 -H -t1 -nd -N -np -erobots=off -A .gz http://tarball.fli4l.de/${FLI4L_VERSION}/testing/x86/non_gpl # # oder # wget -r -l1 -H -t1 -nd -N -np -erobots=off -A .gz http://tarball.fli4l.de/${FLI4L_VERSION}/testing/x86_64/ cd zusatzpakete wget -r -l1 -H -t1 -nd -N -np -erobots=off -A .gz http://tarball.fli4l.de/${FLI4L_VERSION}/testing/x86_64/opt_db/ cd .. cd non_gpl wget -r -l1 -H -t1 -nd -N -np -erobots=off -A .gz http://tarball.fli4l.de/${FLI4L_VERSION}/testing/x86_64/non_gpl # # -r recursive # -l1 maximum recursion depth (1=use only this directory) # -H span hosts (visit other hosts in the recursion) # -t1 Number of retries # -nd Don't make new directories, put downloaded files in this one # -N turn on timestamping # -A .gz download only *.gz files # -erobots=off execute "robots.off" as if it were a part of .wgetrc
SSH-Key aus ~/.ssh/known_hosts
-Datei entfernen
ssh-keygen -R "hostname" # oder ssh-keygen -f ".ssh/known_hosts" -R <IP>
Generierung eines neuen öffentlich/privaten Schlüsselpaares mit dem RSA Algorithmus (RSA ist der default) und einer „Stärke“ von 4096 Bit:
ssh-keygen -b 4096 -f <HOSTNAME>.wg
Kopieren des neu generierten öffentlichen Schlüssels auf das Zielsystem
ssh-copy-id -i ~/.ssh/id_rsa.pub user@[hostname|IP]
Bekommt man beim Versuch sich auf einem „frischen“ Server per SSH einzuloggen eine Fehlermeldung wie diese hier:
user@host:~$ ssh <user>@123.123.123.123 The authenticity of host '123.123.123.123 (123.123.123.123)' can't be established. RSA key fingerprint is 55:b7:aa:9f:14:48:76:50:33:7c:41:11:ee:0c:fd:ef. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '123.123.123.123' (RSA) to the list of known hosts. Received disconnect from 123.123.123.123: 2: Too many authentication failures for user
so funkt wahrscheinlich der gnome-keyring-daemon
dazwischen. Folgendes schafft Abhilfe:
user@host:~$ ps -AH | grep keyring 2223 ? 00:00:00 gnome-keyring-d sudo kill 2223
Jetzt ist ein Login per ssh möglich und der neue Key kann übertragen werden.
Eine datei zum Host kopieren:
scp Quelldatei.bsp Benutzer@Host:Verzeichnis/Zieldatei.bsp
Eine Datei vom Host kopieren:
scp Benutzer@Host:Verzeichnis/Quelldatei.bsp Zieldatei.bsp
Eine Remote Desktop Session zu einem Windows Rechner aufbauen:
rdesktop -u <USERNAME> -p <PASSWORT> -g <Auflösung> -k de [HOSTAME.DOMAIN|IP] #z. B.: rdesktop -u hans -p wurst -g 1600x900 -k de [dellgx270.wg|192.168.100.26]
Proxy fürdie Shell hinzufügen:
echo "export http_proxy=http://<IP_DES_PROXY_SERVERS>:<PORT>" >> ~.bashrc echo "export ftp_proxy=ftp://<IP_DES_PROXY_SERVERS>:<PORT>" >> ~.bashrc
Anzeige der im System befindlichen Netzwerkschnittstellen:
cat /proc/net/dev
DNS local eintragen:
vi /etc/resolve.conf
nameserver 192.168.100.1
DNS Manipulationen des ISP kann man mittels host
oder dig
erkennen. Beide liefern Infos über den Domain Name/Inhaber etc…
Geöffnete Ports des localen Rechners anzeigen:
sudo netstat -tulpan
oder
ss state established '(dport =:imaps)'
Wireshark Filterausdruck z.B. für Bilder „http.content_type matches „image/*““
Ports scannen mit -A
= Traceroute und -T4
= schneller arbeiten
nmap -T4 -A 192.168.100.1-254
… mit Vorgabe der Ports:
namp -sV -p 22,80,443,587,25 192.168.100.1-254
Quelle: https://speedtest.wtnet.de/
iperf3 -c speedtest.wtnet.de -p 5200 -4 -R # -c = Client # -R = Reverse, also vom Server zum Client # -4 = IPv4 only
Funktion: | ifconfig (alt) | ip (neu) |
---|---|---|
Adressen anzeigen | ifconfig eth0 | ip addr show eth0 |
Adresse setzen | ifconfig eth0 192.168.100.1 netmask 255.255.255.0 broadcast 192.168.100.255 | ip addr set 192.168.100.1/24 broadcast 192.168.100.255 dev eth0 |
Adresse löschen | – | ip addr del 192.168.100.1/24 dev eth0 |
Alias anlegen | ifconfig eth:1 192.168.100.1/24 | ip addr add 192.168.100.1/24 dev eth0 label eth0:1 |
Schnittstelle aktivieren | ifconfig eth up | ip link set eth0 up |
Routen anzeigen | route [-6] | ip [-6] route |
Gateway setzen | route add default gw 192.168.100.1 | ip route add default via 192.168.100.1 dev eth0 |
ARP/NDP | arl -a | ip neigh |
Sockets anzeigen | netstat -tulpan | ss -tulpan |
Der Parameter '-6' ist nur für IPv6 Adressen gültig.
ip -s link
Die Option -o
gibt Angaben (Adressen, Schnittstellen und Routen) in einer Zeile aus und die Option -r
mit DNS auflösung.
ip route replace default via 192.168.100.1
ping6 -c 5 -I eth0 ff02::1
pre-down /usr/sbin/ethtool -s eth0 wol g
iwlist wlan0 scanning | grep -A 7 Cell
sudo wpa_cli -i wlan0 status verbose
DNS Manipulationen des ISP kann man mittels host
oder dig
erkennen. Beide liefern Infos über den Domain Name/Inhaber etc…
Geöffnete Ports des localen Rechners anzeigen:
xxxx
arm-linux-gnueabihf-gcc-4.6 testrtc.c -o testrtc -static
diff -u OriginalFile UpdatedFile > PatchFile
patch OriginalFile < PatchFile
diff -ruN OriginalDir UpdatedDir > PatchFile
patch -p0 < PatchFile
Ohne Sonderzeichen:
apg -m 15 -n 1
oder besser mit Sonderzeichen:
apg -M SNC -m 15 -n 1
Damit man als normaler Benutzer auf eine serielle Schnittstelle (hier z.B. /dev/ttyUSB0) zugreifen darf, muss man Mitglied in der Gruppe dialout
sein. Unter Ubuntu 10.04 lässt sich die Gruppenzugehörigkeit über „System“ → „Systemverwaltung“ → „Benutzer und Gruppen“ → „Gruppen verwalten“ → „dialout“ → „Eigenschaften“ einsehen. Evtl. fehlende Haken vor den Benutzern setzten. Damit die neue Gruppenzugehörigkeit wirksam wird muss sich der entsprechende Benutzer anschliessend erneut am System anmelden.
dmesg | grep -i "attached to ttyUSB"
Dabei ist die letzte Zeile entscheidend. Sie gibt an, unter welchem Namen die neue serielle Schnittstelle angesprochen werden kann. In diesem Beispiel hier /dev/ttyUSB0
Parallel kann man über „System“ → „Systemverwaltung → „Systemprotokoll“ einsehen was der Kernel beim Anstecken des Seriell-USB-Adapters meldet. In diesem Fall z.B. folgendes:
... usb 3-1: new full speed USB device using uhci_hcd and address 7 ... usb 3-1: configuration #1 chosen from 1 choice ... pl2303 3-1:1.0: pl2303 converter detected ... usb 3-1: pl2303 converter now attached to ttyUSB0
Der angesteckte Adapter verwendet einen Controller Chip vom Typ pl2303
des Herstellers Prolific
. Dieser wird von Kernel unterstützt und ist als serieller Anschluss unter /dev/ttyUSB0
eingerichtet worden.
stty -F /dev/ttyUSB0 9600 stty -F /dev/ttyUSB0 raw
cat /dev/ttyUSB0
Sobald der Garmin GPS12 Daten liefert erfolgt eine fortlaufende Ausgabe die ungefähr so aussieht:
... $PGRMM,WGS 84*06 $GPBOD,,T,,M,,*47 $GPRTE,1,1,c,0*07 $GPRMC,065558,A,5210.243,N,00958.310,E,000.0,360.0,041012,000.9,E*72 $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,065558,5210.243,N,00958.310,E,1,05,2.4,110.1,M,46.5,M,,*49 $GPGSA,A,3,02,,09,,,,,25,27,29,,,4.2,2.4,3.4*37 $GPGSV,3,1,12,02,20,116,42,04,23,071,00,09,42,135,44,12,85,340,32*7B $GPGSV,3,2,12,14,42,283,00,17,06,040,00,20,00,008,00,25,47,265,30*79 $GPGSV,3,3,12,27,35,136,45,29,15,202,46,31,02,305,00,32,05,341,00*75 $PGRME,9.5,M,13.1,M,16.2,M*24 $GPGLL,5210.243,N,00958.310,E,065559,A*25 $PGRMZ,361,f,3*1F ...
Abbrechen kann man die Ausgabe mit der Tastenkombination STRG + C
.
Der Seriell-USB-Adapter kann nun per /dev/ttyUSB0
verwendet werden.
Tracks sichern:
gpsbabel -t -i garmin -f /dev/ttyUSB0 -o kml -F test.kml
gpsbabel -t -i garmin -f /dev/ttyUSB0 -x track,merge -o kml -F test.kml
Wegpunkte sichern:
gpsbabel -i garmin -f /dev/ttyUSB0 -o gpx -F <GPX-FILE.gpx>
gpsbabel -i gpx -f <GPX-FILE.gpx> -o garmin -F /dev/ttyUSB0
Ein sehr praktischer kleiner Helfer ist der Temperatur-Feuchte-Datenlogger TFD 128 von ELV.
Wer kein MS Windows zur Installation der mitgelieferten Software zur Hand hat kann alternativ ein in Python geschriebenes CLI Tool verwenden. Das läßt sich, zumindest unter Linux, wunderbar scripten. Zu finden hier: Programming the TFD 128
Wer doch MS Windows lieber mag findet hier einen Ersatz für die mitgelieferte Software: Temperatur-/Feuchte-Datenlogger TFD-128 - alternative Software für Win32/Win64.
Eine gute Informationsquelle ist auch http://www.netzmafia.de/skripten/hardware/TFD128/
./tfd128 --start --interval 5 --mode th # Aufzeichnung starten, Intervall: 5 Min., Temp & Feuchte ./tfd128 --stop # Aufzeichnung stoppen ./tfd128 --dump-values --output data.txt --data-fmt="%d\t%t\t%h" # Logger auslesen
Notwendige Pakete: vlc, mplayer, w32codecs, lame, sox, ffmpeg, libdvdcss2, streamripper, eyeD3
sudo apt-get install vlc mplayer w32codecs lame sox ffmpeg libdvdcss2 eyeD3
Eine 3gp
Audiodatei ins mp3
-Format umwandeln:
ffmpeg -i INPUTFILE.3gp -acodec libmp3lame OUTPUTFILE.mp3
Mehrere WAV-Dateien in einem Verzeichnis in das MP3 Format mit 256kBit/s wandeln:
for f in *.wav ; do ffmpeg -i "$f" -acodec libmp3lame -ab 256k "${f%.*}.mp3"; done
Mehrere MP3-Dateien zu einer Datei zusammenfügen
ffmpeg -i "concat:01.mp3|02.mp3|03.mp3|04.mp3|05.mp3|06.mp3|07.mp3|08.mp3|09.mp3|10.mp3|11.mp3|12.mp3|13.mp3|14.mp3|15.mp3|16.mp3|17.mp3|18.mp3|19.mp3|20.mp3" -acodec copy output.mp3
Ein Cover-Bild einer MP3-Datei hinzufügen:
eyeD3 --add-image="cover.jpg":FRONT_COVER "file.mp3"
z.B. NDR Info eine Stunde lang (-l 3600 Sekunden) aufzeichnen (output: -a FILENAME)
streamripper http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_hi_mp3 -a FILENAME.mp3 -l 3600
oder NDR Kultur eine Stunde lang (-l 3600 Sekunden) aufzeichnen (output: -a FILENAME)
streamripper http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrkultur_hi_mp3 -a FILENAME.mp3 -l 3600
Youtube-DL:
youtube-dl -F <URL> # Listet verfügbare Formate auf
Audio eines Youtube Videos archivieren:
youtube-dl --extract-audio --audio-format mp3 <video URL>
Playlist herunterladen:
while read $f do; curl -s $f >> video.ts done < playlist.m3u8
Streams speichern - Artikel im Ubuntuusers Wiki
RealPlayer Datei *.rm
Herunterladen und Speichern:
mplayer -noframedrop -dumpfile <FILENAME.rm> -dumpstream rtsp://url/to/file.rm
Dump MMS Stream with Mplayer
mplayer -dumpstream -dumpfile stream_video_name.wmv mms://<URL>
oder
mplayer mms:/link/something.xxx -dumpstream -dumpfile file.xxx
mplayer -dumpstream -dumpfile "<file name>.rm" "<RTSP address>"
vlc -v rtsp://SOURCE_IP:554/ipcam.sdp --sout file/ts:FILENAME.ts
Infos zu diesem Thema habe ich hier abgelegt.
Verkleinere alle Fotos im aktuellen Ordner auf 50% der ursprünglichen Größe mit Hilfe des Tools imagemagick
und füge ein -klein
dem Dateinamen hinzu:
for i in *.JPG; do convert $i -resize 50% $(basename $i .JPG)-klein.jpg; done
Verkleinere alle Fotos im aktuellen Ordner auf 600×400 Pixel der ursprünglichen Größe:
for i in *.JPG; do convert $i -resize 600x400 $(basename $i .JPG)-klein.jpg; done
deutsche ''sed'' Beispiele oder die englischen ;-), unter anderem diese:
Ersetze (Suchen und Ersetzen) „foo“ mit „bar“ in jeder Zeile
sed 's/foo/bar/' # Ersetzt nur das 1. Vorkommen pro Zeile sed 's/foo/bar/4' # Ersetzt nur das 4. Vorkommen pro Zeile sed 's/foo/bar/g' # Ersetzt ALLE Vorkommen von "foo" mit "bar"
Ersetze „foo“ mit „bar“ NUR in Zeilen die „bla“ enthalten
sed '/bla/s/foo/bar/g'
Ersetze „foo“ mit „bar“ AUSSER in Zeilen die „baz“ enthalten
sed '/baz/!s/foo/bar/g'
Lösche Zeilen die die Regex pattern
erfüllen
sed '/pattern/d'
#!/bin/sh echo "Hallo Welt"
Nicht vergessen myexample.sh
mit chmod +x myexample.sh
auch ausführbar zu machen
sudo apt install Ghostscript gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.6 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=[compressed.pdf] "[input.pdf]"