FreeBSD 配置使用 sh
在 FreeBSD 系统当中默认已经安装了 sh,且用户默认使用的 shell 为 sh,它的全称为 Bourne Shell。
更改为 sh
把用户的 shell 更改为 sh:
chsh -s /bin/sh
查看是否更改成功
使用 finger 命令,查看用户当前使用的 shell:
finger -l
输出类似如下的信息,包含用户的 shell 信息:
Login: lisan Name: lisan
Directory: /home/lisan Shell: /bin/sh
On since Tue Dec 16 20:15 (CST) on tty7 from :0
30 days 3 hours idle
No mail.
No Plan.
配置文件
登录 sh 读取的配置文件
登录 sh 读取的配置文件的顺序:
- 系统配置文件:
/etc/profile - 用户配置文件:
~/.profile,文件导入 ENV 环境变量:ENV=$HOME/.shrc; export ENV - 用户配置文件:
~/.shrc
非登录 sh 读取的配置文件
默认情况下非登录的 sh 是不读取配置文件的,但是如果设置了 ENV 环境变量,会读取 ENV 指向的文件中。
在 FreeBSD 的图形界面中设置了 ENV 环境变量始终指向 ~/.shrc
非登录 sh 读取的配置文件为:
- 用户配置文件:
~/.shrc
设置环境变量
在 sh 中使用 export 设置环境变量,环境变量最好在用户配置文件中添加,不要修改系统配置。
环境变量需要在登录 sh 还是非登录 sh 中使用,只需在对应的配置文件中添加即可。
可使用如下两种方式设置环境变量:
# value 值包含特殊字符 $、`、\、! 等时,需要使用英文引号
export name=value
# 或者
name=value; export name
如为 PATH 中添加路径 $HOME/.local/bin
vi ~/.shrc
添加内容:
PATH=$HOME/.local/bin:$PATH; export PATH
解释说明:
- 在
~/.shrc中配置,登录 sh 和非登录 sh 中都起作用 - 多个路径之间使用英文冒号
:分隔
执行脚本
sh 有多种方式执行脚本,有些方式可以在当前 shell 中执行脚本,有些方式可以在子 shell 中执行脚本。
使用命令执行脚本
1)使用 . 命令执行脚本:
. script.sh
该种方式在当前 shell 中执行脚本。
使用解释器执行脚本
直接使用 sh 解释器,覆盖文件名参数执行脚本:
sh script.sh
该种方式在非登录子 shell 中执行脚本。
直接执行文件
直接执行文件,文件需要具有执行权限,且需具有 shebang 标识 。
1)文件的第一行具有 shebang 标识:
#!/bin/sh
2)赋予文件执行权限:
chmod +x script.sh
3)运行脚本文件
./script.sh
该种方式在当前 shell 中执行脚本。