1、基本概念:

回车符和换行符的来源:

    在最初的电传打印机时代,每打完一行需要换行的时候,耗费的时间正好是打印两个字符的时间。那么如果这段时间内正好传来两个字符,就会打印不出来。所以当时就在一行的最后增加了两个字符,一个是回车,指的是把打印头定在左边界(还是在这一行);另一个是换行,指的是让打印头进入新的行。

回车符和换行符的意义:

    回车符:回到一行的开头,'\r' ,Carriage Return;

    换行符:另起一行,'\n' ,Line Feed。

    所以我们平时编写文件的回车符应该确切来说叫做回车换行符  

2、不同操作系统中的回车换行:

    1)在MS-DOS和Windows中,每行结尾是“回车+换行”,即“\r\n”;

    2)Linux/Unix系统里,每行结尾用换行LF,即“\n”;

    3)Mac OS 1-9,每行结尾用回车CR 即'\r';之后的版本Mac OS X/OS X/macOS,每行结尾用换行LF,即“\n”。

3、跨操作系统:

在操作系统中打开其他操作系统中的文件,会出现一些奇怪的事情:

    1)在Windows里打开Unix/Mac系统中创建的文件,会发现所有文字会变成一行,因为没有“回车+换行”来更换新行;

    2)在Unix/Mac下打开Windows中创建的的文件,在每行的结尾,多余的回车符可能会被显示为^M或<cr>。

我们可以使用一些命令进行文件格式的转换:

    在linux下,命令unix2dos (或者命名为fromdos或d2u)可以把linux文件格式转换成windows文件格式,命令dos2unix(或者命名为todos或u2d)可以把windows格式转换成linux文件格式。

 

参考:维基百科