bash_completion无法正常工作,找不到源命令

时间:2010-03-16 15:42:57

标签: ubuntu bash ubuntu-8.04

我最近继承了一个开箱即用的Ubuntu Hardy盒子。我尝试做的第一件事就是编辑我的.bashrc配置文件来做一些着色并添加一些我通常拥有的别名,但是当我尝试使用〜/ .bashrc时,我得到sh: source: not found并且我也注意到了tabbed自动完成功能根本不起作用 - 我相信这称为bash_completetion,但我确信你可以告诉我,我不是专家。

我是否应该编辑任何特定文件以获得我习惯于开箱即用的基本功能?并且不能安装源命令是不寻常的吗?

3 个答案:

答案 0 :(得分:11)

一般思维过程:

  • 使用ps确认您实际使用sh而不是bash

  • 确认/bin/bash存在且工作正常(如果没有,则重新安装)

  • 使用chsh将您的登录shell更改为bash

  • 如果缺少bash-completion包

  • ,请安装它

答案 1 :(得分:1)

你应该得到bash: source: command not found(当然,bash永远不会找不到source)。如果你得到sh:,那么你要么根本不运行bash,要么运行带有标志的bash,该标志告诉它假装它是Bourne shell /bin/sh。键入bash以获得真正的重击,或者编辑启动配置,使其不会为您传递该标志(不确定它们在Ubuntu中的位置)。

答案 2 :(得分:0)

Ubuntu服务器有时将/ bin / sh作为默认shell。这与您发布的问题一致,因为/ bin / sh没有可用的源命令。如果您注意到缺少bash功能,则可能是您没有使用bash。以下是要遵循的步骤,以及每当您登录到新的* nix框时要记住的事项:

  1. 使用echo $0
  2. 检查您使用的是哪个shell
  3. 查看cat /etc/shells可用的shell
    1. 如果您要使用bash
    2. ,请在列表中查找/bin/bash
    3. 如果bash不在列表中,apt-get install bash(Ubuntu / Debian特定)
  4. 开始使用exec /bin/bash
  5. 的bash
  6. 使用chsh -s /bin/bash
  7. 将bash设置为您的登录shell