1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
Notes for using SlackBuilds.org csh package:
This csh build conflicts slightly with Slackware's tcsh package. The
easiest way to use this is to "removepkg tcsh" before installing csh. If
you want to do this, you can skip the next section.
Installing csh and tcsh together
--------------------------------
It's possible for csh to coexist with tcsh, with a few caveats:
The shell is installed as /usr/bin/csh to avoid conflicting with
Slackware's own tcsh package (which makes /bin/csh a symlink to tcsh). If
you want to make /bin/csh point to the real csh, you have two choices:
1. remove the /bin/csh symlink before installing the csh package:
# rm -f /bin/csh
The /bin/csh symlink will get created when csh is installed.
2. adjust the symlink manually after csh installation:
# rm -f /bin/csh
# ln -s ../usr/bin/csh /bin/csh
This works the same way as e.g. the /usr/bin/vi symlink, which points
to either elvis or vim.
If you have both csh and Slackware's tcsh installed, and you remove csh,
you'll want to reinstall tcsh to clean up afterwards.
Removing tcsh while csh is installed should be perfectly OK.
Installing/upgrading tcsh when csh is already installed is probably a
bad idea. Remove csh first, install tcsh, then install csh.
As far as I know, nothing in Slackware depends on tcsh, so if you
mess things up, you won't break your OS. You can always put things
back to Slackware's default state by removing both csh and tsch, then
reinstalling tcsh.
Using csh as a login shell
--------------------------
If you want to use csh as a login shell, be aware that Slackware's
shipped /etc/csh.login (from the etc package) contains tcsh-specific
code, which prevents the /etc/profile.d/*.csh scripts from running. This
won't prevent you from logging in, but your environment won't be set up
correctly, you'll see "[: No match." errors, and your prompt won't show
your username, hostname, current directory as tsch does.
To fix this, you can replace /etc/csh.login with the /etc/csh.login.new
installed with the csh package. It behaves the same as the original,
for tcsh, and has conditional code to make csh behave correctly.
# cp /etc/csh.login /etc/csh.login.orig # back up original just in case
# mv /etc/csh.login.new /etc/csh.login
If you don't want to replace Slackware's csh.login, just rm
/etc/csh.login.new and forget about it.
Other notes
-----------
You should read the man page for csh. Also
/usr/doc/csh-$VERSION/paper.(txt|pdf) is a good intro to the C shell for
beginning users. Also, if you're an experienced tcsh user, you might
re-read the NEW FEATURES section in tcsh's man page (it describes the
tcsh features you won't find in csh).
NEVER make csh the default shell for the root account! In fact, it's
probably a bad idea to ever change root's default shell on any Linux or
UNIX system, especially a third-party one that isn't shipped with the OS.
The man page for csh states that "Words can be no longer than 1024
characters", but this build of csh increases the limit to 8192 (actually,
BUFSIZ as defined in stdio.h). This was done so Slackware's profile.d
scripts will work correctly (particularly coreutils-dircolor.sh).
|