Post em Destaque

Novo Playstation com um sistema operacional baseado em FreeBSD ao invés de “feito todo em casa” como antes.

O novo PS4 deverá vir com um novo Sistema Operacional. Sim pelos dados coletados será baseado no FreeBSD devido ao suporte que tem com GPU. Sem falar outras características como estabilidade, performance e até mesmo a licença BSD que eu particularmente acredito ser muito mais interessante para a...

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

*