xref: /freebsd/contrib/tcsh/FAQ (revision e0c4386e7e71d93b0edc0c8fa156263fc4a8b0b6)
1     * Home
2     * FAQ
3     * Y2K
4     __________________________________________________________________
5
6FAQ
7
8   For the people who do not read the manual!
9
10  Why is the meta key broken in tcsh-5.20 and up?
11
12   On some machines the tty is not set up to pass 8 bit characters by
13   default. Tcsh 5.19 used to try to determine if pass8 should be set by
14   looking at the terminal's meta key. Unfortunately there is no good way
15   of determining if the terminal can really pass 8 characters or not.
16   Consider if you are logged in through a modem line with 7 bits and
17   parity and your terminal has a meta key. Then tcsh 5.19 would set
18   wrongly set pass8.
19
20   If you did like the previous behavior you can add in /etc/csh.login, or
21   in .login:
22    if ( $?tcsh && $?prompt ) then
23        if ( "`echotc meta`" == "yes" ) then
24             stty pass8
25        endif
26    endif
27
28   If you don't have pass8, maybe one of these would work:
29    stty -parity -evenp -oddp cs8 -istrip   (rs6000)
30    stty -parenb -istrip cs8
31
32   Finally, tcsh will bind all printable meta characters to the self
33   insert command. If you don't want that to happen (i.e. use the
34   printable meta characters for commands) setenv NOREBIND.
35
36  I ran dbxtool & and shelltool & from tcsh, and they end up in cbreak and no
37  echo mode?
38
39   These programs are broken. Background jobs should not try to look at
40   the tty. What happens is that dbxtool looks in stderr to inherit the
41   tty setups, but tcsh sets up the tty in cbreak and -echo modes, so that
42   it can do line editing. This cannot be fixed because tcsh cannot give
43   away the tty. Pick one of the following as a workaround:
44    dbxtool < /dev/null >& /dev/null &
45    /usr/etc/setsid dbxtool &
46
47   If that does not work, for dbxtool at least you can add sh stty sane in
48   your .dbxinit file.
49
50  I tried to compile tcsh and it cannot find <locale.h>?
51
52   Your system does not support NLS. Undefine NLS in config_f.h and it
53   should work fine.
54
55  Where can I get csh sources?
56
57   Csh sources are now available with the 4.4BSD networking distributions.
58   You don't need csh sources to compile tcsh-6.0x.
59
60  I just made tcsh my login shell, and I cannot ftp any more?
61
62   Newer versions of the ftp daemon check for the validity of the user's
63   shell before they allow logins. The list of valid login shells is
64   either hardcoded or it is usually in a file called /etc/shells. If it
65   is hard-coded, then you are out of luck and your best bet is to get a
66   newer version of ftpd. Otherwise add tcsh to the list of shells. (For
67   AIX this file is called /etc/security/login.cfg.) Remember that the
68   full path is required. If there is no /etc/shells, and you are creating
69   one, remember to add /bin/csh, /bin/sh, and any other valid shells for
70   your system, so that other people can ftp too.
71
72  I am using SunView or OpenWindows and editing is screwed up. In particular my
73  arrow keys and backspace don't work right. What am I doing wrong?
74
75   Well, cmdtool tries to do its own command line editing and the effect
76   you get is one of using an editor inside an editor. Both try to
77   interpret the arrow key sequences and cmdtool wins since it gets them
78   first. The solutions are in my order of preference:
79     * Don't use suntools
80     * Use shelltool instead of cmdtool.
81     * Unset edit in tcsh.
82
83  On a SPARCstation running Solaris 2.x and OpenWindows 3.1, inside a cmdtool,
84  the short-cut key sequence to clear log (i.e. Meta-e or Diamond-e) doesn't
85  work: it just echos ‘e’; or
86
87   Unset edit in tcsh.
88
89  On a SPARCstation running Solaris 2.x and OpenWindows 3.1, maketool (within
90  SPARCworks) doesn't work: it just does a `cd’ to the working directory then
91  stops.
92
93   Unset edit in tcsh. Using shelltool instead of cmdtool does not fix
94   this.
95
96  I rlogin to another machine, and then no matter what I tell stty I cannot get
97  it to pass 8 bit characters?
98
99   Maybe you need to use rlogin -8 to tell rlogin to pass 8 bit
100   characters.
101
102  Where do I get the public domain directory library?
103
104   Anonymous ftp to ftp://prep.ai.mit.edu/pub/gnu/dirent.tar.Z
105
106  I compiled tcsh using gcc, and when I start up it says: tcsh: Warning no
107  access to tty (Invalid Argument). Thus no job control in this shell
108
109   Your <sys/ioctl.h> file is not ansi compliant. You have one of 3
110   choices:
111     * Run fixincludes from the gcc distribution.
112     * Add -traditional to the gcc flags.
113     * Compile with cc.
114
115  I compiled tcsh with the SunOS unbundled compiler and now things get echoed
116  twice.
117
118   It is a bug in the unbundled optimizer. Lower the optimization level.
119
120  How can I use the arrow keys with hpterm?
121
122   Hp terminals use the arrow keys internally. You can tell hpterm not to
123   do that, by sending it the termcap sequence smkx. Since this has to be
124   done all the time, the easiest thing is to put it as an alias for
125   precmd, or inside the prompt:
126    if ($term == "hp") then
127        set prompt="%{`echotc smkx`%}$prompt"
128    endif
129
130   Note that by doing that you cannot use pgup and pgdn to scroll… Also if
131   you are using termcap, replace smkx with ks.
132
133  On POSIX machines ^C and ^Z do not work when tcsh is a login shell?
134
135   Make sure that the interrupt character is set to ^C and suspend is set
136   to ^Z; stty -a will show you the current stty settings; stty intr ^C
137   susp ^Z will set them to ^C and ^Z respectively.
138
139  I am trying to compile tcsh and I am getting compile errors that look like:
140
141    sh.c:???: `STR???' undeclared, outside of functions [gcc]
142    "sh.c", line ???: STR??? undefined [cc]
143
144   You interrupted make, while it was making the automatically generated
145   headers. Type make clean; make
146
147  On the cray, sometimes the CR/LF mapping gets screwed up.
148
149   You are probably logged in to the cray via telnet. Cray's telnetd
150   implements line mode selection the telnet client you are using does not
151   implement telnet line mode. This cause the Cray's telnetd to try to use
152   KLUDGELINEMODE. You can turn off telnet line mode from the cray side by
153   doing a stty -extproc, or you can get the Cray AIC to build a telnetd
154   without KLUDGELINEMODE, or you can compile a new telnet client (from
155   the BSD net2 tape), or at least on the suns use: mode character.
156
157  On AU/X, I made tcsh my startup shell, but the mac desktop is not starting up
158  (no X11 or Finder), and I only get console emulation.
159
160   Add the pathname to tcsh in /etc/shells and everything should work
161   fine.
162
163  On machines that use YP (NIS) tilde expansion might end up in /dev/null
164
165   If this happens complain to your vendor, to get a new version of NIS.
166   You can fix that in tcsh by defining YPBUGS in config.h
167
168  Script on SGI 4.0.5 does not give us a tty, so we cannot have job control.
169
170   Their csh does not have job control either. Try:
171        % script
172        % cat > /dev/tty
173
174  I start tcsh and it takes a couple of minutes to get the prompt.
175
176   You have defined REMOTEHOST and your DNS is not responding. Either
177   undefine REMOTEHOST and recompile or fix your DNS.
178
179  If you need help generating your .cshrc file, check out:
180
181     * https://github.com/tcsh-org/tcsh/blob/master/dot.tcshrc
182     * https://github.com/tcsh-org/tcsh/blob/master/dot.login
183
184  On POSIX systems the kernel will send hup signals to all the processes in the
185  foreground process group if ‘stty hupcl’ is set.
186
187   For example
188    ./tcsh
189    echo $$
190    591
191    ./tcsh
192    kill -6 591
193
194   Will kill everything, since hup will be sent to all tcsh processes. To
195   avoid that you can set stty -hupcl, but it is not recommended.
196
197  When I rsh the meta key stops working on the remote machine.
198
199   Try using rsh -8; this option is undocumented on some systems, but it
200   works. If that does not work, get and use ssh/sshd. You'll be better
201   off from a security point of view anyway.
202
203  Tcsh compiled under hp/ux-10.x does not pass resource limits correctly when
204  ran on hp/ux-11.x systems.
205
206   This is a problem with lack of ABI compatibility between the two
207   systems. The only solution is to recompile.
208
209  Refreshing in command line editing can appear broken on some OS's
210
211   This is because the termcap/terminfo description lies about the ability
212   of the terminal to use tabs. At least on Compaq/DEC Alpha OSF/1 3.x and
213   4.x systems, stty -tabs will cause problems.
214
215  Where can I learn the merits of tcsh vs. bash vs. csh vs. sh etc?
216
217   You can read the manual page section titled [NEW FEATURES] listing
218   features that tcsh adds to csh.
219
220   You can read Tom Christiansen's Csh Programming Considered Harmful, a
221   document advocating that csh (and by extension, tcsh) should not be
222   used for writing shell scripts.
223
224   XXX: Need to find something about bash, but bash is sh-compatible and
225   has many of the same interactive features of tcsh (command completion
226   does not appear to be as flexible, though).
227
228   Curtains up: introducing the Z shell has a pretty good rundown on zsh.
229   Aside from the arguments about csh being evil, tcsh appears to compare
230   well with zsh. Zsh is sh and ksh compatible, with many of the
231   interactive features of tcsh.
232
233  Why does FreeBSD's tcsh do history browsing differently than I expect?
234
235   On FreeBSD, by default, the up arrow is set to history-search-backward,
236   rather than the default up-history. As a result, if you type (part of)
237   a word and press up arrow, you'll see previous commands that match the
238   prefix. Pretty useful, actually, although it takes some getting used
239   to. You can use bindkey to see your settings, and to rebind up & down
240   differently if desired.
241     __________________________________________________________________
242
243   Page content last updated on 2019-12-31
244