首页 > 教程 > FreeBSD 教程 > FreeBSD 基础 > Shell 简介 > FreeBSD 配置使用 tcsh

FreeBSD 配置使用 tcsh

在 FreeBSD 系统当中默认已经安装了 tcsh,tcsh 的全称为 Tenex C Shell,是 csh 的增强版,在 FreeBSD 也称为 The extended C Shell 或者 extended C Shell。

更改为 tcsh

把用户的 shell 更改为 tcsh:

chsh -s /bin/tcsh

查看是否更改成功

使用 finger 命令,查看用户当前使用的 shell:

finger -l

输出类似如下的信息,包含用户的 shell 信息:

Login: lisan                    Name: lisan
Directory: /home/lisan                  Shell: /bin/tcsh
On since Tue Dec 16 20:15 (CST) on tty7 from :0
   30 days 3 hours idle
No mail.
No Plan.

配置文件

tcsh 的登录 shell 与非登录 shell会读取不同的配置文件。

登录 tcsh 读取的配置文件

一)登录时读取的配置文件的顺序:

  1. 系统配置文件:/etc/csh.cshrc
  2. 系统配置文件:/etc/csh.login
  3. 用户配置文件:~/.tcshrc(如果存在)
  4. 用户配置文件: ~/.cshrc(如果 ~/.tcshrc 不存在)
  5. 用户配置文件:~/.login

二)退出时读取的配置文件:

  1. 用户配置文件: ~/.logout

非登录 tcsh 读取的配置文件

非登录 tcsh 读取的配置文件的顺序:

  1. 系统配置文件:/etc/csh.cshrc
  2. 用户配置文件:~/.tcshrc(如果存在)
  3. 用户配置文件: ~/.cshrc(如果 ~/.tcshrc 不存在)

设置环境变量

tcsh 中使用 setenv 设置环境变量,环境变量最好在用户配置文件中添加,不要修改系统配置。

使用如下形式设置环境变量:

# name 和 value 都不用添加引号
setenv name value

如为 PATH 中添加路径 $HOME/.local/bin

vi ~/.tcshrc

添加内容(推荐使用数组形式添加):

set path = ($HOME/.local/bin $path)  # 数组形式

解释说明:

  • ~/.tcshrc 中配置,登录 sh 和非登录 sh 中都起作用
  • 推荐使用数组形式配置,使用数组时多个路径使用空格 分隔

执行脚本

tcsh 有多种方式执行脚本,有些方式可以在当前 shell 中执行脚本,有些方式可以在子 shell 中执行脚本。

使用命令执行脚本

1)使用 source 命令执行脚本:

source script.tcsh

该种方式在当前 shell 中执行脚本。

使用解释器执行脚本

直接使用 tcsh 解释器,覆盖文件名参数执行脚本:

tcsh script.tcsh

该种方式在非登录子 shell 中执行脚本。

直接执行文件

直接执行文件,文件需要具有执行权限,且需具有 shebang 标识 。

1)文件的第一行具有 shebang 标识:

#!/bin/tcsh

2)赋予文件执行权限:

chmod +x script.tcsh

3)运行脚本文件

./script.tcsh

该种方式在当前 shell 中执行脚本。