67
Curso Basico de Linux Rafael Silva [email protected] om.br

Curso Basico de Linux Rafael Silva [email protected]

Embed Size (px)

Citation preview

Page 1: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Curso Basico de Linux

Rafael Silva

[email protected]

Page 2: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Historia do linux Filosofia Principais caracteristicas Linux – Introducao Comandos

Page 3: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Fundação criada pelo hacker Richard Stallman, responsável pelo desenvolvimento

do Projeto GNU.

O Projeto GNU foi iniciado em 1984 para desenvolver um sistema operacional

completo, compatível com o UNIX, e que fosse Software Livre.

GNU é um acrônimo recursivo que significa:

“GNU's Not UNIX - GNU não é UNIX”

Page 4: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Todos os softwares do Projeto GNU são regidos por um tipo especial de licença de software, a

GNU General Public License, também conhecida pela sigla GPL

Um Software Livre tem como principais características o fato de poder ser copiado,

alterado e redistribuído livremente, bastando que toda alteração desse software seja

repassada para a comunidadena forma de código-fonte.

Page 5: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br
Page 6: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br
Page 7: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br
Page 8: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br
Page 9: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

De:Linus Benedict Torvalds ([email protected])Assunto:[comp.os.minix] Free minix-like kernel sources for 386-AT Newsgroups:comp.archivesData:1991-10-05 09:24:25 PST

Archive-name: auto/comp.os.minix/Free-minix-like-kernel-sources-for-386-AT Do you pine for the nice days of minix-1.1, when men were men and wrote

their own device drivers? Are you without a nice project and just dyingto cut your teeth on a OS you can try to modify for your needs? Are youfinding it frustrating when everything works on minix? No more all-nighters to get a nifty program working? Then this post might be justfor you :-)

As I mentioned a month(?) ago, I'm working on a free version of aminix-lookalike for AT-386 computers. It has finally reached the stagewhere it's even usable (though may not be depending on what you want),and I am willing to put out the sources for wider distribution. It isjust version 0.02 (+1 (very small) patch already), but I've successfullyrun bash/gcc/gnu-make/gnu-sed/compress etc under it.

Sources for this pet project of mine can be found at nic.funet.fi(128.214.6.100) in the directory /pub/OS/Linux. The directory alsocontains some README-file and a couple of binaries to work under linux(bash, update and gcc, what more can you ask for :-). Full kernelsource is provided, as no minix code has been used. Library sources areonly partially free, so that cannot be distributed currently. Thesystem is able to compile "as-is" and has been known to work. Heh. Sources to the binaries (bash and gcc) can be found at the same place in/pub/gnu. ...

Page 10: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

O MINIX é um clone do UNIX mantido por Andrew S.

Tanenbaum e desenvolvido basicamente para fins

educacionais.

Foi graças ao MINIX que Linus Torvalds se lançou na tarefa de

desenvolver um Sistema Operacional.

O MINIX é um clone do UNIX mantido por Andrew S.

Tanenbaum e desenvolvido basicamente para fins

educacionais.

Foi graças ao MINIX que Linus Torvalds se lançou na tarefa de

desenvolver um Sistema Operacional.

Page 11: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Um computador, uma mesa, um usuário.

Duas pessoas não podem trabalharem paralelo, executando o Microsoft

Word na mesma máquina,simultaneamente.

Windows 2003 Advanced Server+

Terminal Server

Múltiplos usuários se conectam como computador simultaneamente.

O Linux cuida dos detalhes de“compartilhamento” dos recursos,de modo que cada usuário parece

ter um sistema individual.

Page 12: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

O kernel fornece um pequenoconjunto de serviços e, então, faz a

interface com outros serviçosexecutivos que fornecem,

por exemplo:

Gerenciamento de processos

Gerenciamento de E/S

e muitos outros serviços.

Fornece todos os serviços que osaplicativos do usuário precisam.

O kernel manipula tudo tratandodiretamente com o hardware e com

as chamadas do sistema.

Page 13: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Interface gráfica integrada aoSistema Operacional básico.

Um simplesmente não existe semo outro.

Vantagem: consistência entre ainterface dos aplicativos.

Interface com o usuário e SistemaOperacional separados.

X Window System é executado comoum aplicativo em nível de usuário

Vantagem: maior integridadedo sistema como um todo.

Page 14: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Usuário anexa o compartilhamentoe atribui uma letra de unidade.

Windows 2000Pontos de nova análise

Compartilhamentos de rede só sãopossíveis mapendo-se o

compartilhamento de rede requeridoem uma letra de unidade.

Suporta o conceito de montagem

Montagem de diretórios de base:os diretórios de base de um usuário

podem residir em um servidor remoto,e serem montados automaticamente

na inicialização do sistema.

Montagem via rede é transparenteao usuário.

Page 15: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Configurações baseadas em umbanco de dados de difícil

manutenção: milhares de entradas,sendo poucas

completamente documentadas.

Vantagem teórica: as configuraçõesficam armazenadas em um formato

comum a todos os aplicativos.

Configurações de aplicativos esistema operacional baseadas em

arquivos de texto puro.

Fácil manutenção (você podedocumentar toda a sua configuração

comentando os arquivos).

A configuração pode serautomatizada por meio de scripts.

Page 16: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br
Page 17: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

O Linux é desenvolvido voluntariamente por programadores experientes, hackers e contribuidores espalhados ao redor do mundo que tem como objetivo a contribuição para a melhoria e crescimento deste sistema operacional.

Convivem sem nenhum tipo de conflito com outros sistemas operacionais (como o DOS, Windows, OS/2) no mesmo computador.

