FreeBSD 配置使用 csh
在 FreeBSD 系统当中默认已经安装了 csh,有些用户可能默认使用的 shell 为 csh,它的全称为 C Shell,与 C 语言语法相似的 shell。
更改为 csh
把用户的 shell 更改为 csh:
chsh -s /bin/csh
查看是否更改成功
使用 finger 命令,查看用户当前使用的 shell:
finger -l
输出类似如下的信息,包含用户的 shell 信息:
Login: lisan Name: lisan
Directory: /home/lisan Shell: /bin/csh
On since Tue Dec 16 20:15 (CST) on tty7 from :0
30 days 3 hours idle
No mail.
No Plan.
配置文件
csh 的登录 shell 与非登录 shell会读取不同的配置文件。
登录 csh 读取的配置文件
一)登录时读取的配置文件的顺序:
- 系统配置文件:
/etc/csh.cshrc - 系统配置文件:
/etc/csh.login - 用户配置文件:
~/.cshrc - 历史记录文件:
~/.history - 用户配置文件:
~/.login - 目录栈文件:
~/.cshdirs
二)退出时读取的配置文件:
- 用户配置文件:
~/.logout
非登录 csh 读取的配置文件
非登录 csh 读取的配置文件的顺序:
- 系统配置文件:
/etc/csh.cshrc - 用户配置文件:
~/.cshrc
设置环境变量
在 csh 中使用 setenv 设置环境变量,环境变量最好在用户配置文件中添加,不要修改系统配置。
使用如下形式设置环境变量:
# name 和 value 值中有特殊符号 $、`、\、! 等时,需要添加英文引号
setenv name value
如为 PATH 中添加路径 $HOME/.local/bin:
vi ~/.cshrc
添加内容(推荐使用数组形式添加):
set path = ($HOME/.local/bin $path) # 数组形式
# 或者
setenv PATH "$HOME/.local/bin:$PATH" # 标准形式
解释说明:
- 在
~/.cshrc中配置,登录 sh 和非登录 sh 中都起作用 - 推荐使用数组形式配置,使用数组时多个路径使用空格
分隔
执行脚本
csh 有多种方式执行脚本,有些方式可以在当前 shell 中执行脚本,有些方式可以在子 shell 中执行脚本。
使用命令执行脚本
1)使用 source 命令执行脚本:
source script.csh
该种方式在当前 shell 中执行脚本。
使用解释器执行脚本
直接使用 csh 解释器,覆盖文件名参数执行脚本:
csh script.csh
该种方式在非登录子 shell 中执行脚本。
直接执行文件
直接执行文件,文件需要具有执行权限,且需具有 shebang 标识 。
1)文件的第一行具有 shebang 标识:
#!/bin/csh
2)赋予文件执行权限:
chmod +x script.csh
3)运行脚本文件
./script.csh
该种方式在当前 shell 中执行脚本。