-bash: /bin/ls: No such file or directory

今天有网友说遇到这个问题,我以前也遇到过,不知道怎么就解决了。也一直没有深究,今天我决定深究该问题!

1,不同的命令由不同的软件包实现,一些常用的命令在所有的软件包中都有实现。还有一部分命令是bash 内置的,可以在 bash 的源码中找到。


下面是几种情况和解决方法的分析:

1,在windows下写的脚本,代码会在linux下无法执行,错误就是:

bin/bash: bad interpreter: No such file or directory

原因

这通常都是由于windows下对文本文件的保存格式与unix下不同造成的,windows下回车的字符是'\r\n',而linux下是'\n'

解决方法

vim file

在命令模式下,输入 :set ff?

查看文件格式为dos或者unix

:set ff=unix

:wq

保存退出,即可。


2,环境变量有没有设置

把/bin加入$PATH里。

#vi .bash_profile

PATH=$PATH:$HOME/bin //我打开我运行良好的机器路径是这样的

网上也有人建议下列方法

exportPATH=/usr/local/bin:/bin:/sbin:/usr/sbin:/usr/bin:/usr/X11R6/bin


3,文件丢失

查一查 /var/log/secure这个文件。看是否有人登陆篡改过/bin/ls文件。

我认为可以从别的机器烤个完整的/bin/ls即可。


4,如果不是root用户,检查/etc/passwd的用户的登录bash是否配置错误了。 

正常的是下面的那样

#vi /etc/passwd

sam:x:502:502::/home/sam:/bin/bash

5,bash是否安装。

Linux Bash程序在程序员的使用中十分重要,尤其是和shell程序的使用中
Linux Bash程序的调试格外重要。在进行调试的过程中有许多小技术点需要我
们注意。下面的门就来详细的学习下Linux Bash具体的安装步骤介绍。
1)安装Linux Bash
cd /usr/ports/shells/bash
make install clean
2)在/bin目录下面做一个符号连接。
ln -s /usr/local/bin/bash /bin/bash
3)加入bash
echo '/bin/bash' >> /etc/shells
4)更改用户shell
chsh -s /bin/bash root
5)配置Linux Bash
vi ~/.profile
alias ls='ls -G' #显示颜色
alias ll='ls -al'
alias rm='rm -i' #确认删除
alias mv='mv -i' #确认移动
6)退出重新登录即生效

目前只知道这么多。待续。。。