linux学习积累(一) Linux命令之dos2unix

问题描述:

昨天运行一个脚本的时候出现报错情况,

解决过程:

问了前辈得知是在Windows下编辑的脚本,需要进行文件转换才能运行,并告诉我使用dos2unix命令进行转换。

通过网络查询得到如下的知识,积累下来。

1、Windows下编辑的shell脚本无法在linux下运行的原因:

  DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是 0A。DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示^M,而且很多命令都无法很好的处理这种格式的文件,如果是个shell脚本,。而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。

2、dos2unix作用

  dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)

3、命令的help信息

-h --help give this help
-k --keepdate keep output file date
-q --quiet quiet mode, suppress all warnings
always on in stdin->stdout mode
-V --version display version number
-c --convmode conversion mode
convmode ASCII, 7bit, ISO, Mac, default to ASCII
-l --newline add additional newline in all but Mac convmode
-o --oldfile write to old file
file ... files to convert in old file mode
-n --newfile write to new file
infile original file in new file mode
outfile output file in new file mode

4、使用

命令格式:dos2unix file

5、常用参数

-n  保存为新文件 格式: dos2unix -n oldfile newfile

-k  保持文件时间戳不变  格式: dos2unix -k file

6、使用实例

dos格式文件:

[root@PXE newtest]# cat test.sh
#!/bin/sh

date >job.txt

[root@PXE newtest]# sh test.sh
: command not found
: command not found

使用dos2unix转换后

[root@PXE newtest]# dos2unix test.sh
dos2unix: converting file test.sh to UNIX format ...
[root@PXE newtest]# sh test.sh
[root@PXE newtest]# ls
job.txt job.txt? test.sh xuguanyu
[root@PXE newtest]# cat job.txt
Tue Sep 22 11:20:17 EDT 2015

 

posted on 2015-09-22 11:22 dur徐 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/durxu/p/4828396.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值