Subscrever RSS Subscrever RSS
Edição de 31-03-2024
  • Edição Actual
  • Jornal Online

    Arquivo: Edição de 15-03-2008

    SECÇÃO: Tecnologias


    Alias Howto

    Este howto vai tentar explicar as vantagens de usar “alias”, como fazê-los..., e também irá falar de funções.

    1. Introdução

    Os alias e funções podem ser muito úteis para um utilizador de GNU/Linux, entre outros UNIXes, claro está. Quando nos referimos a eles logicamente que estamos a falar de shells (...).

    Isto são apenas abreviaturas de comandos para facilitar o uso de comandos complexos sem ter que se escrever muito.

    As funções em relação aos alias tornam--se mais poderosos, já que acabam por se tornar numa função normal da shell.

    Vou tentar explicar como se utiliza isto noutras shells que não o bash, com os poucos conhecimentos que tenho sobre outras, já que normalmente só uso bash.

    1.1. Disclamer

    Em princípio tudo que é posto aqui não irá causar nenhum problema ao vosso sistema, mas se por alguma razão vocês fizerem asneira, a culpa será só vossa, não me podendo responsablizar por tal.

    1.2. Comentários

    Peço desculpa pelo meu Português, que está longe de ser correcto.

    Este documento poderá ser encontrado em http://www.bubix.net/~coolmaster ou em http://www.linux-newbies.web.pt.

    Se acharem que alguma coisa está errada aqui, podem enviar-me algum tipo de comentário para o email ou no IRC, irc.PTlink.net no #PST ou irc.PTnet.org no #Tavola.

    Sites de referência para ajuda:

    http://www.linux-newbies.web.pt

    http://www.linuxdoc.org

    http://www.gnu.org

    2. Bash

    Vou explicar, usando a shell bash porque, para além de ser a mais usada na comunidade GNU/Linux, sendo a default, é tambem a que eu uso.

    Nesta shell é relativamente simples escrever alias e funções.

    Podemos usá-los como noutras shells na command line mas, para estarem disponíveis para outras sessões é necessário colocá--los num ficheiro de inicialização. Geralmente põem-se em .bashrc na HOME, mas podem ser usados noutro ficheiro de inicialização da sessão shell.

    2.1. Alias

    Tal como o nome indica, podemos criar atalhos para diversos comandos.

    Para isso existe um shell built in command chamado de alias.

    Para poder ver os alias activos nessa sessão usa-se `alias` sem argumentos.

    Para colocar um alias poderá usar-se:

    alias nome=valor

    Onde o valor não passa de um ou mais comandos. Deverá ser embutido em ´´ou´´ ...

    Com o seguinte alias, podemos ver o output do ls a cores:

    alias ls='ls --color=tty'

    Se reparar, estamos a definir um alias com o nome do comando em que vai ser utilizado, o que é possível... O simples `ls` não mostra cores, mas usando `ls --color=tty` já usaria. De referir também que podem aceitar--se parâmetros normais do `ls`; por exemplo, `ls -l` seria válido na mesma, tornando-se algo como 'ls --color=tty -l'.

    Como qualquer comando de shell podemos redireccionar outputs. Por exemplo:

    alias psgrep='ps ax | grep'

    Usando o comando `psgrep nome` ele faria o 'ps ax' redireccionando o output para o grep e o grep usaria o 'nome' como parâmetro.

    Não há muito a falar de alias já que, como se vê, são comandos normais usados como atalhos. Qualquer comando escrito na shell é valido em alias. Claro que, como podem ver, o alias tem algumas limitações; uma delas é que só o último comando pode aceitar argumentos postos pelo utilizador, o que torna as funções uma escolha mais atractiva.

    Para se eliminar um alias pode-se usar `unalias`.

    2.2. Funções

    As funções o que são? Como já disse em cima, funções para servir de uma certa forma como aliases são muito parecidas e têm as mesmas capacidades que uma função ou qualquer código em shell scripting também tem.

    Para utilizarmos funções é necessário ter em conta as seguintes coisas: uma delas é que não existe nenhuma keyword que as defina, apenas o nome seguido por '()', o que simbolizará uma função.

    Outro aspecto é ser seguido de '{', onde o código será imbutido e fechado com '}', que é um bloco normal.

    Exemplificando:

    nome () {

    comandos

    }

    (Nota: não precisa de ter obrigatoriamente esta formatação.)

    Como se pode imaginar, pode-se fazer o que se quiser, vamos supor o seguinte exemplo:

    psgrep () {

    ps ax | grep $1 | grep -v grep

    }

    Se repararmos é uma versão um pouco mais avançada do que foi posto na secção de alias. Vemos que aceita um parâmetro especificado por '$1'.

    Poderíamos por exemplo ter:

    lsgrep () {

    ls $1 | grep $2

    }

    E desta forma o $1 já aceitaria também um parâmetro, mas isto reduzia-nos a ter que especificar um parâmetro obrigatório para o `ls`, caso contrário iríamos ter problemas... é aqui que entra mais uma feature de shell scripting, que é o uso de condições. Poderíamos por exemplo fazer:

    lsgrep () {

    if [ $# == 0 ]; then

    echo "Faltam parametros"

    elif [ $# == 1 ]; then

    result=`ls | grep $1`

    else

    result=`ls $1 | grep $2`

    fi

    for r in $result; do

    echo $r

    done

    unset r result

    }

    Como podemos analisar nesta função, temos condições (if, elif, else), temos loops (for), temos variáveis... Como vemos podemos usar tudo o que se usa num shell script. Claro que este exemplo pode ser levado ao extremo da perfeição.

    De referir que é necessário fazer o `unset` às variaveis, senão elas mais tarde iriam conter os valores anteriores, o que daria resultados um pouco inesperados.

    Também se pode utilizar nos comandos dos alias/funções, os próprios alias e funções.

    3. Noutras shells

    Na Bourne Shell (sh) os alias funcionam da mesma forma que na Bourne Again Shell (bash); na korn shell (ksh) o formato também é parecido.

    Os alias na C shell (csh, tcsh) também funcionam da mesma forma, só que não é necessário usar o '=' após o nome, mas sim um espaço em branco.

    Todas estas shells têm o `unalias`.

    Algumas shells diferem nas opções do `alias` e `unalias`. Para isso, ver a ajuda de cada uma.

    As funções na sh, ksh são iguais às de bash ou não fossem Bourne Shell based.

    4. Conclusão

    Como vemos, os alias são assuntos muito fáceis de se compreender, tal como trabalhar poupando imenso trabalho ao escrever toda a linha de cada comando de uma forma simples.

    Em relação às funções, são igualmente simples, só que aí já se pode exigir algum conhecimento de shell scripting, caso queiramos aventurar-nos um pouco mais.

    De referir outra vez que, para terem alias e funções sempre disponiveis em todas as sessões tem que se colocá-las num script de inicialização.

    Por: Nélson Rocha*

    * [email protected]

     

    Outras Notícias

    · A Memória do Rato

     

    este espaço pode ser seu Este espaço pode ser seu Este espaço pode ser seu
    © 2005 A Voz de Ermesinde - Produzido por ardina.com, um produto da Dom Digital.
    Comentários sobre o site: [email protected].