Trabalhando com shell e variáveis de ambiente

Este artigo contém informações sobre os interpretadores de comando do Linux, variáveis de ambiente locais e globais, criação váriaveis de ambiente, configuração dos arquivos /etc/profile, .bash_profile, /etc/bashrc, .bashrc e /etc/skel. Descreve a aplicação de aliases locais e globais e um pouco do comando history.

[ Hits: 283.142 ]

Por: Cristian Alexandre Castaldi em 05/04/2004


O diretório /etc/skel, aliases e histórico



Uma boa solução de configuração de ambiente está no diretório /etc/skel, este diretório contém os modelos dos arquivos de ambiente que são carregados para o diretório pessoal no momento em que for criada uma conta no sistema. Configurando estes arquivos não haverá a necessidade de configurar estes arquivos separadamente para cada usuário. Observe os arquivos que estão contidos no diretório:

$ ls -la /etc/skel/
total 40
drwxr-xr-x    2 root     root         4096 Mai 13  2003 .
drwxr-xr-x   55 root     root         4096 Mar 17 13:44 ..
-rw-r--r--    1 root     root         3304 Mar  7  2002 .Xdefaults
-rw-r--r--    1 root     root          508 Ago  2  2001 .alias
-rw-r--r--    1 root     root           24 Mar  7  2002 .bash_logout
-rw-r--r--    1 root     root          230 Mar  7  2002 .bash_profile
-rw-r--r--    1 root     root          124 Mar  7  2002 .bashrc
-rw-r--r--    1 root     root          154 Ago  2  2001 .cshrc
-rw-r--r--    1 root     root         3511 Set  6  2001 .screenrc
-rw-r--r--    1 root     root          593 Mar  7  2002 .xserverrc


Agora vamos falar de um comando que permite criar um apelido para um comando ou programa, este comando chamamos de alias. Veja um exemplo:

# alias l='ls -la color=auto'
# l /usr/local
total 48
drwxr-xr-x   12 root     root         4096 Mai 13  2003 ./
drwxr-xr-x   18 root     root         4096 Jul 31  2003 ../
drwxr-xr-x    2 root     root         4096 Fev  6  1996 bin/
drwxr-xr-x    2 root     root         4096 Fev  6  1996 doc/
drwxr-xr-x    2 root     root         4096 Fev  6  1996 games/
drwxr-xr-x    2 root     root         4096 Abr 28  2000 include/
drwxr-xr-x    2 root     root         4096 Fev  6  1996 info/
drwxr-xr-x    2 root     root         4096 Fev  6  1996 lib/
drwxr-xr-x    3 root     root         4096 Jul 31  2003 man/
drwxr-xr-x    2 root     root         4096 Fev  6  1996 sbin/
drwxr-xr-x    2 root     root         4096 Abr 28  2000 share/
drwxr-xr-x    2 root     root         4096 Fev  6  1996 src/


Este comando mostrará uma listagem de todos os arquivos do diretório /usr/local, inclusive os ocultos, em uma listagem colorida. Para não ter que ficar criando aliases toda hora podemos definí-los como comandos a serem executados toda vez que inicializarmos o sistema, para esta tarefa podemos definí-los como aliases locais ou globais. Quando quero que somente um usuário tenha acesso a um alias configuramos o arquivo /home/usuário/.bash_profile, veja o exemplo:

$ vi /home/cris/.bashrc

# .bashrc

# Aliases do usuário /home/cris

alias l='ls -la --color=auto'
alias cl='clear'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

Observe que foram adicionados dois aliases no arquivo .bashrc do usuário cris. Agora toda vez que cris se logar, os aliases "l" e "cl" poderão ser usados em vez de "ls -la" e "clear".

Agora vamos definir os aliases globais. Para esta tarefa temos que editar o arquivo /etc/bashrc, veja o exemplo:

# vi /etc/bashrc

# /etc/bashrc

# System-wide functions and aliases
# Environment configuration on /etc/profile


PS1="[\u@\h \W]\\$ "

# Define aliases para todos os usuários do sistema
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias l='ls -la --color=auto'
alias ls='ls --color=auto'
alias cl='clear'

