<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Tipp am Donnerstag</title>
    <link>https://blog.tuxomat.eu/</link>
    <description>Immer donnerstags gibts hier einen Tipp, der das Leben an der Tastatur leichter macht.</description>
    <pubDate>Tue, 28 Jul 2026 04:00:32 +0000</pubDate>
    <item>
      <title>In der Historie suchen</title>
      <link>https://blog.tuxomat.eu/in-der-historie-suchen</link>
      <description>&lt;![CDATA[Es ist einfach, einen Befehl zu finden, der vor einiger Zeit schon mal eingetippt wurde. Das kann helfen, um Tipparbeit zu sparen, oder auch um die Parameter aufwändiger Kommandozeilen wiederzufinden. !--more--&#xA;&#xA;Drücke Ctrl-r, und dann gib einen beliebigen Teil der Kommandozeile ein, die gesucht wird. Mit jedem Tastendruck wird der letzte Befehl, der irgendwo den eingetippten String enthält, angezeigt. Wiederholtes Drücken von Ctrl-r zeigt den vorletzen, vorvorletzten, … Eintrag an. &#xA;Das Drücken einer beliebigen anderen Taste führt in den normalen Bearbeitungsmodus zurück - die ausgewählte &#34;alte&#34; Kommandozeile kann jetzt noch bearbeitet werden.&#xA;&#xA;Anmerkungen&#xA;&#xA;Die Doku besagt, dass Ctrl-s vorwärts anstatt rückwärts sucht. Diese Tastenkombination ist jedoch meist an die Funktion stop des Tastaturtreibers gebunden. Das kann mit stty -a überprüft werden. ]]&gt;</description>
      <content:encoded><![CDATA[<p>Es ist einfach, einen Befehl zu finden, der vor einiger Zeit schon mal eingetippt wurde. Das kann helfen, um Tipparbeit zu sparen, oder auch um die Parameter aufwändiger Kommandozeilen wiederzufinden. </p>

<p>Drücke <code>Ctrl</code>-<code>r</code>, und dann gib einen beliebigen Teil der Kommandozeile ein, die gesucht wird. Mit jedem Tastendruck wird der letzte Befehl, der <em>irgendwo</em> den eingetippten String enthält, angezeigt. Wiederholtes Drücken von <code>Ctrl</code>-<code>r</code> zeigt den vorletzen, vorvorletzten, … Eintrag an.
Das Drücken einer beliebigen anderen Taste führt in den normalen Bearbeitungsmodus zurück – die ausgewählte “alte” Kommandozeile kann jetzt noch bearbeitet werden.</p>

<h3 id="anmerkungen">Anmerkungen</h3>

<p>Die Doku besagt, dass <code>Ctrl</code>-<code>s</code> vorwärts anstatt rückwärts sucht. Diese Tastenkombination ist jedoch meist an die Funktion <strong>stop</strong> des Tastaturtreibers gebunden. Das kann mit <code>stty -a</code> überprüft werden.</p>
]]></content:encoded>
      <guid>https://blog.tuxomat.eu/in-der-historie-suchen</guid>
      <pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Alias</title>
      <link>https://blog.tuxomat.eu/alias</link>
      <description>&lt;![CDATA[[Wiktionary]: https://de.wiktionary.org/wiki/Alias&#xA;&#xA;Ein Alias (der oder das, Plural: Aliasse oder Alias, siehe [Wiktionary]) ist ein Wort, das von der bash vor dem Ausführen der Kommandozeile gegen eine andere Zeichenkette ersetzt wird. Dafür gelten Regeln, und es gibt Einschränkungen. !--more--&#xA;&#xA;Ein Alias wird so definiert: alias ll=&#39;ls -l&#39;. Ab jetzt wird ls -l ausgeführt, wenn du ll eintippst.&#xA;&#xA;Die Ersetzung ist rein textuell&#xA;Sie wird nur vorgenommen, wenn das Alias an einer Position steht, wo es das erste Wort eines Kommandos sein kann&#xA;In die Historie wird der eingetippte Wert geschrieben&#xA;Wenn auf der Kommandozeile das Wort nach dem Alias wiederum als Alias gecheckt werden soll, den Wert des Alias mit einem Leerzeichen beenden.&#xA;&#xA;Beispiele:&#xA;alias world=&#39;echo &#34;Hello world!&#34;&#39;&#xA;&#xA;world              # wird ersetzt, --  echo &#34;Hello world!&#34;&#xA;echo hallo world   # wird nicht ersetzt: --  echo hallo world&#xA;echo hallo; world  # wird ersetzt: --  echo hallo; echo &#34;Hello world!&#34;&#xA;Aliasse können Befehle gleichen Namens überschreiben. Dadurch können Standardparameter gesetzt werden: alias cp=&#39;cp -i&#39;. &#xA;Soll das ursprüngliche Kommando ausgeführt werden, also die Alias-Ersetzung unterdrückt werden, dann setze das Kommando in (einfache oder doppelte) Anführungszeichen. &#39;cp&#39; führt cp aus, nicht cp -i.&#xA;&#xA;Einschränkungen&#xA;Nachdem es sich um eine rein textliche Ersetzung handelt, können innerhalb des Alias keine lokalen Variablen gesetzt werden.&#xA;An Aliasse können, anders als bei Funktionen, keine Parameter übergeben werden. &#xA;&#xA;Weiteres&#xA;alias ohne Parameter gibt die aktuell definierten Aliasse aus&#xA;Jede Distribution hat i. d. R. einen eigenen Standardsatz vordefinierter Aliasse. &#xA;Eigene Aliasse definierst du in den bash-Startupfiles in deinem $HOME-Verzeichnis. Hier unterscheiden sich die Distributionen – schau dir die Dateien ~/.bashrc, ~/.bashrc.local und ~/.bash\aliases_ (sofern vorhanden) an. Du wirst herausfinden, wie deine Distribution hier vorkonfiguriert ist.]]&gt;</description>
      <content:encoded><![CDATA[<p>Ein Alias (der oder das, Plural: Aliasse oder Alias, siehe <a href="https://de.wiktionary.org/wiki/Alias">Wiktionary</a>) ist ein Wort, das von der bash vor dem Ausführen der Kommandozeile gegen eine andere Zeichenkette ersetzt wird. Dafür gelten Regeln, und es gibt Einschränkungen. </p>

<p>Ein Alias wird so definiert: <code>alias ll=&#39;ls -l&#39;</code>. Ab jetzt wird <em>ls -l</em> ausgeführt, wenn du <em>ll</em> eintippst.</p>
<ul><li>Die Ersetzung ist rein textuell</li>
<li>Sie wird nur vorgenommen, wenn das Alias an einer Position steht, wo es das erste Wort eines Kommandos sein kann</li>
<li>In die Historie wird der eingetippte Wert geschrieben</li>
<li>Wenn auf der Kommandozeile das Wort nach dem Alias wiederum als Alias gecheckt werden soll, den Wert des Alias mit einem Leerzeichen beenden.</li></ul>

<p>Beispiele:</p>

<pre><code class="language-bash">alias world=&#39;echo &#34;Hello world!&#34;&#39;

world              # wird ersetzt, --&gt; echo &#34;Hello world!&#34;
echo hallo world   # wird nicht ersetzt: --&gt; echo hallo world
echo hallo; world  # wird ersetzt: --&gt; echo hallo; echo &#34;Hello world!&#34;
</code></pre>

<p>Aliasse können Befehle gleichen Namens überschreiben. Dadurch können Standardparameter gesetzt werden: <code>alias cp=&#39;cp -i&#39;</code>.
Soll das ursprüngliche Kommando ausgeführt werden, also die Alias-Ersetzung unterdrückt werden, dann setze das Kommando in (einfache oder doppelte) Anführungszeichen. <code>&#39;cp&#39;</code> führt <em>cp</em> aus, nicht <em>cp -i</em>.</p>

<h3 id="einschränkungen">Einschränkungen</h3>
<ul><li>Nachdem es sich um eine rein textliche Ersetzung handelt, können innerhalb des Alias keine lokalen Variablen gesetzt werden.</li>
<li>An Aliasse können, anders als bei Funktionen, keine Parameter übergeben werden.</li></ul>

<h3 id="weiteres">Weiteres</h3>
<ul><li><code>alias</code> ohne Parameter gibt die aktuell definierten Aliasse aus</li>
<li>Jede Distribution hat i. d. R. einen eigenen Standardsatz vordefinierter Aliasse.</li>
<li>Eigene Aliasse definierst du in den bash-Startupfiles in deinem $HOME-Verzeichnis. Hier unterscheiden sich die Distributionen – schau dir die Dateien <em>~/.bashrc</em>, <em>~/.bashrc.local</em> und <em>~/.bash_aliases</em> (sofern vorhanden) an. Du wirst herausfinden, wie deine Distribution hier vorkonfiguriert ist.</li></ul>
]]></content:encoded>
      <guid>https://blog.tuxomat.eu/alias</guid>
      <pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Brace Expansion</title>
      <link>https://blog.tuxomat.eu/brace-expansion</link>
      <description>&lt;![CDATA[Brace Expansion ist ein Mechanismus um beliebige Zeichenketten zu erzeugen, die sich ein gemeinsames Präfix und/oder Suffix teilen. Das ist möglich über Aufzählungen oder Sequenzen. Hört sich kompliziert an? Ist es aber nicht, wie Beispiele zeigen. !--more--&#xA;&#xA;Aufzählungen und Sequenzen werden innerhalb geschweifter Klammern definiert.&#xA;&#xA;Aufzählungen&#xA;Die Elemente der Aufzählung werden durch Kommata getrennt.&#xA;&#xA;Beispiele:&#xA;&#xA;echo Narr{i,o} --  Narri Narro&#xA;&#xA;Verzeichnisstruktur anlegen&#xA;mkdir -p album/cd{1,2,3}  --  album/cd 1 album/cd2 album/cd3&#xA;&#xA;Sicherungskopie einer Datei anlegen (beachte: leere Aufzählungselemente sind zulässig)&#xA;cp /path/to/file{,.sik} --  cp /path/to/file /path/to/file.sik&#xA;&#xA;Sequenzen&#xA;&#xA;Startwert, Endwert und ggf. Inkrement werden durch zwei Punkte getrennt: {x..y[..incr]}.&#xA;&#xA;Beispiele&#xA;&#xA;Lege einen Ordner für jeden Tag des Monats Juli an:&#xA;mkdir 2026-07-{1..31}&#xA;Tag mit führenden Nullen&#xA;mkdir 2026-07-{01..31}&#xA;&#xA;Countdown&#xA;for i in {10..00}; do echo &#34;$i&#34;; sleep 1; done&#xA;&#xA;7er-Reihe&#xA;echo sieben{00..70..7}&#xA;&#xA;Anmerkungen&#xA;&#xA;Brace expansions können mehrstufig sein:&#xA;echo movieS{01..03}E{01..04}&#xA;Die zweite Expansion wird für jedes Ergebnis der ersten Expansion durchgeführt.&#xA;Auch Schachtelungen sind möglich.&#xA;&#xA;Sequenzen können auch aus einzelnen Buchstaben geformt werden:&#xA;echo Beispiel{a..f}&#xA;&#xA;Und wie immer gilt: Weiteres ist der man-Page zu bash zu entnehmen. Suche nach Brace Expansion_.]]&gt;</description>
      <content:encoded><![CDATA[<p>Brace Expansion ist ein Mechanismus um beliebige Zeichenketten zu erzeugen, die sich ein gemeinsames Präfix und/oder Suffix teilen. Das ist möglich über Aufzählungen oder Sequenzen. Hört sich kompliziert an? Ist es aber nicht, wie Beispiele zeigen. </p>

<p>Aufzählungen und Sequenzen werden innerhalb geschweifter Klammern definiert.</p>

<h3 id="aufzählungen">Aufzählungen</h3>

<p>Die Elemente der Aufzählung werden durch Kommata getrennt.</p>

<h4 id="beispiele">Beispiele:</h4>

<p><code>echo Narr{i,o}</code> —&gt; Narri Narro</p>

<p>Verzeichnisstruktur anlegen
<code>mkdir -p album/cd{1,2,3}</code>  —&gt;  album/cd 1 album/cd2 album/cd3</p>

<p>Sicherungskopie einer Datei anlegen (beachte: leere Aufzählungselemente sind zulässig)
<code>cp /path/to/file{,.sik}</code> —&gt; cp /path/to/file /path/to/file.sik</p>

<h3 id="sequenzen">Sequenzen</h3>

<p>Startwert, Endwert und ggf. Inkrement werden durch zwei Punkte getrennt: {x..y[..incr]}.</p>

<h4 id="beispiele-1">Beispiele</h4>

<p>Lege einen Ordner für jeden Tag des Monats Juli an:
<code>mkdir 2026-07-{1..31}</code>
Tag mit führenden Nullen
<code>mkdir 2026-07-{01..31}</code></p>

<p>Countdown
<code>for i in {10..00}; do echo &#34;$i&#34;; sleep 1; done</code></p>

<p>7er-Reihe
<code>echo sieben_{00..70..7}</code></p>

<h3 id="anmerkungen">Anmerkungen</h3>

<p>Brace expansions können mehrstufig sein:
<code>echo movie_S{01..03}E{01..04}</code>
Die zweite Expansion wird für jedes Ergebnis der ersten Expansion durchgeführt.
Auch Schachtelungen sind möglich.</p>

<p>Sequenzen können auch aus einzelnen Buchstaben geformt werden:
<code>echo Beispiel_{a..f}</code></p>

<p>Und wie immer gilt: Weiteres ist der man-Page zu bash zu entnehmen. Suche nach <em>Brace Expansion</em>.</p>
]]></content:encoded>
      <guid>https://blog.tuxomat.eu/brace-expansion</guid>
      <pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>man ist dein Freund, …</title>
      <link>https://blog.tuxomat.eu/man-ist-dein-freund</link>
      <description>&lt;![CDATA[… wenn du mehr über Programmoptionen, Dateiformate oder Systeminterna wissen willst. Und du hast noch weitere Freunde. Hier ist ein Überblick.!--more--&#xA;&#xA;program -h oder  program --help&#xA;  Viele Programme habe eingebaute Hilfetexte, die mit -h oder --help abgerufen werden können. Die Texte sind meist recht kurz gefasst und geben einen Überblick über die vorhandenen Optionen.&#xA;&#xA;man [section] keyword&#xA;  ruft die man-Page aus der Sektion section für keyword auf. Es ist nicht nur Hilfe für Programme vorhanden, sondern auch z. B. für Dateiformate (man fstab, man exports). Sehr hilfreich beim Finden der gewünschten man-Page ist man -k expr (entspricht apropos expr).&#xA;  Näheres siehe man man&#xA;&#xA;info keyword&#xA;  Ist manchmal ausführlicher als man keyword.&#xA;&#xA;whatis [option] expr&#xA;  Gibt eine Liste der verfügbaren man-Pages für expr aus. expr kann ein Wildcard (mit -w) oder ein regulärer Ausdruck (-r) sein. In der Ausgabe sind die Angaben in Klammern die entsprechende Sektion der man-Page. Beispiel: whatis -r fsck*&#xA;Näheres siehe man whatis&#xA; &#xA;whereis Befehlsname&#xA;  whereis findet Quelltexte, Binärdateien und Handbuchseiten für die angegebenen Befehlsnamen. Näheres siehe man whereis&#xA;&#xA;help expr&#xA;  help leistet Hilfe für in die bash integrierte Kommandos und Schlüsselwörter. Beispiele: help for, help help, help declare&#xA;&#xA;Anmerkungen&#xA;Manche Distributionen haben die man-Pages in separaten Paketen, die händisch nachinstalliert werden können.&#xA;Alle genannten Helfer haben diese Vorteile gemeinsam:&#xA;  sie sind offline im Terminal verfügbar, es ist kein Browser notwendig&#xA;  die Dokumentation passt genau zu der Programmversion, die auf dem System installiert ist.]]&gt;</description>
      <content:encoded><![CDATA[<p>… wenn du mehr über Programmoptionen, Dateiformate oder Systeminterna wissen willst. Und du hast noch weitere Freunde. Hier ist ein Überblick.</p>
<ul><li><p><code>program -h</code> oder  <code>program --help</code>
Viele Programme habe eingebaute Hilfetexte, die mit -h oder —help abgerufen werden können. Die Texte sind meist recht kurz gefasst und geben einen Überblick über die vorhandenen Optionen.</p></li>

<li><p><code>man [section] keyword</code>
ruft die <em>man</em>-Page aus der Sektion <em>section</em> für <em>keyword</em> auf. Es ist nicht nur Hilfe für Programme vorhanden, sondern auch z. B. für Dateiformate (<code>man fstab</code>, <code>man exports</code>). Sehr hilfreich beim Finden der gewünschten man-Page ist <code>man -k expr</code> (entspricht <code>apropos expr</code>).
Näheres siehe <code>man man</code></p></li>

<li><p><code>info keyword</code>
Ist manchmal ausführlicher als <code>man keyword</code>.</p></li>

<li><p><code>whatis [option] expr</code>
Gibt eine Liste der verfügbaren man-Pages für <em>expr</em> aus. <em>expr</em> kann ein Wildcard (mit -w) oder ein regulärer Ausdruck (-r) sein. In der Ausgabe sind die Angaben in Klammern die entsprechende Sektion der man-Page. Beispiel: <code>whatis -r fsck*</code>
Näheres siehe <code>man whatis</code></p></li>

<li><p><code>whereis Befehlsname</code>
<em>whereis</em> findet Quelltexte, Binärdateien und Handbuchseiten für die angegebenen Befehlsnamen. Näheres siehe <code>man whereis</code></p></li>

<li><p><code>help expr</code>
<em>help</em> leistet Hilfe für in die bash integrierte Kommandos und Schlüsselwörter. Beispiele: <code>help for</code>, <code>help help</code>, <code>help declare</code></p></li></ul>

<h3 id="anmerkungen">Anmerkungen</h3>
<ul><li>Manche Distributionen haben die man-Pages in separaten Paketen, die händisch nachinstalliert werden können.</li>
<li>Alle genannten Helfer haben diese Vorteile gemeinsam:
<ul><li>sie sind offline im Terminal verfügbar, es ist kein Browser notwendig</li>
<li>die Dokumentation passt genau zu der Programmversion, die auf dem System installiert ist.</li></ul></li></ul>
]]></content:encoded>
      <guid>https://blog.tuxomat.eu/man-ist-dein-freund</guid>
      <pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Zehnfingersystem</title>
      <link>https://blog.tuxomat.eu/zehnfingersystem</link>
      <description>&lt;![CDATA[[Zehnfingersystem]: https://de.wikipedia.org/wiki/Zehnfingersystem&#xA;&#xA;Du arbeitest viel am Computer? Viel mit der Tastatur, nicht nur mit der Maus? Dann, bitte, lerne das [Zehnfingersystem] … !--more--&#xA;&#xA;Die Tastatur ist dein Werkzeug. Dein Werkzeug musst du beherrschen, insbesondere, falls du deinen Lebensunterhalt mit Computern verdienst. Aber auch ohne berufliche Erfordernisse: das Beherrschen der Tastatur macht das Leben sooo viel einfacher, der geringe Aufwand des Erlernens zahlt sich schnell aus.&#xA;&#xA;Ein Maurer, der nicht mit der Kelle umgehen kann? Unvorstellbar. Ein ITler, der nicht angemessen mit der Tastatur umgehen kann? Also: Nimm die Kelle/Tastatur in die Hand, lerne, dein Werkzeug zu beherrschen. Das ist die erste Stufe auf dem Weg zum Profi.&#xA;&#xA;Weiteres&#xA;&#xA;Du glaubst, nicht zur Zielgruppe zu gehören? Gut, dann bist du schon Zehnfingerschreiber:in. Freut mich! Für alle anderen: Die Tastatur ist die Schnittstelle zwischen Mensch und Computer. Du schreibst Programmcode, commit messages in git, Liebesbeteuerungen an deine:n Süße:n, Nachrichten an deine Krankenkasse, Textbeiträge an deine Linux User Group, irrelevanten Shit an deine Facebook-Gruppe … immer benutzt du die Tastatur. Beherrsche sie!&#xA;&#xA;Hinweis: Es gibt schöne Lernprogramme fürs Zehnfingerschreiben, durchsuche dafür die Repositorien deiner Distribution. Und ja, am Anfang mag es dröge erscheinen &#34;a s d f j k l ö&#34; zu tippen. Es wird aber nicht allzu lange dauern, dann wirst du dafür entlohnt.]]&gt;</description>
      <content:encoded><![CDATA[<p>Du arbeitest viel am Computer? Viel mit der Tastatur, nicht nur mit der Maus? Dann, <strong><em>bitte</em></strong>, lerne das <a href="https://de.wikipedia.org/wiki/Zehnfingersystem">Zehnfingersystem</a> … </p>

<p>Die Tastatur ist dein Werkzeug. Dein Werkzeug musst du beherrschen, insbesondere, falls du deinen Lebensunterhalt mit Computern verdienst. Aber auch ohne berufliche Erfordernisse: das Beherrschen der Tastatur macht das Leben sooo viel einfacher, der geringe Aufwand des Erlernens zahlt sich schnell aus.</p>

<p>Ein Maurer, der nicht mit der Kelle umgehen kann? Unvorstellbar. Ein ITler, der nicht angemessen mit der Tastatur umgehen kann? Also: Nimm die Kelle/Tastatur in die Hand, lerne, dein Werkzeug zu beherrschen. Das ist die erste Stufe auf dem Weg zum Profi.</p>

<h3 id="weiteres">Weiteres</h3>

<p>Du glaubst, nicht zur Zielgruppe zu gehören? Gut, dann bist du schon Zehnfingerschreiber:in. Freut mich! Für alle anderen: Die Tastatur ist <strong><em>die</em></strong> Schnittstelle zwischen Mensch und Computer. Du schreibst Programmcode, commit messages in git, Liebesbeteuerungen an deine:n Süße:n, Nachrichten an deine Krankenkasse, Textbeiträge an deine Linux User Group, irrelevanten Shit an deine Facebook-Gruppe … immer benutzt du die Tastatur. Beherrsche sie!</p>

<p><strong>Hinweis:</strong> Es gibt schöne Lernprogramme fürs Zehnfingerschreiben, durchsuche dafür die Repositorien deiner Distribution. Und ja, am Anfang mag es dröge erscheinen “<strong>a s d f j k l ö</strong>” zu tippen. Es wird aber nicht allzu lange dauern, dann wirst du dafür entlohnt.</p>
]]></content:encoded>
      <guid>https://blog.tuxomat.eu/zehnfingersystem</guid>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Berechnungen auf der Kommandozeile</title>
      <link>https://blog.tuxomat.eu/berechnungen-auf-der-kommandozeile</link>
      <description>&lt;![CDATA[Die Shell ermöglicht die Auswertung arithmetischer Ausdrücke.  Das umfasst die Grundrechenarten, Exponentialrechnung, sowie bitweise und logische Operationen.  !--more--&#xA;&#xA;Der auszuwertende Ausdruck steht innerhalb doppelter runder Klammern: (( expr ))&#xA;Für die Anzeige setze ein Dollarzeichen davor: echo $(( expr ))&#xA;Die Auswertung erfolgt mit den größten verfügbaren Ganzzahlen fester Länge, ohne Überprüfung auf Überlauf&#xA;Als Operanden sind auch Shell-Variablen möglich. Die Variablen können ohne das führende Dollarzeichen geschrieben werden (siehe Beispiele unten)&#xA;Nachkommastellen werden abgeschnitten, nicht gerundet. Wenn Nachkommastellen benötigt werden, rechne mit 10- oder 100-fach größeren Zahlen und setze im Ergebnis selbst das Komma&#xA;&#xA;Einige Beispiele:&#xA;&#xA;echo $(( 42 / 7 ))  # Division --  6&#xA;echo $(( 48 / 7 ))  # Division --  6, Nachkomma abgeschnitten&#xA;echo $(( 7 ** 3 ))  # Exponentialfunktion --  343&#xA;echo $(( 7 % 3 ))   # Remainder --  1&#xA;&#xA;number=666&#xA;echo $(( number + 42 ))  #  --  708&#xA;echo $number             #  Variable unverändert 666&#xA;echo $(( number += 42 )) #  --  708&#xA;echo $number             #  Variable neuer Wert 708&#xA;&#xA;echo $(( number  666 )) # logisch falsch -- 0&#xA;echo $(( number   42 ))  # logisch wahr   --  1&#xA;if (( number   42)) ; then echo ja; fi  # --  ja&#xA;oder einfacher:&#xA;(( number   42 )) &amp;&amp; echo ja&#xA;&#xA;echo $(( 42 &lt; 1 ))  # bitweise 1 x links schieben -- 84&#xA;&#xA;Hinweise&#xA;&#xA;Die Regeln für die Auswertung sind in der bash man page im Kapitel ARITHMETIC EVALUATION erläutert.&#xA;Wenn die arithmetischen Möglichkeiten der bash nicht ausreichen, installiere das Programm calc.]]&gt;</description>
      <content:encoded><![CDATA[<p>Die Shell ermöglicht die Auswertung arithmetischer Ausdrücke.  Das umfasst die Grundrechenarten, Exponentialrechnung, sowie bitweise und logische Operationen.  </p>
<ul><li>Der auszuwertende Ausdruck steht innerhalb doppelter runder Klammern: <code>(( expr ))</code></li>
<li>Für die Anzeige setze ein Dollarzeichen davor: <code>echo $(( expr ))</code></li>
<li>Die Auswertung erfolgt mit den größten verfügbaren Ganzzahlen fester Länge, ohne Überprüfung auf Überlauf</li>
<li>Als Operanden sind auch Shell-Variablen möglich. Die Variablen können ohne das führende Dollarzeichen geschrieben werden (siehe Beispiele unten)</li>
<li>Nachkommastellen werden abgeschnitten, nicht gerundet. Wenn Nachkommastellen benötigt werden, rechne mit 10- oder 100-fach größeren Zahlen und setze im Ergebnis selbst das Komma</li></ul>

<p>Einige Beispiele:</p>

<pre><code class="language-bash">echo $(( 42 / 7 ))  # Division --&gt; 6
echo $(( 48 / 7 ))  # Division --&gt; 6, Nachkomma abgeschnitten
echo $(( 7 ** 3 ))  # Exponentialfunktion --&gt;  343
echo $(( 7 % 3 ))   # Remainder --&gt; 1

number=666
echo $(( number + 42 ))  #  --&gt; 708
echo $number             #  Variable unverändert 666
echo $(( number += 42 )) #  --&gt; 708
echo $number             #  Variable neuer Wert 708

echo $(( number &lt; 666 )) # logisch falsch --&gt; 0
echo $(( number &gt; 42 ))  # logisch wahr   --&gt; 1
if (( number &gt; 42)) ; then echo ja; fi  # --&gt; ja
# oder einfacher:
(( number &gt; 42 )) &amp;&amp; echo ja

echo $(( 42 &lt;&lt; 1 ))  # bitweise 1 x links schieben --&gt; 84
</code></pre>

<h3 id="hinweise">Hinweise</h3>
<ul><li>Die Regeln für die Auswertung sind in der bash man page im Kapitel ARITHMETIC EVALUATION erläutert.</li>
<li>Wenn die arithmetischen Möglichkeiten der bash nicht ausreichen, installiere das Programm <em>calc</em>.</li></ul>
]]></content:encoded>
      <guid>https://blog.tuxomat.eu/berechnungen-auf-der-kommandozeile</guid>
      <pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Basics des Pagers less</title>
      <link>https://blog.tuxomat.eu/basics-des-pagers-less</link>
      <description>&lt;![CDATA[Ein laufendes less lässt sich mit einer Vielzahl von Kommandos steuern. Zum Einstieg sind hier die wichtigsten aufgeführt. !--more--&#xA;&#xA;Bewegen&#xA;G: springe zur letzten Zeile&#xA;1G: springe zur ersten Zeile&#xA;Ctrl-f: eine Seite weiter&#xA;Ctrl-b: eine Seite zurück&#xA;&#xA;Suchen&#xA;/pattern: Suche vorwärts nach pattern. pattern ist ein regulärer Ausdruck&#xA;?pattern: Suche rückwärts nach pattern. pattern ist ein regulärer Ausdruck&#xA;n: wiederhole die letzte Suche&#xA;N: wiederhole die letzte Suche in umgekehrter Richtung&#xA;&#xA;Optionen&#xA;-S: Zeilenumbruch ein-/ausschalten&#xA;-I: Beachte Groß-/Kleinschreibung beim Suchen umschalten&#xA;-N: Zeilennummern anzeigen umschalten&#xA;&#xA;Sonstiges&#xA;v: Datei im Editor ($VISUAL, $EDITOR) öffnen. Geht nur, wenn die Eingabe eine Datei ist. Nach dem Verlassen des Editors zeigt less die editierte Datei.&#xA;q: Verlasse less&#xA;h oder H: Hilfe anzeigen. Merke dir wenigstens dieses!]]&gt;</description>
      <content:encoded><![CDATA[<p>Ein laufendes <code>less</code> lässt sich mit einer Vielzahl von Kommandos steuern. Zum Einstieg sind hier die wichtigsten aufgeführt. </p>

<h3 id="bewegen">Bewegen</h3>

<p><code>G</code>: springe zur letzten Zeile
<code>1</code><code>G</code>: springe zur ersten Zeile
<code>Ctrl</code>-<code>f</code>: eine Seite weiter
<code>Ctrl</code>-<code>b</code>: eine Seite zurück</p>

<h3 id="suchen">Suchen</h3>

<p><code>/pattern</code>: Suche vorwärts nach <em>pattern</em>. <em>pattern</em> ist ein regulärer Ausdruck
<code>?pattern</code>: Suche rückwärts nach <em>pattern</em>. <em>pattern</em> ist ein regulärer Ausdruck
<code>n</code>: wiederhole die letzte Suche
<code>N</code>: wiederhole die letzte Suche in umgekehrter Richtung</p>

<h3 id="optionen">Optionen</h3>

<p><code>-</code><code>S</code>: Zeilenumbruch ein-/ausschalten
<code>-</code><code>I</code>: Beachte Groß-/Kleinschreibung beim Suchen umschalten
<code>-</code><code>N</code>: Zeilennummern anzeigen umschalten</p>

<h3 id="sonstiges">Sonstiges</h3>

<p><code>v</code>: Datei im Editor ($VISUAL, $EDITOR) öffnen. Geht nur, wenn die Eingabe eine Datei ist. Nach dem Verlassen des Editors zeigt <em>less</em> die editierte Datei.
<code>q</code>: Verlasse <em>less</em>
<code>h</code> oder <code>H</code>: Hilfe anzeigen. Merke dir wenigstens dieses!</p>
]]></content:encoded>
      <guid>https://blog.tuxomat.eu/basics-des-pagers-less</guid>
      <pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Dateinamen und TAB-Taste</title>
      <link>https://blog.tuxomat.eu/dateinamen-und-tab-taste</link>
      <description>&lt;![CDATA[Für einen problemlosen und effizienten Umgang mit Dateinamen gibt es einige einfache Regeln. !--more--&#xA;&#xA;Verwende nur Zeichen aus dem 7-Bit-ASCII-Zeichensatz, also weder Umlaute noch [Akzente]. Das ist insbesondere für Remote-Dateisysteme wichtig.&#xA;Verwende keine special characters der Shell. Das sind Zeichen, die eine besondere Bedeutung haben. Leerzeichen und Klammern sind z. B. pfui.&#xA;Ideal sind Zeichen aus der Menge [a-zA-Z0-9.-].&#xA;Wenn du auf Großbuchstaben [A-Z] verzichtest, sparst du dir das Drücken der Shift-Taste.&#xA;Achte darauf, dass sich die Dateinamen innerhalb eines Ordners bereits nach möglichst wenig Buchstaben eindeutig voneinander unterscheiden. Dadurch wird die Benutzung der TAB-Taste zur Vervollständigung der Dateinamen viel effizienter.&#xA;&#xA;Anmerkungen&#xA;&#xA;zu Nr. 1: Das Remote-Verzeichnis kann auf anderen Rechnern mit anderem Zeichencode eingebunden sein. Bei dir sieht der Dateiname Die\Schöne\und\das Biest.mp4 gut aus, auf anderen Rechnern muss das aber nicht der Fall sein.&#xA;&#xA;zu Nr. 2: Die special characters der Bash sind in deren man-Page im Kapitel DEFINITIONS genannt. Vermeide sie in Dateinamen. Leider wird diese Regel viel zu häufig aufs Übelste verletzt. Oft sind es Programme oder Systeme, die solche Kack-Namen (z. B. »Dokumente und Einstellungen«) automatisch erzeugen. Ganz schlimm sind Programme, die Dateinamen aus den ID3-Tags von Musikdateien erzeugen. Da sind in einem einzigen Dateinamen Leerzeichen, Zeichen aus dem erweiterten ASCII-Zeichensatz (oder Unicodezeichen) und Klammern (z. B. das Erscheinungsjahr in eckigen Klammern) zu finden.&#xA;&#xA;zu Nr. 5: Die Mächtigkeit der TAB-Taste wird oft unterschätzt. Oft reicht ein einzelner TAB, um einen langen Dateinamen einzufügen.]]&gt;</description>
      <content:encoded><![CDATA[<p>Für einen problemlosen und effizienten Umgang mit Dateinamen gibt es einige einfache Regeln. </p>
<ol><li>Verwende nur Zeichen aus dem 7-Bit-ASCII-Zeichensatz, also weder Umlaute noch <a href="https://de.wikipedia.org/wiki/Akzent_(Schrift)">Akzente</a>. Das ist insbesondere für Remote-Dateisysteme wichtig.</li>
<li>Verwende keine <em>special characters</em> der Shell. Das sind Zeichen, die eine besondere Bedeutung haben. Leerzeichen und Klammern sind z. B. pfui.</li>
<li>Ideal sind Zeichen aus der Menge [a-zA-Z0-9_.–].</li>
<li>Wenn du auf Großbuchstaben [A-Z] verzichtest, sparst du dir das Drücken der Shift-Taste.</li>
<li>Achte darauf, dass sich die Dateinamen innerhalb eines Ordners bereits nach möglichst wenig Buchstaben eindeutig voneinander unterscheiden. Dadurch wird die Benutzung der TAB-Taste zur Vervollständigung der Dateinamen viel effizienter.</li></ol>

<h3 id="anmerkungen">Anmerkungen</h3>

<p><strong>zu Nr. 1:</strong> Das Remote-Verzeichnis kann auf anderen Rechnern mit anderem Zeichencode eingebunden sein. Bei dir sieht der Dateiname <em>Die_Schöne_und_das Biest.mp4</em> gut aus, auf anderen Rechnern muss das aber nicht der Fall sein.</p>

<p><strong>zu Nr. 2:</strong> Die <em>special characters</em> der Bash sind in deren man-Page im Kapitel DEFINITIONS genannt. Vermeide sie in Dateinamen. Leider wird diese Regel viel zu häufig aufs Übelste verletzt. Oft sind es Programme oder Systeme, die solche Kack-Namen (z. B. »<em>Dokumente und Einstellungen</em>«) automatisch erzeugen. Ganz schlimm sind Programme, die Dateinamen aus den ID3-Tags von Musikdateien erzeugen. Da sind in einem einzigen Dateinamen Leerzeichen, Zeichen aus dem erweiterten ASCII-Zeichensatz (oder Unicodezeichen) und Klammern (z. B. das Erscheinungsjahr in eckigen Klammern) zu finden.</p>

<p><strong>zu Nr. 5:</strong> Die Mächtigkeit der TAB-Taste wird oft unterschätzt. Oft reicht ein einzelner <code>TAB</code>, um einen langen Dateinamen einzufügen.</p>
]]></content:encoded>
      <guid>https://blog.tuxomat.eu/dateinamen-und-tab-taste</guid>
      <pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Elemente aus der Zeile löschen</title>
      <link>https://blog.tuxomat.eu/elemente-aus-der-zeile-loeschen</link>
      <description>&lt;![CDATA[Sehr viele Menschen benutzen zum Löschen von Zeichen nur die Tasten Del und Backspace. Es geht aber auch viel komfortabler. !--more--&#xA;&#xA;rückwärts löschen&#xA;Ctrl-w: rückwärts löschen bis zum nächsten Whitespace&#xA;Alt-Backspace: rückwärts löschen, nur alphanumerische Zeichen&#xA;Ctrl-u: löschen bis Zeilenanfang&#xA;&#xA;vorwärts löschen&#xA;Alt-d: bis zum Wortende löschen, alphanumerische Zeichen&#xA;Ctrl-k: bis zum Zeilenende löschen&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Sehr viele Menschen benutzen zum Löschen von Zeichen nur die Tasten <code>Del</code> und <code>Backspace</code>. Es geht aber auch viel komfortabler. </p>

<h3 id="rückwärts-löschen">rückwärts löschen</h3>

<p><code>Ctrl</code>-<code>w</code>: rückwärts löschen bis zum nächsten <a href="https://de.wikipedia.org/wiki/Leerraum">Whitespace</a>
<code>Alt</code>-<code>Backspace</code>: rückwärts löschen, nur alphanumerische Zeichen
<code>Ctrl</code>-<code>u</code>: löschen bis Zeilenanfang</p>

<h3 id="vorwärts-löschen">vorwärts löschen</h3>

<p><code>Alt</code>-<code>d</code>: bis zum Wortende löschen, alphanumerische Zeichen
<code>Ctrl</code>-<code>k</code>: bis zum Zeilenende löschen</p>
]]></content:encoded>
      <guid>https://blog.tuxomat.eu/elemente-aus-der-zeile-loeschen</guid>
      <pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Kommandozeile im Editor bearbeiten</title>
      <link>https://blog.tuxomat.eu/kommandozeile-im-editor-bearbeiten</link>
      <description>&lt;![CDATA[Die Tastenkombination Ctrl-x Ctrl-e startet einen Editor mit dem Inhalt der aktuellen Kommandozeile (Ctrl gedrückt halten während der Eingabe von x und e). Nach dem Beenden des Editors wird die bearbeitete Kommandozeile direkt ausgeführt. !--more--&#xA;&#xA;Die bash versucht nacheinander, die Editoren der Umgebungsvariablen $VISUAL und $EDITOR auszuführen. Schlägt beides fehl, wird emacs gestartet. Aus man bash:&#xA;&#xA;  Bash attempts to invoke $VISUAL, $EDITOR, and emacs as the editor, in that order&#xA;&#xA;Sicherlich hast du deinen Lieblingseditor (vim … 😁) bereits dort eingetragen, schließlich greifen viele Programme auf die genannten Umgebungsvariablen zu. &#xA;&#xA;Hinweise&#xA;&#xA;Achtung: Nach Beendigung des Editors wird dessen Inhalt sofort als Kommando ausgeführt, egal ob diese verändert und/oder gespeichert wurde. Solltest du das im Einzelfall nicht wollen, platziere die Raute # als Kommentarzeichen an den Anfang der Zeile. Speichern nicht vergessen, bevor du den Editor verlässt.&#xA;&#xA;Übrigens: Andere Shells können abweichend konfiguriert sein – lies die man-Page dazu.]]&gt;</description>
      <content:encoded><![CDATA[<p>Die Tastenkombination <code>Ctrl</code>-<code>x</code> <code>Ctrl</code>-<code>e</code> startet einen Editor mit dem Inhalt der aktuellen Kommandozeile (<code>Ctrl</code> gedrückt halten während der Eingabe von <code>x</code> und <code>e</code>). Nach dem Beenden des Editors wird die bearbeitete Kommandozeile direkt ausgeführt. </p>

<p>Die <em>bash</em> versucht nacheinander, die Editoren der Umgebungsvariablen <em>$VISUAL</em> und <em>$EDITOR</em> auszuführen. Schlägt beides fehl, wird <em>emacs</em> gestartet. Aus <code>man bash</code>:</p>

<blockquote><p>Bash attempts to invoke $VISUAL, $EDITOR, and emacs as the editor, in that order</p></blockquote>

<p>Sicherlich hast du deinen Lieblingseditor (vim … 😁) bereits dort eingetragen, schließlich greifen viele Programme auf die genannten Umgebungsvariablen zu.</p>

<h3 id="hinweise">Hinweise</h3>

<p><strong>Achtung:</strong> Nach Beendigung des Editors wird dessen Inhalt sofort als Kommando ausgeführt, egal ob diese verändert und/oder gespeichert wurde. Solltest du das im Einzelfall nicht wollen, platziere die Raute <code>#</code> als Kommentarzeichen an den Anfang der Zeile. Speichern nicht vergessen, bevor du den Editor verlässt.</p>

<p><strong>Übrigens:</strong> Andere Shells können abweichend konfiguriert sein – lies die <code>man</code>-Page dazu.</p>
]]></content:encoded>
      <guid>https://blog.tuxomat.eu/kommandozeile-im-editor-bearbeiten</guid>
      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>
    </item>
  </channel>
</rss>