<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Shell on emanuelduss.ch</title>
    <link>https://emanuelduss.ch/tags/shell/</link>
    <description>Recent content in Shell on emanuelduss.ch</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 29 Sep 2018 10:52:08 +0000</lastBuildDate>
    <atom:link href="https://emanuelduss.ch/tags/shell/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>WireGuard VPN Road Warrior Setup</title>
      <link>https://emanuelduss.ch/posts/wireguard-vpn-road-warrior-setup/</link>
      <pubDate>Sat, 29 Sep 2018 10:52:08 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/wireguard-vpn-road-warrior-setup/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;WireGuard is a relatively new open-source software for creating VPN tunnels on
the IP layer using state of the art cryptography. I attended a &lt;a href=&#34;https://events.ccc.de/congress/2017/wiki/index.php/Session:WireGuard&#34;&gt;self-organized
session&lt;/a&gt;
by the creator and developer Jason Donenfeld at the 34c3 who explained how
WireGuard works and how it can be used. I was quite impressed by it&amp;rsquo;s
simplicity and gave it a try. It worked more or less out of the box. Now I
created a more advanced setup for accessing my home network.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tool/Script to encode and decode base16 (Hex) data</title>
      <link>https://emanuelduss.ch/posts/tool-script-to-encode-and-decode-base16-hex-data/</link>
      <pubDate>Sat, 11 Mar 2017 12:54:48 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/tool-script-to-encode-and-decode-base16-hex-data/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc4648&#34;&gt;RFC 4648&lt;/a&gt; (The Base16, Base32, and Base64 Data Encodings) defines different
methods to encode binary data. Every Unix like system has the tool &lt;code&gt;base64&lt;/code&gt;
installed to encode and decode data using the base64 alphabet. This alphabet
includes the characters A-Z, a-z, 0-9, +, / for the data and = for padding. The
base16 encoding scheme, better known as hex encoding, uses the alphabet 0-9 and
A-F. This encoding is case-insensitive. The GNU coreutils do not include a
base16 tool. I searched for a hex encoding and decoding tool with the same
functionality as &lt;code&gt;base64&lt;/code&gt; without success. That&amp;rsquo;s why I wrote a script so I can
use it to hex encode and decode binary data. Basically, it&amp;rsquo;s a wrapper around
some Perl code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>QR-Code Scanner für die Konsole</title>
      <link>https://emanuelduss.ch/posts/qr-code-scanner-fur-die-konsole/</link>
      <pubDate>Mon, 15 Dec 2014 08:18:49 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/qr-code-scanner-fur-die-konsole/</guid>
      <description>&lt;p&gt;Für Mobiltelefone gibt es Barcode/QR-Code Scanner wie Sand am Meer. Für Linux
auf dem Desktop jedoch nicht. Deshalb bastelte ich mir ein kleines Script,
damit ich aus der Bash QR-Codes scannen kann. Das Script baut auf den Tools
&lt;code&gt;scrot&lt;/code&gt; und &lt;code&gt;zbar&lt;/code&gt; auf.&lt;/p&gt;
&lt;h2 id=&#34;qr-code-abfotografieren&#34;&gt;QR-Code Abfotografieren&lt;/h2&gt;
&lt;p&gt;Mit &lt;code&gt;maim&lt;/code&gt; kann man Screenshots machen. Entweder klickt man in ein Fenster
oder man zieht (mit derm Schalter &lt;code&gt;-s&lt;/code&gt;) ein Range auf, welcher man scannen
will:&lt;/p&gt;</description>
    </item>
    <item>
      <title>EXIF Zeitstempel nachträglich hinzufügen mit jhead</title>
      <link>https://emanuelduss.ch/posts/exif-zeitstempel-nachtraglich-hinzufugen-mit-jhead/</link>
      <pubDate>Thu, 01 Aug 2013 13:36:17 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/exif-zeitstempel-nachtraglich-hinzufugen-mit-jhead/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Für mich ist es wichtig, dass Fotos mit einem korrekten Zeitstempel versehen sind. Falls ein Bild noch kein EXIF Zeitstempel besitzt, kann man den mit &lt;code&gt;jhead&lt;/code&gt; einfach hinzufügen.&lt;/p&gt;
