In dash manual, under Builtins section there exists explanation on fc built in which controls shell history and re-executes commands from it, FCEDIT and HISTSIZE also are mentioned there. Yet when I try to execute it dash gives command not found error.

$ echo one
$ fc -l 1
dash: 2: fc: not found
$ fc
dash: 3: fc: not found

Question is, why ? Is it one of the standard and conscious choices that Ubuntu developers made or I may need to enable fc somehow ?

I have found Debian bug report that mentions fc, but the patch mentioned there is for i386 and last activity on the report has been in 2008, so nothing regarding Ubuntu so far. And historically, fc has had fixes and exists in versions for different BSD releases, so there's gotta be something Ubuntu-specific or Debian-specific here.


Check line number 57-59 in src/builtins.def.in of the dash source code:

#ifndef SMALL
histcmd     -u fc

SMALL is defined if --with-libedit is not set in configure, which is the case for our dash/sh. I guess it's about optimzing the memory footprint.

Also Changelog says:

2005-10-29  Herbert Xu <herbert@gondor.apana.org.au>
* Disable histcmd completely when SMALL is defined.

If not compiling with --with-libedit was a deliberate choice or not is beyond my knowledge.

  • You're right. Apparently, --with-libedit strips out whole lot of features that rely on it. It kinda goes back to my older question askubuntu.com/a/704719/295286 Kinda becomes predictable :) – Sergiy Kolodyazhnyy Apr 21 '18 at 19:02
  • To put it differently: Poor ubuntu dash is crippled, bound to just serve as /bin/sh. I admit a package with a full version of dash would be nice to have in addition. – Sebastian Stark Apr 21 '18 at 19:07
  • Yeah, agreed. And frankly, I think it's even more restricted than POSIX /bin/sh. I can see advantage in speed for older hardware, but we're kinda in 2018 already, and keeping /bin/sh doesn't provide that much speed up. Taking advantage of newer hardware with multicore processors seems to be better. – Sergiy Kolodyazhnyy Apr 21 '18 at 19:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.