<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Shell &#8211; Linux und Ich</title>
	<atom:link href="https://linuxundich.de/tag/shell/feed/" rel="self" type="application/rss+xml" />
	<link>https://linuxundich.de</link>
	<description>Blog über Ubuntu, Linux, Android und IT</description>
	<lastBuildDate>Thu, 13 Mar 2025 12:37:04 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://linuxundich.de/wp-content/uploads/2025/04/cropped-lui-app-512-32x32.png</url>
	<title>Shell &#8211; Linux und Ich</title>
	<link>https://linuxundich.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Dateien aus dem Terminal heraus in den Müll schieben</title>
		<link>https://linuxundich.de/gnu-linux/dateien-aus-dem-terminal-heraus-in-den-mull-schieben/</link>
					<comments>https://linuxundich.de/gnu-linux/dateien-aus-dem-terminal-heraus-in-den-mull-schieben/#comments</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Sun, 01 Aug 2010 17:22:35 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Müll]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Trash]]></category>
		<guid isPermaLink="false">http://linuxundich.de/de/?p=8433</guid>

					<description><![CDATA[Löscht man eine Datei oder einen Ordner in der Shell mittels rm, dann ist diese(r) für immer Geschichte. Das Wiederherstellen von Daten von mit ext3/4 und Co. formatierten Platten ist meist recht aufwändig. Nicht ohne Grund gibt es daher in den großen Desktopumgebungen Mülleimer, aus denen sich heraus gelöschte Dateien ohne große Probleme Wiederherstellen lassen. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Löscht man eine Datei oder einen Ordner in der Shell mittels <em>rm</em>, dann ist diese(r) für immer Geschichte. Das Wiederherstellen von Daten von mit ext3/4 und Co. formatierten Platten ist meist recht aufwändig. Nicht ohne Grund gibt es daher in den großen Desktopumgebungen Mülleimer, aus denen sich heraus gelöschte Dateien ohne große Probleme Wiederherstellen lassen. Wer öfters mal im Terminal arbeitet, der kann mit dem Paket <strong>trash-cli</strong> den ganz normalen Müll der Desktopumgebung (egal ob GNOME, KDE oder Xfce) auch aus der Shell heraus verwenden.</p>
<p><span id="more-8433"></span></p>
<p>Um den &#8222;Desktop-Müll&#8220; aus dem Terminal heraus zu verwenden müsst Ihr das Paket trash-cli installieren. In Debian und Ubuntu findet Ihr trash-cli in den Paketquellen. Ich denke dass sich das Paket auch bei Fedora und OpenSUSE finden lassen müsste&#8230;</p>
<pre>$ sudo apt-get install trash-cli
</pre>
<p>Nach der Installation des Pakets seid Ihr eigentlich schon fertig. Anstatt <em>rm</em> könnt Ihr nun <em>trash</em> zum Löschen einer Datei und/oder von Verzeichnissen verwenden. Weitere Befehle listen den Inhalt des Mülls auf oder stellen gelöschte Dateien wieder her.</p>
<pre># Ein paar Dateien erzeugen...
$ touch example1.txt example2.txt example3.txt

# Ab in den Müll damit...
$ trash example1.txt example2.txt

# Müll auflisten lassen...
$ list-trash
2010-07-30 23:00:54 /home/foo/tmp/test_trash/example2.txt
2010-07-30 23:00:54 /home/foo/tmp/test_trash/example1.txt

# Datei wiederherstellen...
$ restore-trash 
   0 2010-07-30 23:00:54 /home/foo/tmp/test_trash/example2.txt
   1 2010-07-30 23:00:54 /home/foo/tmp/test_trash/example1.txt
What file to restore [0..1]: 1

# Ist sie auch wirklich da...
$ ls
example1.txt  example3.txt
</pre>
<p>Nach dem Löschen einer Datei mittels <em>trash</em> findet Ihr sie in eurem Mülleimer wieder. Generell würde ich persönlich trash nur dann Verwenden, wenn ich Daten aus meinem Homeverzeichnis heraus lösche. Bei einem <em>sudo trash /usr/foo/&#8230;</em> landen Dateien im Müll, zu denen man gar keine Rechte hat&#8230;</p>
<figure id="attachment_8434" aria-describedby="caption-attachment-8434" style="width: 640px" class="wp-caption aligncenter"><a href="http://linuxundich.de/wp-content/uploads/2010/07/trashcli.png"><img fetchpriority="high" decoding="async" class="wp-image-8434 size-medium" title="Gelöschte Dateien landen im Müll" src="https://linuxundich.de/wp-content/uploads/2010/07/trashcli-640x468.png" alt="" width="640" height="468" srcset="https://linuxundich.de/wp-content/uploads/2010/07/trashcli-640x468.png 640w, https://linuxundich.de/wp-content/uploads/2010/07/trashcli-575x420.png 575w, https://linuxundich.de/wp-content/uploads/2010/07/trashcli-80x60.png 80w, https://linuxundich.de/wp-content/uploads/2010/07/trashcli-250x183.png 250w, https://linuxundich.de/wp-content/uploads/2010/07/trashcli-550x402.png 550w, https://linuxundich.de/wp-content/uploads/2010/07/trashcli-246x180.png 246w, https://linuxundich.de/wp-content/uploads/2010/07/trashcli-411x300.png 411w, https://linuxundich.de/wp-content/uploads/2010/07/trashcli.png 657w" sizes="(max-width: 640px) 100vw, 640px"></a><figcaption id="caption-attachment-8434" class="wp-caption-text">Gelöschte Dateien landen im Müll</figcaption></figure>
<p>Von daher würde ich persönlich auch rm nicht über ein <a href="http://wiki.ubuntuusers.de/Shell/alias" target="_blank" rel="noopener">Alias</a> ersetzen, sondern rm noch in seiner ursprünglichen Funktion erhalten. Nicht dass man irgendwann eine &#8222;böse&#8220; Überraschung erlebt.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/gnu-linux/dateien-aus-dem-terminal-heraus-in-den-mull-schieben/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Benachrichtigungen beim Beenden langwieriger Prozesse</title>
		<link>https://linuxundich.de/gnu-linux/benachrichtigungen-beim-beenden-langwieriger-prozesse/</link>
					<comments>https://linuxundich.de/gnu-linux/benachrichtigungen-beim-beenden-langwieriger-prozesse/#comments</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Wed, 28 Jul 2010 10:52:44 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Terminal]]></category>
		<guid isPermaLink="false">http://linuxundich.de/de/?p=8357</guid>

					<description><![CDATA[Manchmal sind es die kleinen Dinge, die Usability ausmachen. Ubuntu-Entwickler Dustin Kirkland hat sich so einen kleinem Fall angenommen. Führt man einen Prozess in einem Terminal aus, der etwas länger dauern wird, so wird man wohl kaum das Terminal im Auge behalten. Somit verpasst man auch das Ende des Prozesses. Dustin hat sich nun ein [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Manchmal sind es die kleinen Dinge, die Usability ausmachen. Ubuntu-Entwickler Dustin Kirkland hat sich so einen kleinem Fall angenommen. Führt man einen Prozess in einem Terminal aus, der etwas länger dauern wird, so wird man wohl kaum das Terminal im Auge behalten. Somit verpasst man auch das Ende des Prozesses. Dustin hat sich nun <a href="http://blog.dustinkirkland.com/2010/07/dear-command-line-please-ping-me-when.html" target="_blank" rel="noopener">ein kleines Alias-Kommando</a> ausgedacht, das man an den Prozess-Aufruf anhängt und das dann beim Beenden des Prozesses über das Benachrichtigungssystem von Ubuntu die entsprechende Information ausgibt.</p>
<p><span id="more-8357"></span></p>
<p>Das Kommando wird über ein so genanntes <a href="http://wiki.ubuntuusers.de/Shell/alias" target="_blank" rel="noopener">Alias</a> dem System bekannt gemacht, so braucht man kein Shell-Skript anzulegen. Öffnet daher die <code>~/.bashrc</code> in euren bevorzugten Editor <code>gedit ~/.bashrc</code> und fügt die folgenden Zeilen am Ende der Datei ein.</p>
<pre lang="bash"># Benachrichtigungen bei langen Prozessen
if [ -x /usr/bin/notify-send ]; then
  alias alert='notify-send -i gnome-terminal "[$?] $(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/;\s*alert$//'\'')"'
fi
</pre>
<p>Die if-Abfrage überprüft ob das Programm <code>notify-send</code> aus dem Paket <code>libnotify-bin</code> installiert ist und falls ja, dann wird das Alias gesetzt. Überprüft daher ob das besagte Paket auch installiert ist. Der Abschließende Befehl initialisiert die Bash neu&#8230;</p>
<pre>$ sudo apt-get install libnotify-bin
$ . ~/.bashrc
</pre>
<p>Nun könnt Ihr durch das Anfügen von <code>; alert</code> eine Benachrichtigung auslösen, sobald ein Befehl abgearbeitet wurde. Natürlich macht das nur Sinn, wenn Ihr wisst dass der Befehl länger laufen wird.</p>
<pre># Allgemein
$ befehl; alert
# Beispiel
$ wget http://speedtest.netcologne.de/test_1mb.bin; alert
</pre>
<figure id="attachment_8363" aria-describedby="caption-attachment-8363" style="width: 475px" class="wp-caption aligncenter"><a href="http://linuxundich.de/wp-content/uploads/2010/07/alert.png"><img decoding="async" class="wp-image-8363 size-full" title="Benachrichtung bei Ende eines langandauernden Tasks" src="https://linuxundich.de/wp-content/uploads/2010/07/alert.png" alt="" width="475" height="191" srcset="https://linuxundich.de/wp-content/uploads/2010/07/alert.png 475w, https://linuxundich.de/wp-content/uploads/2010/07/alert-250x101.png 250w, https://linuxundich.de/wp-content/uploads/2010/07/alert-448x180.png 448w" sizes="(max-width: 475px) 100vw, 475px"></a><figcaption id="caption-attachment-8363" class="wp-caption-text">Benachrichtung bei Ende eines langandauernden Tasks</figcaption></figure>
<p>Ich hatte das eigentlich schon immer über ein <code>$befehl; beep</code> gemacht, doch die Benachrichtigung inklusive dem Exit-Code des Befehls ist deutlich eleganter. Klasse wäre das natürlich, wenn sowas von Haus aus im Terminal eingebaut wäre und eine Benachrichtigung ausgegeben werden würde, wenn ein Befehl x Sekunden zur Ausführung braucht und/oder das Terminal gerade minimiert/verdeckt ist.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/gnu-linux/benachrichtigungen-beim-beenden-langwieriger-prozesse/feed/</wfw:commentRss>
			<slash:comments>27</slash:comments>
		
		
			</item>
		<item>
		<title>Bilder für das Web aufbereiten</title>
		<link>https://linuxundich.de/gnu-linux/bilder-fur-das-web-aufbereiten/</link>
					<comments>https://linuxundich.de/gnu-linux/bilder-fur-das-web-aufbereiten/#comments</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Fri, 06 Mar 2009 16:19:17 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Gimp]]></category>
		<category><![CDATA[imagemagick]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Webdesign]]></category>
		<guid isPermaLink="false">http://christoph-langner.de/de/?p=672</guid>

					<description><![CDATA[Letzten Monat habe ich mit fast 23GB Traffic meinen &#8222;Inklusivtraffic&#8220; von 25GB überschritten. Zeit das Blog etwas aufzuräumen und Bilder zu verkleinern. Da sich hier ein paar hundert Bilder und deren Thumbnails angesammelt haben, soll das Verfahren möglichst automatisch ablaufen und das Ergebnis in möglichst kleine Bilder resultieren, die dennoch gut aussehen. Mit Imagemagick, Gimp, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Letzten Monat habe ich mit fast 23GB Traffic meinen &#8222;Inklusivtraffic&#8220; von 25GB überschritten. Zeit das Blog etwas aufzuräumen und Bilder zu verkleinern. Da sich hier ein paar hundert Bilder und deren Thumbnails angesammelt haben, soll das Verfahren möglichst automatisch ablaufen und das Ergebnis in möglichst kleine Bilder resultieren, die dennoch gut aussehen.</p>
<p><span id="more-672"></span></p>
<p>Mit Imagemagick, Gimp, optipng und pngcrush stehen ein paar Kandidaten zur Auswahl, die hier Besserung versprechen. Ersteinmal gilt es jedoch herauszufinden welches Programm am besten komprimiert. Als Vorlage benutze ich diesen Screenshot.</p>
<figure id="attachment_673" aria-describedby="caption-attachment-673" style="width: 415px" class="wp-caption aligncenter"><img decoding="async" class="size-medium wp-image-673" title="orig" src="http://linuxundich.de/wp-content/uploads/2009/03/orig-415x475.png" alt="Vorlage: 68966 Bytes" width="415" height="475"><figcaption id="caption-attachment-673" class="wp-caption-text">Vorlage: 68966 Bytes</figcaption></figure>
<p>Ich denke das Bild ist ein gutes Beispiel für Screenshots von Anwendungsprogrammen. Im Original hat das Bild eine Größe von 68966 Bytes. Diesen Wert gilt es also deutlich zu verbessern.</p>
<h2>Gimp</h2>
<p>Als erstes muss sich Gimp beweisen. Am einfachsten reduziert man die Größe eines PNG-Bildes indem man die Farbpalette reduziert. Gimp kann eine <em>optimale Palette</em> erzeugen und so eine auf das Bild angepasste Palette produzieren. Die Funktion findet sich unter <em>Bild | Modus | Indiziert | Optimale Palette erzeugen</em> und schrumpft das Bild auf 27026 Bytes ein, d.h. das mit GIMP erzeugte Bild hat nur noch rund 39% der ursprünglichen Dateigröße ohne dass das Bild groß dabei leidet.</p>
<figure id="attachment_674" aria-describedby="caption-attachment-674" style="width: 415px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-medium wp-image-674" title="gimp_optimalepalette" src="http://linuxundich.de/wp-content/uploads/2009/03/gimp_optimalepalette-415x475.png" alt="Optimale Palette mit The Gimp: 27026 Bytes" width="415" height="475"><figcaption id="caption-attachment-674" class="wp-caption-text">Optimale Palette mit The Gimp: 27026 Bytes</figcaption></figure>
<h2>Imagemagick</h2>
<p>Als nächstes kommt <em>convert</em> aus dem Paket <a href="http://wiki.ubuntuusers.de/Imagemagick" target="_blank" rel="noopener">Imagemagick</a> auf die Testbank. Erst einmal versuche ich wieder die Farbpalette zu reduzieren.</p>
<pre>$ convert -colors 16 orig.png convert_colors16.png
$ convert -colors 256 orig.png convert_colors256.png
</pre>
<p>Das Ergebnis ist unter aller Katastrophe, die Bilder sind größer als vorher. Das auf 16 Farben reduzierte Bild hat 103425 Bytes und das mit 256 Farben 184634 Bytes. Convert komprimiert wohl die Bilder nicht per Default, dies muss man mit der Option <a href="http://www.imagemagick.org/script/command-line-options.php" target="_blank" rel="noopener">&#8211;quality</a> erst aktivieren. 1000 steht dabei für die höchstmögliche Kompression.</p>
<pre>$ convert -colors 16 -quality 1000 orig.png convert_colors16_quality1000.png
$ convert -colors 256 -quality 1000 orig.png convert_colors256_quality1000.png
</pre>
<p>Auch hier ist das Ergebnis wieder schlecht. Das 16 Farben Bild läuft danach mit 56196 Bytes in Ziel, das Bild mit 256 Farben mit 85889 Bytes. Ergebnis: convert kann keine optimale Palette erzeugen. Dadurch sieht das Bild schrecklich aus und ist dennoch größer als es sein müsste&#8230;</p>
<h2>optipng</h2>
<p><a href="http://optipng.sourceforge.net/" target="_blank" rel="noopener">optipng</a> ist ein Programm, dass speziell zum Optimieren und Verkleinern von .png Bildern geschrieben wurde. Es lässt sich in Ubuntu und Debian aus den Paketquellen installieren. Ich komprimiere einmal das &#8222;Original&#8220; und einmal ein Bild, das ich vorher mit <em>convert</em> auf eine Palette mit 256 Farben komprimiert habe.</p>
<pre>$ optipng -k orig.png
$ optipng -k convert_colors256_quality1000.png
</pre>
<p>Auch hier ist das Ergebnis wieder mager. optipng komprimiert die Vorlage auf 63539 Bytes, also auf rund 92% des ursprünglichen Bildes. Das Bild mit 256 Farben wird von 184634 Bytes auf 85620 Bytes komprimiert. Gut, wenn man sich die 50% Ersparnis ansieht. Doch schlecht, wenn man bedenkt, dass GIMP ein 27kb großes Bild erzeugen kann&#8230;</p>
<h2>pngcrush</h2>
<p>Alternativ zu optipng gibt es <a href="http://pmt.sourceforge.net/pngcrush/" target="_blank" rel="noopener">pngcrush</a>. Das Programm findet man ebenso in den Quellen. Auch hier komprimiere ich einmal das Original und einmal das mit Convert auf 256 Farben reduzierte Bild.</p>
<pre>$ pngcrush -c 3 -brute orig.png pngcrush.png
$ pngcrush -c 3 -brute convert_colors256_quality1000.png pngcrush_convert_colors256_quality1000.png
</pre>
<p>Das Ergebnis deckt sich praktisch völlig mit optipng. Einmal bekomme ich 63793 Bytes und einmal 85889 Bytes. Wieder alles deutlich größer als Gimp&#8230;</p>
<h2>Script-Fu</h2>
<p>The Gimp ist also wohl nicht zu schlagen. Kein anderes Programm schafft es auch nur annähernd in die Reichweite der Größenreduktion von Gimp zu kommen. Einen Haken hat die Sache allerdings&#8230; Ein paar Hundert Bilder in Gimp zu laden und sich durch die Menüs zu hangeln? Das wäre enorm viel Klickarbeit.</p>
<p>Aber wozu hat Gimp einen Modus mit dem man eigene Skripte ausführen kann? Mit <a href="http://www.gimp-scripte.de/?Script-Fu" target="_blank" rel="noopener">Script-Fu</a> kann man Gimp komplett über Skripte bedienen. Im uu.de Forum hatte mir ein guter Geist schon einmal ein Skript <a href="http://forum.ubuntuusers.de/post/1443468/" target="_blank" rel="noopener">geschrieben</a>, das für alle .png Dateien in einem Ordner eine optimale Palette erzeugt. Es hatte noch eine Fallunterscheidung gefehlt, die die Indezierung nur auf Bilder loslässt, die noch nicht indeziert wurde. Doch jetzt klappt das <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;"> Wer so etwas sucht, der speichert das Skript&#8230;</p>
<pre lang="ini">(define (batch-generate-optimum-palette pattern
	dither-type
	palette-type
	num-cols
	alpha-dither
	remove-unused
	palette
	)

	(let* ((filelist (cadr (file-glob pattern 1))))
		(while (not (null? filelist))
			(let* (
				(filename (car filelist))
				(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
				(drawable (car (gimp-image-get-active-layer image)))
			)
			(if (= FALSE (car (gimp-drawable-is-indexed drawable)))
				(gimp-image-convert-indexed image dither-type palette-type num-cols alpha-dither remove-unused palette)
				)
				(set! drawable (car (gimp-image-get-active-layer image)))
				(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
				(gimp-image-delete image)

			)
			(set! filelist (cdr filelist))
		)
	)
)
</pre>
<p>&#8230;in <code>~/.gimp-2.6/scripts/batch-generate-optimum-palette</code> ab. Danach kann man es über</p>
<pre>$ gimp -i -b '(batch-generate-optimum-palette "*.png" 0 0 256 TRUE TRUE "")' -b '(gimp-quit 0)'
</pre>
<p>ausführen. Alle .png Bilder, die sich im aktuellen Ordner der Shell befinden, werden dann automatisch optimiert. Legt man dazu noch ein <a href="http://wiki.ubuntuusers.de/Shell/Alias" target="_blank" rel="noopener">Alias</a> für die Shell an, so hat man ein perfektes Werkzeug um Bilder in großen Massen für das Web aufzubereiten. So habe ich hoffentlich noch etwas Zeit, bis ich den nächst höheren Hostingtarif wählen muss.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/gnu-linux/bilder-fur-das-web-aufbereiten/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
	</channel>
</rss>
