Aprendendo linux

12

Click here to load reader

Transcript of Aprendendo linux

Page 1: Aprendendo linux
Page 2: Aprendendo linux

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).

Page 3: Aprendendo linux

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 -cMostra 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 cursorDelete 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 comandosCTRL+U *Apagar o que estiver à esquerda do cursor.CTRL+K *Apagar o que estiver à direita do cursor.

Page 4: Aprendendo linux

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 computador.

Page 5: Aprendendo linux

/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.

Case Sensitive – sistema que diferencia letras maiúsculas e minúsculas nos arquivos.

Page 6: Aprendendo linux

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://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

Page 7: Aprendendo linux

ext2 Para partições gnu/linuxmsdos, 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

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

Page 8: Aprendendo linux

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çõesPATH="/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

8.1Definindo variáveis globalmente

O diretório /etc/env.d

Page 9: Aprendendo linux

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/05gccPATH="/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/99localhttp_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.

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:

Page 10: Aprendendo linux

Listagem de código 2.4: Atualizando o ambiente# env-update && source /etc/profileNota: 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 ~/.bashrcPATH="${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"