# man > csh(1)

---
type: CommandReference
command: tcsh
mode: man
section: 1
source: man-pages
---

## Quick Reference

- `tcsh` — Start an interactive shell session
- `tcsh -f` — Start faster without loading startup configs
- `tcsh -c "command"` — Execute specific commands
- `tcsh script.csh` — Execute a specific script

## Name

tcsh - C shell with file name completion and command line editing

## Synopsis

`tcsh` [**-bcdefFimnqstvVxX**] [**-Dname**[**=value**]] [arg ...]

`tcsh -l` (login shell)

## Options

- `-b` — Treat remaining arguments as non-options; used to pass options to a script without confusion.
- `-c` — Execute the next argument as a command; remaining arguments placed in `argv`.
- `-d` — Load directory stack from ~/.cshdirs even if not login shell.
- `-Dname=value` — Set environment variable name to value (Domain/OS only).
- `-e` — Exit if a command terminates with a non-zero exit status.
- `-f` — Fast startup: skip reading ~/.tcshrc or ~/.cshrc.
- `-F` — Use fork() instead of vfork().
- `-i` — Force interactive shell even if not a terminal.
- `-l` — Login shell.
- `-m` — Load ~/.tcshrc even if not login shell (for su).
- `-n` — Parse but do not execute commands (for scripts).
- `-q` — Quit signals ignored; job control disabled.
- `-s` — Read commands from standard input.
- `-t` — Read and execute one line of input.
- `-v` — Echo input after history substitution.
- `-x` — Echo commands after all substitutions.
- `-V` — Like -v but print before reading ~/.tcshrc.
- `-X` — Like -x but print before reading ~/.tcshrc.
- `--help` — Print help message and exit.
- `--version` — Print version/platform/compilation options and exit.

## Examples

shell
# Start an interactive shell
tcsh

# Fast startup without config files
tcsh -f

# Execute a command
tcsh -c "echo 'Hello from tcsh'"

# Run a script
tcsh my_script.csh

# History substitution: repeat last command
!!  
# Use last argument from previous command
!$
# Correct spelling in previous command
^old^new

# Completion: type partial word and press Tab
ls /usr/l[TAB]     # completes to /usr/local/ if unique

# Job control
sleep 100 &        # start in background
jobs               # list jobs
fg %1              # bring job 1 to foreground
^Z                 # suspend current job
bg                 # resume suspended job in background
## See Also

- [csh(1)](https://www.chedong.com/phpMan.php/man/csh/1/markdown) — Original C shell
- [emacs(1)](https://www.chedong.com/phpMan.php/man/emacs/1/markdown) — Editor with key bindings used by tcsh
- [vi(1)](https://www.chedong.com/phpMan.php/man/vi/1/markdown) — Alternative editor key bindings
- [ls(1)](https://www.chedong.com/phpMan.php/man/ls/1/markdown) — List directory contents
- [stty(1)](https://www.chedong.com/phpMan.php/man/stty/1/markdown) — Set terminal options
- [su(1)](https://www.chedong.com/phpMan.php/man/su/1/markdown) — Substitute user identity
- [tset(1)](https://www.chedong.com/phpMan.php/man/tset/1/markdown) — Terminal initialization
- [sh(1)](https://www.chedong.com/phpMan.php/man/sh/1/markdown) — Bourne shell
- [access(2)](https://www.chedong.com/phpMan.php/man/access/2/markdown), [execve(2)](https://www.chedong.com/phpMan.php/man/execve/2/markdown), [stat(2)](https://www.chedong.com/phpMan.php/man/stat/2/markdown), [termcap(5)](https://www.chedong.com/phpMan.php/man/termcap/5/markdown)