Linux – TAB completon and mc problems

bashcommand-line-interfacelinuxUbuntu

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

This is the server version.

When I ssh into it, I encounter the following problems:

Problem 1

tab completion behaves weird to the point of being unusable:

> 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/

Is there a way to fix that?

Problem 2

I use mc quite a lot. I often do a Ctrl+O to hide panels and work in the shell. In my case:

  1. Ctrl + O hides panels
  2. Any keypress brings the panels back

Is there a way to fix that as well?

Thank you!

Best Answer

Ok. It turns out the solution was dumb and simple. The key was — no interactive shell in mc.

The answer lies here: http://www.ibiblio.org/mc/FAQ

6.6 When I use Ctrl-O I don't get a subshell. How do I fix this?

Only bash, tcsh and zsh can be used as subshell. Use one of those shells as your default shell, and it will be used as subshell in GNU Midnight Commander.

So I decided to change the 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

Note /bin/bash at the end of the passwd file. It means the shell is now changed.

After i logged out and then logged back in — voila, everything works!