linux|n00b Linux für Ein- und Umsteiger

3Jan/131

Wie viele Wörter hat mein PDF-File?

Diese Frage stellte ich mir soeben selbst, als ich den aktuellen Umfang meiner Bachelorarbeit überprüfen wollte.

Glücklicherweise gab es schon viele vor mir mit dieser Frage. So fand ich schnell eine Lösung:
http://superuser.com/questions/221359/count-words-in-pdf-file

Dort heißt es:

[arvid@c64 ~]$ pdftotext path/to/my/file.pdf - | wc -w

Ausgabe im Terminal ist schließlich die Anzahl der Wörter. Und das war's auch schon.

Wieder mal ein Hoch auf Linux, welches bereits alle Probleme gelöst hat, die ich erst noch bekommen muss. :-)

4Mai/120

iPhone/iPod Touch mount-Fehler beheben

Was für eine schwere Geburt. Ich hatte lange Zeit das Problem, meinen iPod Touch nach Anschluss via USB-Kabel nicht mounten zu können. Ich erhielt stets die Fehlermeldung, dass es einen Zugriffsfehler (-5) gäbe. Der Terminal-Befehl ideviceinfo spuckte immer nur aus: "GNUTLS ERROR: A TLS packet with unexpected length was received."

Die nötigen Pakete waren installiert, aber kein Erfolg beim Einhängen des iPod. Hin und wieder habe ich nach einer Lösung gesucht, aber entweder habe ich immer nach falschen Stichworten gesucht oder die Lösung ist wirklich so versteckt gewesen.

Die Suche hat ein Ende.

Nun jedoch habe ich endlich die Lösung gefunden und sie ist denkbar einfach. Im Terminal ist lediglich Folgendes einzugeben und schon kann der iPod Touch eingehängt werden und gestattet den Zugriff z.B. via gtkpod.

[arvid@c64 ~]$ idevicepair unpair
SUCCESS: Unpaired with device <lange_nummer>
[arvid@c64 ~]$ idevicepair pair
SUCCESS: Paired with device <lange_nummer>
[arvid@c64 ~]$ idevicepair validate
SUCCESS: Validated pairing with device <lange_nummer>

Alles funktioniert jetzt wunderbar.

Das war's auch schon. Der Befehl ideviceinfo sollte nun bedeutend mehr ausgeben als die besagte Fehlermeldung.

[arvid@c64 ~]$ ideviceinfo
ActivationPublicKey: <laaanger_key>
ActivationState: Activated
[...]
WiFiAddress: <mac_adresse>
iTunesHasConnected: true
16Okt/110

Systemboot hängt bei „jexec“

Neulich habe ich für mein zugegebenerweise nicht mehr ganz aktuelles Fedora 14 einige Systemdateien aktualisiert (also unter System > Administration > Software-Aktualisierungen), darunter auch den kernel. Allerdings habe ich das Update nicht für alle Pakete durchgeführt, für die eine Aktualisierung zur Verfügung stand. Wegen des kernel-Updates musste ich meinen Rechner neu starten. Unglücklicherweise wollte dieser dann nicht komplett hochfahren. Beim Punkt "starting jexec services", zu dem kein [OK] ausgegeben wurde, hing sich der Bootvorgang auf und damit erreichte ich nicht mal mehr den Login-Screen. Auch ein erneuter Neustart des PCs konnten nichts Gegenteiliges bewirken.

Was mich selbst ein wenig überraschte, weil ich das zuvor nie nutzte, war die Tatsache, dass bereits beim Booten die Tastenkombination [Strg] + [Alt] + [F2] funktioniert. Aber ich habe sie gewissermaßen aus einem Ansatz Verzweiflung einfach mal gedrückt und siehe da: Ich bekam ein Login-Prompt. So konnte ich mich als root-User einloggen und das Systemupdate vervollständigen:

[root@c64 ~]$ yum update

Alle Pakete, die ich zuvor nicht ins Update eingeschlossen hatte, wurden nun aktualisiert.

[root@c64 ~]$ reboot

Beim nächsten Neustart des Rechners war der Fehler wie durch Zauberhand behoben.  Das System startete ordnungsgemäß.

Ein großes HOORAY auf Linux und seine Kraft, sich selbst zu heilen. ;-)

15Okt/110

Screensaver trotz Deaktivierung

