每次打开终端时出现“bash:/bin: Is a directory”的原因是什么?

Pon*_*agu 4 command-line bash scripts directory bashrc

这是初始屏幕,我在Ubuntu 12.04获取,当我打开一个终端(Ctrl+ Alt+ T):

终端截图

即终端上的文字是:

bash: /bin: Is a directory
chase@chase-desktop:~$ gedit ~/.bashrc
chase@chase-desktop:~$ source ~/.bashrc
bash: /bin: Is a directory
chase@chase-desktop:~$
Run Code Online (Sandbox Code Playgroud)

为什么会出现这个样子?

在此之前,我在终端上工作并编辑了.bashrc很多次,但我没有收到这些消息。

Eli*_*gan 5

显然,您的一项修改.bashrc引入了一个错误,该错误将其视为/bin目录以外的其他内容(例如,尝试将其作为可执行文件运行,从文件中读取数据或将数据写入文件等)。因为.bashrc在交互式 shell 启动时运行,所以总是会出现错误消息。

您可以通过查看对 的修改自行确定错误.bashrc

(否则,要确定具体问题,就需要查看.bashrc文件的内容。您可以将其全部内容复制到剪贴板并将其粘贴到您的问题中,在您的问题中选择它,然后将其格式化为代码Ctrl+K。如果你做了这个文件,多,长于它通常是,它可能是太长时间投入的全部你的问题。在这种情况下,你可以将它张贴http://paste.ubuntu.com和编辑您的问题包括发布的链接。)

一种可能性是您可能在以/bin.开头的路径中引入了一个空格。例如,靠近默认.bashrc文件开头的是代码:

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
Run Code Online (Sandbox Code Playgroud)

如果你不小心在/bin(in SHELL=/bin/sh)后面放了一个空格,这可能会产生这样的错误。

这只是一个例子,不一定是最有可能的例子。

  • 如果您来自 Windows,那么最容易犯的错误之一就是用分号而不是冒号分隔 PATH(或任何其他路径)中的文件夹。例如,你写的不是`/usr/dir/one:/usr/dir/two`,而是`/usr/dir/one;/usr/dir/two` (2认同)
  • 对我来说,问题是我的“.bash_aliases”中有一个无关的“~”字符。删除并重新打开终端后,一切都好。 (2认同)