8.6. Shell 环境
命令解译器 (或 shells) 是用户接触电脑的第一个点,必须足够友善。大部分的人使用初始设置的脚本配置其行为 (自动完成、提示字符等)。
bash
是标准的 shell,使用 /etc/bash.bashrc
初始脚本做为 “交互” shells,并以 /etc/profile
做为 “登录” shells。
基本 登录 shell 与 (非) 交互 shell
简单说,不论本地登录或使用 ssh
远程登录,或以 bash --login
命令登录,都启用登录 shell。在 登录或非登录 shell 里,该 shell 必须是交互的 (例如在 xterm
-type 终端机内);或非交互式 (使用运行式脚本)。
发现 其他 shells、其他脚本
命令解译器有自己的语法及其配置文件。因此,zsh
使用 /etc/zshrc
与 /etc/zshenv
;csh
使用 /etc/csh.cshrc
、/etc/csh.login
与 /etc/csh.logout
。这些程序的手册页面详述其用法。
bash
启用 /etc/bash.bashrc
文件 (未评论的几列) 内的 “自动完成”。
基本 自动补完
若干命令解译器提供补完功能,即键入命令前几个字后,用户按 Tab 后,shell 自动补完命令名称或参数。用户的工作更有效率且更少错误。
此函数极有用并富弹性。可根据每个命令分别配置。因此,apt-get
之后的第一个参数,可根据此命令的语法布建,即使未映射任何文件 (在本例中,可能的选择为 install
、remove
、upgrade
等)。
基本 波浪号,回到家文件夹的捷径
波浪号通常用于表示环境变量 HOME
指向 (就是用户的家文件夹,如 /home/rhertzog/
) 的文件夹。命令解译器自动取代:~/hello.txt
就是 /home/rhertzog/hello.txt
。
波浪号也可近用至另个用户的家文件夹。因此,~rmas/bonjour.txt
等于 /home/rmas/bonjour.txt
。
除了这些常见的脚本,用户还可以创建自己的 ~/.bashrc
与 ~/.bash_profile
来配置其 shell。常见的改变是添加别名;即自动取代运行的命令,以加速命令的效率。例如,添加 la
别名取代 ls -la | less
命令后,只需键入 la
就能查看文件夹内容的详情。
基本 环境变量
环境变量保存供 shell 或其他程序使用的全域设置。它们是与环境相关的 (每个进程都有自己的环境变量) 但可继承的。最后这个特性让登录 shell 时可以声明继承所有程序的变量。
设置缺省的环境变量是 shell 配置的重要工作。除了把变量指定给 shell 之外,还可以放在 /etc/environment
文件内,以备供启始 shell 的其他程序使用。设置的变量通常包括 ORGANIZATION
,包括公司或组织的名称;以及 HTTP_PROXY
,指示 HTTP 代理服务器的位置。
秘诀 所有的 shells 拥有相同的配置
用户通常以相同的方式登录与交互 shell。所以,从 ~/.bashrc
里的 ~/.bash_profile
文件选择解译器 (或 “来源”) 的内容。也可使用适用于所有用户的文件 (调用 /etc/bash.bashrc
源自 /etc/profile
)。