7. Shells
我们都熟悉Bourne Again SHell,但是还有另外两个用户界面被认为是有用的现代SHell——Berkeley Unix C SHell和Korn SHell。本章安装与这些附加shell类型兼容的包。
7.1 Dash-0.5.12
简介Dash
Dash是一个POSIX兼容的shell。它可以安装为/bin/sh,或者作为root或userid为0的第二个用户的默认shell。它比Bash shell依赖更少的库,因此不太可能受到升级问题或磁盘故障的影响。Dash对于检查脚本是否与POSIX语法完全兼容也很有用。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载 (HTTP): http://gondor.apana.org.au/~herbert/dash/files/dash-0.5.12.tar.gz
-
下载MD5校验和: 57222b768b84003ea4b801e5d5e0e52b
-
下载大小: 244 KB
-
预计所需的磁盘空间: 2.9 MB
-
预计构建时间: less than 0.1 SBU
Dash 依赖
可选
libedit (命令行编辑器库)
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/dash
安装Dash
运行以下命令安装Dash:
./configure --bindir=/bin --mandir=/usr/share/man &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install
如果你想让dash作为默认的sh,以root用户重新创建/bin/sh符号链接:
注意
如果创建了从dash到sh的符号链接,则需要将链接重置为bash以构建LFS。
ln -svf dash /bin/sh
命令解释
--bindir=/bin: 该参数将dash二进制文件放入根文件系统。
--with-libedit: 用libedit支持编译Dash。
配置 Dash
配置文件
Dash源 /etc/profile 和 ~/.profile
配置信息
以root用户发出以下命令,更新/etc/shells以包含Dash shell:
cat >> /etc/shells << "EOF"
/bin/dash
EOF
内容
安装程序: dash
安装库: None
安装目录: None
简要描述
dash 是一个POSIX兼容的shell。
7.2 Tcsh-6.24.07
简介Tcsh
Tcsh包包含“Berkeley Unix C shell (csh)的增强但完全兼容的版本”。对于那些更喜欢C语法而不是bash shell的人来说,这是一个有用的替代shell,也因为有些程序需要C shell来执行安装任务。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载MD5校验和: 5a0dfa0874f2dee24e0b36b3ed41d3a2
-
下载大小: 928 KB
-
预计所需的磁盘空间: 11 MB (with tests)
-
预计构建时间: 0.2 SBU (with tests)
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/tcsh
安装Tcsh
运行以下命令安装Tcsh:
./configure --prefix=/usr &&
make
要测试结果,执行: make check.
现在,作为root用户:
make install install.man &&
ln -v -sf tcsh /bin/csh &&
ln -v -sf tcsh.1 /usr/share/man/man1/csh.1
命令解释
ln -v -sf tcsh /bin/csh: FHS声明,如果安装了C shell,应该有一个从/bin/csh到它的符号链接。这就创建了符号链接。
配置 Tcsh
配置文件
C shell有许多配置文件。例如 /etc/csh.cshrc, /etc/csh.login, /etc/csh.logout, ~/.tcshrc, ~/.cshrc, ~/.history, ~/.cshdirs, ~/.login, 和 ~/.logout。关于这些文件的更多信息可以在tcsh(1)手册页中找到。
配置信息
更新/etc/shells以包含C shell程序名(作为root用户):
cat >> /etc/shells << "EOF"
/bin/tcsh
/bin/csh
EOF
下面的~/.cshrc提供了两种可选的颜色提示和彩色的ls输出。如果您希望全局修改,可以作为root用户发出命令,将~/.cshrc替换为/etc/csh.cshrc。
cat > ~/.cshrc << "EOF"
# Original at:
# https://www.cs.umd.edu/~srhuang/teaching/code_snippets/prompt_color.tcsh.html
# Modified by the BLFS Development Team.
# Add these lines to your ~/.cshrc (or to /etc/csh.cshrc).
# Colors!
set red="%{\033[1;31m%}"
set green="%{\033[0;32m%}"
set yellow="%{\033[1;33m%}"
set blue="%{\033[1;34m%}"
set magenta="%{\033[1;35m%}"
set cyan="%{\033[1;36m%}"
set white="%{\033[0;37m%}"
set end="%{\033[0m%}" # This is needed at the end...
# Setting the actual prompt. Two separate versions for you to try, pick
# whichever one you like better, and change the colors as you want.
# Just don't mess with the ${end} guy in either line... Comment out or
# delete the prompt you don't use.
set prompt="${green}%n${blue}@%m ${white}%~ ${green}%%${end} "
set prompt="[${green}%n${blue}@%m ${white}%~ ]${end} "
# This was not in the original URL above
# Provides coloured ls
alias ls ls --color=always
# Clean up after ourselves...
unset red green yellow blue magenta cyan yellow white end
EOF
内容
安装程序: tcsh
安装库: None
安装目录: None
简要描述
tcsh 是Berkeley Unix C shell的增强但完全兼容的版本,csh。它既可用作交互式shell,也可用作脚本处理器。
7.3 zsh-5.9
简介zsh
zsh包包含一个命令解释器(shell),可用作交互式登录shell和shell脚本命令处理器。在标准shell中,zsh与ksh最相似,但包括许多增强。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载 (HTTP): https://www.zsh.org/pub/zsh-5.9.tar.xz
-
下载MD5校验和: 182e37ca3fe3fa6a44f69ad462c5c30e
-
下载大小: 3.2 MB
-
预计所需的磁盘空间: 48 MB (includes documentation and tests)
-
预计构建时间: 1.6 SBU (Using parallelism=4; includes documentation and tests)
额外下载
-
文件MD5校验和: 8db53446f613521fb4f9b0bd9f6adda1
-
文档下载大小: 3.0 MB
注意
当有一个新的zsh版本时,上面显示的旧文件被移动到一个新的服务器目录: https://www.zsh.org/pub/old/.
zsh 依赖
可选
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/zsh
安装zsh
如果你下载了可选的文档,用以下命令解压缩它:
tar --strip-components=1 -xvf ../zsh-5.9-doc.tar.xz
运行以下命令安装zsh:
./configure --prefix=/usr \
--sysconfdir=/etc/zsh \
--enable-etcdir=/etc/zsh \
--enable-cap \
--enable-gdbm &&
make &&
makeinfo Doc/zsh.texi --plaintext -o Doc/zsh.txt &&
makeinfo Doc/zsh.texi --html -o Doc/html &&
makeinfo Doc/zsh.texi --html --no-split --no-headers -o Doc/zsh.html
如果你已经安装了texlive-20220321,你可以通过发出以下命令来构建PDF格式的文档:
texi2pdf Doc/zsh.texi -o Doc/zsh.pdf
要测试结果,执行: make check.
现在,作为root用户:
make install &&
make infodir=/usr/share/info install.info &&
install -v -m755 -d /usr/share/doc/zsh-5.9/html &&
install -v -m644 Doc/html/* /usr/share/doc/zsh-5.9/html &&
install -v -m644 Doc/zsh.{html,txt} /usr/share/doc/zsh-5.9
如果你下载了可选的文档,以root用户发出以下命令来安装它:
make htmldir=/usr/share/doc/zsh-5.9/html install.html &&
install -v -m644 Doc/zsh.dvi /usr/share/doc/zsh-5.9
如果你构建了PDF格式的文档,以root用户发出以下命令来安装它:
install -v -m644 Doc/zsh.pdf /usr/share/doc/zsh-5.9
命令解释
--sysconfdir=/etc/zsh 和 --enable-etcdir=/etc/zsh: 使用这些参数是为了将所有zsh配置文件合并到/etc/zsh目录中。如果您希望通过将所有文件放在/etc目录中来保留历史兼容性,请忽略这些参数。
--enable-cap: 此选项启用POSIX功能。
--enable-gdbm: 该选项允许使用GDBM库。
--enable-pcre: 这个选项允许zsh在shell内置程序中使用PCRE正则表达式库。
配置 zsh
配置文件
zsh有一整套配置文件,包括/etc/zsh/zshenv, /etc/zsh/zprofile, /etc/zsh/zshrc, /etc/zsh/zlogin 和 /etc/zsh/zlogout。您可以在zsh(1)和相关手册页中找到有关这些的更多信息。
第一次执行zsh时,会出现询问几个问题的消息。答案将用于创建一个~/.zshrc文件。如果您希望再次运行这些问题,请运行zsh /usr/share/zsh/5.9/functions/zsh-newuser-install -f。
有几个内置的高级提示符。在zsh shell中,使用autoload -U promptinit启动高级提示支持,然后使用promptinit。可用的提示符名称用prompt -l列出。选择带有prompt <prompt-name>提示符的特定文件。使用prompt -p显示所有可用的提示符。除了上面的列表和显示命令外,您可以在~/.zshrc中插入其他命令,以便在shell启动时自动执行,并使用您选择的提示符。
配置信息
更新/etc/shells以包含zsh shell程序名(作为root用户):
cat >> /etc/shells << "EOF"
/bin/zsh
EOF
内容
安装程序: zsh 和 zsh-5.9 (彼此硬链接)
安装库: /usr/lib/zsh/5.9/ 下的众多插件辅助模块
安装目录: /usr/{lib,share}/zsh 和 /usr/share/doc/zsh-5.9
简要描述
zsh 是一个shell,它具有命令行编辑、内置拼写纠正、可编程命令完成、shell函数(带有自动加载)、历史机制和许多其他特性。