Xonsh - Um Shell para os Amantes de Python

O Xonsh é uma Shell e um prompt de comando compatíveis com Unix, Python e multiplataforma.

Xonsh - Um Shell para os Amantes de Python

Já faz um tempo que eu conheci o Xonsh, desde o dia que eu resolvi passear por alguns aplicativos do Portage e encontrei o Xonsh . Á princípio só fiz um teste básico , mas só depois de um tempo resolvi descobri ver o que tem de diferente nesse Shell. E instalei a versão mais recente (que não está nos repositórios das distros) , bem como também suas dependências que o deixam mais intuitivo.

Vamos lá conhecer esse Xonsh!

Introdução

O Xonsh é uma Shell e um prompt de comando compatíveis com Unix, Python e multiplataforma, disponível para Linux, macOS e Windows. É destinado à especialistas e novatos. Para quem é desenvolvedor Python, o Xonsh é uma verdadeira mão na roda , pois ele é praticamente um utilitário híbrido e reconhece duas linguagens no mesmo ambiente.

Instalação

O Xonsh está disponível no repositório das principais distribuições Linux, e você pode instalá-lo usando seu gerenciador de pacotes, assim:

Lembrando que na maioria das distribuições, o Xonsh não está com sua versão atualizada.

emerge xonsh # Gentoo, Funtoo, Sabayon e similares
sudo apt install xonsh # Debian, Ubuntu, Mint e similares
pacman -S xonsh # Arch Linux, Manjaro e similares

Mas a forma mais correta, na minha opinião, de instalá-lo é:

Portage

emerge dev-python/ply prompt_toolkit setproctitle wcwidth pygments

APT

python3-ply python3-prompt-toolkit python3-pygments python3-setproctitle python3-wcwidth

Para sua distribuição, use o comando de busca do gerenciador e pesquise o nome dessas dependências

git clone https://github.com/xonsh/xonsh.git
cd xonsh
sudo python setup.py install

Certifique-se que o comando python está apontando para o Python3.6 ls -l /usr/bin/python*, se não estiver, remova e recrie o link simbólico, exemplo:

sudo rm /usr/bin/python
sudo ln -sf /usr/bin/python3.6 /usr/bin/python

Configurações

Após instalado, você pode entrar/rodar o Xonsh, apenas rodando o comando xonsh , mas você verá que o mesmo funcionará, no entanto, isso pode lhe confundir. Para evitar isso, saia do xonsh exit e crie um arquivo de configuração vim ~/.xonshrc com as configurações básicas:

Lembrando que essas configurações podem ser encontradas, digitando Ctrl + f no seu navegador na página principal do Xonsh https://xon.sh/ e depois digitando xonshrc , ou indo até secção: Config Files and Settings e depois no link Snippets for xonshrc que seria o mesmo em ir direto no link: https://xon.sh/xonshrc.html#snippets-for-xonshrc

# alias to quit AwesomeWM from the terminal
def _quit_awesome(args, stdin=None):
    lines = $(ps ux | grep "gnome-session --session=awesome").splitlines()
    pids = [l.split()[1] for l in lines]
    for pid in pids:
        kill @(pid)

aliases['qa'] = _quit_awesome

# some customization options, see https://xon.sh/envvars.html for details
$MULTILINE_PROMPT = '`·.,¸,.·*¯`·.,¸,.·*¯'
$XONSH_SHOW_TRACEBACK = True
$XONSH_STORE_STDOUT = True
$XONSH_HISTORY_MATCH_ANYWHERE = True
$COMPLETIONS_CONFIRM = True
$XONSH_AUTOPAIR = True

Se quiser usar um Prompt customizado adicione essa linha: $PROMPT = '{user}@{hostname}:{cwd} > '

De acordo com a documentação: Config Files and Settings » Environment Variables » $PROMPT » https://xon.sh/tutorial.html#customizing-the-prompt , além de incluí-lo na sua lista de Shells which xonsh | sudo tee -a /etc/shells ou até mesmo torná-lo seu shell padrão: chsh -s $(which xonsh) e também echo '$SHELL = \'/usr/bin/xonsh\'' >> ~/.xonshrc

Utilização

Você pode customizar ainda mais seu PROMPT, cores, criar funções, aliases,… entre diversas customizações para variáveis de ambiente, utilizar o Python e o Shell diretamente via linha de comando . Assista ao vídeo e saiba mais:

O que você achou do Xonsh ? Conte-nos nos comentários!

Compartilhe

Marcos Oliveira

Autor
Marcos Oliveira
Desenvolvedor de Software
youtube.com/TerminalRootTV

Pacote Promocional com Todos os Cursos

Adquira todos os cursos para se tornar um ninja do Terminal e do Linux.

Artigos Relacionados



Comentários



Conheça