Obwohl ich in den Gnome-Einstellungen (also mit gnome-screensaver-preferences) den Screensaver deaktiviert und das Ausschalten der Anzeige in der Energieverwaltung auf "Nie" gesetzt habe, gehen nach einiger Zeit der Nichtbenutzung meine Monitore aus. Selbst wenn ich den gnome-screensaver aus den Startprogrammen entferne oder ihn gar deinstalliere, scheint das mein Fedora-System nicht zu stören. Die Monitore gehen nach einer gewissen Idle-Time aus, was natürlich insbesondere beim Filmgucken recht nervig sein kann.

Um zu prüfen, ob der Bildschirmschoner überhaupt aktiv ist, ist Folgendes im Terminal einzugeben:

[arvid@c64 ~]$ gconftool-2 --get /apps/gnome-screensaver/idle_activation_enabled

Wird dort ein "true" ausgegeben (wie bei mir), so ist dein Bildschirmschoner aktiviert. Zum Deaktivieren gib einfach Folgendes ein:

[arvid@c64 ~]$ gconftool-2 --type bool --set /apps/gnome-screensaver/idle_activation_enabled false

Et voilà. Ein deaktivierter Bildschirmschoner.

Aber die Monitore schalten sich noch immer aus...

Wenn obiges nicht geholfen haben sollte, dann liegt die Ursache für den Energiesparmodus der Bildschirme offenbar nicht an den Gnome-Settings, aber evtl. an den Einstellungen des X-Servers. Diese lassen sich wie folgt beauskunften:

arvid@c64 ~$ xset -q

Wenn weiter unten in den Ausgaben des xset-Befehls etwas dieser Art steht:

DPMS (Energy Star):
  Standby: 600    Suspend: 600    Off: 600
  DPMS is Enabled
  Monitor is On

dann ist wohl genau das der Grund für das Ausschalten der Bildschirme nach einigen Minuten. Abschalten lässt sich das Energiesparverhalten ganz einfach mit dem Befehl:

arvid@c64 ~$ xset -dpms

Jetzt sollte es beim Ansehen eines Films wirklich keine Probleme mehr mit schwarzen Monitoren geben.

29Jul/110

Probleme mit Grafikkarte

Vor wenigen Wochen hatte ich sehr unangenehme Probleme mit meiner Grafikkarte. Auf meinen Monitoren flimmerte und flackerte es ganz fürchterlich lauter Streifen. Es gab Momente, die auszuhalten waren, aber es gab auch Phasen, in denen man kaum noch was erkennen konnte auf seinen Bildschirmen.

Umgehen konnte ich dieses Problem leider nur durch den Kauf einer neuen Grafikkarte. Ich tauschte meine ATI Radeon 9600 Pro mit einer nVidia NX6200. Keine Hochleistungsgrafikkarte, aber die brauche ich ohnehin nicht. Ich bin seit Jahren kaum noch ein PC-Spieler.

Details über das Ausmaß dieses Grafikproblems können übrigens den linuxforen.de entnommen werden, wo auch ich meinen Senf zur Problemschilderung dazu gab.

22Jun/110

keine Zahlen mit NumPad – kein Bug, ein Feature

Ich bin ein Freund des NumPads. Eben selbiges spielte mir jedoch einen kleinen Streich: Es reagierte (scheinbar!) nicht mehr auf meine Eingaben trotz aktiver NumPad-LED.

Zunächst wunderte ich mich, ob die Tastatur vielleicht defekt wäre. Mit einer anderen Tastatur ging das NumPad ebenfalls nicht und es kann ja unmöglich zwei Tastaturen auf einmal treffen, also ganz sicher kein Hardware-Fehler. Es musste irgendetwas auf Software-Ebene sein.

Ein Fehler im System?

Nach kurzer Suche fand ich diese Bug-Beschreibung im Red Hat Bugzilla. Der Status "CLOSED NOTABUG" lässt bereits erahnen, dass das kein Fehler sein kann. Ein wenig durch die Kommentare gestöbert findet man schnell eine Lösung, damit das NumPad auch wieder Zahlen tippen kann.

Kein Fehler, aber wie deaktiviert man das?

Das ist schnell erledigt, es ist einfach nur die Tastenkombination [Umschalt] + [Num] (bzw. [Shift] + [Num]) zu betätigen.

Und was war das nun für (k)ein Fehler?

