The Tcsh package contains “an enhanced but completely compatible version of the Berkeley Unix C shell (csh)”. This is useful as an alternative shell for those who prefer C syntax to that of the bash shell, and also because some programs require the C shell in order to perform installation tasks.
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://astron.com/pub/tcsh/tcsh-6.24.10.tar.gz
Download MD5 sum: 8fe4421f3cac3f230b3fe88df6ccff5f
Download size: 936 KB
Estimated disk space required: 11 MB (with tests)
Estimated build time: 0.2 SBU (with tests)
Install Tcsh by running the following commands:
./configure --prefix=/usr && make
To test the results, issue: make check.
Now, as the root
user:
make install install.man && ln -v -sf tcsh /bin/csh && ln -v -sf tcsh.1 /usr/share/man/man1/csh.1
ln -v -sf tcsh /bin/csh: The FHS states that if
there is a C shell installed, there should
be a symlink from /bin/csh
to it. This creates
that symlink.
There are numerous configuration files for the C shell. Examples
of these are /etc/csh.cshrc
,
/etc/csh.login
,
/etc/csh.logout
,
~/.tcshrc
, ~/.cshrc
,
~/.history
, ~/.cshdirs
,
~/.login
, and ~/.logout
. More
information on these files can be found in the
tcsh(1)
man page.
Update /etc/shells
to include the C shell
program names (as the root
user):
cat >> /etc/shells << "EOF"
/bin/tcsh
/bin/csh
EOF
The following ~/.cshrc
provides two alternative
colour prompts and coloured ls output. If you prefer
a global modification, issue the command as the root
user, replacing
~/.cshrc
by /etc/csh.cshrc
.
cat > ~/.cshrc << "EOF"
# Original at:
# https://www.cs.umd.edu/~srhuang/teaching/code_snippets/prompt_color.tcsh.html
# Modified by the BLFS Development Team.
# Add these lines to your ~/.cshrc (or to /etc/csh.cshrc).
# Colors!
set red="%{\033[1;31m%}"
set green="%{\033[0;32m%}"
set yellow="%{\033[1;33m%}"
set blue="%{\033[1;34m%}"
set magenta="%{\033[1;35m%}"
set cyan="%{\033[1;36m%}"
set white="%{\033[0;37m%}"
set end="%{\033[0m%}" # This is needed at the end...
# Setting the actual prompt. Two separate versions for you to try, pick
# whichever one you like better, and change the colors as you want.
# Just don't mess with the ${end} guy in either line... Comment out or
# delete the prompt you don't use.
set prompt="${green}%n${blue}@%m ${white}%~ ${green}%%${end} "
set prompt="[${green}%n${blue}@%m ${white}%~ ]${end} "
# This was not in the original URL above
# Provides coloured ls
alias ls ls --color=always
# Clean up after ourselves...
unset red green yellow blue magenta cyan yellow white end
EOF