zsh-5.9.2

Introdução ao zsh

O pacote zsh contém um interpretador de comandos (shell) utilizável como um shell de login interativo e como um processador de comando de script de shell. Dos shells padrão, o zsh é o que mais se assemelha ao ksh, mas inclui muitos aprimoramentos.

[Nota]

Nota

Esse pacote é conhecido por construir e funcionar adequadamente usando-se uma plataforma LFS 13.1.

Informação do Pacote

  • Transferência (HTTP): https://www.zsh.org/pub/zsh-5.9.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5c8305ba85166838ef062c5e7b245820

  • Tamanho da transferência: 3,3 MB

  • Espaço em disco estimado exigido: 66 MB (inclui documentação e testes)

  • Tempo de construção estimado: 1,6 UPC (Usando paralelismo=4; inclui documentação e testes)

[Nota]

Nota

Quando existe um lançamento novo do zsh, os arquivos antigos mostrados acima são movidos para um novo diretório do servidor: https://www.zsh.org/pub/old/ .

Dependências do zsh

Opcionais

Valgrind-3.27.1 e yodl

Instalação do zsh

Os arquivos de documentação contém referências aos arquivos de configuração do zsh em /etc, mas nós usaremos /etc/zsh para armazenar esses arquivos de configuração em vez disso. O sistema de construção atualizará essas referências se o pacote yodl estiver disponível, mas ele está fora do escopo do BLFS. Como resultado, nós precisamos corrigir as referências manualmente:

sed -e 's|/etc/z|/etc/zsh/z|g' \
    -i Doc/*.*

Instale zsh executando os seguintes comandos:

./configure --prefix=/usr            \
            --sysconfdir=/etc/zsh    \
            --enable-etcdir=/etc/zsh \
            --enable-cap             \
            --enable-gdbm            \
            --enable-pcre            &&
make                                 &&

makeinfo  Doc/zsh.texi --html      -o Doc/html &&
makeinfo  Doc/zsh.texi --plaintext -o zsh.txt  &&
makeinfo  Doc/zsh.texi --html --no-split --no-headers -o zsh.html

Se você tiver texlive-20260301 instalado, poderá construir a documentação no formato PDF emitindo o seguinte comando:

texi2pdf Doc/zsh.texi -o Doc/zsh.pdf

Para testar os resultados, emita: make check.

Agora, como o(a) usante root:

make install                                                    &&
make infodir=/usr/share/info install.info                       &&
make htmldir=/usr/share/doc/zsh-5.9.2/html install.html         &&
install -v -m644 zsh.{html,txt} Etc/FAQ /usr/share/doc/zsh-5.9.2

Se você construiu o formato PDF da documentação, [então] instale-o emitindo o seguinte comando como o(a) usuário(a) root:

install -v -m644 Doc/zsh.pdf /usr/share/doc/zsh-5.9.2

Explicações do Comando

--sysconfdir=/etc/zsh e --enable-etcdir=/etc/zsh: Esses parâmetros são usados para que todos os arquivos de configuração do zsh sejam consolidados no diretório /etc/zsh. Omita esses parâmetros se você desejar manter a compatibilidade histórica tendo todos os arquivos localizados no diretório /etc.

--enable-cap: Essa opção habilita os recursos POSIX.

--enable-gdbm: Essa opção habilita o uso da biblioteca GDBM.

--enable-pcre: Essa opção permite que o zsh use a biblioteca de expressões regulares PCRE2 em integrados de shell.

Configurando o zsh

Arquivos de Configuração

Existe toda uma série de arquivos de configuração para o zsh, incluindo /etc/zsh/zshenv, /etc/zsh/zprofile, /etc/zsh/zshrc, /etc/zsh/zlogin e /etc/zsh/zlogout. Você consegue encontrar mais informação a respeito deles na zsh(1) e nas páginas de manual relacionadas.

Crie um arquivo /etc/zsh/zprofile básico. Assim como o /etc/profile fornecido em Os Arquivos de Iniciação do Shell Bash, ele configura algumas funções auxiliares e alguns parâmetros básicos e, em seguida, carrega os conjuntos de comandos sequenciados em /etc/profile.d:

install -vdm755 /etc/zsh &&
cat > /etc/zsh/zprofile << "EOF"
# Begin /etc/zsh/zprofile
# Written for Beyond Linux From Scratch

# System wide environment variables and startup programs.

# Functions to help us manage paths.  Second argument is the name of the
# path variable to be modified (default: PATH)
pathremove () {
        local IFS=':'
        local NEWPATH
        local DIR
        local PATHVARIABLE=${2:-PATH}
        for DIR in ${(P)=PATHVARIABLE} ; do
                if [ "$DIR" != "$1" ] ; then
                  NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
                fi
        done
        export $PATHVARIABLE="$NEWPATH"
}

pathprepend () {
        pathremove $1 $2
        local PATHVARIABLE=${2:-PATH}
        export $PATHVARIABLE="$1${(P)PATHVARIABLE:+:${(P)PATHVARIABLE}}"
}

pathappend () {
        pathremove $1 $2
        local PATHVARIABLE=${2:-PATH}
        export $PATHVARIABLE="${(P)PATHVARIABLE:+${(P)PATHVARIABLE}:}$1"
}

# Set the initial path
export PATH=/usr/bin

# Attempt to provide backward compatibility with LFS earlier than 11
if [ ! -L /bin ]; then
        pathappend /bin
fi

if [ $EUID -eq 0 ] ; then
        pathappend /usr/sbin
        if [ ! -L /sbin ]; then
                pathappend /sbin
        fi
        unset HISTFILE
fi

# Set some defaults for graphical systems
export XDG_DATA_DIRS=${XDG_DATA_DIRS:-/usr/share}
export XDG_CONFIG_DIRS=${XDG_CONFIG_DIRS:-/etc/xdg}
export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/tmp/xdg-$USER}

for script in /etc/profile.d/*.sh ; do
        if [ -r $script ] ; then
                . $script
        fi
done

unset script

# End /etc/zsh/zprofile
EOF

Na primeira vez que o zsh for executado, você será avisado(a) por mensagens com várias perguntas. As respostas serão usadas para criar um arquivo ~/.zshrc. Se desejar executar essas perguntas novamente, [então] execute zsh /usr/share/zsh/5.9.2/functions/zsh-newuser-install -f.

Existem vários prompts avançados integrados. No shell zsh, inicie o suporte avançado de prompt com autoload -U promptinit e, em seguida, promptinit. Os nomes disponíveis de prompt são listados com prompt -l. Selecione um em particular com prompt <nome-de-prompt>. Exiba todos os prompts disponíveis com prompt -p. Exceto os comandos list e display acima, você consegue inserir os outros em ~/.zshrc para serem executados automaticamente quando o shell iniciar, com o prompt que escolher.

Informação de Configuração

Atualize /etc/shells para incluir os nomes do aplicativo de shell zsh (como o(a) usuário(a) root):

cat >> /etc/shells << "EOF"
/bin/zsh
EOF

Conteúdo

Aplicativos Instalados: zsh e zsh-5.9.2 (rigidamente vinculados entre eles)
Bibliotecas Instaladas: Numerosos módulos auxiliares de plugin sob /usr/lib/zsh/5.9.2/
Diretórios Instalados: /usr/{lib,share}/zsh e /usr/share/doc/zsh-5.9.2

Descrições Curtas

zsh

é um shell que tem edição de linha de comando, correção ortográfica integrada, completamento programável de comando, funções de shell (com carregamento automático), um mecanismo de histórico e uma série de outros recursos