você está aqui: Home  → Arquivo de Mensagens

Faça a sua vida mais facil com o uso de aliases (cont...)

Colaboração: Paulo Antonio Hypolito Rodrigues

Data de Publicação: 09 de Junho de 1998

Outra construcao possivel alem do alias e a funcao:

Os scripts abaixos estao sendo usados no Solaris 2.3, 2.4 e 2.5.1, AIX 4.1 (com o bash versao 2.00.0(1)), Red Hat 5.0 (bash 1.14.7-6), Slackware (bash 1.14.7(1)):

Para testar um arquivo *.tar.gz quando o tar nao e' da GNU:

function tgz() { 
        cat $1 | gunzip | tar -tvf - 
        }

Para encontrar um arquivo no disco com o find:
(locate e' melhor!)

# csh # alias find 'find \!:1 -name "\!:2" -print'
 
function find() {
        find $1 -name $2 -print
        }

Onde $1 e' o nome do diretorio e $2 e a string procurada.

Observacao:

No csh o alias acima funciona bem.

No bash tem ocorrido com comando find independente de ser um alias ou funcao alguns crash's gerando o arquivo de core e encerrando a sessao de telnet ou fechando o terminal aberto na maquina.

Como o sh no linux e' um link simbolico para o bash nao ha' como usar o find no linux quando os unicos shells disponiveis sao o sh e bash como default de instalacao.

Alias "anti-comedores de disco", geralmente eu rodo este alias como root, mas funciona para qualquer usuario, o objetivo e determinar quem esta ocupando espaco excessivo no disco:

# csh # alias ud 'du -sk * | sort -nr | more'
function ud() {
       du -sk * | sort -nr | more
       }

Abrir um xterm com uma maquina remota usando o ssh:

function rxt() {
        xhost $1;
        xterm -T "[${1}:$USER]" -n "[$1]"  -e ssh $1 &
        }

Onde $1 e' o nome da maquina remota

O titulo da janela aberta (opcao -T) [<nome da maquina remota>:<nome do usuario>]

O titulo do icone quando esta minimizada no desktop (opcao -n) [<nome da maquina remota>]

Observacao:

Pode-se contruir no .login um script que pergunte logo apos o login na maquina remota o seguinte:

Indique a maquina que e servidora de janelas [maquina.dominio.br]:

e sugerindo um nome default tanto para o bash quanto para o csh evitando que o usuario tenha que dar o comando:

#csh# setenv DISPLAY servidor:0
#bash# DISPLAY=servidor:0 ; export DISPLAY
—------------------
#
# set display for remote logins (csh - Solaris 2.4)
#
 
if (("$TERM" == "xterm" || "$TERM" == "sun-cmd" || "$TERM" == "vs100" ) &&
"${?DISPLAY}" == "0") then
  set WINTTY = ""tty""
  set WINTTY = ""basename $WINTTY""
  set WINHOST = `who | grep $WINTTY | awk -F"(" '{print $2}' - | awk -F")"
'{print $1}' - | sed -e 's;\.na-sp[\.a-zA-Z]*;.na-sp.rnp.br;g' | awk -F":"
'{print $1}' -|head -1`
  if ( "x$WINHOST" == "x" ) then
    set WINHOST = ""hostname""
  endif
  echo -n "Indique a maquina que e servidora de janelas [$WINHOST]: "
  set xserver=$<
  if ("x$xserver" == "x") then
    set xserver=$WINHOST
  endif
  setenv DISPLAY "${xserver}:0"
endif

Onde na-sp.rnp.br e' o dominio da minha maquina, nao estranhe se nao aparecer o nome da sua maquina.

Outro exemplo e' o pine. Quando encerramos o pine a janela e' automaticamente fechada:

function ml() {
        xterm -T "[$HOSTNAME:$USER]" -n "[Pine]"  -e pine &
        }


Veja a relação completa dos artigos de Paulo Antonio Hypolito Rodrigues