Durch Betätigen von [Umschalt] + [Num] wird das NumPad nicht direkt deaktiviert. Es wird die Funktionsbelegung geändert. Und zwar lässt sich so mit dem NumPad der Mauszeiger steuern. Das ist dann praktisch, wenn die Maus kaputt ist oder wenn gerade keine Maus zur Hand ist.

Man kann das NumPad also zur Cursor-Steuerung der Maus verwenden. Und ich bin wohl versehentlich auf die Tastenkombination gekommen.

By the way: Einen Linksklick erhälst du durch Drücken der NumPad-Ziffer [5], einen Rechtsklick durch zusätzliches Drücken der [Strg]-Taste (bzw. [Ctrl]).

veröffentlicht unter: Linux allgemein keine Kommentare
1Jun/110

Merchandising um einen Pinguin

Hin und wieder stößt man auf Konsumgüter, die den geneigten Pinguin-Fan zu unterhalten in der Lage sind. Ein paar davon sind die folgenden:

Weitere Vorschläge zu heiteren Merchandising-Artikeln rund um den Linux-Pinguin nehme ich gerne entgegen.

27Mai/110

Autovervollständigung für Terminal-Befehle

Die Autovervollständigung für Befehle im Terminal sollte bekannt sein (nur den Anfang eines Befehls eingeben und Tab-Taste drücken, ggf. 2x drücken, wenn der Befehl noch nicht eindeutig identifizierbar ist). Was z.B. unter Ubuntu von Haus aus klappt, aber nicht unter Fedora, ist die Autovervollständigung für die Befehls-Parameter bzw. für Unterbefehle.

Auf "If Not True Then False" findest du eine kurze Erläuterung sowie Installationsanleitung für bash-autocomplete, welches genau das bereinigt. Zu installieren ist lediglich bash-completion.

[arvid@c64 ~]$ sudo yum install bash-completion

Nützlich ist bash-autocompletion für mich insbesondere bei der Eingabe von Befehlen wie "svn <unterbefehl>" oder "sudo service httpd restart".

25Mai/110

Gewichtete Zufallsauswahl eines Arrayelements

Weil ich das schon Ewigkeiten mal "zu Papier" bringen wollte, habe ich heute mal eine Angelegenheit in Sachen Webprogrammierung mit PHP.

array_rand

Aus einem Array ein Element zufällig auszuwählen, ist mit PHP-Bord-Mitteln denkbar einfach.

$randomKey = array_rand($anyArray);
$randomElement = $anyArray[$randomKey];

dw_rand

Jedoch hat dabei jedes Element die gleiche Ziehungswahrscheinlichkeit. Schon vor einiger Zeit fand ich diese Lösung, um die Auswahl gewichten zu können.

Was diese Lösung nicht kann

Die dort vorgestelle PHP-Funktion dw_rand ist schon mal ein guter Anfang. Mein einziges Problem, welches ich damit nun noch habe, ist, dass ich im Vorhinein nicht weiß, wie die Wahrscheinlichkeiten bestimmt sind. Diese sollen sich aus den Arrayelementen selbst ergeben und nicht explizit vorgegeben sein, so wie es die Funktion dw_rand erfordert.

Wie ich das meine? Vielleicht kann folgendes Beispiel das ein wenig verdeutlichen.

Anwendungsbeispiel

Angenommen wir betreiben einen Internet-Shop, bei dem es auch mal einen Artikel zu gewinnen gibt. Nun soll aus einem Teil der Produktpalette zufällig ein Produkt gelost und als Gewinn verschenkt werden. Aber teure Produkte sollen eine geringere Wahrscheinlichkeit erhalten als die preisgünstigeren Produkte, so dass letztere häufiger ausgelost werden.
(Zugegebenermaßen ist mein eigener Anwendungsbereich ein etwas anderer, aber als Beispiel kann dies trotzdem dienen, hoffe ich.)

Veranschaulichen wir das mal mit ein wenig Quellcode. Wir nehmen an, wir haben zur Laufzeit folgendes Array:

$products = array(
    array(                //  im echten Programmierumfeld wäre dies dann eher ein Objekt der Klasse Product und kein Array
        'id' => 123,      //  ID des Produkts
        'cost' => 500     //  Kosten des Produkts
    ),
    array(
        'id' => 456,
        'cost' => 100
    ),
    array(
        'id' => 789,
        'cost' => 200
    )
);

Aus diesen drei Produkten soll nun je nach Preis eines zufällig ausgewählt werden. Das Produkt mit der ID 456 soll dabei am häufigsten gewählt werden, da es am günstigsten ist.

Da müssen wir noch was machen...

Die Funktion dw_rand benötigt für die Häufigkeitsverteilung aber keine ganzzahligen Preise, sondern Fließkommazahlen zwischen 0.0 und 1.0 (für Prozentwerte von 0% bis 100%).

Ansatz

Was wir brauchen, ist eine Art Umkehrwert der Kostenangaben für die Produkte. Hier reicht es allerdings nicht, einfach nur 1/x zu rechnen, denn die resultierenden Wahrscheinlichkeiten sollen ja in Summe genau 1.0 (für 100%) ergeben. Ich möchte die Erläuterungen an dieser Stelle einfach abkürzen und sogleich die Lösung präsentieren (nicht zuletzt, weil ich den Quellcode bereits recht ausführlich dokumentiert habe).

Lösung

<?php

class RandomUtil {

	/**
	 * Gibt ein zufällig gewähltes Element aus einem Array zurück.
	 *
	 * Wird ausschließlich das Array übergeben, gibt es keine bevorzugten Elemente im Array.
	 * Es wird einfach ein Element nach Gleichverteilung aller Elemente ausgewählt.
	 *
	 * Wird neben dem Array zusätzlich der optionale Parameter $fieldWithRarity übergeben,
	 * so wird gewichtet ausgewählt. Je höher die Rarität, desto geringer die Gewichtung bei
	 * der zufälligen Auswahl und umgekehrt. Elemente im Array mit niedriger Rarität, also
	 * mit höherer Gewichtung, werden statistisch häufiger ausgewählt.
	 *
	 * @param $array Array mit Elementen, von denen eins zufällig gewählt werden soll
	 * @param $fieldWithRarity Feld mit Rarität/Seltenheitswert in den Elementen des Arrays
	 * @return zufälliges Element des übergebenen Arrays oder NULL, wenn das Array leer ist
	 */
	public static function getRandomArrayElement($anyArray, $fieldWithRarity = null) {
		if (empty($anyArray)) {
			return null;
		}

		if (empty($fieldWithRarity)) {
			$randKey = array_rand($anyArray);
		} else {
			$probArray = self::getProbabilitiesArray($anyArray, $fieldWithRarity);
			$randKey = self::dw_rand($probArray);
		}

		return $anyArray[$randKey];
	}

	/**
	 * Gibt ein Array mit Wahrscheinlichkeitswerten zurück. Diese werden von dw_rand benötigt.
	 */
	private static function getProbabilitiesArray(array $anyArray, $fieldWithRarity) {
		if (empty($fieldWithRarity)) {
			throw new Exception('Es muss das Feld mit dem Raritätswert angegeben werden');
		}

		//	Array mit Wahrscheinlichkeiten (wird gleich befüllt, zunächst Erläuterung an Beispiel)
		$probabilities = array();

		/*
			BEISPIEL:
			 Produkt-Objekte mit Gewichtung auf das Feld 'cost', das ist der Raritätswert

			Situation:
			 Wir haben Produkte, die Geld kosten. Von allen Produkten soll eines zufällig
			 ausgewählt werden. Allerdings sollen die günstigen Produkte wahrscheinlicher
			 und die teuren Produkte unwahrscheinlicher sein (bzw. häufiger und seltener).
			 Mit den Kosten der Produkte als Grundlage zum Ermitteln von Wahrscheinlich-
			 keiten ergibt sich folgender Rechenweg.

			(1) - Kosten
			 K_Prod1 = 30.000
			 K_Prod2 = 50.000
			 K_Prod3 = 40.000
			 SUMME = 120.000

			(2) - Kostenverhältnisse
			 R_Prod1 = 120k / 30k = 4
			 R_Prod2 = 120k / 50k = 2,4
			 R_Prod3 = 120k / 40k = 3

			(3) - Faktor
			 SUMME_VERHAELTNISSE = 4 + 2,4 + 3 = 9,4
			 FAKTOR = 1 / 9,4 = 0,106382979

			(4) - Wahrscheinlichkeiten
			 P_Prod1 = 0,106382979 * 4 = 0,425531916
			 P_Prod2 = 0,106382979 * 2,4 = 0,25531915
			 P_Prod3 = 0,106382979 * 3 = 0,319148937

			(-->) folgendes Array käme dabei heraus
			 array(
				'1' => 0.425531916,
				'2' => 0.25531915,
				'3' => 0.319148937
			 );
		*/

		//	(1) - Einzel- und Gesamtkosten ermitteln und in das Wahrscheinlichkeits-Array stecken
		$costSum = 0;
		foreach ($anyArray as $key => $element) {
			$rarity = $element[$fieldWithRarity];

			if ($rarity >= 0)  {
				$costSum += $rarity;
				$probabilities[$key] = $rarity;
			}
		}

		//	(2) - Verhältnis von Gesamtkosten zu Einzelkosten bilden und ins Wahrsch.-Array stecken
		foreach ($probabilities as $key => $cost) {
			$probabilities[$key] = $costSum / $cost;
		}

		//	(3) - Faktor ermitteln, mit dem wir die Kostenverhältnisse in Summe auf 1 bekommen (Dreisatz)
		$ratioSum = 0;
		foreach ($probabilities as $ratio) {
			$ratioSum += $ratio;
		}
		$factor = 1 / $ratioSum;

		//	(4) - die endgültigen Wahrscheinlichkeiten errechnen (Dreisatz Fortsetzung)
		foreach ($probabilities as $key => $ratio) {
			$probabilities[$key] = $factor * $ratio;
		}

		//	Wahrscheinlichkeiten zurück geben
		return $probabilities;
	}

