freebsd-skq/contrib/tcsh/FAQ

216 lines
8.1 KiB
Plaintext

Last Updated:
Fri Aug 25 13:27:45 EDT 2000
This is for people who do not read the manual!
So far people who don't read manuals don't read this either... I may
call it README.*PLEASE* in the future, but then the same people won't
be able to get ftp it... :-)
1. 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 something like
stty -parity -evenp -oddp cs8 -istrip (rs6000)
or
stty -parenb -istrip cs8
would work..
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.
2. 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. A work-around is:
dbxtool < /dev/null >& /dev/null &
or
/usr/etc/setsid dbxtool &
If that does not work, for dbxtool at least you can add "sh stty sane"
in your .dbxinit
3. 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.
4. 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.
5. 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 :-)
6. I am using SunView/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:
1 Don't use suntools
2 Use shelltool instead of cmdtool.
3 Unset edit in tcsh.
6b. 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'
6c. 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.
The workaround for 6b and 6c is doing "unset edit."
Using shelltool instead of cmdtool doesn't fix 6c.
7. 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.
8. Where do I get the public domain directory library?
Anonymous ftp to prep.ai.mit.edu:/pub/gnu/dirent.tar.Z
9. 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:
a. Run fixincludes from the gcc distribution.
b. Add -traditional to the gcc flags.
c. Compile with cc.
10. I compiled tcsh with the SunOS unbundled compiler and now things
get echo'ed twice.
It is a bug in the unbundled optimizer. Lower the optimization level.
11. 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"...
12. On POSIX machines ^C and ^Z will 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.
13. I am trying to compile tcsh and I am getting compile errors that
look like:
>sh.c:???: `STR???' undeclared, outside of functions [gcc]
or
>"sh.c", line ???: STR??? undefined [cc]
You interrupted make, while it was making the automatically
generated headers. Type 'make clean; make'
14. 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'.
15. 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.
This is another manifestation of item 5. Just add the pathname
to tcsh in /etc/shells and everything should work fine.
16. 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
17. 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
18. 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.
19. If you need help generating your .cshrc file, check out:
http://www.imada.ou.dk/~blackie/dotfile/
20. 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.
21. 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.
22. 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.
christos
Everything else is a bug :-(