![我可以透過設定檔更改我的 Linux 系統 EOL 以使用 \r\n 而不是 \n 嗎?](https://rvso.com/image/1482494/%E6%88%91%E5%8F%AF%E4%BB%A5%E9%80%8F%E9%81%8E%E8%A8%AD%E5%AE%9A%E6%AA%94%E6%9B%B4%E6%94%B9%E6%88%91%E7%9A%84%20Linux%20%E7%B3%BB%E7%B5%B1%20EOL%20%E4%BB%A5%E4%BD%BF%E7%94%A8%20%5Cr%5Cn%20%E8%80%8C%E4%B8%8D%E6%98%AF%20%5Cn%20%E5%97%8E%EF%BC%9F.png)
我想將我的linux系統的預設EOL從\n更改為\r\n而不重新編譯它。任何配置都可以實現這一點(也許是語言環境)?
原因:我必須確保對於創建文件的每個用戶,該文件都將被正確格式化(而不強迫他使用 unix2dos 或其他東西)
答案1
我正在編輯我的答案以在頂部提供此摘要。我相信您的基本問題的直接答案是「不,這不是許多 Linux 系統普遍支援的選項」。以下是我更詳細的解釋。
我懷疑這是否可以輕易做到。理論上,多個作業系統使用不同的換行符,如維基百科:表示。理論上,當程式設計師想要表示「換行符」(可能是一個字符,如舊QNX 系統的記錄分隔符,或\r\n,如MS)時,程式設計師不應該引用\n 或\r\ n -DOS)。這樣,如果有人(很快或將來)希望重新使用程式碼,他們只需更改一個變數即可。
在實踐中,許多程式設計師都知道「硬編碼」值。您可以使用“Linux from Scratch”,並根據自己的喜好自訂系統。我想如果您修改了原始程式碼,您可以使所有系統的設定檔使用您喜歡的換行符序列。
但是,當使用者希望使用特定的文字編輯器或特定的 Web 瀏覽器時會發生什麼?您是否準備好「修復」您自己的 Google Chromium 網路瀏覽器原始碼變體,以適應這項變更?
正如你可以看到的克里斯·埃德蒙頓的評論,實施這項改變實際上是不尋常的。這意味著您可能會發現很多事情與一個人實現這種靈活性的目標並不相符。所以你很可能會遇到很多問題。我推測,在事情最初看起來沒問題之後,你可能會在以後遇到很多問題。
就我個人而言,我的電腦資料對我來說有一定的價值。即使是毫無價值以至於我懶得備份的數據,對我來說也有足夠的價值,以至於我不想故意做一些可能導致問題的事情。 (僅僅因為我願意允許數據在不太可能發生的災難中丟失,並不意味著我想隱喻地將汽油傾倒在房子一側的地板上,無用地故意造成一種情況可能會引發災難。)
因此,除非您願意查看各種內容,包括檔案系統驅動程式和處理記憶體的核心程式碼以及系統的所有其他方面,否則這可能不值得追求。我建議使用另一種方式來實施變更。
是的,我知道 Linux 應該是開源的,因此它應該是可自訂的。但現實情況是,Linux 已經發展得如此之快,做出改變可能會產生重大後果。請記住,Linux 有不同的版本(Debian、Ubuntu、Mint、Red Hat、SUSE 等),更不用說其他類 Unix 作業系統(BSD、Solaris、Mac OS X)和其他作業系統(Windows 、DOS、CPM 、VMS)。從理論上講,做出這樣的改變應該比試圖說服微軟改變他們的閉源作業系統更容易。在實踐中,您可能需要說服很多人才能對一些更流行的軟體進行更改。做出改變可能會破壞東西,因此當有顯著的、實質的好處時就應該進行改變。更瑣碎的改變不太可能值得他們實施時遇到的困難。
有些人可能希望這樣的更改成為一個易於修改的選項。大量選項的一個問題是,太多的選項會使使用者介面變得混亂,並且會使文件變得混亂,並且會使原始程式碼變得複雜(即使增加的複雜性相當小),因此有人提倡創建為了簡單起見,標準和減少選項。因此,諸如「為支援此選項的軟體自訂換行符」之類的更改可能會帶來比此類選項的預期好處更多的痛苦。
您提供的原因是不希望使用者在建立文件時使用“unix2dos”。使用者如何建立文件?用戶運行“nano”嗎?您可以用腳本替換“nano”,該腳本運行普通的 nano,然後自動執行 unix2dos。您可以修改使用者建立/編輯檔案的進程,或者可以修改影響檔案如何傳輸到可能需要 \r\n 的其他電腦的進程(然後不關心檔案是否只使用 \n,而檔案仍在 Linux 機器上)。這種有針對性的方法更有可能發揮作用,而且不會產生意想不到的後果,而不是試圖進行系統範圍的改變,從而影響整個系統的工作方式。