Wer auf einem Raspberry Pi die Zeit auch in der History haben will,
kann in der Datei … „Zeitangabe in der History“ weiterlesen
Wenzlaff.de – Rund um die Programmierung
mit Java, Raspberry Pi, SDR, Linux, Arduino, Sicherheit, Blender, Krypto und Blockchain
Wer auf einem Raspberry Pi die Zeit auch in der History haben will,
kann in der Datei … „Zeitangabe in der History“ weiterlesen
Dann diese Einstellungen anpassen: „Was tun wenn der StartExplorer – „Start Shell Here“ unter Eclipse 2019-09 und ios 13 nicht mehr angezeigt wird?“ weiterlesen
Wie können auf einem Raspberry Pi die 3 größten Dateien in einem Verzeichnis rekursiv ausgeben werden? Z.B. aus dem aktuellem Verzeichnis mit
1 |
du -a . | sort -n -r | head -n 3 |
Das kann man sich aber schwer merken. Deshalb legen wir uns ein bash Alias an mit:
1 |
alias dudrei='du -a . | sort -n -r | head -n 3' |
Das wird aber nach einem restart vergessen. Deshalb tragen wir diese Zeile in der ~/.bash_aliases Datei ein. Wenn es sie noch nicht gibt, legen wir sie an mit diesem Inhalt:
1 2 |
# Gib eine Liste der 3 größten Dateien aus alias dudrei='du -a . | sort -n -r | head -n 3' |
Schon können wir auch nach einem Restart dudrei eingeben und erhalten die 3 größten Dateien im Verzeichnis, z.B. „Wie können auf einem Raspberry Pi die 3 größten Dateien in einem Verzeichnis rekursiv ausgeben werden? Oder wie können alias angelegt werden?“ weiterlesen
Bash oder SH bzw. KSH Scripte können in Eclipse auch farblich angezeigt und bearbeitet werden mit dem ShellEd IDE Plugin. Das kann leicht über die URL
1 |
http://download.eclipse.org/releases/photon |
installiert werden.
„Scripte farblich anzeigen und bearbeiten in Eclipse Photon mit ShellEd“ weiterlesen
Nach dem ssh Login, kommt bei mir diese oder ähnliche Fehlermeldungen auf der Konsole:
1 2 3 |
-bash: /usr/share/bash-completion/bash_completion: line 1942: unexpected EOF while looking for matching `"' -bash: /usr/share/bash-completion/bash_completion: line 1957: unexpected token `�' in conditional command -bash: /usr/share/bash-completion/bash_completion: line 1957: syntax error: unexpected end of file |
Wie können die Fehler gefixt werden?
Einfach das bash_completion Package neu installieren mit:
1 |
sudo apt-get install bash-completion |
Schnell und einfach!
Wie kann die Anzahl der gerade empfangenen Flugzeuge mit DUMP1090 auf einem Raspberry Pi an ThingSpeak.com mit jq gesendet werden?
Wir verwenden ein kleines bash Script, welches über jq die aircraft.json Datei auswertet. Diese Daten werden dann automatisch alle 5 Minuten per crontab an ThingSpeak gesendet.
Der jq ist ein Kommandline JSON Tool, das den Input der JSon aircraft.json Datei verwendet und das gefilterte Ergebnis wieder ausgibt. In diesem Fall die Anzahl der Flugzeuge. „Wie kann die Anzahl der gerade empfangenen Flugzeuge mit DUMP1090 auf einem Raspberry Pi an ThingSpeak.com mit jq gesendet werden?“ weiterlesen
Will man bash oder sh Scripte über ein Icon aus dem Dock von Mac OS X El Capitan starten, geht das mit dem Mac Programm Automator das bei der El Capitan installation enthalten ist.
Nach dem Start von Automator den Arbeitsablauf wählen:
Dann unter Bibliothek das Shell-Skript ausführen wählen und rechts den Script-Namen mit Pfad angeben (ohne cat;-) ):
Dort den Script Namen eingeben und als Dateiformat Programm wählen und unter den Script Namen speichern:
Dann die erstellte Script-Namen.sh.app per Drag and Drop in das Dock verschieben. Schon kann mit einem klick im Dock das Script bequem ausgeführt werden.
Über die History können evl. erstellten Passwörter ausgelesen werden.
Z.B. ein Auszug der History:
1 2 3 4 5 6 7 |
1 history 2 print passwort GEHEIM 3 history 4 ls 5 ls -la 6 ls 7 history |
Das löschen ist einfach und schnell:
1 |
history -c |
Aber besser ist es noch, die Passwörter gar nicht erst in der History erscheinen zu lassen, das geht mit einem oder mehrerer Space (Leerzeichen) vor dem Befehl z.B.
1 |
(Space) ls -la GEHEIM |
Der ShellShock zieht Kreise, nun gibt es auch ein update für Macs, wie bei Heise beschrieben.
Das Update muss aber manuell von Apple geladen und installiert werden.
Dann doppelklick und folgende Dialoge bestätigen.
Nach der installation im Terminal checken ob der update geklappt hat:
1 |
bash --version |
Ausgabe:
Für den Raspberry Pi gibt es hier im Blog ein paar Links.
Wie in dem Heise Artikel beschrieben, gibt es in der bash eine Sicherheitslücke CVE-2014-6271.
Das sind die Abhängigkeiten der bash, auf meinem Raspberry Pi (Debian, Jessie)
Für den Raspberry Pi gibt es schon ein Update. Ob das System verletzbar ist kann wie folgt in der Konsole getestet werden:
1 |
env x='() { :;}; echo verwundbar' bash -c "echo Test ob die bash verwundbar ist." |
Wenn das System verletzbar ist, wird „verwundbar“ ausgegeben:
Auch mit:
1 |
apt-show-versions bash |
bekommt man den Hinweis, das ein Update möglich ist.
Also den rPi updaten mit:
1 2 |
sudo apt-get update sudo apt-get upgrade |
Dann noch checken, mit dem Test:
Ok.
Und noch mal die Version checken:
Ok, wir sind nun wieder auch der sicheren Seite oder doch nicht (ShellShock) (CVE-2014-7169).
Es können leicht Daten vom Raspberry Pi von und nach Dropbox geschoben werden. So hat man seine Daten überall gleich.
Es gibt da ein super Script auf Github von Andrea Fabrizi
Es kann wie folgt installiert werden:
1 2 3 4 5 |
sudo apt-get install git-core cd /pi/home git clone https://github.com/andreafabrizi/Dropbox-Uploader.git cd Dropbox-Uploader ./dropbox_uploader.sh |
Dann auf Dropbox (mit vorhandenen Account und angemeldet)
https://www2.dropbox.com/developers/apps
gehen und eine App anlegen mit „Create App“ -> „Dropbox API app“ –> „Files and datstores“ –> Wichtig nur Zugriff auf das App Verzeichnis erlauben und einen „App Name“ eingeben.
Dann die App key und App secrect in das Script kopieren. Bei der Frage „Permission type, App folder or Full Dropbox [a/f]:“ a
Dann noch einmal: y
Die dann erscheinende URL in einem Browser kopieren und bestätigen. Dann auf Enter und das Script ist mit „Setup completed!“ erfolgreich beendet.
Ein kurzer Test mit im Dropbox-Uploader Verzeichnis
1 2 3 4 5 |
~/Dropbox-Uploader $ ./dropbox_uploader.sh <strong>list</strong> </code> listet alle Dateien im Verzeichnis auf. Da noch keine vorhanden sind, kommt <code> > Listing "/"... DONE |
So dann noch mal testen ob das hochladen läuft, wir laden mal die Readme Datei hoch und anschließend ein list:
Super, es klappt.
Nun noch mal die Version ausgeben mit:
1 |
./dropbox_uploader.sh info |
Ausgabe:
Dropbox Uploader v0.14
…
Weitere Befehlt unter Usage.
history | grep foo sucht in der History alle Zeilen mit foo und zeigt alle an
!123 führt den Befehl aus der History mit der Nummer 123 aus
!123:p führt den Befehl aus der History mit der Nummer 123 aus, zeigt ihn aber vorher noch an
!foo führt den letzen Befehl aus der History aus der mit foo beginnt
!foo:p führt den letzen Befehl aus der History aus der mit foo beginnt, zeigt ihn aber vorher noch an
Nach dem Installieren von OpenWrt ist die Almquist-Shell (ash) installiert. Da die ash
im Vergleich zu anderen modernen Shells sehr geringe Ansprüche an Speichergröße und Rechnergeschwindigkeit stellt, wird sie in OpenWrt und anderen Embedded-Linux-Systemen verwendet.
Welche Shell aktiv ist kann mit
echo $SHELL
auf der Konsole angezeigt werden. Obwohl der Befehl ja nur den Inhalt der Variable SHELL ausgibt, und die muss ja nicht immer richtig gesetzt sein.
Es reicht auch ein
echo $0
welches dann
-bash
oder je nach Shell einen Wert ausgibt.
So nun wollen wir die bash installieren weil sie komfortabler und gebräuchlicher ist.
opkg update
opkg install bash
in /etc/passwd
in der ersten Zeile, der root Zeile die bash eintragen:
root:x:0:0:root:/root:/bin/bash
dann eine Datei .bash_profile anlegen mit folgenden Inhalt:
echo ". $HOME/.bashrc" > /root/.bash_profile
dann eine eigene .bashrc Datei mit den User-Einstellungen anlegen, oder diese verwenden:
wget -P /root/ http://wenzlaff.de/download/linux/.bashrc
Nach dem ausloggen und einloggen steht die bash zur Verfügung, was leicht mit
$ echo $SHELL
getestet werden kann, es wird dann ausgegeben:
/bin/bash
Im Terminal-Fenster (bash) des Mac oder Linux kann die History der eingegebenen Befehle angezeigt werden.
Dazu einfach history eingeben.
Welche findes Du noch nützlich?