2010-03-16 84 views
5

我最近继承了一个Ubuntu Hardy盒子,这个盒子的外观非常时髦。我试图做的第一件事是编辑我的.bashrc配置文件做一些着色并添加一些我通常使用的别名,但是当我尝试获取〜/ .bashrc时,我得到了sh: source: not found,我也注意到标签式自动完成也不是工作 - 我相信这被称为bash_completetion,但正如我可以肯定的你可以告诉我,我不是专家。bash_completion无法正常工作,找不到源码命令

是否有任何特定的文件,我应该编辑,以获得这个基本的功能,我习惯于开箱即用?并不是不常见的源代码不安装?

+0

看起来不像你实际上是运行bash如果你得到一个'sh'错误。 – Cascabel 2010-03-16 15:47:27

回答

11

一般的思维过程:

  • 使用ps确认您实际使用shbash

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

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

  • 安装的bash-completion软件包如果缺少

+1

我更喜欢用'echo $ 0'来检查我的shell,看看'cat/etc/shells'有什么shell可用,然后'exec/bin/bash'开始使用bash而不必重新登录。然后使用'chsh -s/bin/bash'将bash设置为我的登录shell。 – spex 2014-04-23 15:28:46

1

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

0

Ubuntu服务器有时将/ bin/sh作为默认shell。这与您发布的问题一致,因为/ bin/sh没有可用的源命令。如果你注意到缺少bash特性,可能有可能你没有bash。下面是需要遵循的步骤,有所为,只要您登录到一个新的* nix中盒记住:

  1. 检查其外壳使用的是具有echo $0
  2. 看到什么弹可与cat /etc/shells
    1. 在列表中查找/bin/bash,如果你想使用bash
    2. 如果bash不在列表中,apt-get install bash(Ubuntu的/ Debian的特定)
  3. exec /bin/bash
  4. 设置bash作为你的登录shell开始使用bash与chsh -s /bin/bash