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.
This package is known to build and work properly using an LFS 11.3 platform.
Download (HTTP): https://astron.com/pub/tcsh/tcsh-6.24.07.tar.gz
Download (FTP): ftp://ftp.astron.com/pub/tcsh/tcsh-6.24.07.tar.gz
Download MD5 sum: 5a0dfa0874f2dee24e0b36b3ed41d3a2
Download size: 928 KB
Estimated disk space required: 11 MB (with tests)
Estimated build time: 0.2 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/tcsh
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