【问题标题】:bash_completion not working, source command not foundbash_completion 不起作用,找不到源命令
【发布时间】:2010-03-16 15:42:57
【问题描述】:

我最近继承了一个开箱即用的 Ubuntu Hardy 盒子。我尝试做的第一件事是编辑我的 .bashrc 配置文件以进行一些着色并添加一些我通常拥有的别名,但是当我尝试获取 ~/.bashrc 时,我得到 sh: source: not found 并且我还注意到选项卡式自动完成是也根本不起作用 - 我相信这被称为 bash_completetion,但我相信你可以说,我不是专家。

是否有我应该编辑的特定文件来获得我习惯的开箱即用的基本功能?而且不安装source命令是不是很不寻常?

【问题讨论】:

  • 如果您收到 sh 错误,则看起来您实际上并没有在运行 bash。
  • bash,将sh转换为bash

标签: ubuntu bash ubuntu-8.04


【解决方案1】:

一般的思考过程:

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

  • 确认/bin/bash 存在且正常工作(如果不存在则[重新]安装)

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

  • 如果缺少 bash-completion 包,请安装它

【讨论】:

  • 我更喜欢使用echo $0 检查我的shell,看看cat /etc/shells 可以使用哪些shell,然后exec /bin/bash 开始使用bash 而无需重新登录。然后使用chsh -s /bin/bash 将bash 设置为我的登录shell。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    Ubuntu 服务器有时会将 /bin/sh 作为默认 shell。这与您发布的问题一致,因为 /bin/sh 没有可用的 source 命令。如果您注意到缺少 bash 功能,那么您可能不在 bash 中。以下是要遵循的步骤,以及在您登录新的 *nix 设备时要记住的一些事项:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-28
      • 2020-11-28
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      相关资源
      最近更新 更多