2. LINUX – “É um SO derivado do Unix, que por sua vez foi escrito em linguagem “Assembly” em
primeira mão, em seguida, escrito em linguagem ‘C’”.
1. COMANDOS NO LINUX
Comando Descrição
ls Listar arquivos
cd Mudar de diretório
ls –a Listar arquivos ocultos
cd / Acessar o diretório raiz.
pwd Identifica o diretório atual.
/home/[login] Localizar diretório home.
.. Diretório acima.
./ Localizar um arquivo, sem especificar o path.
- Diretório acima
cat Acessar um arquivo
psa Mostra os processos criados por você e de outros usuários do sistema.
psx Mostra processos que não são controlados pelo terminal.
psu Mostra o nome de usuário que iniciou o processo e hora em que o processo foi iniciado.
psm Mostra a memória ocupada por cada processo em execução.
psf Mostra a árvore de execução de comandos (comandos que são chamados por outros
comandos).
pse Mostra variáveis de ambiente no momento da inicialização do processo.
psw Mostra a continuação da linha atual na próxima linha ao invés de cortar o restante que não
couber na tela.
top-d[tempo] Atualiza a tela após o [tempo] (em segundos).
3. top-s Diz ao top para ser executado em modo seguro.
top-i Inicia o top ignorando o tempo de processos zumbis.
top-c Mostra a linha de comando ao invés do nome do programa.
man top manual do top (ou help, dentro do top)
espaço Atualiza imediatamente a tela.
CTRL+L Apaga e atualiza a tela.
h -
Mostra a tela de ajuda do programa. É mostrado todas as teclas que podem ser usadas com
o top.
i -
Ignora o tempo ocioso de processos zumbis.
q - Sai do programa.
k - Finaliza um processo - semelhante ao comando kill.*
/etc/profile Alterar o caminho de diretórios para todos os usuários.
n - Muda o número de linhas mostradas na tela. Se 0 for especificado, será usada toda a tela
para listagem de processos.
**top –d[tempo] Atualiza a tela após o [tempo] (em segundos).
top -s Diz ao top para ser executado em modo seguro.
top -i Inicia o top ignorando o tempo de processos zumbis.
top -c
Mostra a linha de comando ao invés do nome do programa.
**(k-) Você será perguntado pelo número de identificação do processo (PID). Este comando não estará
disponível caso esteja usando o top* com a opção -s.
**Top - é um programa que continua em execução mostrando continuamente os processos que estão rodando
em seu computador e os recursos utilizados por eles: tempo usado na CPU, detalhes sobre o uso da memória
RAM, Swap, disponibilidade para execução de programas no sistema, etc. Para sair do top pressione “q”.
2. TECLAS UTILIZADAS COM FREQUENCIA
Pressione a tecla Para
Back Space Apagar um caracter à esquerda do cursor
Delete Apagar o caracter acima do cursor
CTRL+A Mover o cursor para o inicio da linha de comandos.
CTRL+E Mover o cursor para o fim da linha de comandos
CTRL+U *Apagar o que estiver à esquerda do cursor.
CTRL+K *Apagar o que estiver à direita do cursor.
4. CTRL+L Limpar a tela e manter o texto que estiver sendo digitado na linha de
comando
CTRL+Y *Colocar o texto que foi apagado na posição atual do cursor.
ALT+<F1> a <F6> Acessar outros terminais virtuais (modo texto)
CTRL+ ALT+ <F1> a <F6> Acessar outros terminais virtuais (caso esteja no modo gráfico)
CTRL+ALT+ <F7> Voltar ao modo gráfico
3. CARACTERES CURINGAS
Comando Descrição
; Os comandos podem ser executados em seqüência (um após o término do outro) se
os separarmos com ;
* Faz referência a um nome completo/restante de um arquivo/diretório.
? Faz referência a uma letra naquela posição.
[a-z] [0-
9]
Faz referência a caracteres de a até z seguido de um caracter de 0 até 9.
X{ab,01} Faz referência a seqüencia de caracteres Xab ou X01
X{a-z,10} Faz referencia a seqüencia de caracteres Xa-z e X10
DICA: Você pode retornar comandos já digitados pressionando as teclas Seta para cima /
Seta para baixo. A tela pode ser rolada para baixo ou para cima segurando a tecla SHIFT e
pressionando PGUP ou PGDOWN.
4. ESTRUTURA BÁSICA DE DIRETÓRIOS DO SISTEMA LINUX
O sistema GNU/Linux possui a seguinte estrutura básica de diretórios organizados segundo o
FHS (Filesystem Hierarchy Standard):
Diretório Descrição
/bin Contém arquivos programas do sistema que são usados com freqüência pelos
usuários.
/boot Contém arquivos necessários para a inicialização do sistema.
/cdrom Ponto de montagem da unidade de CD-ROM.
/media Ponto de montagem de dispositivos diversos do sistema (rede, pen-drives,
CD-ROM em distribuições mais novas).
/dev Contém arquivos usados para acessar dispositivos (periféricos) existentes no
5. computador.
/etc Arquivos de configuração de seu computador local.
/floppy Ponto de montagem de unidade de disquetes .
/home Diretórios contendo os arquivos dos usuários.
/lib Bibliotecas compartilhadas pelos programas do sistema e módulos do kernel.
/lost+found Local para a gravação de arquivos/diretórios recuperados pelo utilitário
“fsck.ext2”. Cada partição possui seu próprio diretório lost+found.
/mnt Ponto de montagem temporário.
/proc Sistema de arquivos do kernel. Este diretório não existe em seu disco rígido,
ele é colocado lá pelo kernel e usado por diversos programas que fazem sua
leitura, verificam configurações do sistema ou modificar o funcionamento de
dispositivos do sistema através da alteração em seus arquivos.
/root Diretório do usuário root.
/sbin Diretório de programas usados pelo superusuário (root) para administração e
controle do funcionamento do sistema.
/tmp Diretório para armazenamento de arquivos temporários criados por
programas.
/usr Contém maior parte de seus programas. Normalmente acessível somente
como leitura.
/var Contém maior parte dos arquivos que são gravados com freqüência pelos
programas do sistema, e-mails, spool de impressora, cache, etc.
5. TERMOS E DEFINIÇÕES
Compilação – é basicamente a conversão de um programa em linguagem humana para a linguagem de
máquina. Um arquivo binário é gerado através de um arquivo de programa (formato texto).
*O compilador é programa que permite transformar este código escrito na linguagem de programação
usada em linguagem de máquina, gerando o binário que pode ser executado. Um exemplo de compilador
muito usado atualmente é o GCC da Free Software Fundation, que possui módulos para compilar
programas de várias linguagens.
6. Case Sensitive – sistema que diferencia letras maiúsculas e minúsculas nos arquivos.
PID - Número de identificação do processo
Foreground (Primeiro plano) – Execução de um programa em primeiro plano. Um novo comando só pode
ser executado após o término da execução de um programa.
Background (Segundo Plano) – É possível a execução de um novo comando, sem ter
que aguardar o término da execução de um programa. É mostrado um número PID
(identificação do Processo) e o aviso de comando é novamente mostrado, permitindo o uso normal do
sistema.
*Processos em segundo plano são iniciados usando o símbolo "&" no final da linha de comando.
Processos Zumbis - Cada processo criado recebe um lugar na tabela de processos do kernel. Quando o
processo termina, seu lugar na tabela do kernel recebe o resultado da sua execução.
O resultado da execução é retido na tabela até alguém consultá-lo quando, então, é removido da tabela. O
estado do processo é chamado de "zumbi" quando o mesmo termina e seu resultado ainda não foi retirado
da tabela do kernel. Se um programa cria um processo e demora para consultar seu resultado após seu
término, o processo permanece como "zumbi". Geralmente, é um bug do programa pai do processo. Se
existirem muitos processos "zumbi", pode ser necessário terminar o programa pai para desocupar a tabela
de processos do kernel.
Dica:
• não é recomendado gravar nomes de arquivos e diretórios com espaços. Porque será
necessário colocar o nome do arquivo entre "aspas" para acessá-lo (por exemplo, cat
"Trabalho de Historia.txt"). Ao invés de usar espaços, prefira capitalizar o arquivo
(usar letras maiúsculas e minúsculas para identifica-lo): TrabalhodeHistoria.txt.
• A localização de um arquivo pode ser feito através de uma característica do shell do
Linux (shell bash): a completação de nomes. Ex: se digitar “ls tes”,
pressionar <tab>, o Bash localizará todos os arquivos que iniciam com
"tes" e completará o restante do nome. Se der um “beep”, pressione tab
novamente (listará mais de uma, ou não achou nenhuma).
6. IDENTIFICAÇÃO DE DISCOS E PARTIÇÕES EM SISTEMAS LINUX
Abaixo algumas identificações de discos e partições em sistemas Linux:
Diretório Dispositivo Equivalente
/dev/fd0 Primeira unidade de disquetes (A:/)
/dev/fd1 Segunda unidade de disquetes.
/dev/hda Primeiro disco rígido na primeira controladora IDE do micro (primary
master).
IDE - 0
/dev/hda1 Primeira partição do primeiro disco rígido IDE. C:/
/dev/hdb Segundo disco rígido na primeira controladora IDE do micro (primary
slave).
IDE – I
/
dev/hdb1
Primeira partição do segundo disco rígido IDE. D:/
/dev/sda Primeiro disco rígido na primeira controladora SCSI ou SATA. SATA
/dev/sda1 Primeira partição do primeiro disco rígido SCSI ou SATA.
/dev/sdb Segundo disco rígido na primeira controladora SCSI ou SATA.
/dev/sdb1 Primeira partição do segundo disco rígido SCSI ou SATA.
/dev/sr0 Primeiro CD-ROM SCSI. E:/
/dev/sr1 Segundo CD-ROM SCSI. F:/
7. /dev/xda Primeiro disco rígido XT.
/dev/xdb Segundo disco rígido XT.
6.1 Tipo de sistema de arquivos usado na partição que será montada:
Tipo Partição
ext2 Para partições gnu/linux
msdos, Para partições dos (sem nomes extensos de
arquivos)
vfat, Para partições win 95 (com suporte a nomes
extensos de arquivos)
iso9660. Para unidades de cd-rom
7. CONTROLE DE EXECUÇÃO DE PROCESSOS
Comando Descrição
CTRL+C cancelar a execução de algum processo rodando em primeiro plano
CTRL+Z parar a execução de um processo rodando em primeiro plano
jobs mostra os processos que estão parados ou rodando em segundo plano.*
fg[nº] Permite fazer um programa rodando em segundo plano ou parado, rodar em primeiro
plano.**
bg[nº] Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo
plano.
kill Permite enviar um sinal a um comando/programa.
Dica:
*Para desmontar uma partição: umount [dispositivo/ponto de montagem]
*Processos em segundo plano são iniciados usando o símbolo "&" no final da linha de comando
**Caso seja usado sem parâmetros, o “fg” utilizará o último programa interrompido (o maior número
obtido com o comando “ jobs”).
8. VARIÁVEIS DE AMBIENTE
Variáveis de ambiente? O que são?
Uma variável de ambiente é um objeto nomeado que contém informações usadas por um ou mais
aplicativos. Muitos usuários (especialmente os novos no Linux) acham isso um pouco estranho e inútil. Mas
isso é errado: as variáveis de ambiente permitem modificar a configuração de um ou mais aplicativos
facilmente.
Exemplos importantes
8. A tabela a seguir lista diversas variáveis usadas por um sistema Linux e descreve seu uso. Valores de exemplo
são apresentados após a tabela.
Variável Descrição
PATH Esta variável contém uma lista de diretórios separados por dois-pontos nos quais o
seu sistema procurará arquivos executáveis. Se você entrar com o nome de um
executável (como por exemplo ls, rc-update ou emerge), mas esse executável não
estiver localizado num diretório listado, o seu sistema não o executará (a menos que
você entre o caminho completo no comando, como /bin/ls).
ROOTPATH Esta variável tem a mesma função de PATH, porém só lista os diretórios que devem
ser verificados quando o superusuário digitar um comando.
LDPATH Esta variável contém uma lista de diretórios separados por dois-pontos nos quais o
linkador dinâmico procura bibliotecas.
MANPATH Esta variável contém uma lista de diretórios separados por dois-pontos nos quais o
comando man deve procurar as páginas de manual.
INFODIR Esta variável contém uma lista de diretórios separados por dois-pontos nos quais o
comando info procura as páginas de info.
PAGER Esta variável contém o caminho para o programa usado para listar os conteúdos dos
arquivos (como less ou more, por exemplo).
EDITOR Esta variável contém o caminho para o programa usado para modificar o conteúdo
de arquivos (como nano ou vi).
KDEDIRS Esta variável contém uma lista de diretórios separados por dois-pontos que contém
material específico do KDE.
CLASSPATH Esta variável contém uma lista de diretórios separados por dois-pontos que contêm
as classes de Java.
CONFIG_PROTECT Esta variável contém uma lista delimitada por espaçosde diretórios que devem ser
protegidos pelo Portage durante atualizações.
CONFIG_PROTECT_MASK Esta variável contém uma lista de diretórios separados por espaços que devem ser
protegidos pelo Portage durante as atualizações.
Abaixo você encontra um exemplo de definição de todas essas variáveis:
Listagem de código 1.1: Exemplos de definições
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf
/usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/
/usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf
9. 8.1Definindo variáveis globalmente
O diretório /etc/env.d
Para centralizar as definições dessas variáveis, o Gentoo introduziu o diretório /etc/env.d. Dentro deste
diretório você encontrará diversos arquivos, como por exemplo 00basic, 05gcc, etc... que contêm as variáveis
necessárias para o aplicativo mencionado no nome.
Por exemplo, quando você instalou o gcc, um arquivo chamado 05gcc foi criado pelo ebuild, contendo as
definições das seguintes variáveis:
Listagem de código 2.1: /etc/env.d/05gcc
PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
Outras distribuições dizem para você alterar ou adicionar essas variáveis de ambiente em /etc/profile ou
outros locais. O Gentoo, por outro lado, torna fácil para você (e para o Portage) manter e gerenciar as variáveis
de ambiente sem ter que prestar atenção aos inúmeros arquivos que podem contê-las.
Por exemplo, quando o gcc é atualizado, o arquivo /etc/env.d/05gcc também é atualizado sem precisar de
interação com o usuário.
Isto beneficia não só o Portage, mas você também, como usuário. Eventualmente pode ser pedido a você que
determine uma certa variável de ambiente de sistema. Como exemplo, vejamos a variável http_proxy. Em vez
de mexer em /etc/profile, você agora pode simplesmente criar um arquivo (/etc/env.d/99local) e entrar
as suas definições nele:
Listagem de código 2.2: /etc/env.d/99local
http_proxy="proxy.server.com:8080"
Usar o mesmo arquivo para todas as suas variáveis é uma forma de ter uma rápida visão das variáveis que você
definiu pessoalmente.
O script env-update
Vários arquivos em /etc/env.d definem a variável PATH. Isto não está errado: quando você executa env-
update, as várias definições são adicionadas antes de atualizar as variáveis de ambiente, desta forma tornando
fácil para os pacotes (ou usuários) adicionarem suas próprias definições de variáveis de ambiente sem interferir
com os valores já existentes.
O script env-update acrescentará os valores em ordem alfabética dos arquivos em /etc/env.d. Os nomes de
arquivos devem começar com dois dígitos decimais.
Listagem de código 2.3: Ordem de atualização usada pelo env-update
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
A concatenação de variáveis nem sempre acontece, só com as seguintes variáveis: KDEDIRS, PATH,
CLASSPATH, LDPATH, MANPATH, INFODIR, INFOPATH, ROOTPATH, CONFIG_PROTECT,
CONFIG_PROTECT_MASK, PRELINK_PATH e PRELINK_PATH_MASK. Para todas outras variáveis, o último valor
definido (em ordem alfabética dos arquivos em /etc/env.d) é usado.
Quando você executa env-update, o script cria todas as variáveis de ambiente e as coloca em
/etc/profile.env (que é usado pelo /etc/profile). Ele também extrai as informações da variável LDPATH
e as usa para criar o /etc/ld.so.conf. Em seguida, ele roda o ldconfig para recriar o arquivo
/etc/ld.so.cache usado pelo linkador dinâmico.
10. Se você quiser ter uma idéia do efeito do env-update, imediatamente após rodá-lo execute o seguinte comando
para atualizar seu ambiente. Os usuários que instalaram eles próprios o Gentoo provavelmente se lembrarão
disso das instruções de instalação:
Listagem de código 2.4: Atualizando o ambiente
# env-update && source /etc/profile
Nota: O comando acima só atualiza as variáveis em seu terminal atual, novos consoles e seus derivados. Portanto, se você
estiver trabalhando no X11, você precisará ou digitar source /etc/profile em cada novo terminal que você abrir ou
reiniciar o X para que todos novos terminais herdem as novas variáveis. Se você usar um gerenciador de log-in, torne-se
administrador (root) e digite /etc/init.d/xdm restart. Se não, você precisará fazer log-out e log-in para que o X abra
novos terminais com os novos valores de variáveis.
8.2 Definindo variáveis localmente
Especificas do usuário
Nem sempre você deve definir uma variável de ambiente globalmente. Por exemplo, você pode querer adicionar o
diretório /home/usuario/bin e o diretório de trabalho atual (o diretório em que você está) à variável PATH, sem
que todos os outros usuários do sistema a tenham em seus PATHs. Se você quiser definir uma variável de
ambiente localmente, deve usar o ~/.bashrc ou o ~/.bash_profile:
Listagem de código 3.1: Estendendo o PATH para uso local no ~/.bashrc
PATH="${PATH}:/home/usuario/bin"
Quando você re-logar, a sua variável PATH será atualizada.
Específico para a sessão
Às vezes definições ainda mais estritas são necessárias. Você pode querer usar binários de um diretório
temporário que você criou sem usar o caminho até os binários nem editar o ~/.bashrc para o pouco tempo que
você precisará dele.
Neste caso, você pode simplesmente definir a variável PATH na sua sessão atual usando o comando export.
Enquanto você não se deslogar, a variável PATH usará as definições temporárias.
Listagem de código 3.2: Definindo uma variável de ambiente específica a uma sessão
# export PATH="${PATH}:/home/meu_usuário/tmp/usr/bin"