5

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

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

4

3 回答 3

11

一般思考过程:

  • 用于ps确认您实际上sh没有使用bash

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

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

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

于 2010-03-16T15:54:03.983 回答
1

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

于 2010-03-16T16:22:43.710 回答
1

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

  1. 检查您使用的是哪个外壳echo $0
  2. 查看有哪些可用的 shellcat /etc/shells
    1. /bin/bash如果要使用 bash,请在列表中查找
    2. 如果 bash 不在列表中,apt-get install bash(特定于 Ubuntu/Debian)
  3. 开始使用 bashexec /bin/bash
  4. 将 bash 设置为您的登录 shellchsh -s /bin/bash
于 2014-04-23T15:38:25.910 回答