Quicki: Parameterexpansion in der bash auf dem Raspberry Pi (Entfernen eines Suffixes, Standardwerte, Ersetzen)

Parameterexpansion ist ein Mechanismus in der Bash, mit dem der Wert einer Variablen verarbeitet und modifiziert werden kann, bevor er verwendet wird. Dies ermöglicht unter anderem das Extrahieren von Teilen von Strings, das Ersetzen von Substrings und das Setzen von Standardwerten.

Parameterexpansion in Bash ermöglicht, den Wert einer Variablen zu manipulieren oder einen Teil davon mit einer speziellen Syntax zu extrahieren. Die grundlegende Form der Parameterexpansion ist

\$ {parameter}

wobei der Wert von parameter ersetzt wird. Die Klammern sind erforderlich, wenn parameter ein Positionsparameter mit mehr als einer Ziffer ist oder wenn parameter von einem Zeichen gefolgt wird, das nicht als Teil seines Namens interpretiert werden soll.

Hier sind einige Beispiele, um zu zeigen, wie Parameterexpansion auf der Kommandozeile funktioniert:
„Quicki: Parameterexpansion in der bash auf dem Raspberry Pi (Entfernen eines Suffixes, Standardwerte, Ersetzen)“ weiterlesen

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?

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

Das kann man sich aber schwer merken. Deshalb legen wir uns ein bash Alias an mit:

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:

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

Raspberry Pi: Fix bash_completion Error nach ssh login

Nach dem ssh Login, kommt bei mir diese oder ähnliche Fehlermeldungen auf der Konsole:

Wie können die Fehler gefixt werden?
fix
Einfach das bash_completion Package neu installieren mit:

Schnell und einfach!

Wie kann die Anzahl der gerade empfangenen Flugzeuge mit DUMP1090 auf einem Raspberry Pi an ThingSpeak.com mit jq gesendet werden?

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.

afo

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

Wie können Scripte im Dock von Mac OS X El Capitän abgelegt und ausgeführt werden?

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.
Automator
Nach dem Start von Automator den Arbeitsablauf wählen:
Automator

Dann unter Bibliothek das Shell-Skript ausführen wählen und rechts den Script-Namen mit Pfad angeben (ohne cat;-) ):
Automator 2

Dort den Script Namen eingeben und als Dateiformat Programm wählen und unter den Script Namen speichern:
Script

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.

Raspberry Pi: Wie kann die History gelöscht werden, um neue Passwörter zu schützen?

Über die History können evl. erstellten Passwörter ausgelesen werden.

Z.B. ein Auszug der History:

Das löschen ist einfach und schnell:

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.

Wie kann das Update für ShellShock auf den Mac installiert werden?

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.

Hier runter laden:
Bildschirmfoto 2014-09-30 um 18.07.05

Dann doppelklick und folgende Dialoge bestätigen.

Bildschirmfoto 2014-09-30 um 18.07.19

Nach der installation im Terminal checken ob der update geklappt hat:

Ausgabe:

Bildschirmfoto 2014-09-30 um 18.12.10

Für den Raspberry Pi gibt es hier im Blog ein paar Links.

Wie kann das Sicherheitsupdate für die Linux-Bash (CVE-2014-6271) des Raspberry Pi gescheckt und installiert werden?

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)

bash

Für den Raspberry Pi gibt es schon ein Update. Ob das System verletzbar ist kann wie folgt in der Konsole getestet werden:

Wenn das System verletzbar ist, wird „verwundbar“ ausgegeben:

Bildschirmfoto 2014-09-25 um 19.04.31

Auch mit:

Bildschirmfoto 2014-09-25 um 19.05.21
bekommt man den Hinweis, das ein Update möglich ist.

Also den rPi updaten mit:

Dann noch checken, mit dem Test:
Bildschirmfoto 2014-09-25 um 19.08.36
Ok.
Und noch mal die Version checken:
Bildschirmfoto 2014-09-25 um 19.09.08
Ok, wir sind nun wieder auch der sicheren Seite oder doch nicht (ShellShock) (CVE-2014-7169).

Wie können von einem Raspberry Pi Dateien in die Dropbox per Kommandozeile hochgeladen bez. gelöscht werden?

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:

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

So dann noch mal testen ob das hochladen läuft, wir laden mal die Readme Datei hoch und anschließend ein list:
Bildschirmfoto 2013-12-29 um 20.48.41

Super, es klappt.

Nun noch mal die Version ausgeben mit:

Ausgabe:

Dropbox Uploader v0.14

Weitere Befehlt unter Usage.

Top 5 der Tastaturbefehle der bash/Linux History

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

Installieren der Bourne-again shell (bash) auf WR-TR703N anstatt der Almquist-Shell (ash)

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