Mar*_*iaa 12 command-line ls bash path
我是 Unix 的新手,在为我的论文安装程序的过程中,我必须使用 PATH 来处理基本的 Unix 命令,例如ls. 每次我输入ls我想要列出文件的目录名称时,它都会显示为:
-bash: ls: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我能做些什么来解决这个问题?非常感谢任何帮助!
Mic*_*ant 29
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Run Code Online (Sandbox Code Playgroud)
它不会恢复您的完整 PATH,但基本实用程序将再次可用。
这是发生的事情的一个例子:
您有一个 PATH 变量(从它读取时称为 $PATH)
就像是:
$ echo $PATH
/home/durrantm/.rvm/gems/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/gems/ruby-2.0.0-p247@global/bin:/home/durrantm/.rvm/rubies/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/bin:/h
ome/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:
/home/durrantm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/durrantm/.rvm/bin:/home/durrantm/.rvm/bin:/home/durrantm
/.rvm/bin
Run Code Online (Sandbox Code Playgroud)
你试图添加到它,但你不小心使用了
PATH=PATH:other_dir
Run Code Online (Sandbox Code Playgroud)
代替
PATH=$PATH:other_dir
Run Code Online (Sandbox Code Playgroud)
结果是你的道路变成了
PATH:other_dir
Run Code Online (Sandbox Code Playgroud)
然后像 ls 和 sed 这样的所有实用程序都不起作用
您可以通过执行以下操作来修复最小集
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Run Code Online (Sandbox Code Playgroud)
如果登录点文件弄乱了您的 PATH
检查您的 .bashrc 和/或 .bash_profile 文件是否有任何 PATH 更改,这将特别有用。
正如格雷格所说,您也可以退出(或者更安全的选择,打开一个新窗口,以防打开新窗口被破坏!)然后从新窗口回显 $PATH 。
当你path=没有值时也会发生同样的事情。它会“清除”您当前的路径并导致这些问题。强文本
至于为什么,当您遇到这些问题时 cd 起作用而 ls 不起作用:
cd 是一个“内置”命令,不需要你的 PATH 来查找程序ls 是一个程序,需要使用 PATH 来查找它的位置。你可以看到这个:
$ builtin ls
-bash: builtin: ls: not a shell builtin
14:47:29 mdurrant C02MH2DQFD58 /Users/mdurrant
$ builtin cd
14:47:31 mdurrant C02MH2DQFD58 /Users/mdurrant
$
Run Code Online (Sandbox Code Playgroud)
没有错误意味着该命令是内置命令
确保通过打开一个新窗口或执行 source ~/.bash_profile 来运行它来测试任何更改(特别是对 .bashrc、.profile 等执行 PATH 设置命令的更改)。保持窗口和编辑器(当您更改 .bash_profile 文件时)打开也是一个很好的做法,以防您的更改不起作用并阻止您打开新窗口来编辑文件。尽管您仍然可以使用 TextEdit 或其他简单的编辑器来更改文件(例如,避免使用命令行和 vi)。如果/当您的外壳损坏或者您甚至可能无法登录时,请注意不要重新启动。这真的很糟糕(没有另一个帐户,su你就被灌输了)。发生在我身上!
您所做的更改PATH可能是暂时的。关闭您所在的外壳exit并重新打开它。
如果您编辑了一个PATH为新打开的 shell设置的文件,请指定命令的完整路径以修复您更改的任何内容(例如/usr/bin/vim)。
| 归档时间: |
|
| 查看次数: |
99693 次 |
| 最近记录: |