Estes aliases serão executados para todos os usuários do sistema na inicialização do shell. Quando não quiser mais usar um alias poderemos deletar a linha referente ao comando no arquivo onde está contido o alias ou usando o comando unalias, veja o exemplo:

$ unalias cl

Agora vamos conhecer o comando history, sua função é listar todos os comandos digitados no sistema, ou seja, ele cria um histórico de comandos, é muito útil para saber o que os usuários andam fazendo no sistema. Veja o exemplo:

$ history | tail -10
1047 alias l='ls -la --color=auto'
1048 alias ls='ls --color=auto'
1049 alias cl='clear'
1050 cl
1051 history
1052 man history
1053 cl
1054 history
1055 cl
1056 history |tail -10

Neste exemplo fiz com que ele me listasse os últimos 10 comandos utilizados por mim, veja que eles são todos numerados, podemos utilizar esta numeração para executar comandos que estão no histórico, veja o exemplo:

$ !421 -> Repete o comando 421
$ !! -> Repete o último comando digitado

Podemos visualizar quais os comandos que foram utilizados por um usuário qualquer analisando o arquivo /home/usuário/.bash_history, veja o exemplo:

$ cat /home/cris/.bash_history | tail -10
cd /opt
l
cd OpenOffice.org1.0.3/
l
./setup
pwd
l
cd Desktop/
l
cd arquivo/

Observe que foram listados os 10 primeiros comandos usados pelo usuário. Para limpar todas as entradas do histórico faça:

# history -c

Página anterior     Próxima página

Páginas do artigo
   1. Interpretadores de linha de comando Unix
   2. Variáveis de ambiente
   3. O diretório /etc/skel, aliases e histórico
   4. Bibliografia
Outros artigos deste autor

Autenticando usuários

Usando partições e sistemas de arquivos

Gerenciando quotas de disco

Servidor CVS: Instalando, configurando e gerenciando no Linux

Sistema de boot, níveis de execução e shutdown

Leitura recomendada

MSN-PROXY no CentOS 5.5 64 bits

Criando rotas via iptables para acesso remoto com VNC

O .bashrc de meu Debian

Servidor web nginx com PHP-FPM e memcached

Minecraft 1.8.1 - Arquivo server.properties

  
Comentários
[1] Comentário enviado por butters em 06/04/2004 - 14:47h

legal sua dica....

[2] Comentário enviado por intpa em 26/04/2005 - 13:29h

Boa tarde crildo.

Como faço para que os avisos de alerta, advertencia, etc. do bash sejem exibidas em portugues?

[3] Comentário enviado por intpa em 26/04/2005 - 13:30h

E como faço para que o comando man tambem seje exibido em portugues. Onde localiza-se os arquivos de ajuda em Portugues do man?

[4] Comentário enviado por cordobel em 26/07/2009 - 06:36h

Muito obrigado por seu artigo.
Eu estava procurando como personalizar comandos ou criar atalhos para eles e aqui encontrei a resposta.
Lendo a sua orientação e comparando ela com a estrutura do Ubuntu 9.04 encontrei em meu diretório home o arquivo /home/~/.bashrc que você mencionou.
Não foi preciso muito esforço para alcançar o meu objetivo, bastou des-comentar algumas linhas e então pude habilitar atalhos como ll (é igual a ls - la, mencionado no artigo) que me fazia muita falta no Ubuntu pois sou muito acostumado com ele, que é presente nos servidores CentOS de minha empresa. E também já fiquei conhecendo novos comandos.
Mais uma vez, muito obrigado.

[5] Comentário enviado por s.martins em 02/02/2010 - 01:13h

Muito legal o Artigooo com certeza vai agregar conhecimentos para que eu passe no LPIC 1. Abraço!!!

[6] Comentário enviado por fmj1988 em 01/09/2011 - 00:07h

Boa noite crildo,

acredito que na pagina 2 onde tem escrito assim: "# export LINUX"
deva ser substituido por "$ export LINUX".

pois acredito que o exporte deva ser apenas para o usuario atual ou porque só conseguir fazer o camando após tirar o "sudo" do comando.

Boa noite a todos.
Att.
Felipe

[7] Comentário enviado por wldnet1 em 26/07/2016 - 11:46h

Muito esclarecedor me ajudou muito além de agregar mais o meu conhecimento.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts