Noch ein paar Ergänzungen zu den Spracheinstellungen. Es ist wahrscheinlich nicht ganz klar, warum eine Unterscheidung der Spracheinstellungen auf Systemebene von denen im grafischen Benutzerinterface sinnvoll ist. Ich erklär das mal an einem Beispiel. der Slash / ist ein Trennzeichen für die Angabe von Pfaden zu einer Datei, er ist damit im Commandline Interface eines der am häufigsten verwendeten Zeichen. Im us englischen Tastaturlayout liegt der Slash unten rechts auf der Reihe von n und m zwischen dem Punkt und der (Shift) Umschalttaste, er ist für diese Taste das primäre Zeichen, das Fragezeichen ist das sekundäre. Auf der deutschen Tastatur liegt der Slash als sekundäres Zeichen auf der Taste 7 in der Nummernreihe, er wird also mit [Shift]+[7] erzeugt. Dieses Beispiel zeigt einen enormen Vorteil englischer Spracheinstellungen auf Grundsystemebene, ist aber nicht der einzige Grund, warum eine Unterscheidung sinnvoll, ja manchmal sogar notwendig ist.
Ich stelle mir vor, ich verwende übergangsweise eine Sprache, die keine lateinischen Buchstaben verwendet – Russisch, Griechisch, Arabisch, Ivrit usw.. Auf höheren Desktops gibt es die Möglichkeit für jedes einzelne Fenster die Sracheingabe mit der Maus beliebig zu verändern und festzulegen, ich tippe also einen russischen Text im Editor, arbeite mit der bash in englisch und mache eine Internetsuche bezüglich hebräischer Schrift. [Das ist rein hypothetisch, ich mach das normalerweise so nicht] Im Fenstermanager lässt sich diese Möglichkeit auch etablieren, es besteht aber häufig keine Notwendigkeit auf dieser Ebene solche Extras einzurichten, die dann ja wieder Ressourcen in Anspruch nehmen. Hier wird die Spracheinstellung für X im Terminal mit der Eingabe von
$ setxkbmap de
festgelegt. Andere Möglichkeiten wären zum Beispiel fr für französisch, en für englisch, ru für russisch, ich glaube das erklärt sich von selbst. Ich kann also auch meine Datei .xsession durch diesen Eintrag erweitern, um immer die grafische Oberfläche mit dem gewünschten Tasteturlayout zu starten.
Für die Eingabe von setxkbmap im Terminal benötige ich lateinische Schrift, wenn ich aber nun an einem russischen Text arbeite in einem eingedeutschten System mit globalen Spracheinstellungen, erscheinen auch bei der Eingabe in der bash russische Buchstaben. Das stellt viele User erstmal vor das Problem, dass sie nicht ins deutsche Tastaturlayout zurückkehren können. Mit [Ctrl]+[Alt]+[F2] wäre in meinem Fall das Problem gelöst, ich logge mich einfach auf einem Terminal im Grundsystem ein und verfüge immer über eine englische Tastatur mit lateinischer Schrift, die Eingabe von setxkbmap de lässt mich aufatmen, jetzt kann ich auch unter X wieder die bash benutzen.
# Ein russisches debian hat für die bash russische Strukturen, es existiert diese Frage also nur für Polyglotten.
# Es können auch Tastenkombinationen festgelegt werden, die das Tastaturlayout schnell und bequem umschalten.
Also ich bin gerade mal meiner Muttersprache mächtig, und wie zu sehen ist auch nicht fehlerfrei. Ich benutze unterschiedliche Schriften eigentlich nur im Webbrowser, kann einige europäische Sprachen unterscheiden und wenige asiatische, und ich finde es ziemlich nervig anstatt chinesischer Zeichen, koreanischer oder japanischer nur Tofu “ [][][][][][][]“ auf den Internetseiten zu sehen, auch wenn ich deren Inhalt nicht vollständig erfassen kann.
Mir ist wichtig ein integeres System zu benutzen, und dafür sind systemweite Spracheistellungen für deutsch nicht geeignet, denn es entsteht ein mehr oder weniger unstrukturierter Mischmasch aus Englisch und Deutscht. Die Syntax für die bash orientiert sich ganz klar am englischen und auch die Hilfeseiten des Grundsystems, die manpages sind durchgehend in englischer Sprache verfasst. Überall sonst tauchen dann mal deutsche Texte auf und vor allem eine deutsche Namensgebung mit Umlauten auch in Dateinamen, was unglaublich nervig ist, denn Umlaute sind auf Systemebene keine allgemeingültigen Zeichen, auch nicht im debian auf deutsch.
Also ist es zwar erlaubt in der Desktopumgebung Umlaute und Leerzeichen für Dateinamen zu verwenden, aber du solltest mal gucken, wie solche Dateinamen dann auf Systemebene aussehen, dann wirst du dich hoffentlich an einem guten Stil orientieren und dich an die internationale Konvention gewöhnen. Diese Konvention gilt für alle bekannten Computersysteme außer für Windows, das nicht zwischen Groß- und Kleinschreibung unterscheidet und anstatt des Slash / den Backslash \ als Trennzeichen für Dateinamen verwendet, um Entwicklern anderer Software ein Beinchen zu stellen. Wie schon gesagt verhält sich Windows sehr isolierend und fremdenfeindlich.
Diese Konvention lautet grundsätzlich Leerzeichen in Dateinamen zu vermeiden und nur ASCII kompatible Zeichen zu verwenden, das sind in erster Linie lateinische Buchstaben ohne Umlaute und Nummern von 0 bis 9 inklusive einiger Sonderzeichen wie $, *, # und @ – wobei viele dieser Sonderzeichen eine eindeutige Funktion haben und nur bedingt als einfache Zeichen verwendet werden können. Es werden Großbuchstaben von Kleinbuchstaben unterschieden, dateiname, Dateiname und DateiName sind also Namen für drei verschiedene Dateien, und der Punkt ist ein allgemeines Trennzeichen ohne besondere Funktion in Dateinamen, er kann beliebig oft einzeln zwischen Zahlen und Buchstaben verwendet werden, steht er aber am Anfang eines Dateinamen, macht er die Datei unsichtbar, Da.tei.Name.txt ist genauso ok wie dateiname.txt, .datei.name.txt ist auch ok, aber eine unsichtbare Datei.
Darüber hinaus gibt es noch zwei festgelegte Dateien im Verzeichnisbaum, die einfach nur . und .. heißen. Nur der Punkt ohne Buchstaben und Zahlen kann deshalb vom User auch nicht verwendet werden.
Die Datei . bezieht sich auf das aktuelle Verzeichnis, die Datei .. bezieht sich auf das entsprechende Verzeichnis darüber.
$ cd ..
geht also im Verzeichnisbaum ein Verzeichnis zurück.
$ mv ../datei ./
verschiebt die Datei vom übergeordneten Verzeichnis ins aktuelle, stattdessen könnte auch der absolute Pfad angegeben werden anstelle des relativen, ein Beispiel sähe so aus..
$ mv /home/user/datei /home/user/desktop/
Das Leerzeichen ist hier das Trennzeichen für Parameter eines Kommandos in der bash, es ist deshalb absolut unsinnig Leerzeichen in Dateinamen zu verwenden, auch wenn das auf Desktopebene für möglich gehalten wird.
Die bash ist inzwischen gegenüber allen möglichen Umlauten und anderen Sonderbuchstaben tolerant, sie stellt also alles relativ gut leserlich dar, maßgeblich ist nichtmehr der stark begrenzte ASCII Zeichensatz sondern UTF8, sie ersetzt sonderzeichen im sichtbaren Bereich also nichtmehr unbedingt durch stellvertretendes Kauderwelsch [Editoren wie xedit öffnen die Augen], das Leerzeichen wird mit einem Backslash als Teil von Dateinamen markiert und vom systemrelevanten Trennungszeichen unterschieden. Alle sind bemüht es jedem so einfach wie möglich zu machen, das schließt ein Entgegenkommen und zumindest Kenntnis der Konvention seitens der User nicht aus. Vorsicht ist trotzdem mit Stern und Fragezeichen geboten, diese Symbole sind Jokerzeichen und vertreten entweder beliebig viele oder ein einzelnes nicht bekanntes oder dem eigenen Layout fremdes Zeichen.
$ cp ./* ../mein\ Ordner/
Kopiert alle im /home/User/Beispiel/ Verzeichnis liegende Dateien in das Verzeichnis /home/User/mein\ Ordner/ egal ob es sich um eine handelt, zwei oder drei Milliarden. Das Verzeichnis heißt natürlich auf dem Desktop
„mein Ordner“.
$ cp ./* ../mein?Ordner/
Wäre also auch einen Versuch wert ;)