实战 2:解决将公司 Linux 服务器上脚本导到 Windows 上打开串行的问题
原因:因为 Windows 和 Linux 处理回车方法不同,Windows 系统里面,每行结尾是“ <回车><换行>”,即“\r\n”,而在 Linux 中的换行符则是$,由于内核所识别的换行符不同,则造成的串行。
⑴上传“b 在 Linux 编辑的文档到 Windows 下没有换行.sh” 到 Linux 上,打开后正常显示。
# sz b 在 linux 编辑的文档到 windows 下没有换行.sh #发送到本地,使用 sz 命令需要传输到本地的文件,回车后弹出本地存储的位置,如图 5-8 所示。
图 5-8 传输文件到本地
⑵在 Window 上打开显示,如图 5-9 所示。
图 5-9 从 Linux 传输到本地打开串行
⑶解决方法:
使用 dos2unix 命令
dos2unix 作用:是把 Windows 下的回车转成 Linux 类型。
使用 rpm 程序包管理器安装 dos2unix 工具:
# rpm -ivh /mnt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
注: 在 CentOS7 上,unix2dos 这个命令已经被集成到 dos2unix-6.0.3-7.el7.x86_64.rpm 包中。
在 CentOS6 下需要安装 unix2dos.xxx.rpm,可单独安装 unix2dos
⑷使用 unix2dos 工具对文件做格式转换:
# unix2dos "b 在 Linux 编辑的文档到 windows 下没有换行.sh"
⑸ 经过转换后,再次传输到本地上查看,如图 5-10 所示。
# sz b 在 Linux 编辑的文档到 windows 下没有换行.sh
图 5-10 转换格式后的文件
注:dos2unix 命令作用:是把 Windows 下的回车转成 Linux 类型。
方法二:
另外一种方法是使用notepad++编辑器(Windows系统中使用的一款文本编辑软件),找到你编辑好的sh脚本文件,点击“编辑—>文档格式转换—>转为Unix”即可,你就可以将转换好的上传到Linux系统中打开而不会串行了。