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

FreeBSD 配置使用 bash

Bash 的全称为 Bourne Again shell,是 Linux 系统中默认使用的 shell。如果你是 Linux 用户可能习惯了使用 bash,可以从 FreeBSD 系统的 Packages 或 Ports 集中安装 Bash 软件包。

安装 bash

如果你的 FreeBSD 系统没有安装图形界面,你的系统中默认没有安装 Bash;如果你的系统中安装了图形界面,那么 Bash 可能作为图形界面的一部分安装到了你的系统中。

查看系统是否安装 bash

1)使用 whereis 命令查看系统中是否默认安装了 bash:

whereis bash

如果安装了 bash 会输出如下信息:

bash: /usr/local/bin/bash /usr/local/share/man/man1/bash.1.gz

未安装 bash 会输出如下信息:

bash:

2)也使用 which 命令查看系统中是否默认安装了 bash:

which bash

如果安装了 bash 会输出如下信息:

/usr/local/bin/bash

未安装 bash,不会输出任何信息。

安装 bash 软件包

在 FreeBSD pkg 源和 ports 集中包含了 bash 软件包,可以使用如下命令在 FreeBSD 系统中安装 bash,需要以 root 权限运行命令。

1)更新 FreeBSD 本地软件源:

pkg update

2)使用 pkg 安装 bash 软件包:

pkg install bash

3)安装 bash 的命令自动补全工具:

pkg install bash-completion

4)在 ~/.bashrc 文件中添加如下内容,启用命令自动补全插件:

[[ $PS1 && -f /usr/local/share/bash-completion/bash-completion.sh ]] && \
        source /usr/local/share/bash-completion/bash-completion.sh

更改为 bash

把用户的 shell 更改为 bash:

chsh -s /usr/local/bin/bash

查看是否更改成功

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

finger -l

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

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

配置文件

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

登录 bash 读取的配置文件

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

  1. 系统配置文件:/etc/profile
  2. 用户配置文件:~/.bash_profile~/.bash_login~/.profile(按此顺序,只读取第一个存在的文件)

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

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

非登录 bash 读取的配置文件

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

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

设置环境变量

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

环境变量需要在登录 bash 还是非登录 bash 中使用,只需在对应的配置文件中添加即可。

可使用如下两种方式设置环境变量:

# value 值包含特殊字符 $、`、\、! 等时,需要使用英文引号
export name=value
# 或者
name=value;  export name

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

vi ~/.bashrc

添加内容:

PATH=$HOME/.local/bin:$PATH;  export PATH

解释说明:

  • ~/.bashrc 中配置,只能在非登录 bash 中起作用
  • 多个路径之间使用英文冒号 : 分隔

执行脚本

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

使用命令执行脚本

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

source script.sh

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

2)使用 . 命令执行脚本:

. script.sh

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

使用解释器执行脚本

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

bash script.sh

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

直接执行文件

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

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

#!/usr/local/bin/bash

2)赋予文件执行权限:

chmod +x script.sh

3)运行脚本文件

./script.sh

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