De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


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 &
          }

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


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