Post em Destaque

Do CVS ao SVN – montando um mirror para source e ports do FreeBSD

Bem, está tendo uma grande discussão na lista freebsd-stable desde que saiu o FreeBSD 9.1 RC1 pois para quem quiser experimentar esse RC só tem 2 caminhos: Baixar a ISO do FreeBSD 9.1 RC1 aqui e instalar o sistema do zero. Atualizar uma instalação do FreeBSD 9 para essa RC e para fazer isso o velho...

Leia mais...

Script para instalar o bash e configurar o ambiente com aliases e vim

Postado por gondim | Categoria FreeBSD, Shell Script | Dia 03-05-2012

Tags:, , , , ,

2

Comecei minha vida *NIX usando Xenix e SCO Unix, nessa época usava “sh” como shell e “vi” como editor, isso era em 1991 à 1994 se eu me recordo bem. Nessa época eu era Programador Clipper Summer 87 no mundo DOS e Programador COBOL no mundo *NIX. Em 1996 me apresentaram minha primeira distribuição GNU/Linux, o Slackware cujo kernel era o Linux 1.2.13. Com o tempo comecei à usar o bash e o vim no lugar dos anteriores e gostei destes pois eram mais amigáveis e no caso do bash parecia ter mais recursos.  🙂  Em 2010 quando comecei à usar o FreeBSD tentaram me convencer à usar o csh/tcsh, tentei mas o vício no bash foi mais forte. rsrsrs  Então resolvi adaptar o ambiente shell que eu tinha no GNU/Linux para o FreeBSD e baseado nessa tentativa fiz um script para automatizar o processo. O script abaixo é livre para ser usado e alterado e estou aceitando melhorias.  😀

O que esse script faz é o seguinte:

1º – Atualiza o Ports.

2º – Instala o bash.

3º – Muda a shell do root para bash.

4º – Muda o prompt na shell para um prompt mais informativo. Fique à vontade de alterar para o seu gosto, se já possuir algum. Se estiver logado como root a palavra “root” fica em vermelho para lembrar de ter cuidado por estar logado como root.

5º – Cria os aliases: “l” para listar muito mais informação como arquivos e diretórios que comecem com “.”, com identificação colorida diferenciando diretórios, arquivos executáveis dentre outros. Também inclui na listagem a coluna de flags modificada pelo utilitário chflags que é um utilitário muito importante em configurações de segurança. “rm”, “mv”, “cp” com o parâmetro “-i” para forçar uma confirmação se realmente quer apagar, mover ou copiar por questões de segurança. Como os aliases possuem o mesmo nome dos comandos se quiser rodá-los em sua forma original, ou seja, sem o “-i” basta rodar o comando com uma “\” antes. Exemplos:

Usando o alias com o “-i”:

# rm teste
remove teste?

Usando o comando sem o “-i”, anulando o alias:

# \rm teste
#

Também é adicionado o alias “vi” apontando para o editor vim.

6º – Instala e configura o vim.

7º – Configura teclas como home, end e del para funcionarem amigavelmente.

Abaixo o script:

#!/bin/sh
# MyFreeHome 1.2: Configura ambiente amigavel no FreeBSD
# ======================================================
# Data: 20/09/2011
# Hora: 23:59
# Baseado no documento: http://www.cyberciti.biz/faq/freebsd-install-vim-editor-without-x11-gui/
##############################################################
clear
echo “=== MyFreeHome 1.2 ===”
echo
echo “Atualizando Ports…”
echo
portsnap fetch update
echo
echo “Instalando BASH…”
echo
cd /usr/ports/shells/bash
make install clean distclean
echo
echo “Mudando shell do root para bash…”
pw usermod root -s /usr/local/bin/bash
echo
echo “Instalando novo prompt e aliases…”
echo “if [ \`/usr/bin/whoami\` = ‘root’ ]” >> /root/.profile
echo ”   then” >> /root/.profile
echo ”        PS1=’\[\033[36m\](\[\033[01;31m\]\u\[\033[01;37m\]@\h\[\033[00m\]\[\033[36m\])\[\033[00m\]\[\033[36m\][\[\033[01;37m\]\w\[\033[00m\]\[\033[36m\]]\[\033[01;37m\]\[\033[36m\]\\$ \[\033[00m\]'” >> /root/.profile
echo ”   else” >> /root/.profile
echo ”          PS1=’\[\033[36m\](\[\033[32;33;1m\]\u\[\033[01;37m\]@\h\[\033[00m\]\[\033[36m\])\[\033[00m\]\[\033[36m\][\[\033[01;37m\]\w\[\033[00m\]\[\033[36m\]]\[\033[01;37m\]\[\033[36m\]\\$ \[\033[00m\]'” >> /root/.profile
echo “fi” >> /root/.profile
echo “” >> /root/.profile
echo ‘alias l=”ls -laAGo”‘ >> /root/.profile
echo ‘alias rm=”rm -i”‘ >> /root/.profile
echo ‘alias mv=”mv -i”‘ >> /root/.profile
echo ‘alias cp=”cp -i”‘ >> /root/.profile
echo ‘alias vi=”vim”‘ >> /root/.profile
echo
echo “Instalando VIM sem suporte a X11…”
cd /usr/ports/editors/vim
make WITHOUT_X11=yes install clean distclean
cp /usr/local/share/vim/vim73/vimrc_example.vim /usr/local/share/vimrc
touch /root/.vimrc
echo “set nocompatible” >> /root/.vimrc
echo “filetype on” >> /root/.vimrc
echo “filetype plugin on” >> /root/.vimrc
echo “set laststatus=2” >> /root/.vimrc
echo “syntax on” >> /root/.vimrc
echo
echo “Criando melhorias no sistema…”
echo
echo “export INPUTRC=/usr/local/etc/inputrc” >> /etc/profile
echo “set meta-flag on” >> /usr/local/etc/inputrc
echo “set input-meta on” >> /usr/local/etc/inputrc
echo “set convert-meta off” >> /usr/local/etc/inputrc
echo “set output-meta on” >> /usr/local/etc/inputrc
echo “” >> /usr/local/etc/inputrc
echo ‘”\e[1~”: beginning-of-line’ >> /usr/local/etc/inputrc
echo ‘”\e[4~”: end-of-line’ >> /usr/local/etc/inputrc
echo ‘”\e[5~”: beginning-of-history’ >> /usr/local/etc/inputrc
echo ‘”\e[6~”: end-of-history’ >> /usr/local/etc/inputrc
echo ‘”\e[3~”: delete-char’ >> /usr/local/etc/inputrc
echo ‘”\e[2~”: quoted-insert’ >> /usr/local/etc/inputrc
echo ‘”\e[5C”: forward-word’ >> /usr/local/etc/inputrc
echo ‘”\e[5D”: backward-word’ >> /usr/local/etc/inputrc
echo
echo ” Fim de instalacao! Favor relogar e bom uso!”
echo

Testem o script primeiramente em um ambiente de testes, se gostarem do resultado então façam bom proveito deste.

Share Button

Comments (2)

Na boa, sacangem quer usar bash vai para o linux seu herege !!
Brincadeiras a parte,
Realmente concordo quanto as praticidades do bash e korn shell antigamente quando estava vindo do linux, mais agora que estou na onda do tcshell(csh) o complicado é voltar a usar bash.
Acabou virando discussão de time de futebol !! embora a biblioteca de conexão para postgresql disponibilizada para bash é uma mão na roda !!!

Grande Paulo! Pois é, é difícil largar o tal bash. rsrsrs No curso o pessoal tentou me converter com algumas confs da outra shell mas tipo não consegui mudar. 🙂

grande abraço

Write a comment

*