![Kann ich das EOL meines Linux-Systems durch Konfigurationsdateien so ändern, dass \r\n statt \n verwendet wird?](https://rvso.com/image/1482494/Kann%20ich%20das%20EOL%20meines%20Linux-Systems%20durch%20Konfigurationsdateien%20so%20%C3%A4ndern%2C%20dass%20%5Cr%5Cn%20statt%20%5Cn%20verwendet%20wird%3F.png)
Ich möchte das Standard-EOL meines Linux-Systems von \n auf \r\n ändern, ohne es neu kompilieren zu müssen. Ist dies mit irgendeiner Konfiguration möglich (vielleicht mit dem Gebietsschema)?
Grund: Ich muss sicherstellen, dass für jeden Benutzer, der eine Datei erstellt, die Datei richtig formatiert ist (ohne ihn zu zwingen, unix2dos oder etwas anderes zu verwenden).
Antwort1
Ich bearbeite meine Antwort, um diese Zusammenfassung oben bereitzustellen. Ich glaube, die direkte Antwort auf Ihre grundlegende Frage lautet: „Nein, dies ist keine Option, die auf vielen Linux-Systemen allgemein unterstützt wird.“ Nachfolgend finden Sie meine ausführlichere Erklärung.
Ich bezweifle, dass dies einfach zu bewerkstelligen ist. Theoretisch verwenden mehrere Betriebssysteme unterschiedliche Zeilenumbruchzeichen, wie inWikipedia: Darstellungen. Theoretisch sollten Programmierer nicht auf \n oder \r\n verweisen, wenn sie ein „Newline-Zeichen“ darstellen möchten (das ein Zeichen wie das Datensatztrennzeichen alter QNX-Systeme oder \r\n wie bei MS-DOS sein könnte). Auf diese Weise könnte jeder, der (bald oder später) den Code wiederverwenden möchte, einfach eine Variable ändern.
In der Praxis ist bekannt, dass viele Programmierer Werte „hart codieren“. Sie könnten „Linux from Scratch“ verwenden und das System nach Belieben anpassen. Ich nehme an, dass Sie, wenn Sie den Quellcode ändern, es so einrichten könnten, dass alle Konfigurationsdateien Ihres Systems die von Ihnen bevorzugte Zeilenumbruchsequenz verwenden.
Was passiert jedoch später, wenn ein Benutzer einen bestimmten Texteditor oder einen bestimmten Webbrowser verwenden möchte? Sind Sie bereit, Ihre eigene Variante des Quellcodes des Google Chromium-Webbrowsers zu „korrigieren“, nur um diese Änderung zu berücksichtigen?
Wie siehst du ausKommentar von ChrisEdmonton, wäre die Umsetzung dieser Änderung tatsächlich ungewöhnlich. Das bedeutet, dass Sie wahrscheinlich feststellen werden, dass viele Dinge nicht gut mit dem Ziel einer Person harmonieren, eine solche Flexibilität umzusetzen. Sie werden also wahrscheinlich auf eine ganze Reihe von Problemen stoßen. Ich vermute, dass Sie im weiteren Verlauf wahrscheinlich auf eine ganze Reihe von Problemen stoßen werden, auch wenn die Dinge zunächst in Ordnung zu sein scheinen.
Für mich persönlich haben meine Computerdaten einen gewissen Wert. Selbst Daten, die so wertlos sind, dass ich mir nicht die Mühe mache, sie zu sichern, sind für mich so wertvoll, dass ich nicht absichtlich etwas tun möchte, das wahrscheinlich Probleme verursacht. (Nur weil ich bereit bin, den Verlust der Daten im unwahrscheinlichen Fall einer Katastrophe in Kauf zu nehmen, heißt das nicht, dass ich im übertragenen Sinne Benzin auf einer Seite des Hauses auf den Boden schütten und damit absichtlich und sinnlos eine Situation herbeiführen möchte, die wahrscheinlich eine Katastrophe auslösen könnte.)
Wenn Sie also nicht bereit sind, sich alle möglichen Dinge anzuschauen, einschließlich Dateisystemtreiber und Kernelcode, der den Speicher verwaltet, und alle anderen Aspekte des Systems, dann lohnt sich dies wahrscheinlich nicht weiter. Ich schlage vor, die Änderung auf eine andere Weise zu implementieren.
Ja, ich kenne das Argument, dass Linux Open Source sein soll und daher anpassbar sein sollte. Aber die Realität ist, dass Linux so stark gewachsen ist, dass eine Änderung erhebliche Konsequenzen haben kann. Bedenken Sie, dass es verschiedene Versionen von Linux gibt (Debian, Ubuntu, Mint, Red Hat, SUSE usw.), ganz zu schweigen von anderen Unix-ähnlichen Betriebssystemen (BSD, Solaris, Mac OS X) und anderen Betriebssystemen (Windows, DOS, CPM, VMS). Theoretisch sollte es einfacher sein, eine solche Änderung vorzunehmen, als zu versuchen, Microsoft davon zu überzeugen, eine Änderung an seinem Closed-Source-Betriebssystem vorzunehmen. In der Praxis gibt es möglicherweise viele Leute, die Sie überzeugen müssen, um eine Änderung an einer der beliebteren Softwareprogramme vorzunehmen. Änderungen können Dinge kaputt machen, daher sollten Änderungen vorgenommen werden, wenn sie einen erheblichen, substanziellen Nutzen bringen. Leichtere Änderungen sind den Aufwand, den sie möglicherweise mit sich bringen, wahrscheinlich nicht wert.
Manche Leute möchten, dass solche Änderungen eine leicht veränderbare Option sind. Ein Problem mit vielen Optionen ist, dass zu viele Optionen die Benutzeroberfläche überladen, die Dokumentation überladen und den Quellcode verkomplizieren können (selbst wenn die zusätzliche Komplexität relativ gering ist). Daher gibt es Leute, die der Einfachheit halber die Idee vertreten, Standards zu schaffen und Optionen zu reduzieren. Daher kann eine Änderung wie „Neuzeilenzeichen für Software anpassen, die diese Option unterstützt“ mehr Ärger verursachen als den erwarteten Nutzen einer solchen Option.
Ihr angegebener Grund ist, dass der Benutzer beim Erstellen einer Datei nicht „unix2dos“ verwenden soll. Wie erstellt der Benutzer eine Datei? Führt der Benutzer „nano“ aus? Sie könnten „nano“ möglicherweise durch ein Skript ersetzen, das das normale nano ausführt und dann automatisch unix2dos ausführt. Sie könnten den Prozess ändern, mit dem Benutzer Dateien erstellen/bearbeiten, oder Sie könnten den Prozess ändern, der sich darauf auswirkt, wie die Datei auf andere Maschinen übertragen wird, die möglicherweise \r\n erwarten (und sich dann nicht darum kümmern, ob die Datei nur \n verwendet, während die Datei noch auf der Linux-Maschine ist). Solche gezielten Ansätze funktionieren mit weitaus größerer Wahrscheinlichkeit ohne unbeabsichtigte Folgen, als zu versuchen, eine systemweite Änderung vorzunehmen, die sich auf die Funktionsweise des gesamten Systems auswirkt.