重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
'\r'是回车,前者使光标到行首,(carriage
创新互联公司是专业的华池网站建设公司,华池接单;提供成都网站建设、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行华池网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
return)
'\n'是换行,后者使光标下移一格,(line
feed)
\r
是回车,return
\n
是换行,newline
对于换行这个动作,unix下一般只有一个0x0a表示换行("\n"),windows下一般都是0x0d和0x0a两个字符("\r\n"),苹果机(mac
os系统)则采用回车符cr表示下一行(\r)
unix系统里,每行结尾只有“换行”,即“\n”;
windows系统里面,每行结尾是“回车换行”,即“\r\n”;
mac系统里,每行结尾是“回车”,即“\r”。
一个直接后果是,unix/mac系统下的文件在windows里打开的话,所有文字会变成一行;而windows里的文件在unix下打开的话,在每行的结尾会多车一个^m字符。
dos和windows采用回车+换行cr/lf表示下一行,即^m$($不是换行符的表示,换行符没有表示出来,$是文本结束eof的表示)
而unix/linux采用换行符lf表示下一行,即\n
苹果机(mac
os系统)则采用回车符cr表示下一行,即\r
cr用符号'\r'表示,
十进制ascii代码是13,
十六进制代码为0x0d;
lf使用'\n'符号表示,
ascii代码是10,
十六制为0x0a.
所以windows平台上换行在文本文件中是使用
0d
0a
两个字节表示,
而unix和苹果平台上换行则是使用0a或0d一个字节表示.
由于dos风格的换行使用\r\n,把这样的文件上传到unix,有些版本的vi不能识别\r,所以vi显示时在行尾会出现^m出来,但是有些就能识别\r\n,正常显示回车换行。
在windows上编写的shell、python等脚本在Linux上无法正常的执行,会有 ^M 相关提示,
原因 :
在Linux上使用vim打开文件,显示很多的 ^M 字符,主要是因为在Windows下换行使用CRLF两个字符来表示,其中CR为回车(ASCII=0x0D),LF为换行(ASCII=0x0A),而在Linux下使用LF一个字符来表示。在Linux下使用vim来查看一些Windows下创建的脚本文件时,会发现在每一行尾部有^M字符,其实它是显示CR回车字符
Unix体系里,每行结尾只有“换行”,即“\n”;
Windows体系里面,每行结尾是“换行回 车”,即“\n\r”。
一个直接结果是,Unix体系下的文件在Windows里打开的话,所有文字会变成一行;
而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号。
如果正常编辑文件中看不见^M,可以用”cat -A test.file”号令查看。
使用vim方式处理
在vim命令模式下输入%s/^M$//g
回车即会自动删除该文件中的所有 ^M 字符。
% 指匹配整个文件,s 是置换的意思,^M 注意要用 Ctrl + V Ctrl + M 来输入,M 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换。
理解了命令的含义,就好变通使用了,比如说,要将某个文件中的 Vim 全部替换成 VIM,则可以使用这样的命令::%s/Vim/VIM/g。
方法1:
在命令模式下:输入:%s/^M//g 然后,回车即可替换
注,其中”^M”的输入,分别是“Ctrl+v”、“Ctrl+M”键生成的
方法2:
使用vi打开文本文件
vi dos.txt
命令模式下输入
:set fileformat=unix
:w
方法3:
使用sed 工具
sed ’s/^M//’ filename tmp_filename
方法4:
既然window下的回车符多了‘\r’,那么当然通过删除‘\r’ ,也可以实现:
tr -d ‘\r’
方法5:使用Linux上的工具
tofrodos
(1)安装tofrodos
sudo apt-get install tofrodos
实际上它安装了两个工具:todos(相当于unix2dos),和fromdos(相当于dos2unix)
安装完即可,现在你已经可以进行文本格式的转换啦。
比如: todos Hello.txt (即unix2dos Hello.txt)
fromdos Hello.txt (即dos2unix Hello.txt)
PS :
编辑器IDE设置文件回车格式为unix格式
因为引号必须成对出现, 如果敲了一个引号, 没有敲另一个引号那么 shell 认为你在输入一个跨行的字符串, 并用 提示你继续输入. 直到你输入另一个配对的引号(单引号配单引号, 双引号配双引号, 图中是反引号,所以要再输一个反引号 `)才会结束. 不过如图这样的输入并不有效, 输入完配对引号敲回车倒是可以退出这种模式并"执行" 这个命令, 但是应该会报错.
\就能换行 并且不影响你继续写命令,
出现可以继续输入命令。
例如:apache源代码安装,
./configure --prefix=/export/apache \
--enable-modules=most \
--enable-mods-shared=all \
--enable-so \
--enable-rewrite
延展阅读:
《Linux命令行技术大全》的编写基于FedoraCore6操作系统,2.6.18内核,汇集了绝大部分命令的功能介绍、参数说明和注意事项,并针对具体应用列举了大量示例,分别详细地介绍了磁盘管理命令、文件管理、系统管理命令、网络配置命令、网络服务命令、系统应用命令、系统安全命令及其他命令,以及Shell和Shell编程,使读者真正做到学以致用。《Linux命令行技术大全》内容全面、语言简练、深入浅出、通俗易懂,既可作为即查即用的工具手册,也可作为了解Linux系统的参考书目。《Linux命令行技术大全》同样适用于其他Linux发行版,是Linux用户必备的参考用书。
《Linux命令行技术大全》适合系统管理员、开发人员和高级用户阅读。