mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-30 04:22:44 +00:00
5224c2a3bc
PR: 252663 MFC after: 1 week
244 lines
9.5 KiB
Plaintext
244 lines
9.5 KiB
Plaintext
* Home
|
||
* FAQ
|
||
* Y2K
|
||
__________________________________________________________________
|
||
|
||
FAQ
|
||
|
||
For the people who do not read the manual!
|
||
|
||
Why is the meta key broken in tcsh-5.20 and up?
|
||
|
||
On some machines the tty is not set up to pass 8 bit characters by
|
||
default. Tcsh 5.19 used to try to determine if pass8 should be set by
|
||
looking at the terminal's meta key. Unfortunately there is no good way
|
||
of determining if the terminal can really pass 8 characters or not.
|
||
Consider if you are logged in through a modem line with 7 bits and
|
||
parity and your terminal has a meta key. Then tcsh 5.19 would set
|
||
wrongly set pass8.
|
||
|
||
If you did like the previous behavior you can add in /etc/csh.login, or
|
||
in .login:
|
||
if ( $?tcsh && $?prompt ) then
|
||
if ( "`echotc meta`" == "yes" ) then
|
||
stty pass8
|
||
endif
|
||
endif
|
||
|
||
If you don't have pass8, maybe one of these would work:
|
||
stty -parity -evenp -oddp cs8 -istrip (rs6000)
|
||
stty -parenb -istrip cs8
|
||
|
||
Finally, tcsh will bind all printable meta characters to the self
|
||
insert command. If you don't want that to happen (i.e. use the
|
||
printable meta characters for commands) setenv NOREBIND.
|
||
|
||
I ran dbxtool & and shelltool & from tcsh, and they end up in cbreak and no
|
||
echo mode?
|
||
|
||
These programs are broken. Background jobs should not try to look at
|
||
the tty. What happens is that dbxtool looks in stderr to inherit the
|
||
tty setups, but tcsh sets up the tty in cbreak and -echo modes, so that
|
||
it can do line editing. This cannot be fixed because tcsh cannot give
|
||
away the tty. Pick one of the following as a workaround:
|
||
dbxtool < /dev/null >& /dev/null &
|
||
/usr/etc/setsid dbxtool &
|
||
|
||
If that does not work, for dbxtool at least you can add sh stty sane in
|
||
your .dbxinit file.
|
||
|
||
I tried to compile tcsh and it cannot find <locale.h>?
|
||
|
||
Your system does not support NLS. Undefine NLS in config_f.h and it
|
||
should work fine.
|
||
|
||
Where can I get csh sources?
|
||
|
||
Csh sources are now available with the 4.4BSD networking distributions.
|
||
You don't need csh sources to compile tcsh-6.0x.
|
||
|
||
I just made tcsh my login shell, and I cannot ftp any more?
|
||
|
||
Newer versions of the ftp daemon check for the validity of the user's
|
||
shell before they allow logins. The list of valid login shells is
|
||
either hardcoded or it is usually in a file called /etc/shells. If it
|
||
is hard-coded, then you are out of luck and your best bet is to get a
|
||
newer version of ftpd. Otherwise add tcsh to the list of shells. (For
|
||
AIX this file is called /etc/security/login.cfg.) Remember that the
|
||
full path is required. If there is no /etc/shells, and you are creating
|
||
one, remember to add /bin/csh, /bin/sh, and any other valid shells for
|
||
your system, so that other people can ftp too.
|
||
|
||
I am using SunView or OpenWindows and editing is screwed up. In particular my
|
||
arrow keys and backspace don't work right. What am I doing wrong?
|
||
|
||
Well, cmdtool tries to do its own command line editing and the effect
|
||
you get is one of using an editor inside an editor. Both try to
|
||
interpret the arrow key sequences and cmdtool wins since it gets them
|
||
first. The solutions are in my order of preference:
|
||
* Don't use suntools
|
||
* Use shelltool instead of cmdtool.
|
||
* Unset edit in tcsh.
|
||
|
||
On a SPARCstation running Solaris 2.x and OpenWindows 3.1, inside a cmdtool,
|
||
the short-cut key sequence to clear log (i.e. Meta-e or Diamond-e) doesn't
|
||
work: it just echos ‘e’; or
|
||
|
||
Unset edit in tcsh.
|
||
|
||
On a SPARCstation running Solaris 2.x and OpenWindows 3.1, maketool (within
|
||
SPARCworks) doesn't work: it just does a `cd’ to the working directory then
|
||
stops.
|
||
|
||
Unset edit in tcsh. Using shelltool instead of cmdtool does not fix
|
||
this.
|
||
|
||
I rlogin to another machine, and then no matter what I tell stty I cannot get
|
||
it to pass 8 bit characters?
|
||
|
||
Maybe you need to use rlogin -8 to tell rlogin to pass 8 bit
|
||
characters.
|
||
|
||
Where do I get the public domain directory library?
|
||
|
||
Anonymous ftp to ftp://prep.ai.mit.edu/pub/gnu/dirent.tar.Z
|
||
|
||
I compiled tcsh using gcc, and when I start up it says: tcsh: Warning no
|
||
access to tty (Invalid Argument). Thus no job control in this shell
|
||
|
||
Your <sys/ioctl.h> file is not ansi compliant. You have one of 3
|
||
choices:
|
||
* Run fixincludes from the gcc distribution.
|
||
* Add -traditional to the gcc flags.
|
||
* Compile with cc.
|
||
|
||
I compiled tcsh with the SunOS unbundled compiler and now things get echoed
|
||
twice.
|
||
|
||
It is a bug in the unbundled optimizer. Lower the optimization level.
|
||
|
||
How can I use the arrow keys with hpterm?
|
||
|
||
Hp terminals use the arrow keys internally. You can tell hpterm not to
|
||
do that, by sending it the termcap sequence smkx. Since this has to be
|
||
done all the time, the easiest thing is to put it as an alias for
|
||
precmd, or inside the prompt:
|
||
if ($term == "hp") then
|
||
set prompt="%{`echotc smkx`%}$prompt"
|
||
endif
|
||
|
||
Note that by doing that you cannot use pgup and pgdn to scroll… Also if
|
||
you are using termcap, replace smkx with ks.
|
||
|
||
On POSIX machines ^C and ^Z do not work when tcsh is a login shell?
|
||
|
||
Make sure that the interrupt character is set to ^C and suspend is set
|
||
to ^Z; stty -a will show you the current stty settings; stty intr ^C
|
||
susp ^Z will set them to ^C and ^Z respectively.
|
||
|
||
I am trying to compile tcsh and I am getting compile errors that look like:
|
||
|
||
sh.c:???: `STR???' undeclared, outside of functions [gcc]
|
||
"sh.c", line ???: STR??? undefined [cc]
|
||
|
||
You interrupted make, while it was making the automatically generated
|
||
headers. Type make clean; make
|
||
|
||
On the cray, sometimes the CR/LF mapping gets screwed up.
|
||
|
||
You are probably logged in to the cray via telnet. Cray's telnetd
|
||
implements line mode selection the telnet client you are using does not
|
||
implement telnet line mode. This cause the Cray's telnetd to try to use
|
||
KLUDGELINEMODE. You can turn off telnet line mode from the cray side by
|
||
doing a stty -extproc, or you can get the Cray AIC to build a telnetd
|
||
without KLUDGELINEMODE, or you can compile a new telnet client (from
|
||
the BSD net2 tape), or at least on the suns use: mode character.
|
||
|
||
On AU/X, I made tcsh my startup shell, but the mac desktop is not starting up
|
||
(no X11 or Finder), and I only get console emulation.
|
||
|
||
Add the pathname to tcsh in /etc/shells and everything should work
|
||
fine.
|
||
|
||
On machines that use YP (NIS) tilde expansion might end up in /dev/null
|
||
|
||
If this happens complain to your vendor, to get a new version of NIS.
|
||
You can fix that in tcsh by defining YPBUGS in config.h
|
||
|
||
Script on SGI 4.0.5 does not give us a tty, so we cannot have job control.
|
||
|
||
Their csh does not have job control either. Try:
|
||
% script
|
||
% cat > /dev/tty
|
||
|
||
I start tcsh and it takes a couple of minutes to get the prompt.
|
||
|
||
You have defined REMOTEHOST and your DNS is not responding. Either
|
||
undefine REMOTEHOST and recompile or fix your DNS.
|
||
|
||
If you need help generating your .cshrc file, check out:
|
||
|
||
* https://github.com/tcsh-org/tcsh/blob/master/dot.tcshrc
|
||
* https://github.com/tcsh-org/tcsh/blob/master/dot.login
|
||
|
||
On POSIX systems the kernel will send hup signals to all the processes in the
|
||
foreground process group if ‘stty hupcl’ is set.
|
||
|
||
For example
|
||
./tcsh
|
||
echo $$
|
||
591
|
||
./tcsh
|
||
kill -6 591
|
||
|
||
Will kill everything, since hup will be sent to all tcsh processes. To
|
||
avoid that you can set stty -hupcl, but it is not recommended.
|
||
|
||
When I rsh the meta key stops working on the remote machine.
|
||
|
||
Try using rsh -8; this option is undocumented on some systems, but it
|
||
works. If that does not work, get and use ssh/sshd. You'll be better
|
||
off from a security point of view anyway.
|
||
|
||
Tcsh compiled under hp/ux-10.x does not pass resource limits correctly when
|
||
ran on hp/ux-11.x systems.
|
||
|
||
This is a problem with lack of ABI compatibility between the two
|
||
systems. The only solution is to recompile.
|
||
|
||
Refreshing in command line editing can appear broken on some OS's
|
||
|
||
This is because the termcap/terminfo description lies about the ability
|
||
of the terminal to use tabs. At least on Compaq/DEC Alpha OSF/1 3.x and
|
||
4.x systems, stty -tabs will cause problems.
|
||
|
||
Where can I learn the merits of tcsh vs. bash vs. csh vs. sh etc?
|
||
|
||
You can read the manual page section titled [NEW FEATURES] listing
|
||
features that tcsh adds to csh.
|
||
|
||
You can read Tom Christiansen's Csh Programming Considered Harmful, a
|
||
document advocating that csh (and by extension, tcsh) should not be
|
||
used for writing shell scripts.
|
||
|
||
XXX: Need to find something about bash, but bash is sh-compatible and
|
||
has many of the same interactive features of tcsh (command completion
|
||
does not appear to be as flexible, though).
|
||
|
||
Curtains up: introducing the Z shell has a pretty good rundown on zsh.
|
||
Aside from the arguments about csh being evil, tcsh appears to compare
|
||
well with zsh. Zsh is sh and ksh compatible, with many of the
|
||
interactive features of tcsh.
|
||
|
||
Why does FreeBSD's tcsh do history browsing differently than I expect?
|
||
|
||
On FreeBSD, by default, the up arrow is set to history-search-backward,
|
||
rather than the default up-history. As a result, if you type (part of)
|
||
a word and press up arrow, you'll see previous commands that match the
|
||
prefix. Pretty useful, actually, although it takes some getting used
|
||
to. You can use bindkey to see your settings, and to rebind up & down
|
||
differently if desired.
|
||
__________________________________________________________________
|
||
|
||
Page content last updated on 2019-12-31
|