	/**
	 * @see http://rotering-net.de/tut/php-dwrand.html
	 */
	private static function dw_rand($space, $errval = false) {
		$res = 1000000000;
		$rn = mt_rand(0, $res - 1);
		$psum = 0;

		foreach ($space as $element => $probability) {
			$psum += $probability * $res;
			if ($psum > $rn) return $element;
		}

		return $errval;
	}
}

Verwendung

Aus unserem Produkte-Array bestehend aus Product-Instanzen (bzw. aus Sub-Arrays zur Veranschaulichung) lässt sich nun wie folgt ein Element zufällig, gewichtet nach Kosten auswählen:

$randomProduct = RandomUtil::getRandomArrayElement($products, 'cost');

Einfach, oder? Ich hoffe, diese (für mich schon seit Längerem hilfreiche) Klasse kann auch euch da draußen dienlich sein. Mir war und ist sie es - in diesem Sinne auch meinen Dank an Thorsten Rotering für seine dw_rand-Funktion!

24Mai/110

Kleine Tool-Sammlung für das CLI

Jüngst erreichte mich folgender Link: Cool, but obscure unix tools. Dort findest du eine Reihe bunter Screenshots zu dem einen oder anderen bekannten und auch unbekannten Commandline-Tool. Nette Auflistung, wie ich finde.

24Mrz/112

Firefox 4 mit Verschlimmbesserungen

Bis einschließlich Firefox 3.6 konnte ich stets behaupten: Ich mag den Feuerfuchs so, wie er ist.

Mit dem Sprung zur 4. Version des Mozilla-Browsers hat sich in Firefox so manches geändert. Sicherlich vieles zum Guten, aber auch einiges zum Schlechten. Wenn nicht das, dann zumindest zur Verwunderung des Benutzers.

Und das mag ich teilweise nicht.

Statusleiste verschwunden

Mit der neuen Version ist zum Beispiel die Statusleiste abhanden gekommen. Stattdessen erfreut sich der Benutzer nun der neuen Add-on-Leiste, die eben nicht mehr die gewohnten Informationen anzeigt wie beispielsweise:

  • Ladebalken beim Aufrufen von Webseiten
  • Anzeigen des Linkziels beim Herüberfahren mit dem Mauszeiger über eine Verlinkung
  • und natürlich den aktuellen Status, z.B. "Fertig" für "Seite fertig geladen"

Verlinkung-Popup in Firefox 4

Der Ladebalken ist weniger mein Problem, aber insbesondere Zweites empfinde ich als nervig, da nun das Ziel eines Links in einem kleinen Popup in der linken unteren Ecke des Browser-Fensters erscheint. Das ist weitaus auffälliger und damit für mich störender als einfach die URL des Links, über dem sich der Mauscursor befindet, ganz dezent in der Statusleiste anzuzeigen, wie es immer schon war.

In diesem Falle hilft zum Glück das Addon "Status-4-Evar", welches noch weitere nützliche Einstellungsmöglichkeiten mitliefert.

Sitzung beim Schließen manuell speichern

Firefox: Sitzung beim Schließen speichern

