Este documento fornece uma introdução sobre o sistema operacional Linux, abordando tópicos como o histórico e desenvolvimento do Linux, seus conceitos fundamentais como kernel, sistema de arquivos, usuários e senhas, redes de computadores, além de dicas básicas para utilização do Linux.
3. Introdução ao Linux
• Histórico e desenvolvimento
• Mas o que é o Linux (GNU, kernel, sistema)?
• Conceitos de sistema de arquivo
• Conceitos de usuário e senha
• Computadores interligados em rede
• Administração de rede para o usuário
• Sobrevivência no Linux:
– O básico do básico (alguns comandos e dicas)
4. Histórico
Do UNIX ao Linux
• UNIX apareceu em 1969 (Ken Thompson)
• Linus Torvalds, em 1991, escreveu um kernel
para seu 80386, baseado em UNIX
• Após divulgar na Internet, teve participação
de muita gente, e começou a crescer
• Em menos de 10 anos, o kernel se encontra na
versão 2.4, e suporta vários dispositivos e
plataformas (i368, Sparc, PowerPC, etc)
5. Histórico
Linux hoje e seu desenvolvimento
• O desenvolvimento do Linux é centralizado
pelo Linus Torvald e por alguns “braços
direitos”, dentre eles, o famoso Alan Cox.
• Qualquer pessoa no mundo pode colaborar
com o kernel, que está sob a GPL
• GPL (Gnu Public License) é a licensa criada
por Stallman, que permite a distribuição do
código e do programa livremente, e
permite a alteração, sob algumas condições
(a principal, é manter o copyleft original)
6. Mas o que é Linux?
Kernel, utilitários, GNU, etc
• “Somente” o kernel é realmente o Linux. Núcleo do
sistema é responsável pelo funcionamento dos
dispositivos e funcionamento do computador (SO)
• Utilitários (shell, editores, programas) são a parte
visível ao usuário. Entretanto, são “emprestados” do
projeto GNU, ou são comerciais
• GNU (Gnu is Not Unix): Projeto fundado por Richard
Stallman, que propunha a criação de um sistema
completo (kernel, utilitários, etc), sob a GPL, e
independente de qualquer tipo de UNIX
7. Sistemas de arquivos
Discos, arquivos e diretórios
• 1 byte = 8 bits. 1 bit assume valor 0 ou 1
• Discos magnéticos: divididos em trilhas
(circulares), e cada trilha é dividida em
setores. Um setor, em geral, tem 512 bytes
• Há necessidade de organizar esses dados
de forma que possamos entender e utilizar
com facilidade
• A maioria dos sistemas utilizam o conceito
de arquivos e diretórios
8. Sistemas de arquivos
Discos, arquivos e diretórios
• Arquivo: um conjunto de setores no disco,
associado a um nome (uma cadeia ASCII)
– O arquivo nada mais é que uma seqüência de bits
(0 e 1), mas que podem assumir diversos tipos
(arquivo binário, arquivo texto, etc)
• Cada sistema permite uma maneira de
organizar os discos e arquivos. O UNIX e o
Linux utilizam a estrutura de árvores
9. Sistemas de arquivos
Discos, arquivos e diretórios
• Para o agrupamento de arquivos, existe o
conceito de diretório. Um diretório não armazena
dados em si, mas agrupa arquivos
• Árvore: o sistema contém apenas um diretório
raiz (root), e todos outros estão “dentro” da raiz
• Um diretório pode conter vários diretórios
• Os dispositivos são associados a arquivos
especiais, que se encontram em /dev
• Qualquer partição ou dispositivo de I/O é
associado a um arquivo para ser utilizado
10. Conceitos de usuário e senha
Sistema multi-usuário e proteção
• O UNIX e o Linux incorporam o conceito de
usuário. Várias pessoas podem utilizar o
computador, e cada uma deve ter acesso
restrito aos recursos
• Cada usuário tem um ID no sistema,
associado a um username
• Para acessar a máquina, o usuário possui
uma senha. Proteção individual, e do
sistema todo
11. Computadores em rede
Hostname, conexão remota, etc
• Com a popularidade da Internet, quase todos
os computadores estão em rede
• Pode-se acessar um outro computador,
através de programas apropriados
• Cada máquina em uma rede contém um
nome. Normalmente, um nome único
associado àquela rede, e o hostname,
compõe-se por nome e domínio da rede
12. Administração de rede
A administração para o usuário
• Usuário deve sempre utilizar os admins para
solução de problemas e dúvidas
• Protocolo:
– Sempre procurar sanar a dúvida em FAQ (em uma
página HTML) e manuais (man pages)
– Para perguntar algo para Admin, procurar
descrever bem o problema, localizando, dando
exemplos, enviando uma mensagem
– Caso não haja sucesso, procurar pessoalmente
13. Sobrevivência no Linux
Algumas dicas para começar
• Após acessar (digitando o username e a senha),
trocar a senha por uma pessoal
– Comando: passwd
– Nunca utilizar senhas fracas (nomes, números)
• Comandos básicos, veremos a seguir...
• Palavra essencial: MANUAIS
• man <comando>
• man -k <palavra> ou apropos <palavra>
• Teclas importantes: Ctrl-C, Ctrl-Q, Ctrl-D
14. Comandos e
Programas Úteis
• Antes de Comecar:
– Linux é Case Sensitive
– A tecla Tab é muito util!
– O Atalho “Ctrl + C” não copia e nem o “Ctrl +
v” cola!
– Sua pasta principal é a /home/<login>
– Putty – http://www.superdowloads.com.br
15. Modo Texto
• Grande utilidade para o usuário, principalmente para
o administrador linux.
• Oferece vários utilitários e comandos, que estão
disponíveis para uso por meio de um interpretador
de comandos.
• Capaz de oferecer ao usuário vários programas que
podem ser usados com o Maximo de desempenho
pelo sistema operacional.
• Grande aprendizagem com o seu uso.
16. Modo Gráfico
• O linux transforma em um sistema de uso pessoal e
domestico, estendendo a grande finalidade de uso em rede
como servidores.
• Melhor visualização de seus utilitários.
• Responsável por permitir o uso da interface gráfica do linux e
o servidor X Window, que oferece o serviço para gerenciar a
interface gráfica.
• O ambiente desktop e oferecido pelos gerenciadores de
janela que utilizam as bibliotecas do X para gerar o ambiente
em modo gráfico.
• Vários gerenciadores: KDE, Gnome, Windowmaker, XFCE,
IceWM, etc…
17. Kernel
• Descendente do Unix e do minix
• Evolui com vários programadores ao redor do mundo
sob a gerencia de Linux Torvalds.
• O kernel e o coração do sistema operacional.
• Multiusuario, Multitarefa, Multiprocessado.
• Suporta memória virtual (swap).
• Gerenciamento otimizado de memória.
22. Estrutura de Diretórios
• Diretório Descrição
• /bin Arquivos binários de comandos essenciais do sistema.
• /boot Arquivos de boot (inicialização; boot-loader; Grub); kernel do Linux.
• /dev Dispositivos (devices) de entrada/saída: floppy, hardisk, cdrom, modem .
• /etc Arquivos de configuração (scripts) e inicialização.
• /home Diretório local (home) de usuários.
• /lib Bibliotecas e módulos(drives): compartilhadas com freqüência.
• /mnt Diretório de montagem de dispositivos, sistemas de arquivos e partição.
• /opt Para instalação de programas não oficiais da distribuição.
• /proc Diretório virtual (RAM) onde rodam os processos ativos.
• /root Diretório local do superusuário (root).
• /sbin Arquivos de sistema essenciais (binários do superusuário).
• /tmp Arquivos temporários gerados por alguns utilitários.
• /usr Arquivos de usuários nativos da distribuição.
• /usr/local Para instalação de programas não oficiais da distribuição.
• /usr/src Arquivos fontes do sistema necessários para compilar o kernel.
• /var Arquivos de log e outros arquivos variáveis.
• /srv Arquvos de serviços Ftp e http
23. Estrutura de
Diretorios
• Nessa estrutura, o "diretório principal" ou raiz, denotado por "/", contém
outros diretórios, alguns com funções pré-estabelecidas:
• /bin - contém arquivos com programas executáveis (comandos)
• /dev - arquivos especiais associados a despositivos (devices)
• /etc - arquivos de administração e configuração
• /home - contém os diretórios de usuários
• /lib - bibliotecas padrão
• /sbin - comandos gerais de administração do sistema
• /tmp - arquivos temporários
24. Processos
• Num sistema multiprogramado, o conceito de processo é fundamental. O
UNIX oferece um conjunto de system calls orientado à criação e
comunicação entre processos pelos programas de aplicação.
• Um processo corresponde à ativação de um programa. Esse "programa"
pode ser um programa de aplicação desenvolvido pelo próprio usuário ou
um dos utilitários do próprio UNIX.
• Através das system calls um programa de usuário pode criar vários
processos que executam "simultaneamente", podendo se comunicar
durante a sua execução. Esse tipo de facilidade representa um recurso
arquitetural poderoso na construção de aplicações (a implementação do
protocolo TCP/IP, por exemplo, utiliza esses recursos).
29. g
• Entrada Padrão e Saída Padrão
• A shell durante a sua execução utiliza dois dispositivos para a comunicação com o usuário:
• Entrada Padrão - dispositivo a partir do qual a shell obtem os comandos a serem executados.
• Saída Padrão - dispositivo no qual a shell escreve os resultados dos comandos.
• Normalmente a entrada padrão é associada ao teclado e a saída padrão é associada à uma
área na tela onde a shell escreve os resultados da execução dos comandos. Essa associação é
estabelecida na ativação da shell. Devido à generalidade do tratamento que o UNIX dá aos
dispositivos, é possível associar esses dispositivos lógicos a qualquer outro dispositivo que
seja compatível com as operações de leitura e escrita de caracteres. Tanto a entrada padrão
como a saída padrão podem ser associadas a arquivos, por exemplo.
• Um comando, ao ser executado sob controle da shell, irá utilizar os mesmos dispositivos de
entrada e saída padrão usados pela mesma. A sintaxe da shell no entanto permite que esses
dispositivos sejam redirecionados.
30. Comandos básicos
• Filtros
• Um filtro é um programa que lê seus dados pela entrada
padrão e escreve seus resultados pela saída padrão. A shell do
UNIX permite que programas do tipo filtro sejam encadeados
através de pipes, discutidos adiante.
Exemplo
• O comando sort ordena uma seqüência de linhas de texto
lidas da entrada padrão e escreve os dados ordenados na
saída padrão:
• sort
31. Comandos básicos
Redirecionamento de Entrada e Saída
• Um programa (ou comando) pode ter a sua entrada padrão redirecionada para um
arquivo. Isso é feito através do caractere "<" seguida do nome do arquivo. De
forma análoga, a saída padrão também pode ser redirecionada através do uso do
caractere ">" seguido do nome do arquivo.
Exemplos
• Se quisemos ordenar um arquivo texto chamado "lista", contendo uma lista de
nomes, podemos redirecionar a entrada padrão para esse arquivo:
• sort
lista Nesse caso, os nomes ordenados serão escritos na saída padrão. Se quisemos
que a lista ordenada de nomes seja escrita num arquivo, chamado por exemplo
"listaOrd", podemos executar
• sort < lista > listaOrd
32. Comandos básicos
O Diretório Corrente
• Ao criar uma sessão, durante a qual o usuário utiliza a shell, esta se refere
sempre a um determinado diretório, chamado diretório corrente ou
diretório atual.
Os comandos pwd e cd
• O comando pwd escreve na saída padrão o diretório corrente.
• O comando cd muda o diretório corrente para outro diretório.
Exemplos:
• cd / muda para o diretório raiz cd /etc muda para o subdiretório "etc" do
diretório raiz cd tmp muda para o subdiretório "tmp" do diretório corrente
33. Comandos básicos
• Documentacao offline ou online atravez do
comando man:
• man ls
• man ps
• man mount
• man cd
• man ifconfig
34. Comandos básicos para
manipulação de Diretórios
ls
Lista os arquivos de um diretório.
Sintaxe: ls [opções] [caminho/arquivo] [caminho1/arquivo1] ...
arquivo - arquivo que deseja listar.
diretório - diretório que deseja listar.
opções
• -a, --all = Lista todos os arquivos (inclusive os ocultos) de um diretório.
• -d, --directory = Lista os nomes dos diretórios ao invés do conteúdo.
• -l = Usa o formato longo para listagem de arquivos. Lista as permissões, data de
modificação, donos, grupos, etc.
• -s, --size = Mostra o tamanho de cada arquivo, em blocos.
35. Comandos básicos para
manipulação de Diretórios
cd
Entra em um diretório. Você precisa ter a permissão de execução para entrar no
diretório.
Sintaxe: cd [diretório] - diretório que deseja entrar.
Exemplos:
Usando cd sem parâmetros ou cd ~, você retornará ao seu diretório de usuário (diretório home).
• cd / retornará ao diretório raíz.
• cd - retornará ao diretório anteriormente acessado.
• cd .. sobe um diretório.
• cd ../[diretório], sobe um diretório e entra imediatamente no próximo (por exemplo, quando
você está em /usr/sbin, você digita cd ../bin, o comando cd retorna um diretório (/usr) e entra
imediatamente no diretório bin (/usr/bin).
36. Comandos básicos para
manipulação de Diretórios
pwd
Exibe o nome e caminho do diretório atual.
Sintaxe: pwd
mkdir
Cria um diretório no sistema.
Sintaxe: mkdir [caminho/diretório] [caminho1/diretório1]
caminho = Caminho onde o diretório será criado.
diretório = Nome do diretório que será criado.
rmdir
Remove um diretório do sistema, exatamente o contrario do comando
37. Comandos básicos para
manipulação de Diretórios
cat
Mostra o conteúdo de um arquivo binário ou texto.
Sintaxe: cat [opções] [diretório/arquivo] [diretório1/arquivo1]
diretório/arquivo = Localização do arquivo que deseja visualizar o conteúdo.
Opções:
• -n, --number = Mostra o número das linhas enquanto o conteúdo do arquivo é mostrado.
• -s, --squeeze-blank = Não mostra mais que uma linha em branco entre um parágrafo e outro.
Obs.: O comando cat trabalha com arquivos texto.
Use o comando zcat para ver diretamente arquivos compactados com gzip.
38. Comandos básicos para
manipulação de Diretórios
rm
Apaga arquivos, diretórios e sub-diretórios.
Sintaxe: rm [opções][caminho][arquivo/diretório] [caminho1][arquivo1/diretório1]
caminho = Localização do arquivo que deseja apagar.
Se omitido, assume que o arquivo esteja no diretório atual.
arquivo/diretório = Arquivo/Diretório que será apagado.
Opções
• -i, --interactive = Pergunta antes de remover, esta é ativada por padrão.
• -v, --verbose = Mostra os arquivos na medida que são removidos.
• -r, --recursive = Usado para remover arquivos em sub-diretórios.
Esta opção também pode ser usada para remover sub-diretórios.
• -f, --force = Remove os arquivos sem perguntar.
Use com atenção o comando rm.
39. Comandos básicos para
manipulação de Diretórios
Cp
Copia arquivos e/ou diretórios.
Sintaxe: cp [opções] [origem] [destino]
origem = Arquivo que será copiado. Podem ser especificados mais de um arquivo para ser copiado
usando "Curingas“
(veja Curingas, Seção 2.12).
destino = O caminho ou nome de arquivo onde será copiado.
Se o destino for um diretório, os arquivos de origem serão copiados para dentro do diretório.
Opções:
• -i, --interactive = Pergunta antes de substituir um arquivo existente.
• -f, --force = Não pergunta, substitui todos os arquivos caso já exista.
• -r = Copia arquivos dos diretórios e subdiretórios da origem para o destino.
É recomendável usar -R ao invés de -r.
• -R, --recursive = Copia arquivos e sub-diretórios (como a opção -r) e também os arquivos especiais
FIFO e dispositivos.
• -v, --verbose = Mostra os arquivos enquanto estão sendo copiados.
O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos origem e destino terão
o mesmo conteúdo após a cópia.
40. Comandos básicos para
manipulação de Arquivos
mv
Move e/ou renomeia arquivos e diretórios.
Sintaxe: mv [opções] [origem] [destino]
origem = Arquivo/diretório de origem.
destino = Local onde será movido ou novo nome do arquivo/diretório.
opções
• -f, --force = Substitui o arquivo de destino sem perguntar.
• -i, --interactive = Pergunta antes de substituir. É o padrão.
• -v, --verbose = Mostra os arquivos que estão sendo movidos.
41. Comandos básicos para
manipulação de Arquivos
Outros Comandos Básicos
man
Visualiza a página de manual de um determinado comando ou programa.
clear
Limpa a tela e posiciona o cursor no canto superior esquerdo do vídeo.
date
Permite ver e modificar a data e hora do sistema.
df
Exibe o espaço livre/ocupado de cada partição.
Sintaxe: df [opções]
Opções:
• -h, --human-readable = Mostra o espaço do disco em MB, KB, GB ao invés de blocos.
• -k = Lista em Kbytes.
• -m = Lista em Mbytes
42. Comandos básicos para
manipulação de Arquivos
ln
Cria links para arquivos e diretórios no sistema.
Um link é um mecanismo que faz referência a outro arquivo ou diretório em outra localização.
O link em sistemas GNU/Linux faz referência reais ao arquivo/diretório podendo ser manipulado
como um arquivo comum.
Sintaxe: ln [opções] [origem] [link]
origem = Diretório ou arquivo de onde será feito o link.
link = Nome do link que será criado.
opções
• -s = Cria um link simbólico. Usado para criar ligações com o arquivo/diretório de destino.
• -v = Mostra o nome de cada arquivo antes de fazer o link.
43. Comandos básicos para
manipulação de Arquivos
Existem 2 tipos de links:
Simbólicos:
O link simbólico cria um arquivo especial no disco (do tipo link) que tem como conteúdo
o caminho para chegar até o arquivo original.
Para criar links simbólicos, deve ser usada a opção: -s.
O hardlink:
faz referência ao mesmo inode do arquivo original, desta forma ele será perfeitamente
idêntico, inclusive nas permissões de acesso, ao arquivo original.
44. Comandos básicos para
manipulação de Arquivos
Ao contrário dos links simbólicos, não é possível fazer um hardlink para um diretório ou fazer
referência a arquivos que estejam em partições diferentes.
Observações:
• O comando rm em um link, somente o link será removido.
• O comando cp em um link, o arquivo original será copiado ao invés do link.
• O comando mv em um link, a modificação será feita no link.
• Se for usado um comando de visualização (como o cat), o arquivo original será visualizado.
45. Comandos básicos para
manipulação de Arquivos
du
Mostra o espaço ocupado por arquivos e sub-diretórios do diretório atual.
Sintaxe: du [opções]
opções
• -a, --all = Mostra o espaço ocupado por todos os arquivos.
• -b, --bytes = Mostra o espaço ocupado em bytes.
• -c, --total = Faz uma totalização de todo espaço listado.
• -h, --human = Mostra o espaço ocupado em formato legível por humanos (Kb, Mb) ao invés de
usar blocos.
• -k = Mostra o espaço ocupado em Kbytes.
• -m = Mostra o espaço ocupado em Mbytes.
46. Comandos básicos para
manipulação de Arquivos
find
Procura por arquivos/diretórios no disco.
O find pode procurar arquivos através de sua data de modificação, tamanho, etc através do uso de opções.
Sintaxe: find [diretório] [opções/expressão]
diretório = Inicia a procura neste diretório, percorrendo seu sub-diretórios.
opções/expressão
-name [expressão] = Procura pelo nome [expressão] nos nomes de arquivos e diretórios processados.
-depth = Processa os subdiretórios antes de processar os arquivos do diretório principal.
-mount, -xdev = Não faz a pesquisa em sistemas de arquivos diferentes daquele de onde o comando find foi
executado.
-type [tipo] = Procura por arquivos do [tipo] especificado. Alguns tipos aceitos são: b (bloco) c
(caractere) d (diretório) l (link simbólico) s (socket).
47. Outros Comandos básicos
free
Mostra detalhes sobre a utilização da memória RAM do sistema.
Sintaxe: free [opções]
opções
• -b = Mostra o resultado em bytes.
• -k = Mostra o resultado em Kbytes.
• -m = Mostra o resultado em Mbytes.
• -s [num] = Mostra a utilização da memória a cada [num] segundos.
• O free é uma interface ao arquivo /proc/meminfo.
48. Outros Comandos básicos
grep
Procura por um texto dentro de um ou mais arquivo(s).
Sintaxe: grep [expressão] [arquivo] [opções]
expressão = Palavra ou frase que será procurada no texto. Se tiver mais de 2 palavras você
deve identifica-la com aspas "" caso contrário o grep assumirá que a segunda palavra é o
arquivo!
arquivo = Arquivo onde será feita a procura.
opções
• -A [número] = Mostra o [número] de linhas após a linha encontrada pelo grep.
• -B [número] = Mostra o [número] de linhas antes da linha encontrada pelo grep.
• -h, --no-filename = Não mostra os nomes dos arquivos durante a procura.
• -i, --ignore-case = Ignora diferença entre maiúsculas e minúsculas no texto procurado e
arquivo.
49. Outros Comandos básicos
more
Permite fazer a paginação de arquivos ou da entrada padrão.
O comando more pode ser usado como comando para leitura de arquivos que ocupem
mais de uma tela. Quando toda a tela é ocupada, o more efetua uma pausa e permite
que você pressione Enter ou espaço para continuar avançando no arquivo sendo
visualizado. Para sair do more pressione q.
Sintaxe: more [arquivo]
arquivo = O arquivo que será paginado.
50. Outros Comandos básicos
touch
Cria um arquivo em branco.
Também pode ser usado para mudar a data e hora que um arquivo foi criado. Caso o
touch seja usado com arquivos que não existam, por padrão ele criará estes arquivos.
touch [opções] [arquivos]
arquivos = Arquivos que terão sua data/hora modificados.
opções
• -t MMDDhhmm[ANO.segundos] = Usa Minutos (MM), Dias (DD), Horas (hh), minutos
(mm) e opcionalmente o ANO e segundos para modificação do(s) arquivos ao invés da
data e hora atual.
• -a, --time=atime = Faz o touch mudar somente a data e hora do acesso ao arquivo.
• -c, --no-create = Não cria arquivos vazios, caso os arquivos não existam.
• -m, --time=mtime = Faz o touch mudar somente a data e hora da modificação.
• -r [arquivo] = Usa as horas no [arquivo] como referência ao invés da hora atual.
51. Outros Comandos básicos
uptime
Mostra o tempo de execução do sistema desde que o
computador foi ligado.
dmesg
Mostra as mensagens de inicialização do kernel.
São mostradas as mensagens da última inicialização do sistema.
echo
Mostra o texto digitado após o comando echo.
Este comando é útil na construção de scripts para mostrar mensagens na tela
para o usuário acompanhar sua execução.
Sintaxe: echo [mensagem]
A opção -n pode ser usada para que não ocorra o salto de linha após a
mensagem ser mostrada.
52. Outros Comandos básicos
uname
Retorna informações sobre o sistema.
opções
• -a = exibe todas as informações (nome do kernel, hostname, versão do kernel,
processador, plataforma, etc)
wc
Conta o número de palavras, bytes e linhas em um arquivo ou
entrada padrão.
Se as opções forem omitidas, o wc mostra a quantidade de linhas, palavras, e
bytes.
Sintaxe: wc [opções] [arquivo]
arquivo = Arquivo que será verificado pelo comando wc.
opções
• -c, --bytes = Mostra os bytes do arquivo.
• -w, --words = Mostra a quantidade de palavras do arquivo.
• -l, --lines = Mostra a quantidade de linhas do arquivo.
A ordem da listagem dos parâmetros é única, e modificando a posição das
opções não modifica a ordem que os parâmetros são listados.
53. Comandos básicos para
manipulação de dispositivos
mount
Monta um dispositivo.
Para montar um drive de CD no linux, executa-se:
mount –t iso9660 /dev/hdd /mnt/cdrom , onde
-t iso9660 é o tipo do sistema de arquivos
/dev/hdd é o device slave da IDE secundária
/mnt/cdrom é o destino ou ponto de montagem
Para “montar” um HD secundário, que esteja fisicamente alocado
como escravo na IDE-1 da placa mãe, deve-se executar o seguinte
comando:
mount /dev/hdb1 /mnt/hd
Para “montar” um Pen-drive, localizado na primeira porta USBdeve-se
executar o seguinte comando:
mount /dev/sda /mnt/drive
54. Variáveis de Ambiente
O shell é executado no sistema controlado por variáveis de ambiente. Variáveis de ambiente
são espaços de memória que armazenam valores.
Estas variáveis podem ser:
Locais -> que são as variáveis disponíveis somente pelo shell corrente e que não está sendo
acessado por subprocessos do sistema.
Globais -> que estão disponíveis tanto para o shell corrente como para os subprocessos que
fazem uso delas.
Descreverei algumas variáveis de ambiente que acho importantes para facilitar o
entendimento:
55. Variáveis de Ambiente
HOME – Esta variável identifica o diretório do usuário doméstico, use o comando echo
$HOME para saber qual é o seu diretório HOME.
SHELL – Esta variável identifica qual shell está sendo usado, use o comando echo $SHELL
para saber qual é o shell que o seu sistema está usando.
TERM – Esta variável define o tipo de terminal que está sendo usado, use o comando echo
$TERM para saber qual o tipo de terminal está sendo usado pelo sistema.
USER – Pré-define o nome de conta como variável de ambiente, ou seja, ao se logar ao
sistema a ID do usuário é combinada com um nome de conta, para saber qual é o usuário
corrente use o comando "echo USER".
56. Variáveis de Ambiente
PATH – Esta é a variável de ambiente que define quais diretórios pesquisar e a ordem na
qual eles são pesquisados para encontrar um determinado comando, para saber como o
sistema faz esta pesquisa e quais diretórios ele procura um comando use o comando "echo
$PATH".
LOGNAME – Esta variável é um sinônimo para USER. Para saber qual é o seu logname use o
comando "echo $LOGNAME".
HISTFILE – Essa é a variável que controla qual é o arquivo onde serão salvos os logs, ou seja,
todos os comandos digitados na shell.
OSTYPE – Essa variável define o tipo de sistema operacional em uso. Para saber qual é o
sistema operacional em uso use o comando "echo $OSTYPE".
57. Variáveis de Ambiente
Para visualizar as variáveis de ambiente locais (setadas para o usuário que está logado),
utilizamos o comando set. Para visualizar as variáveis de ambiente globais (setadas para
todos), utilizamos o comando env ou printenv.
Atribuindo um valor a uma variável local veja o exemplo:
$ LINUX=free
$ echo $LINUX
free
58. Variáveis de Ambiente
O comando echo exibe o valor de uma variável de ambiente. Agora vamos verificar se a
variável aparece na relação de variáveis locais, veja o exemplo:
$ set | grep LINUX
LINUX=free
Transformando uma variável local em global com o comando export.
# export LINUX
# env | grep LINUX
LINUX=free
Apagando uma variável de ambiente com o comando unset e para verificarmos se a variável
foi excluída usaremos o comando echo, veja o exemplo:
# unset LINUX
# echo $LINUX
59. Variáveis de Ambiente
Exemplo de um “shell script”
#!/bin/bash
#
# script shell para ler e escrever um nome na tela.
#
echo "digite seu nome: "
read NOME
sleep 1
echo " "
echo "seu nome é: $NOME"
# fim do script
Observações:
Variáveis globais podem ser criadas no arquivo /etc/profile:
Variáveis que são executadas somente no ambiente do usuário
podem ser criadas no arquivo ~/.bash_profile.
Essas variáveis são executadas automaticamente no login.