1
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.10
DISTRIB_CODENAME=intrepid
DISTRIB_DESCRIPTION="Ubuntu 8.10"

这是服务器版本。

当我 ssh 进入它时,我遇到以下问题:

问题 1

制表符完成的行为很奇怪,以至于无法使用:

> cd ~/<press TAB>
-sh: <( compgen -d -- '/home/dmitriid/' ): No such file or directory

> vi ~/.<press TAB>
<( compgen -d -- '/home/dmitriid/.' ): No such file or directory
-sh: <( eval compgen -f -X '*.@(o|so|so.!(conf)|a|rpm|gif|GIF|jp?(e)g|
JP?(E)G|mp3|MP3|mp?(e)g|MPG|avi|AVI|asf|ASF|ogg|OGG|class|CLASS)' -- 
$(quote_readline $cur) ): No such file or directory

> nano ~/.<press TAB>
./              .bash_logout    .mc/            .viminfo
../             .bashrc         .mysql_history  
.aptitude/      .erlang.cookie  .profile        
.bash_history   .gitconfig      .ssh/

有没有办法解决这个问题?

问题 2

我经常使用mc。我经常使用 Ctrl+O 来隐藏面板并在 shell 中工作。就我而言:

  1. Ctrl + O 隐藏面板
  2. 任何按键都会使面板恢复原状

有没有办法解决这个问题?

谢谢!

4

4 回答 4

4

好的。事实证明,解决方案既愚蠢又简单。关键是——mc 中没有交互式 shell。

答案就在这里:http ://www.ibiblio.org/mc/FAQ

6.6 当我使用 Ctrl-O 时,我没有得到子shell。我该如何解决?

只有 bash、tcsh 和 zsh 可以用作子 shell。使用其中一个 shell 作为您的默认 shell,它将在 GNU Midnight Commander 中用作子 shell。

所以我决定换壳:

> which bash
/bin/bash
> sudo chsh -s /bin/bash my_user_name
> grep ^my_user_name /etc/password
my_user_name:x:1002:1002::/home/my_user_name:/bin/bash

请注意 passwd 文件末尾的 /bin/bash。这意味着外壳现在已更改。

在我注销然后重新登录后——瞧,一切正常!

于 2009-08-01T20:38:38.100 回答
1

当我键入以下内容以切换到 root 时,似乎权限问题已解决。当我以普通用户身份登录时,compgen 似乎无法读取它需要的目录。

sudo su -
于 2009-09-05T19:27:27.090 回答
1

我会尝试重新安装所有 bash 包,尤其是 bash-completion: apt-get install --reinstall bash-completion,因为看起来 bash 的某些部分被搞砸了。顺便说一句,我想这应该去 serverfault.com。

于 2009-07-29T12:48:18.743 回答
0

“6.6 当我使用 Ctrl-O 时,我没有得到子 shell。我该如何解决这个问题?”

要使用 Ctr+o 你应该有 SHELL=/bin/bash 而不是 SHELL=/bin/sh 添加到 .bashrc export SHELL=/bin/bash

于 2015-08-20T12:42:37.363 回答