Auch das Verhalten von Firefox hat sich mit dem Update geändert. Ich hatte zum Beispiel den Browser in der vorigen Version wie folgt konfiguriert:
Beim Schließen des Browsers mit mehreren offenen Tabs wurde ich von Firefox gefragt, ob die aktuelle Sitzung gespeichert werden soll. Nach dem Update auf die Version 4 ging diese Konfiguration verloren. Im Gegenzug wurde ich zwar gewarnt, dass ich gerade den Browser mit mehreren offenen Tabs schließen wolle, aber die Warnung alleine interessiert mich nicht (abgesehen davon hatte ich die Warnung in der Vorgängerversion deaktiviert).
Was ich genauso wenig möchte, ist die Einstellung, dass Firefox mit jedem Browser-Neustart die letzte Sitzung mit den offenen Tabs wieder herstellt. Das brauche ich nur manchmal, aber gewiss nicht immer. Deshalb verwende ich die genannte Funktion so gerne, die mich selbst entscheiden lässt, ob ich die offenen Tabs speichern oder einfach verwerfen und schließen möchte.

Auch in diesem Falle gibt es glücklicherweise eine Lösung, die allerdings die Änderung eines Eintrags in about:config erfordert. Suche dort nach der Einstellung browser.showQuitWarning und setze sie auf true, ein Doppelklick auf die entsprechende Zeile mit der Einstellung sollte genügen.

Hilft das nicht, so scheint irgendetwas anderes kaputt zu sein.

Fazit

Prinzipiell finde ich gut, sich im heiß umkämpften Browsermarkt einige Konzepte und Ideen anderer, erfolgreicher Browser anzueignen. Jedoch sollte man dann den Benutzer bei Änderungen von Funktionalität, Bedienbarkeit oder einfach nur vom Aussehen nicht vor vollendete Tatsachen stellen, sondern ihm den Freiraum bieten, selbst darüber zu entscheiden, ob er die Änderung annimmt oder eben nicht.

Und ja, ich bin mir durchaus bewusst, dass Auswahlmöglichkeiten dieser Art eine Software unnötig aufblähen können. Man kann es eben nicht jedem Recht machen.
Zu einigen Änderungen muss man als Software-Hersteller scheinbar einfach mal Mut bekennen und die Sache durchziehen. Auch auf die Gefahr hin, jemandem wie mir damit keinen Gefallen zu tun.

Epilog

Ich persönlich empfand die genannten Änderungen (nagut, sagen wir mal die eine mit der Statusleiste) im Firefox der Version 4 zumindest als störend oder gar lästig. Nicht zuletzt, weil ich mir einen Kopf habe machen müssen, jene Anpassungen vorzunehmen, die meinen Vorlieben im Umgang mit dem Browser entsprechen. (Was schon mal doof ist, weil im Vorhinein bereits alles meinen Wunschvorstellungen gerecht werden konnte.) Obendrein veranlasst mich das Ganze, diesen Artikel zu schreiben, was ja gewissermaßen (unbezahlte) Arbeit ist. Aber hierfür trage ich wohl ausnahmsweise mal ganz alleine die Schuld. ;-)

Nach all dem Gemeckere möchte ich dennoch festhalten, dass ich Firefox für eine tolle Software halte. Nicht umsonst ist und bleibt vorerst Firefox meine erste Wahl in Sachen Webbrowser.

Firefox
22Mrz/110

Chromium für Fedora

In den Standard-Repositories von Fedora ist der Chromium-Browser nicht enthalten. Du kannst ihn stattdessen wie folgt installieren.

Begieb dich auf die Repositories-Seite von Fedora People und lade dir die repo-Datei für den Chromium-Browser herunter. Speichere die Datei zum Beispiel auf deinem Desktop.

1. Repo hinzufügen

Öffne nun ein Terminal und gib Folgendes ein:

[arvid@c64 ~]$ cd /etc/yum.repos.d/
[arvid@c64 yum.repos.d]$ sudo cp ~/Desktop/fedora-chromium.repo ./

Damit gelangst du zunächst in das Verzeichnis, in dem alle von yum registrierten Repositories liegen (also alle für deinen Rechner erfassten Quellen, von denen aus du Programme beziehen und installieren kannst). Anschließend kopierst du die repo-Datei, die du zum Installieren von Chromium benötigst, in dieses Verzeichnis.

Ohne Verzeichniswechsel

