linux执行程序报未找到命令或者syntax error:.... ,linux批量转换程序文件为unix格式

  

 一、执行程序报未找到命令或者syntax error:....  

        问题现象:

         在windows上编辑后的程序通过shell工具上传到linux服务器,很多情况下直接执行会报错:

        排查思路:  

      使用vi或者vim打开程序文件,显示文件格式为dos:

        问题原因:

        linux上只能执行unxi格式的程序,因为linux和unix的回车输入的时换行,而win/dos上回车输入的时换行及回车,如果将dos格式的程序在linux上执行的时候就会报错找不到命令或者报格式错误。

        解决办法:

         1、单个程序:

        ① 使用vi/vim编辑程序文件:

       

        ② 编辑器中“shifit+:” 进入命令模式,输入 set ff=unix回车修改文件格式为unix

        ③ 修改完成后,使用set ff查看当前文件格式

        ④ 文件格式提示为unix则表示修改成功,然后记得wq保存,如果没有保存会导致修改失败

 

        2、 多个程序或者文件以及子目录下的程序和文件:

        程序和文件很多或者一个项目的情况,如果单独去修改每一个文件会耗费大量时间,这个时候需要用到linux上的工具dos2unix来批量转换。dos2unix需要通过yum安装,默认是不带这个命令的:

        ① 执行 yum -y install dos2unix

        ② vi/vim 新建一个sh脚本文件,复制下面的内容并wq 保存,find 后面的路径是当前目录,可以修改为自己程序所在目录:

#!/bin/bash

find ./ -type f \( -not -name "*.rpm" -a -not -name "*.zip" -a -not -name "*.tar" -a -not -name "*.tar.gz" \) -exec dos2unix {} +

 

      ③ sh执行一下脚本,即可批量将当期目录下的dos格式文件/程序修改为unix       

 

 

二、     另外一种未找到命令的情况

        问题现象:

      问题原因:        

        这种情况是对应的命令没有安装导致未找到命令,不是格式问题。
 

      解决办法:

        执行yum安装对应的命令就可以了

        yum -y install 对应命令

        

        如果提示没有找到对应的包,先使用yum provides 对应命令 ,查找提供命令的包名,再执行yum -y install 查找出来的包名。        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值