&lt;h2 id=&#34;foto-mit-zeitstempel-versehen&#34;&gt;Foto mit Zeitstempel versehen&lt;/h2&gt;
&lt;p&gt;Zuerst muss eventuell noch der EXIF Header dem Foto hinzugefügt werden:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ jhead -mkexif foto.jpg
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach kann man mit der Option &lt;code&gt;-ds&lt;/code&gt; von &lt;code&gt;jhead&lt;/code&gt; das Aufnahmedatum in der Form &lt;code&gt;yyyy:mm:dd&lt;/code&gt; setzen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ jhead -ds2013-05-23 foto.jpg
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Will man zusätzlich noch die Zeit angeben, macht man das mit der Option &lt;code&gt;-ts&lt;/code&gt; im Format &lt;code&gt;yyyy:mm:dd-hh:mm:ss&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aufnahmedatum von Fotos korrigieren mit jhead</title>
      <link>https://emanuelduss.ch/posts/aufnahmedatum-von-fotos-korrigieren-mit-jhead/</link>
      <pubDate>Mon, 22 Jul 2013 14:41:42 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/aufnahmedatum-von-fotos-korrigieren-mit-jhead/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Wenn man Fotos von mehreren Kameras zusammenführen will, ist es von Vorteil,
wenn das Aufnahmedatum auf die Sekunde genau stimmt. Es kann auch sein, dass die
Kamera während den Ferien in der falschen Zeitzone war oder noch auf Winterzeit
eingestellt war. Mit &lt;code&gt;jhead&lt;/code&gt; kann man das Aufnahmedatum von Fotos korrigieren.&lt;/p&gt;
&lt;h2 id=&#34;referenzzeit-fotografieren&#34;&gt;Referenzzeit fotografieren&lt;/h2&gt;
&lt;p&gt;Als erstes braucht man eine Referenzzeit. Dazu eignet sich zum Beispiel eine per
Internet synchronisierte Uhr wie die des Computers oder des Mobiltelefons.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zahlensysteme umrechnen mit bc und Script dazu</title>
      <link>https://emanuelduss.ch/posts/zahlensysteme-umrechnen-mit-bc-und-script-dazu/</link>
      <pubDate>Tue, 04 Jun 2013 06:33:42 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/zahlensysteme-umrechnen-mit-bc-und-script-dazu/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Ich muss oft Zahlen von einem Zahlensystem in ein anderes umwandeln. Für kleine
Zahlen und bekannte Basen geht das noch im Kopf, aber wenn man viele oder grosse
Zahlen umwandeln will, nimmt man gerne die Hilfe eines Computers entgegen. Damit
ich nicht auf eine Internetverbindung und ein Onlinetool angewiesen bin,
entwickelte ich ein kleines Script, welches Zahlensysteme für mich umwandelt.&lt;/p&gt;
&lt;h2 id=&#34;zahlensysteme-umrechnen-mit-bc&#34;&gt;Zahlensysteme umrechnen mit &lt;code&gt;bc&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Mit &lt;code&gt;bc&lt;/code&gt; kann man ganz einfach Zahlensysteme umrechnen. Das kleine Tool &lt;code&gt;bc&lt;/code&gt; ist
bei allen gängigen Linux Distributionen installiert. Mit &lt;code&gt;ibase&lt;/code&gt; gibt man das
Input-Zahlensystem und mit &lt;code&gt;obase&lt;/code&gt; das Output-Zahlensystem an. Auf der Konsole
sieht das so aus:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Den Computer als Wecker benutzen</title>
      <link>https://emanuelduss.ch/posts/den-computer-als-wecker-benutzen/</link>
      <pubDate>Sat, 30 Mar 2013 15:15:01 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/den-computer-als-wecker-benutzen/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Damit ich am Morgen von passender Musik geweckt werde, habe ich mir ein Skript