Alternativ kannst du natürlich auch auf den Wechsel in das genannte Repository-Verzeichnis verzichten und den Kopiervorgang direkt vor Ort und Stelle ausführen und dabei die Zielverzeichnisse entsprechend direkt angeben. Also Terminal öffnen und eingeben:

[arvid@c64 ~]$ sudo cp Desktop/fedora-chromium.repo /etc/yum.repos.d/

Befehl sudo nicht möglich?

Obacht, der sudo-Befehl klappt natürlich nur, wenn dein System-Benutzer entsprechend in der Datei /etc/sudoers aufgeführt ist. Wenn dies nicht der Fall ist, dann probiere folgende Eingaben:

[arvid@c64 ~]$ su
Passwort: [hier das Passwort des root-Users eingeben]
[root@c64 arvid]# cp Desktop/fedora-chromium.repo /etc/yum.repos.d/

Du hast dir damit root-Zugang verschafft, in dem du dich als selbiger angemeldet hast und anschließend kopierst du, wie oben schon beschrieben, die repo-Datei in das nötige Zielverzeichnis.

2. Chromium installieren

Chromium Browser in Fedora installieren

Dem Paket-Installer ist das Repository (also die Paketquelle) für den Chromium-Browser jetzt bekannt. Du kannst ihn installieren, wie jedes andere gängige Programm auch.

Starte das Programm gpk-application über das Menü unter System > Administration > Software hinzufügen/entfernen und gib im Suchfeld "chromium" ein. Kurz warten, Häkchen setzen und "Anwenden" klicken, installieren lassen. Fertig.

20Mrz/110

Tastenkürzel im Nautilus

Gnomes Standard-Dateimanager Nautilus bietet einige nützliche Shortcuts.

Es folgen die von mir am häufigsten verwendeten Nautlius-Tastenkombinationen. Es sind bei Weitem nicht alle Tastaturkürzel aufgezählt, aber zumindest einige recht praktische, die dir als Linux-Noob vielleicht doch noch eine Hilfe sein können.

Verborgene Dateien anzeigen

Um versteckte Dateien und Verzeichnisse (jene mit einem Punkt im Namen beginnend) sichtbar zu machen, ist lediglich die Tastenkombination Strg+H (bzw. Ctrl+H) zu betätigen. Zum Verstecken der nun angezeigten Dateien muss erneut Strg+H gedrückt werden.

Verzeichnisse anlegen

Zum Anlegen eines Unterverzeichnisses im derzeit geöffneten Verzeichnis sind die Tasten Strg+Umschalt+N (bzw. Ctrl+Shift+N) zu drücken. Nur noch den Verzeichnisnamen eingeben, fertig.

Navigieren

In das in der Verzeichnishierarchie höher gelegene Verzeichnis gelangst du mit Alt+PfeiltasteHoch (bzw. Alt+Up). In das zuletzt angesehene Verzeichnis kommst du mit der Tastenkombination Alt+PfeiltasteLinks (bzw. Alt+Left), wieder nach vorne navigieren kann man mit Alt+PfeiltasteRechts (bzw. Alt+Right).

Dateien und Verzeichnisse nach Namen auswählen

Sind dir die Namen deiner Verzeichnisse und Dateien bekannt, kannst du direkt die ersten Buchstaben der entsprechenden Namen eintippen, einfach so und ohne zusätzliche Shortcuts. Die Dateien und Verzeichnisse, auf welche die von dir eingegebenen Anfangsbuchstaben passen, kannst du nun mit den Pfeiltasten Hoch und Runter (bzw. Up/Down) auswählen. Die übrigen Dateien werden damit bei der Auswahl ignoriert, diese Einschränkung kann durch Drücken der Escape-Taste wieder aufgehoben werden.

Splitscreen benutzen

Um dem Nautlius einen Hauch von Nortan Commander und Co. zu verleihen und eine zweispaltige Ansicht zu aktivieren, ist schlicht die Taste F3 zu drücken. Zwischen den beiden Spalten kann neben der Verwendung der Maus mit F6 hin und her gewechselt werden.

Dateien endgültig löschen

Für sofortiges Löschen von Dateien (Papierkorb wird umgangen) ist nach Markieren der entsprechenden Dateien die Tastenkombination Umschalt+Entf (bzw. Shift+Del) zu betätigen. Achtung, die gelöschten Dateien landen nicht im Papierkorb! Benutzung auf eigene Verantwortung.

Dateien umbenennen

