fish shell 2.1.1 on DragonFlyBSD 3.8.2 -- fish command line seems broken (connect via PuTTY ssh, start fish shell from tcsh shell command line);

Steve Petrie, P.Eng. apetrie at
Thu Nov 27 04:23:55 PST 2014

Trying to get fish 2.1.1 shell working (via PuTTY ssh terminal) on DragonFlyBSD 3.8.2 running on a QEMU-KVM virtual machine provided by Elastic Hosts (EH)

DragonFlyBSD 3.8.2 installed with no trouble on the EH VM and seems to be running very well. 

The DragonFlyBSD login displays the following version string:
  DragonFly v3.8.2-RELEASE (X86_64_GENERIC) #18: Thu Aug 14 19:42:15 PDT 2014
Unix is pretty new to me. I'm still working as root user, just until I get fish, tmux and vim working.

* * *
* * *

The pkgng installation of fish shell seemed to work fine:
  [root at admin.its-eto] / (102)# pkg install fish
  Updating repository catalogue
  Fetching meta.txz: 100% of 264 B
  Fetching digests.txz: 100% of 2 MB
  Fetching packagesite.txz: 100% of 4 MB

  Adding new entries: 100%
  Incremental update completed, 21724 packages processed:
  0 packages updated, 0 removed and 21724 added.
  New version of pkg detected; it needs to be installed first.
  The following 1 packages will be affected (of 0 checked):

  Installed packages to be UPGRADED:
          pkg: 1.3.6 -> 1.3.8_3

  The process will require 45 KB more space
  2 MB to be downloaded

  Proceed with this action [y/N]: y
  Fetching pkg-1.3.8_3.txz: 100% of 2 MB
  Checking integrity... done (0 conflicting)
  [1/1] Upgrading pkg from 1.3.6 to 1.3.8_3: 100%
  Updating repository catalogue
  Avalon repository is up-to-date
  All repositories are up-to-date
  The following 1 packages will be affected (of 0 checked):

  New packages to be INSTALLED:
          fish: 2.1.1

  The process will require 4 MB more space
  829 KB to be downloaded

  Proceed with this action [y/N]: y
  Fetching fish-2.1.1.txz: 100% of 829 KB
  Checking integrity... done (0 conflicting)
  [1/1] Installing fish-2.1.1: 100%
  [root at admin.its-eto] / (103)#
* * *
* * *

The fish man page displays correctly (having replaced the fish game man page).

There seem to be fish and fishd binaries:
  [root at admin.its-eto] /etc (106)# cd /usr/local/bin
  [root at admin.its-eto] /usr/local/bin (107)# ls -AdGl fish*
  -rwxr-xr-x  1 root  wheel  854792 Oct  4 10:55 fish
  -rwxr-xr-x  1 root  wheel   95312 Oct  4 10:55 fish_indent
  -rwxr-xr-x  1 root  wheel  156344 Oct  4 10:55 fish_pager
  -rwxr-xr-x  1 root  wheel  117560 Oct  4 10:55 fishd
The file used by fishd is present:
  [root at admin.its-eto] /root/.config/fish (143)# ls -l
  total 0
  -rw-------  1 root  wheel  140 Nov 27 09:30 fishd.admin.its-eto
  [root at admin.its-eto] /root/.config/fish (144)# cat fishd.admin.its-eto
  # This file is automatically generated by the fishd universal variable daemon.
  # Do NOT edit it directly, your changes will be overwritten.
  [root at admin.its-eto] /root/.config/fish (145)#
The list of shells reflects the fish installation:
  [root at admin.its-eto] / (101)# cd /etc
  [root at admin.its-eto] /etc (102)# ls -aAdGl *shell*
  -rw-r--r--  1 root  wheel  349 Nov 27 07:17 shells
  [root at admin.its-eto] /etc (103)# cat shells
  # $FreeBSD: src/etc/shells,v 2000/07/10 08:47:17 obrien Exp $
  # $DragonFly: src/etc/shells,v 1.2 2003/06/17 04:24:45 dillon Exp $
  # List of acceptable shells for chpass(1).
  # Ftpd will not allow users to connect who are not using
  # one of these shells.

  [root at admin.its-eto] /etc (104)#
The fish shell does appear to be somewhat operational, according to the "fish -v" command:
  [root at admin.its-eto] /usr/local/bin (108)# fish -v
  fish, version 2.1.1
  [root at admin.its-eto] /usr/local/bin (109)#
* * *
* * *

However, when I try to start a fish shell from a tcsh command prompt, it looks like the fish shell might be starting -- the string "fish:" is displayed) -- but from then on it doesn't seem to respond correctly to any keyboard command input on the ssh terminal. It just goes to the next line when I type "exit" and press the <Enter> key, or press <Ctrl+c>:
  [root at admin.its-eto] /usr/local/bin (106)# fish

The only way I can find to break out of this fish shell dead end (I'm not tcsh-smart enough yet to create multiple sessions) is to shutdown and start the DragonFlyBSD VM from the Elastic Hosts cloud control panel.

I've tried starting a fish shell with "fish -i" and "fish -l" and both options exhibit the same problem as plain "fish". Using other options e.g. "fish -h" also exhibit the same problem as plain "fish" (i.e didn't display any help text, just entered the terminal dead end like plain "fish").

* * *
* * *

I want to get fish working first as a sub-shell under tcsh (so root user can switch to fish after login). I plan to keep the root user's default shell as tcsh to ensure a working root user for emergencies e.g. booting DragonFlyBSD in single-uer mode.

I will make fish the default shell for other users on the DragonFlyBSD installation.

Any suggestions for how I can get fish shell working as root user's non-default shell would be greatly appreciated.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Users mailing list