geschrieben, welches mein Notebook in einen Wecker verwandelt. So stelle ich
normalerweise den Notebook vor dem Schlafen gehen in den Sleep-Modus, welcher 30
Minuten Musik abspielt und danach in den Stanbdy fährt. Am Morgen schaltet mein
Notebook automatisch zur eingestellten Weckzeit ein und spielt die Musik weiter.
So starte ich meist gut in den Tag. Hier beschreibe ich, wie ich das gemacht
habe.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mehrere Terminalfenster verwalten mit tmux (vs. screen)</title>
      <link>https://emanuelduss.ch/posts/mehrere-terminalfenster-verwalten-mit-tmux-vs-screen/</link>
      <pubDate>Sat, 09 Mar 2013 12:16:28 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/mehrere-terminalfenster-verwalten-mit-tmux-vs-screen/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Mit &lt;code&gt;tmux&lt;/code&gt; kann man wie mit &lt;code&gt;screen&lt;/code&gt; mehrere Terminalfenster innerhalb einer
Konsole verwalten. &lt;code&gt;tmux&lt;/code&gt; hat jedoch ein paar Vorteile gegenüber dem Klassiker
&lt;code&gt;screen&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;vorteile-von-tmux-gegenüber-screen&#34;&gt;Vorteile von &lt;code&gt;tmux&lt;/code&gt; gegenüber &lt;code&gt;screen&lt;/code&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fenster können auch vertikal gesplittet werden&lt;/li&gt;
&lt;li&gt;Visuelle Benachrichtigung bei Aktivitäten aus anderem Fenster&lt;/li&gt;
&lt;li&gt;Mehr Konfigurationsoptionen&lt;/li&gt;
&lt;li&gt;Einfachere Konfiguration als (vgl. &lt;code&gt;hardstatusstring&lt;/code&gt; von &lt;code&gt;screen&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Innerhalt &lt;code&gt;tmux&lt;/code&gt; kann man zwischen mehreren Sessions wechseln (Client-Server Prinzip)&lt;/li&gt;
&lt;li&gt;Gut Skriptbar (von der Shell aus)&lt;/li&gt;
&lt;li&gt;Mehrere Buffer für Kopieren/Einfügen&lt;/li&gt;
&lt;li&gt;Fensternamen passen sich dynamisch den aufgerufenen Programmen an&lt;/li&gt;
&lt;li&gt;Fenster können verschoben und vertauscht awerden&lt;/li&gt;
&lt;li&gt;Konfiguration während dem laufenden Betrieb ändern und neu laden&lt;/li&gt;
&lt;li&gt;Programme wie &lt;code&gt;less&lt;/code&gt;, welche normalerweise die Konsole wieder leeren, werden auch geleert&lt;/li&gt;
&lt;li&gt;Noch aktiv unter Entwicklung&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;konfiguration&#34;&gt;Konfiguration&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;tmux&lt;/code&gt; wird mit der Konfigurationsdatei &lt;code&gt;~/.tmux.conf&lt;/code&gt; konfiguriert.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Meine Konfigurationsdatei für screen (~/.screenrc)</title>
      <link>https://emanuelduss.ch/posts/meine-konfigurationsdatei-fur-screen-screenrc/</link>
      <pubDate>Wed, 20 Feb 2013 14:27:57 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/meine-konfigurationsdatei-fur-screen-screenrc/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Mit &lt;code&gt;screen&lt;/code&gt; kann man mehrere Fenster innerhalb eines Terminals verwalten. In
der Standardkonfiguration ist &lt;code&gt;screen&lt;/code&gt; jedoch nicht optimal für das tägliche
Arbeiten konfiguriert. Ich habe &lt;code&gt;screen&lt;/code&gt; so eingerichtet, dass z. B. die
Willkommensnachricht nicht erscheint und dass am unteren Bildschirmrand eine
Leiste mit allen offenen Fenster angezeigt wird.&lt;/p&gt;
&lt;h2 id=&#34;konfiguration&#34;&gt;Konfiguration&lt;/h2&gt;
&lt;p&gt;Mit der Datei &lt;code&gt;.screenrc&lt;/code&gt;, welche im Homeverzeichnis liegt, kann &lt;code&gt;screen&lt;/code&gt;
konfiguriert werden. Die meisten Optionen sind selbsterklärend, deshalb werde
ich nicht auf alle eingehen. Die Optionen sind in der Manpage von &lt;code&gt;screen&lt;/code&gt; zu
sehen, welche man mit &lt;code&gt;man screen&lt;/code&gt; aufrufen kann.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mehrere Terminalfenster verwalten mit screen</title>
      <link>https://emanuelduss.ch/posts/mehrere-terminalfenster-verwalten-mit-screen/</link>
      <pubDate>Thu, 14 Feb 2013 17:07:39 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/mehrere-terminalfenster-verwalten-mit-screen/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Mit &lt;code&gt;screen&lt;/code&gt; kann man mehrere Fenster innerhalb eines Terminals verwalten. So
kann man innerhalb eines Terminalfensters zwischen mehreren Fenster umschalten
und so z. B. auf einem entfernt gelegenen Server mehrere Shells in nur einer
SSH-Verbindung nutzen.&lt;/p&gt;
&lt;h2 id=&#34;grundlegende-aufgaben-mit-fenster&#34;&gt;Grundlegende Aufgaben mit Fenster&lt;/h2&gt;
&lt;p&gt;Das sind die grundlegenden Funktionen, um mit &lt;code&gt;screen&lt;/code&gt; zu arbeiten. &lt;code&gt;C-a&lt;/code&gt;
bedeutet &lt;code&gt;Control + A&lt;/code&gt; Taste.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;C-a c&lt;/code&gt; Neues Fenster erzeugen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-a A&lt;/code&gt; Dem aktuellen Fenster einen Titel geben&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-a k&lt;/code&gt; Fenster killen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-a &amp;quot;&lt;/code&gt; Liste mit Fenster anzeigen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-a space&lt;/code&gt; oder &lt;code&gt;C-a n&lt;/code&gt; Ein Fenster weiter&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-a Backspace&lt;/code&gt; oder &lt;code&gt;C-a p&lt;/code&gt; Ein Fenster zurück&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-a n&lt;/code&gt; Zu Fenster &lt;code&gt;n&lt;/code&gt; gehen ( &lt;code&gt;n&lt;/code&gt; = 1 bis 9)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C-a C-a&lt;/code&gt; Zurück zum vorher ausgewählten Fenster&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;erweiterte-funktionen&#34;&gt;Erweiterte Funktionen&lt;/h2&gt;
&lt;p&gt;Folgende Funktionen benötige ich nur zwischendurch:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fotos zu einem Zeitraffer zusammenfügen mit ffmpeg</title>
      <link>https://emanuelduss.ch/posts/fotos-zu-einem-zeitraffer-zusammenfugen-mit-ffmpeg/</link>
      <pubDate>Thu, 22 Nov 2012 22:42:04 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/fotos-zu-einem-zeitraffer-zusammenfugen-mit-ffmpeg/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Manche Digitalkameras können Fotos in einem bestimmten Zeitintervall auslösen.
Nach ein paar Stunden sammeln sich viele Fotos in einem Ordner an, welche man
mit &lt;code&gt;ffmpeg&lt;/code&gt; in ein Video umwandeln kann. Ich habe einige Zeit gebraucht, bis
alles endlich funktioniert hat. Hier seht ihr, wie man das mit &lt;code&gt;ffmpeg&lt;/code&gt; machen
kann.&lt;/p&gt;
&lt;h2 id=&#34;schritt-für-schritt&#34;&gt;Schritt für Schritt&lt;/h2&gt;
&lt;h3 id=&#34;ausgangslage&#34;&gt;Ausgangslage&lt;/h3&gt;
&lt;p&gt;Als Ausgangslage habe ich viele Fotos in einem Verzeichnis:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ls
2011-07-08_13-59-58.jpg  2011-07-08_15-01-27.jpg  2011-07-08_16-02-57.jpg
2011-07-08_14-00-07.jpg  2011-07-08_15-01-38.jpg  2011-07-08_16-03-08.jpg
2011-07-08_14-00-17.jpg  2011-07-08_15-01-47.jpg  2011-07-08_16-03-17.jpg
[...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In meinem Fall sind das 1104 Fotos:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wikipedia-Einträge über DNS abfragen</title>
      <link>https://emanuelduss.ch/posts/wikipedia-eintrage-uber-dns-abfragen/</link>
      <pubDate>Mon, 14 Feb 2011 20:31:22 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/wikipedia-eintrage-uber-dns-abfragen/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Die Online-Enzyklopädie Wikipedia kann über DNS abgefragt werden. Toll daran
ist, dass man somit jederzeit die Definition von einem Begriff aus der Shell
heraus per DNS abfragen kann.&lt;/p&gt;
&lt;h2 id=&#34;technik&#34;&gt;Technik&lt;/h2&gt;
&lt;p&gt;Der DNS-Server &lt;code&gt;wp.dg.cx&lt;/code&gt; stellt über TXT-Ressource-Records den ersten Absatz von den englischen Wikipedia-Artikeln zur Verfügung. Der DNS-Server kann mit &lt;code&gt;nslookup&lt;/code&gt; oder &lt;code&gt;dig&lt;/code&gt; abgefragt werden.&lt;/p&gt;
&lt;h2 id=&#34;abfrage&#34;&gt;Abfrage&lt;/h2&gt;
&lt;p&gt;Ich möchte die Definition von &lt;code&gt;Foo&lt;/code&gt; wissen. Der DNS-Query sieht folgendermassen aus:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;emanuel@discordia:~
$ dig foo.wp.dg.cx TXT
;; Truncated, retrying in TCP mode.
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.7.2-P3 &amp;lt;&amp;lt;&amp;gt;&amp;gt; txt foo.wp.dg.cx
;; global options: +cmd
;; Got answer:
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 7560
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 1
;; QUESTION SECTION:
;foo.wp.dg.cx.                  IN      TXT
;; ANSWER SECTION:
foo.wp.dg.cx.           86400   IN      TXT     &amp;#34;The term foobar,
along with foo, bar, and baz, is a common placeholder name
(also referred to as a metasyntactic variable) used in computer
programming or computer-related documentation. These four
terms are used heavily in computer science to take the pl&amp;#34; &amp;#34;ace
of unknown values, typically while describing a scenario where
the purpose of the unknown values are understood, but...
http://a.vu/w:Foobar&amp;#34;
;; AUTHORITY SECTION:
.                       78741   IN      NS      g.root-servers.net.
.                       78741   IN      NS      f.root-servers.net.
.                       78741   IN      NS      h.root-servers.net.
.                       78741   IN      NS      e.root-servers.net.
.                       78741   IN      NS      k.root-servers.net.
.                       78741   IN      NS      l.root-servers.net.
.                       78741   IN      NS      j.root-servers.net.
.                       78741   IN      NS      c.root-servers.net.
.                       78741   IN      NS      a.root-servers.net.
.                       78741   IN      NS      m.root-servers.net.
.                       78741   IN      NS      i.root-servers.net.
.                       78741   IN      NS      b.root-servers.net.
.                       78741   IN      NS      d.root-servers.net.
;; ADDITIONAL SECTION:
a.root-servers.net.     79004   IN      A       198.41.0.4
;; Query time: 5 msec
;; SERVER: 10.0.0.10#53(10.0.0.10)
;; WHEN: Mon Feb 14 21:11:04 2011
;; MSG SIZE  rcvd: 670
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In der Answer-Section steht die Erklärung von &lt;code&gt;Foo&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fotos nach Datum umbenennen mit jhead</title>
      <link>https://emanuelduss.ch/posts/fotos-nach-datum-umbenennen-mit-jhead/</link>
      <pubDate>Sun, 06 Feb 2011 17:10:55 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/fotos-nach-datum-umbenennen-mit-jhead/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Digitalkameras speichern Bilder oft unter Dateinamen wie &lt;code&gt;DSC00523.jpg&lt;/code&gt;. Mit
diesen nicht sprechenden Namen kann ich nicht viel anfangen. Das Datum und die
Uhrzeit des Fotos ist für den Dateinamen viel besser geeignet.&lt;/p&gt;
&lt;h2 id=&#34;exif-daten-auslesen&#34;&gt;EXIF-Daten auslesen&lt;/h2&gt;
&lt;p&gt;Die Digitalkamera speichert das Datum und die Uhrzeit in den so genannten
EXIF-Tags. Mit &lt;code&gt;jhead&lt;/code&gt; kann man diese Tags auslesen und bearbeiten.&lt;/p&gt;
&lt;p&gt;Mit &lt;code&gt;jhead dateiname.jpg&lt;/code&gt; kann man sich die EXIF-Tags anzeigen lassen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;emanuel@discordia:~
$ jhead DSC00523.JPG
File name    : DSC00523.JPG
File size    : 2277972 bytes
File date    : 2011:02:06 13:45:34
Camera make  : Canon
Camera model : Canon DIGITAL IXUS 80 IS
Date/Time    : 2010:12:27 12:02:37
Resolution   : 2592 x 1944
Flash used   : No
Focal length : 14.3mm  (35mm equivalent: 90mm)
CCD width    : 5.72mm
Exposure time: 0.020 s  (1/50)
Aperture     : f/4.5
Focus dist.  : 6.57m
ISO equiv.   : 800
Whitebalance : Auto
Metering Mode: pattern
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In der Zeile &lt;code&gt;Date/Time&lt;/code&gt; sieht man, dass das Foto am &lt;code&gt;27.12.2010&lt;/code&gt; um &lt;code&gt;12:02:37h&lt;/code&gt; erstellt wurde.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Manpages farbig darstellen</title>
      <link>https://emanuelduss.ch/posts/manpages-farbig-darstellen/</link>
      <pubDate>Sun, 30 Jan 2011 18:38:27 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/manpages-farbig-darstellen/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Ich mag es, wenn meine Konsole farbig dargestellt wird. So finde ich es auch
praktisch, wenn bestimmte Schlüsselwörter in Manpages farbig hervorgehoben
werden.&lt;/p&gt;
&lt;h2 id=&#34;anleitung&#34;&gt;Anleitung&lt;/h2&gt;
&lt;p&gt;Mit folgenden Befehlen kann man den Pager &lt;code&gt;less&lt;/code&gt; dazu bringen, die Ausgaben
anders zu formatieren:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export LESS_TERMCAP_us&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#39;\E[01;32m&amp;#39;&lt;/span&gt;       &lt;span style=&#34;color:#75715e&#34;&gt;# Beginn unterstrichen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export LESS_TERMCAP_ue&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#39;\E[0m&amp;#39;&lt;/span&gt;           &lt;span style=&#34;color:#75715e&#34;&gt;# Ende unterstrichen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export LESS_TERMCAP_so&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#39;\E[01;44;33m&amp;#39;&lt;/span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# Beginn Standout-Mode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export LESS_TERMCAP_se&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#39;\E[0m&amp;#39;&lt;/span&gt;           &lt;span style=&#34;color:#75715e&#34;&gt;# Ende Standout-Mode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export LESS_TERMCAP_md&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#39;\E[01;31m&amp;#39;&lt;/span&gt;       &lt;span style=&#34;color:#75715e&#34;&gt;# Start fett&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export LESS_TERMCAP_mb&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#39;\E[01;31m&amp;#39;&lt;/span&gt;       &lt;span style=&#34;color:#75715e&#34;&gt;# Start blinken&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export LESS_TERMCAP_me&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#39;\E[0m&amp;#39;&lt;/span&gt;           &lt;span style=&#34;color:#75715e&#34;&gt;# Ende alles&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Diese Befehle schreibt man sich in die Datei &lt;code&gt;~/.bashr&lt;/code&gt;c, die automatisch bei jeder neuen Shell ausgeführt wird.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fotos automatisch drehen mit jhead</title>
      <link>https://emanuelduss.ch/posts/fotos-automatisch-drehen-mit-jhead/</link>
      <pubDate>Sun, 16 Jan 2011 18:56:47 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/fotos-automatisch-drehen-mit-jhead/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Viele Digitalkameras verfügen über einen Gravitationssensor, der erkennt, wie
die Kamera beim erstellen des Bildes gehalten wurde. Diese Information kann man
dazu nutzen, um das Bild automatisch richtig zu drehen. Die Information wird im
EXIF-Tag &amp;ldquo;Orientation&amp;rdquo; des Bildes gespeichert. Mit dem Tool &lt;code&gt;jhead&lt;/code&gt; kann man
diese Information auslesen und das Foto automatisch drehen lassen.&lt;/p&gt;
&lt;h2 id=&#34;exif-daten&#34;&gt;EXIF-Daten&lt;/h2&gt;
&lt;p&gt;Wird &lt;code&gt;jhead&lt;/code&gt; keine Option angegeben, werden einige EXIF-Informationen angezeigt:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ jhead foto.jpg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;File name    : foto.jpg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;File size    : 2040209 bytes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;File date    : 2011:01:16 18:22:37
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Camera make  : Canon
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Camera model : Canon DIGITAL IXUS 80 IS
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Date/Time    : 2011:01:14 23:05:42
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Resolution   : 2592 x 1944
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Orientation  : rotate 90
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Flash used   : Yes (auto)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Focal length :  6.2mm  (35mm equivalent: 39mm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CCD width    : 5.72mm
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Exposure time: 0.017 s  (1/60)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Aperture     : f/2.8
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Focus dist.  : 0.48m
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ISO equiv.   : 250
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Whitebalance : Auto
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Metering Mode: pattern
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Das Tag &amp;ldquo;Orientation&amp;rdquo; sagt, dass das Bild um 90° gedreht wurde. Aber jetzt weiss
man immer noch nicht, ob das Bild im Uhrzeigersinn, oder im Gegenuhrzeigersinn
gedreht werden muss.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bilder verkleinern mit convert (imagemagick)</title>
      <link>https://emanuelduss.ch/posts/bilder-verkleinern-mit-convert-imagemagick/</link>
      <pubDate>Sun, 12 Dec 2010 16:55:04 +0000</pubDate>
      <guid>https://emanuelduss.ch/posts/bilder-verkleinern-mit-convert-imagemagick/</guid>
      <description>&lt;h2 id=&#34;einführung&#34;&gt;Einführung&lt;/h2&gt;
&lt;p&gt;Wenn man im Internet eine Fotogalerie publizieren will, oder man viele Fotos per
E-Mail verschicken will, sollte man die Fotos verkleinern. Ich habe mir ein
Skript geschrieben, welches die Auflösung der Bilder verkleinert und die
JPEG-Qualitätsstufe heruntersetzt. Somit kann man ganz schnell viele Bilder
verkleinern.&lt;/p&gt;
&lt;h2 id=&#34;einzelne-bilder-verkleinern&#34;&gt;Einzelne Bilder verkleinern&lt;/h2&gt;
&lt;p&gt;Mit dem Befehl &lt;code&gt;convert&lt;/code&gt; kann ein Bild verkleinert werden. Hierzu muss das Paket &lt;code&gt;imagemagick&lt;/code&gt; installiert sein.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;convert -resize 2048x2048 -quality &lt;span style=&#34;color:#ae81ff&#34;&gt;60&lt;/span&gt; bild.jpg klein.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Man sieht gut, wie sich die Dateigrösse verändert:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