Conectividade com outros tipos de plataformas como Apple, Sun, MIPS, SPARC, ALPHA, PowerPC, ARM, Intel, dentre outras.

Multitarefa real, multiusuário, suporte a nomes extensos de arquivos e diretórios (255 caracteres) e proteção entre processos executados na memória RAM.

Page 18: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Suporte a mais de 63 terminais virtuais (consoles).

Modularização - O GNU/Linux somente carrega para a memória o que é usado durante o processamento, liberando totalmente a memória assim que o programa

ou dispositivo é finalizado.

Não há a necessidade de se reiniciar o sistema após a modificar a configuração de qualquer periférico ou parâmetros de rede. Somente é necessário reiniciar o

sistema no caso de uma instalação interna de um novo periférico ou falha em algum hardware (queima do processador, placa mãe, por exemplo).

O crescimento e novas versões do sistema não provocam lentidão. Pelo contrário, a cada nova versão os desenvolvedores procuram buscar maior compatibilidade,

acrescentar recursos úteis e melhor desempenho do sistema (como o que aconteceu na passagem do kernel 2.0.x para 2.2.x).

Page 19: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Não é requerida uma licença para seu uso. O GNU/Linux é licenciado de acordo com os termos da GPL.

Acessa corretamente discos formatados pelo DOS, Windows, Novell, OS/2, NTFS, SunOS, Amiga, Atari, Mac, dentre outros.

Utiliza permissões de acesso a arquivos, diretórios e programas em execução na memória RAM.

Rede TCP/IP mais rápida que no Windows e tem sua pilha constantemente melhorada. O GNU/Linux tem suporte nativo a redes TCP/IP e não depende de

uma camada intermediária como o WinSock. Em acessos via modem a Internet, a velocidade de transmissão chega a ser 10% maior.

Page 20: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

r

• Dispositivos infravermelho• Rede via rádio amador• Rispositivos Plug-and-Play• Dispositivos USB• Vários tipos de firewalls de alta qualidade e com grande poder de segurança• Roteamento estático e dinâmico de pacotes• Ponte entre redes• Proxy tradicional e transparente

O Linux possui recursos para atender a mais de um endereço IP na mesma placa de rede, sendo muito útil para situações de manutenção em servidores

de redes ou para a virtualização de estações de trabalho

Page 21: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Os sistemas de arquivos usados pelo GNU/Linux (Ext3, ReiserFS, JFS, XFS, dentre outros) organizam os arquivos de forma inteligente, evitando a

fragmentação e fazendo-o um poderoso sistema para aplicações multi-usuárias exigentes e gravações intensivas.

Permite a montagem de um servidor Web, E-mail, News, etc. com um baixo custo e alta performance. O melhor servidor Web do mercado, o Apache, é distribuído

gratuitamente junto com o Linux. O mesmo acontece com o Sendmail.

Por ser um sistema operacional de código aberto, você têm acesso ao código-fonte, podendo adaptá-lo as suas necessidades. Esta característica é uma

segurança a mais para empresas sérias e outros grupos que não querem ter seus dados roubados - você não sabe o que um sistema proprietário faz na realidade

enquanto está processando seus dados.

Page 22: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br
Page 23: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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.

Page 24: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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…

Page 25: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

e

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.

Page 26: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

g

Page 27: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

g

Page 28: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

g

Page 29: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

g

Page 30: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

g

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

Page 31: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

g

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

Page 32: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

g

Page 33: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br
Page 34: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

e

Formato basico das instrucoes de comando:

Page 35: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

e

Page 36: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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.

Page 37: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 38: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

g

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

Page 39: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

g

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

Page 40: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Documentacao offline ou online atravez do comando man:

man ls man ps man mount man cd man ifconfig

Page 41: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 42: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 43: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

pwd Exibe o nome e caminho do diretório atual.Sintaxe: pwd

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

rmdirRemove um diretório do sistema, exatamente o contrario do comando

Page 44: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 45: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 46: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 47: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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.

Page 48: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Outros Comandos Básicosman

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.

datePermite ver e modificar a data e hora do sistema.

dfExibe 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

Page 49: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 50: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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.

Page 51: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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.

Page 52: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 53: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 54: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 55: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 56: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 57: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 58: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

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

Page 59: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

unameRetorna informações sobre o sistema.

opções• -a = exibe todas as informações (nome do kernel, hostname, versão do kernel, processador, plataforma, etc)

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

Page 60: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

mountMonta 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/hdPara “montar” um Pen-drive, localizado na primeira porta USBdeve-se executar o seguinte comando:mount /dev/sda /mnt/drive

Page 61: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

1) Escreva como se procede a seqüência de comandos para: a) criar um diretório chamado “teste” dentro do /tmp. b) alterar o nome do diretório para /tmp/meudiretorio e em seguida, c) criar um arquivo vazio, com o nome de meuarquivo dentro deste diretório.R: 2) Qual a sintaxe completa para procurarmos um arquivo chamado DIRCOLORS no sistema?R: 3) Qual procedimento deve ser feito para podermos ter acesso aos dados de um CD-Rom?R:

Page 62: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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:

Page 63: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 64: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 65: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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

Page 66: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

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 LINUXLINUX=free

Transformando uma variável local em global com o comando export.# export LINUX

# env | grep LINUXLINUX=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

Page 67: Curso Basico de Linux Rafael Silva rafaelsilva@rfdslabs.com.br

Exemplo de um “shell script”#!/bin/bash## script shell para ler e escrever um nome na tela.#echo "digite seu nome: "read NOMEsleep 1echo " "echo "seu nome é: $NOME"# fim do scriptObservaçõ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.