2010-09-15

Advanced Shell no N900 (BASH 3.2)

Como todo bom viciado em Bash, e Gentoo Linux, resolvi deixar o N900 mais próximo de um ambiente Gentoo:

0) Presumo que você já tenha acesso modo root, com o gainroot (pacote rootsh) e openssh instalados, reparem o gainroot é parte da FW original do N900, contudo o gainroot que vem instalado apenas lhe exibe uma mensagem de alerta!

$ /usr/sbin/gainroot
Enable RD mode if you want to break your device

1) Instale o pacote bash3, olhe só o description do pacote, fiz um pacote mais ou menos assim para o N810, está no meu repositório.
Description: The GNU Bourne Again SHell branch 3.x, tuned for maemo
 Bash is a command-line program which may replace your standard
 command-line shell with a improved, feature-rich interface.
 .
 Bash is an sh-compatible command language interpreter that executes
 commands read from the standard input or from a file.  Bash also
 incorporates useful features from the Korn and C shells (ksh and csh).
 .
 This is a special version for the Maemo platform, with everything
 that is not too useful on a Internet Tablet stripped off.
2) Rode o comando bash-setup, logado em cada usuário que deseja a Advanced Shell, o modo mais fácil é logar pelo ssh como root, rodar o script, depois definir uma senha para o usuário user (isso mesmo!), e em seguida entrar no ssh como user, e rodar o script novamente.


ATENÇÃO: Nunca remova o Busybox, isso irá detonar o N900.

3) Instalae o vim, e não remova o link simbólico do busybox para o vi!

4) Quem já usou Gentoo deve sentir muita falta da Advanced Shell, agora mais uns ajustes finos, faça nos dois usuários (root e user)

4.1) Ajustes do vim, não são perfeitos mas ajudam muito:
Crie o arquivo ~/.vimrc , com o seguinte conteúdo:
set nocompatible        " Use Vim defaults (much better!)
set bs=2                " Allow backspacing over everything in insert mode
set history=100          " keep 50 lines of command history
set ruler               " Show the cursor position all the time


set viminfo='20,\"500   " Keep a .viminfo file.


syntax on
set hlsearch
4.2) Ajustes da BAsh, esses sim fazem falta, sempre coloco no Ubuntu e outras distros... com os 3 arquivos abaixo a bash fica muito legal e com a cara do Gentoo!

4.2.1) Crie o arquivo ~/.bashrc
if type -P dircolors >/dev/null ; then
   if [[ -f ~/.dir_colors ]] ; then
        eval $(dircolors -b ~/.dir_colors)
   elif [[ -f /etc/DIR_COLORS ]] ; then
        eval $(dircolors -b /etc/DIR_COLORS)
   fi
fi


if [[ ${EUID} == 0 ]] ; then
    PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
else
    PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
fi


umask 022
export PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH


export HISTSIZE=1000
export HISTFILESIZE=1000


PROMPT_COMMAND="history -a; $PROMPT_COMMAND"


# Change the window title of X terminals
case ${TERM} in
        xterm*|rxvt*|Eterm|aterm|kterm|gnome*|interix)
                PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
                ;;
        screen)
                PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\033\\"'
                ;;
esac


shopt -s checkwinsize
# Enable history appending instead of overwriting.  #139609
shopt -s histappend
4.2.2) Crie o arquivo ~/.profile
# ~/.profile: executed by Bourne-compatible login shells.


if [ "$BASH" ]; then
  if [ -f ~/.bashrc ]; then
    . ~/.bashrc
  fi
fi
mesg n
4.2.3) Para autocompletar comandos já usado, crie o arquivo ~/.inputrc
"\e[5~": history-search-backward
"\e[6~": history-search-forward 
Comece a digitar um comando já usado e toque em PageUp e PageDown para completar o comando, oh coisa boa!

Ficaremos com um prompt vermelho para o root e verde para outros usuários e com histórico de 1000 comandos, dentre outras coisas!

5) Altere o gainroot para usar a bash, como root:
$ vim /usr/sbin/gainroot


Edite a linha:
HISTFILE=/root/.ash_history /bin/ash

Para:
HISTFILE=/root/.bash_history /bin/bash

Agora só por o X Terminal com fundo preto e letras brancas! :P

Nenhum comentário: