Polytropon freebsd at edvax.de
Fri Sep 20 04:55:13 UTC 2013

On Thu, 19 Sep 2013 19:36:43 +0000, william benton wrote:
> when I log into free bsd I am in the sh shell. i type history
> at the command line and the machine says history not found.
> If I type h at the command line it works like i expect the
> history command to work.

That is strange. The sh shell (system scripting shell and
emergency dialog shell in SUM) does not have a history function.

	% sh
	$ h
	h: not found
	$ history
	history: not found
	$ _

> In the csh or tcsh shells history works as well as h.

This is correct. A system-wide alias is defined for those shells:

	alias	h	'history 25'

It can be found in /etc/csh.cshrc.

> why does entering history at the command line work in the csh and
> tcsh  shells  but not in the sh shell.

The sh shell (Bourne-like shell, actually a derivate of ash) does
not have this functionality. Bash, the Bourne-again shell, supports
the "history" function internally, and a "h" alias can be defined
for this shell.

	% bash
	$ history
	  501  history
	$ _

> Considering that all three shells seem to have the same .cshrc file?

They don't. The csh and tcsh (system default dialog shell) use the
cshrc mechanism (/etc/csh.cshrc for global settings, .cshrc for user
settings, and .login and .logout for interactive shells), while sh
uses /etc/profile and .profile and .shrc similarly. Bash uses .profile
as well as .bash_profile and .bash_login in a comparable manner.

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

More information about the freebsd-questions mailing list