dos2unix 是将 Windows 格式文件转换为 Unix/Linux 格式的实用命令。
不同操作系统 换行符 标准不统一, 秦始皇听了都要落泪。 多少年前, 我曾也被这东西坑过无数次, 往事不堪回首。
dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
前几天编写的shell小脚本,测试自动安装MySQL的,今天测试运行,然后出现如下错误
-sh: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory
大多数原因是因为 shell 脚本是在 Windows 编写导致的换行问题,具体原因是 Windows 的换行符号为 CRLF(\r\n),而 Unix\Linux 为 LF(\n)。
首先介绍下,在ASCII中存在这样两个字符CR(编码为13)和 LF(编码为10),在编程中我们一般称其分别为’\r’和’\n’。他们被用来作为换行标志,但在不同系统中换行标志又不一样。下面是不同操作系统采用不同的换行符: Unix和类Unix(如Linux):换行符采用 \n Windows和MS-DOS:换行符采用 \r\n Mac OS X之前的系统:换行符采用 \r Mac OS X:换行符采用 \n Linux中查看换行符 第一种使用"cat -A [Filename]" 查看,如下图所示,看到的为一个Windows形式的换行符,\r对应符号^M,\n对应符号$.
Ubuntu系统打开Windows下生成的文本文件,会在每行的末尾出现’^M’ 原因就是Windows和Linux的回车符是不同的
前段时间,有个朋友碰到由于Windows的换行符和Linux换行符不一样,导致程序编译不通过。这个问题之前自己也碰到过,网上资料也蛮多,不过还是借此总结总结,因为发现总结+实践的方式能够让自己更好的提升。
Linux执行.sh文件,提示No such file or directory的问题:
一、 发展史 Unix: 1969年,Ken Thompson(肯 汤普森)和Dennis Ritchie(丹尼斯 里奇)在美国贝尔实验室创造了UNIX操作系统。 特点:功能强、可移植性高 70年代末 美国加州大学伯克利分校的教授和学生一起开发出BSD UNIX。 UNIX SUN——Solaris HP——HP-UX、Tru64 IBM——AIX BSD UNIX FreeBSD、NetBSD、OpenBSD等 1983-9-27,GNU计划诞生,计划
偶然使用 windows 进行编写脚本。使用 wsl (windows subsystem for linux) 进行运行的时候,什么事情没有。但是当把脚本移植到远程服务器进行运行的时候,发现脚本执行出现了错误:-bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory 。一时间解决不了。理论上都使用wsl 执行过了,应该是没问题了。但是通过查找资料发现,确实是有问题:
描述:xargs(英文全拼: eXtended ARGuments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
经过一番检索我发现,在使用命令行时,如果samplelist文件中的文本使用了DOS换行符(\r\n),则可能会导致输出结果不正确。
dos2unix: converting file XXX.sh to Unix format ..
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141698.html原文链接:https://javaforall.cn
Ubuntu系统打开Windows下生成的文本文件,会在每行的末尾出现’^M’ 原因就是Windows和Linux的回车符是不同的 在Windows下回车符是\r\n回车换行 在Linux下回车符是\n 最简单、最常用的解决方法是使用dos2unix命令转换:dos2unix filename Ubuntu下dos2unix和unix2dos命令在tofrodos包中 安装:apt-get install tofrodos 安装完之后用dos2unix和unix2dos发现还是不能用,原来是Ubuntu10.04里已经不再用这个命令啦,
在Windows中编辑的shell脚本,传到linux系统中,在末尾发现出现了很多^M字符
“回车”字符可以往回追溯很长一段时间 —— 早在打字机上就有一个机械装置或杠杆将承载纸滚筒的机架移到右边,以便可以重新在左侧输入字母。他们在 Windows 上的文本文件上保留了它,但从未在 Linux 系统上使用过。当你尝试在 Linux 上处理在 Windows 上创建的文件时,这种不兼容性有时会导致问题,但这是一个非常容易解决的问题。
Linux作为一款免费的、开源的操作系统,linux系统界面也被广大开发者根据自身的喜好和审美设计的五花八门,有些Linux系统界面被开发者制作的相当精致,具有很强的观赏性和立体感,让人叹为观止,下面我们系统的介绍一下Linux系统界面。
解决方案 如果centos服务器安装 yum -y install dos2unix 然后找到脚本目录执行 dos2unix carinet.sh即可 如果linux编写的脚本,放到windows服务器上运行的话,可以按照yum -y install unix2dos 然后转换后上传到windows服务即可
在Windows环境下用Notepad++写了个shell脚本,上传到Linux平台后运行报错如下:
你可以通过终端窗口输入 "python" 命令来查看本地是否已经安装Python以及Python的安装版本。
科学Sciences导读:纵观计算机历史,操作系统与计算机硬件的发展息息相关。本文从操作系统演进的五个阶段(9k字)、早期操作系统的发展阶段(10k字)、硬件兼容的UNIX起源和谱系(11k字)、可视化操作系统成主流(29k字)、操作系统功能和技术简介(4k字)等五个方面,介绍计算机操作系统的演进、谱系和产品发展史。计算机发展过程中,出现过许多操作系统:DOS、MacOS、Windows、Unix、Linux、Free BSD等。关键词:计算机,操作系统,OS,Multics,Unics,Unix,Minux,Linux,Xenix、OS/2、Dos,Windwows,iOS,Android,演进,谱系。赞赏支持科普作者后,公号输入栏发送“操作系统史”获取本PDF资料,下载学习科技知识。
我们有时在Windows编辑的文件,放到了Linux环境中,打开文件,可能发现每行结尾多了一个“^M”,导致一些在Windows下能执行的解析程序,放到了Linux中,执行就会报错,问题就出在这个"^M"。
运行脚本时报如下错误: /bin/bash^M: bad interpreter: No such file or directory
在windows系统中,“开始-运行-cmd”可以打开“cmd.exe”,进行命令行操作。 操作系统可以分成核心(kernel)和Shell(外壳)两部分,其中,Shell是操作系统与外部的主要接口,位于操作系统的外层,为用户提供与操作系统核心沟通的途径。在windows系统中见到的桌面即explorer.exe(资源管理器)是图形shell,而cmd就是命令行shell。这算是cmd与dos的最大区别,一个只是接口、一个是操作系统。只是cmd中的某些命令和dos中的命令相似,因此很多人把二者混为一谈。cmd属于windows系统的一部分,dos本身就是一个系统,在dos系统下可以删除,修复windows系统,而在cmd下则不行。
今天在linux上运行一个python脚本,总是报错bad interpreter,开始我以为是解释器的路径问题,可是whereis python告诉我路径没有错!
一直对换行符这个东西概念比较模糊,直到最近花了一点时间仔细研究了一下,才彻底搞清楚这个问题,本文前面介绍部分是外文转载,后面例子是个人总结,希望能对大家有一些帮助。 回车符号和换行符号产生背景 关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,
用命令查询系统是32位还是64位 getconf LONG_BIT or getconf WORD_BIT 例如: [root@sy02 /]# getconf LONG_BIT 64 file command 例如: [root@sy02 /]# file /bin/ls /bin/ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.0, dynamically linked (uses share
这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
操作系统历史---03 操作系统历史 ---- 操作系统历史 IBM7094 📷 作业顺序执行,如果某个作业出错了,就进行记录,然后立马切换到下一个作业去执行,本质是一个批处理系统 从IBS
本次将向大家介绍如何在本地搭建Python开发环境。 Python可应用于多平台包括 Linux 和 Mac OS X。 你可以通过终端窗口输入 "python" 命令来查看本地是否已经安装Python以及Python的安装版本。 Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX, 等等。) Win 9x/NT/2000 Macintosh (Intel, PPC, 68K) OS/2 DOS (多个DOS版本) PalmOS Nokia 移动手
本文记录 Syntax error: end of file unexpected (expecting “then”) 错误解决方案。 问题原因 出现问题的原因是.sh文件是dos格式文件,但是linux的shell需要unix格式的文件 解决方案 转换文件格式 $ sudo apt-get install dos2unix $ dos2unix <filename> 随后重新运行 sh 文件 参考资料 https://blog.csdn.net/qq_38989148/article/det
文 | 糖豆 图 | 来源网络 糖豆贴心提醒,本文阅读时间6分钟,文末有秘密! Linux cat命令 cat 命令用于连接文件并打印到标准输出设备上。 Linux chattr命令 Linux chattr命令用于改变文件属性。 Linux chgrp命令 Linux chgrp命令用于变更文件或目录的所属群组。 在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。 Linux chmo
Python3 环境搭建 本章节我们将向大家介绍如何在本地搭建 Python3 开发环境。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
windows和Linux的换行符存在差异,Windows下写的脚本拷贝到Linux系统,会导致#!/bin/bash后面多个^M,因此提示找不到文件。
换行符(通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符)是字符编码规范(例如,ASCII、EBCDIC)中的控制字符或控制字符序列,用于表示一行文本的结尾和新文本的开头。
操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。裸机没有安装操作系统的计算机被称为裸机
原因是换行机制不一样,Unix下是\n(0A),mac下是\r(0D),win下是\r\n(0D0A)。导致的结果是在程序中会造成一定的混乱。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details/53322573
在ASCII码中,我们会看到有一类不可显示的字符,叫控制字符,其中就包含\r 和 \n 等控制字符。
陌溪这次和小伙伴们来聊一聊蘑菇博客的部署,在经过项目的不断更新迭代,部署方式也是经历了多个阶段。分别是:手动部署,Docker部署,Docker-Compose部署。而在这两天,陌溪应小伙伴们的要求,继续简化部署流程,完成了使用 一条命令部署蘑菇博客 。下面,让我们一起来看看蘑菇博客部署方式的变化。
在mac或者linux中编译krpc,只要要输入以下7条命令 如果是在windwos上编译,需要下文更多命令的操作 (主要是由于编码的格式不同,需要对文件格式进行转换才能进行操作) #git命令 git clone https://gitee.com/fancytech/protobuf cd protobuf git checkout v3.5.1-krpc #在cygwin中操作的命令 ./autogen.sh ./configure make make install windows下的
在 ASCII 码中,我们会看到有一类不可显示的字符,叫控制字符,其中就包含\r 和 \n 等控制字符。
领取专属 10元无门槛券
手把手带您无忧上云