Einer der Klassiker, die auch im Dateiexplorer von Microsoft Windows auf diese Weise funktionieren, ist das Umbennen von Verzeichnissen und Dateien, dies erreichst du durch Drücken der Taste F2.

Eigenschaften anzeigen

Um dir von markierten Dateien und Verzeichnissen die Eigenschaften anzeigen zu lassen, musst du (wenn du gerade keine Lust auf einen Rechtsklick mit deiner Maus hast) Alt+Eingabe (bzw. Alt+Enter) drücken.

18Mrz/110

Farbschemen in gedit einbinden

Neben den vorinstallierten Farbprofilen für Code-Highlighting in gedit lassen sich weitere Farbprofile installieren. Diese, wie sie eigentlich genannt werden, Style Schemes sind nichts weiter als XML-Dateien und lassen sich entsprechend einfach in gedit einbinden.

Style Schemes installieren

Nach Herunterladen der entsprechenden XML-Datei für dein favorisiertes Farbschema kopierst du die XML-Datei in folgendes Unterverzeichnis in deinem Home-Verzeichnis:

~/.local/share/gtksourceview-2.0/styles

Einen Neustart von gedit vorausgesetzt, kannst du nun im Menü unter "Bearbeiten" > "Einstellungen" im Reiter "Schrift und Farben" dein neues Farbschema auswählen.

Style Schemes editieren

Da XML-Dateien mit einfachen Texteditoren (wie z.B. gedit ;-) editiert werden können, kannst du Farbschemen, die du auf diese Weise in gedit einbindest, spielend einfach bearbeiten. Damit kannst du die Farben für das Syntax Highlighting nach eigenem Belieben anpassen.

Screenshot von gedit mit Farbschema "Dueddel"

Mein eigenes Farbschema

Ich habe mir von der oben verlinkten Liste mit den downloadbaren Style Schemes den "Vibrant"-Style zu Herzen genommen, weil mir dieser am besten gefiel, allerdings habe ich ihn ein klein wenig editiert. Hier kannst du meine Version des Vibrant-Styles herunterladen.

~/.local/share/gtksourceview-2.0/style

17Mrz/110

Plugins in gedit einbinden

Dem geneigten Gnome-User dürfte der Texteditor gedit nicht gerade fremd sein. Um gedit ein wenig zu pimpen, lassen sich Plugins installieren, gedit bringt dafür bereits von Haus aus einige nützliche Plugins mit. Diese und weitere kannst du auf der Plugin-Seite von gedit einsehen.

Aber wie installiert man diese Plugins, die nicht Teil der Standardinstallation von gedit sind?
Das ist glücklicherweise einfach erklärt:

  1. Plugin(s) herunterladen
  2. Plugin(s) im Home-Verzeichnis ins entsprechende Unterverzeichnis kopieren
  3. Plugin(s) in gedit aktivieren

Fertig.

1. Plugins herunterladen

Von der genannten Plugin-Seite (Link siehe oben) kannst du nach einigem Herumstöbern die von dir gewünschten Plugins beziehen. Welche dir gefallen, solltest du wie jeder andere auch am besten selbst entscheiden. Ich persönlich mag das trailsave-Plugin, welches beim Speichern automatisch sämtliche überflüssige Whitespaces aus der Datei entfernt (also z.B. Leerzeichen und Tabs am Ende einer Zeile), darüber hinaus finde ich auch das Smart Highlighting-Plugin sehr praktisch, bei welchem durch Markieren eines Wortes sämtliche Vorkommen des selben Wortes in der geöffneten Datei hervorgehoben werden.

Wie auch immer - wichtig ist, dass das heruntergeladene Plugin zwei Bestandteile aufweist:

  1. eine Datei <pluginname>.gedit-plugin
  2. sowie eine Datei <pluginname>.py oder stattdessen ein Verzeichnis <pluginname>/

2. Plugins installieren

Die heruntergeladenen Plugin-Dateien sind in dein Homeverzeichnis zu kopieren, genauer gesagt nach:

~/.gnome2/gedit/plugins

Bei mir ist das z.B. das Verzeichnis /home/arvid/.gnome2/gedit/plugins.

3. Plugins aktivieren

Plugins-Einstellungen in gedit

Zu guter Letzt ist gedit neu zu starten und im Menü unter "Bearbeiten" > "Einstellungen" im Reiter "PLugins" das installierte Plugin zu aktiveren.