Introdução ao Linux
Transcrição
Introdução ao Linux
Índice Introdução .......................................................................................................1 Conceitos Iniciais............................................................................................1 Arquivos e os sistemas de arquivos do Linux .................................................1 A estrutura de diretórios..................................................................................2 Restrições e permissões de acesso ..................................................................3 Comandos básicos...........................................................................................4 Rudimentos de programação C-Shell ........................................................8 O Shell script..........................................................................................9 O básico do editor vi .....................................................................................12 Endereços interessantes na Internet ..............................................................14 Bibliografia ...................................................................................................14 Introdução O Linux é um sistema operacional, multiusuário, multitarefa e multiprocessador, livremente distribuído e que é compatível com os seguintes equipamentos: x86 (Intel e clones), Motorola 68K, Digital Alpha, Sparc, Mips e Motorola PowerPC. O núcleo do Linux não utiliza código proprietário, sendo a maior parte de seu desenvolvimento feito sob o projeto GNU da Free Software Foundation. O Linux foi criado em 1991 por Linus Torvalds, que, na época, era estudante da Universidade de Helsinque. Linus Torvalds buscava obter uma versão do sistema Unix que pudesse ser executada no seu PC. Atualmente milhares de programadores em todo o mundo trabalham no núcleo (kernel) do Linux, enviando a melhoria e ampliações a Linus, que decide se inclui ou não estes códigos no núcleo do Linux. A designação Linux é uma combinação do nome Linus com Unix. O sistema operacional Linux foi um dos grandes propulsores do conceito de software aberto e livre, podendo ser obtido gratuitamente por download em diferentes sitios da rede. Embora muitos achem que o Linux é exclusivamente utilizado em universidades, isto tem mudado rapidamente, sendo agora usado por grandes empresas, principalmente em aplicações ligadas à Internet. Estima-se que existem dez milhões de computadores rodando Linux no mundo. Conceitos Iniciais • Sistema Operacional: É o componente do software que faz a interface entre os programas do usuário e o computador; gerenciando itens como recursos, periféricos, segurança, comunicações e outros. • Kernel: É o componente central de qualquer sistema operacional. • Licenças: Existe uma série de termos de uso que regulamenta, softwares. Cada autor de software é livre para escolher o tipo de licença que adotará (comercial, shareware, etc). A licença típica do Linux é a GPL (General Public Licence), que permite livre uso, alteração e redistribuição, desde que as cópias redistribuídas adotem a mesma licença do original. Outra licença típica de sistemas abertos (sistemas cujo código está disponível e pode ser modificado livremente) é a BSD, que permite livre uso e redistribuição e dá a opção para que se altere os termos da licença. • Distribuição Linux: Uma distribuição Linux é a reunião do kernel do Linux a um conjunto de softwares desenvolvido por terceiros, respeitando os termos de licenciamento. Qualquer pessoa pode criar uma distribuição Linux, porém apenas um pequeno grupo delas tem presença significativa no mercado. Algumas das principais distribuições são: Slackware, Conectiva, Red Hat, Debian, Mandrake e Suse. • LSB: Linux Standards Base. È um conjunto de padrões (facultativos) aos quais as distribuições devem aderir para facilitar o desenvolvimento de software que não seja específico de uma dada distribuição. Arquivos e os sistemas de arquivos do Linux Um arquivo é uma seqüência de bytes qualquer gravada na memória secundária do computador (discos rígidos, discos flexíveis etc) . O conceito de arquivo é implementado, manipulado e gerenciado pelo sistema operacional. Quando um processo cria um arquivo dá a ele um nome; quando o processo termina sua execução o arquivo permanece gravado, podendo ser usado por outros processos. Em geral arquivos representam programas e dados e podem ser gravados como texto legível ou na forma binária. O Linux distingue entre letras maiúsculas e minúsculas, não há limite de número de caracteres utilizados para dar nome ao arquivo e estes podem ter uma ou mais extensões que devem ser separadas por um ponto. O Linux suporta arquivos regulares, de diretórios, especiais de caracteres e arquivos especiais bloqueados. Arquivos regulares são aqueles que contém informações de usuários. Arquivos diretórios são usados na manutenção do sistema de arquivos. Arquivos especiais de caracteres são usados para dispositivos de entrada/saída, como terminais, impressoras e rede. Os arquivos especiais bloqueados são usados para modelar dispositivos. Um sistema de arquivos é o método e a estrutura de dados que um sistema operacional utiliza para administrar arquivos. O Linux organiza o seu sistema de arquivos em uma arvore hierarquizada, que agrega todas as informações relativas ao sistema de arquivos e onde cada nó da arvore representa um arquivo. Uma das características mais importantes do Linux é o suporte para vários sistemas de arquivos diferentes, o que lhe dá muita facilidade para interagir com outros sistemas operacionais. Dentre estes sistemas destacamos: Minix: É o mais antigo e presumivelmente o mais confiável, porém limitado em características e restrito em capacidade de armazenamento. Ext2: O mais poderoso e popular sistema de arquivos do Linux. Desenhado para ser compatível com os avanços das novas versões sem a necessidade de recriar os sistemas de arquivos existentes. Ext: Versão mais antiga do ext2 que não é mais compatível com as versões atuais. Nfs: Sistema de arquivos em redes que permite o compartilhamento e o acesso aos arquivos entre diversos computadores em rede. Reisefs: Criado nos laboratórios da Suse em conjunto com outras empresas para oferecer um sistema de arquivos seguro e confiável. A estrutura de diretórios O Linux tem uma estrutura de diretórios peculiar, objeto de uma série de padronizações e similar à que se encontra em versões comerciais do Unix. A figura abaixo apresenta uma estrutura hierárquica típica. / bin/ / dev/ etc/ home/ tmp/ usr/ Nível mais alto da árvore de diretórios chamado de root (raiz). Contém somente os arquivos fundamentais para iniciar o funcionamento do sistema /bin Contém comandos e programas executáveis que são utilizados durante a inicialização do sistema e que podem ser utilizados pelos usuários. 2 /sbin Similar ao /bin, porém os comandos não são destinados aos usuários comuns. /etc Contém arquivos de configuração específicos da maquina. /root Diretório pessoal do superusuário (root) /lib Bibliotecas compartilhadas necessárias aos programas e aos módulos do kernel. /dev Abriga os arquivos que virtualizam todos os dispositivos de entrada/saída. /tmp Arquivos temporários. /boot Arquivos necessários ao processo de boot do kernel inclusive o próprio kernel e eventualmente uma imagem de disco virtual contendo drivers para os primeiros estágios da inicialização. /mnt Ponto para montagens temporárias. Quando você faz acesso a um CD, disquete ou mesmo um disco compartilhado via rede, ele se torna integrante do diretório /mnt (ou /media). Seu disquete pode ser visualizado em /mnt/floppy; o CD em /mnt/cdrom. /home Diretório que contém os diretórios dos usuários. /usr Este diretório é normalmente grande uma vez que a maioria dos programas do sistema são aí instalados. Programas locais são instalados em /usr/local, o que torna a atualização do sistema possível sem que seja necessário instalar todos os programas novamente. /var Contém logs, filas de impressão e de e-mail e outros arquivos alterados dinamicamente pelo sistema. Restrições e permissões de acesso O sistema de permissão de acesso protege o sistema de arquivos do acesso indevido de pessoas ou programas não autorizados. Existem três classes distintas de usuários: • Usuário dono do arquivo (u) • O grupo dono do arquivo (g) • Todos os outros usuários (o) Os privilégios (ou permissões de acesso) dividem-se em três categorias: • Leitura (r, de read) • Escrita (w, de write) • Execução (x, de eXecute) 3 A cada arquivo e diretório é associado um conjunto de permissões. Geralmente as permissões são descritas em uma seqüência de 10 caracteres, sendo que o primeiro indica o tipo de arquivo (d para diretório, l link, c ou b dispositivo, demais arquivos) e os demais formam 3 grupos de 3 caracteres indicando os privilégios de cada classe de usuários. Vê-se por exemplo que a seqüência –rwxr-xr-x indica que o usuário proprietário do arquivo comum (denotado por “-“ na primeira posição) tem direitos de leitura, escrita e execução, o grupo proprietário tem direitos de leitura e execução e os demais usuários tem também direitos de leitura e execução. As permissões de acesso podem ser alteradas pelo comando chmod. Comandos básicos alias Permite criar nomes simbólicos para comandos Sintaxe: alias nome comando cat Usado para concatenar arquivos. Também pode ser usado para exibir o conteúdo de arquivos de uma só vez. Sintaxe: cat arq1 arq2 ... arqn : exibe os arquivos arq1 arq2 ... arqn cat arq1 arq2 > arq3 : concatena os arquivos arq1 e arq2 e coloca o resultado em arq3 cd Muda o diretório atual Sintaxe: cd diretório onde diretório é o nome do diretório para o qual se deseja mudar. O símbolo “.” refere-se ao diretório atual e “..” refere-se ao diretório pai (diretório imediatamente acima na árvore) chgrp Modifica o grupo a que pertence um arquivo ou diretório Sintaxe: chgrp [-f] [-h] [-R] gid nome_do_arquivo “gid” pode ser um número decimal especificando o “group id” ou um nome de grupo encontrado no arquivo “/etc/group”. Você deve ser o proprietário do arquivo ou o superusuário para utilizar este comando. Opções saída: -f : Não informa erros -h : Se o arquivo for um link simbólico, esta opção modifica o grupo do link. Sem esta opção o grupo do arquivo referenciado pelo link simbólico é modificado. -R: Opção recursiva. “chgrp” percorre o diretório e os subdiretórios, modificando o gid à medida que prossegue. chmod Modifica as permissões de um arquivo ou diretório. Você deve ser o proprietário do arquivo ou diretório ou ser o superusuário para modificar as suas permissões. Sintaxe: chmod permissões nome_do_arquivo onde permissões podem ser modificadas da seguinte forma: (1) Utilize u para usuário, g para grupo, o para outros e a para todos os anteriores (2) Utilize “+” para adicionar permissões, “−” para removê-las. (3) Indique as permissões envolvidas com (r, read; w, write; x, execute) Exemplo: Para dar permissão de leitura ao proprietário do arquivo ABC e remover a permissão de escrita do grupo para este mesmo arquivo escreveremos: 4 chmod u+r g-w ABC chown Modifica o proprietário de um arquivo ou diretório. Você deve ser o proprietário do arquivo ou o superusuário. Sintaxe: chown [-fhR] proprietário nome-do-arquivo proprietário é um número decimal especificando o userid do usuário ou um “login name” encontrado no arquivo “/etc/passwd” Opções saída: -f : Não informa erros -h : Se o arquivo for um link simbólico, esta opção modifica o grupo do link. Sem esta opção o grupo do arquivo referenciado pelo link simbólico é modificado. -R :Opção recursiva. “chown” percorre o diretório e os subdiretórios, modificando o gid à medida que prossegue. cp Copia arquivos para um outro arquivo ou diretório Sintaxe: cp [-fipr] origem... destino origem... são os arquivos fontes que serão copiados para destino. O arquivo fonte e destino não podem ter o mesmo nome. Se o arquivo destino não existe “cp” criará um arquivo com o nome especificado. Se destino já existe e não for um diretório, “cp” escreverá por cima do conteúdo já existente. Opções -f : Superpõe o arquivo destino se existente. -i : Pergunta se deve ser sobrescrito o arquivo destino se existir. csplit -p : Preserva o proprietário original, grupo, permissões, tempo da ultima modificação e o tempo do último acesso. Separa os arquivos sempre que encontrar uma combinação entre seus argumentos e o conteúdo do arquivo. Sintaxe: csplit [-f] prefixo arquivo string -f prefixo : Prefixo dos arquivos de saída. O sufixo varia de 00 a 99. Exemplo: O arquivo “livro” contém: Introdução, Capitulo 1, Capitulo 2, Resumo csplit –f capit livro “/Capitulo /” “/Capitulo /” retornará: capit00 (contendo Introdução), capit01 (contendo Capitulo 1) capit02 (contendo Capitulo 2 e Resumo) cut Imprime, na saída padrão, partes selecionadas de linhas em arquivos. Sintaxe: cut [-cdfs] arquivo -cx-y : define caractere inicial (x) e caractere final (y) -dChar : define delimitador (Char) -fx,y : define campo inicial (x) e campo final (y) -s : suprime linhas que não contém delimitador. Deve ser usado com a opção –d date Exibe a data configurada no sistema. du Exibe o espaço ocupado por um diretório e todos os seus subdiretórios, em unidades de 512 bytes. Sintaxe: du [-aks] [arquivo...] -a : Exibe a contagem para todos os arquivos encontrados. 5 -k : Usa a unidade de 1024 bytes em vez do padrão 512 bytes. -s : Exibe apenas o espaço usado para arq e não para seus subdiretórios. echo Escreve argumentos na saída padrão (stdout) Sintaxe: echo [-n] string -n : Não adiciona uma nova linha após escrever o string. file Exibe o tipo de um arquivo. Sintaxe: file arquivo ftp Inicia o cliente ftp. Transferência de arquivos. Sintaxe: ftp endereço_remoto grep Exibe todas as linhas dos arquivos especificados que contém um certo padrão. Sintaxe: grep [-i] [padrão] arquivo... padrão é uma expressão regular e arquivo... são os arquivos nos quais a busca será feita. -i : Ignora a distinção entre letras maiúsculas e minúsculas. head Exibe as primeira 10 linhas em um arquivo. Sintaxe: head [-cn] [arquivo...] -c m: seleciona as m primeiras colunas em arquivo -n : seleciona as n primeiras linhas em arquivo Se arquivo não for especificado head ler a entrada padrão. join Junta dois arquivos combinado linha a linha. Os arquivos devem estar ordenados. Sintaxe: join [-at] arq1 arq2 -a num_arq : Produz uma linha na saída para cada linha do arquivo especificado por num_arq, onde num_arq é 1 ou 2 correspondendo a arq1 ou arq2. -tChar : Define o delimitador de campo (Char). ls Exibe informações sobre arquivos nomeados e diretórios. É usado para visualizar o conteúdo de um diretório. Sintaxe: ls [-adlR] arquivo... -a : Inclui na listagem os arquivos com o nome iniciando com “.” -d : Lista nome de diretórios como arquivos no lugar de seus conteúdos. -l : Escreve o modo do arquivo, o numero de ligações para o arquivo, o nome do proprietário, o nome do grupo, o tamanho do arquivo (em bytes), o rotulo de tempo e o nome do arquivo. -R : Lista os diretórios recursivamente. man Exibe as páginas do manual on-line. Sintaxe: man comando mkdir Cria novos diretórios. Sintaxe: mkdir [-mp] diretório... -m (modo) : Permite ao usuário especificar o modo a ser usado para os novos diretórios. -p : Cria o nome do diretório através da criação de todos os diretórios-pais não existentes primeiro. more Exibe o conteúdo de arquivos fazendo pausas a cada tela cheia. Sintaxe: more [-c] arquivo... -c : Limpa a tela antes de exibir o conteúdo do arquivo. mv Move arquivos para um outro arquivo ou diretório. 6 Sintaxe: mv [-fi] origem... destino -f : Apaga destinos existentes sem perguntar ao usuário. -i : Pergunta ao usuário antes de sobrescrever o arquivo de destino. passwd Modificam a senha pessoal. Sintaxe: passwd [username] ps Mostra o estado dos processos que estão rodando. pwd Exibe o seu diretório atual. rm Remove arquivos e diretórios. Sintaxe: rm [-fir] arquivo... -f : Remove os arquivos (mesmo com proteção de escrita) sem pedir confirmação do usuário. ssh -i : Solicita confirmação antes de apagar os arquivos. -r : Remove um diretório e todo o seu conteúdo, incluindo os subdiretórios se existentes. Inicia o cliente SSH. Permite conectar com computador remoto Sintaxe: ssh [-l nome_de_login] endereço_remoto sort Ordena e combina múltiplos arquivos. Sintaxe: sort [-bdfmnrut] arquivos -b : Ignora espaços em branco para encontrar a primeira ou última coluna do campo. -d : Classifica usando ordem alfabética. Somente letras dígitos e espaços são considerados na comparação. -f : Altera todas as letras minúsculas para maiúsculas antes da comparação. -m : Junta todos os arquivos de entrada em um só. -n : Ordena ao arquivo em ordem decrescente. -u : Apaga linhas duplicadas. -t : Define delimitador. Exemplos: sort -nru arquivo : ordena arquivo em ordem numérica decrescente e apaga as linhas duplicadas. sort -m arq1 arq2 : junta arq1 e arq2 e ordena split Divide um arquivo em partes. Sintaxe: split [-n] arquivo [prefixo] -n : Especifica o número de linhas de cada arquivo de saída. O padrão é 1000 linhas por arquivo. prefixo : Prefixo dos arquivos criados. Os sufixos serão aa, ab, ... tail Exibe as 10 linhas finais de um arquivo. Sintaxe: tail [-nf] [arquivo...] -n : seleciona as n últimas linhas -f : mostra as linhas à medida que são adicionadas ao arquivo top Mostra as tarefas em realização no Linux touch Atualiza o ultimo tempo de acesso e/ou modificação de um arquivo. Um arquivo vazio será criando se o nome especificado ainda não existir. Sintaxe: touch [-acm] [-t time] nome-do-arquivo -a : Altera a data de acesso do arquivo -c : Não cria o arquivo -m : Altera a data de modificação do arquivo. -t time: Usa a data especificada (time) como novo valor para o(s) rótulo(s) de tempo alterado. O 7 argumento é um numero decimal na forma [[CC]YY]MMDDhhmm[.SS] com significado obvio. Conta linhas, palavras e caracteres em arquivos. wc Sintaxe: wc [-clw] arquivo -c : conta caracteres -l : conta linhas -w : conta palavras Rudimentos de programação C-Shell Um Shell interpreta os comandos digitados pelo usuário e os traduz para comandos que o kernel pode entender. O Shell é na verdade uma linguagem de programação completa, possuindo variáveis, construções condicionais e interativas e ambiente adaptável ao usuário. Dois dos Shell mais comumente utilizados são o Bourne Shell (bash) criado nos laboratórios da Bell e o C-Shell que foi criado na Universidade da Califórnia. O Shell permite que o usuário realize suas atividades sem afetar qualquer outro processo que não lhe pertence. Quando um usuário conecta-se a um sistema Unix/Linux, o sistema operacional inicia automaticamente um cópia do Shell, sob a qual o usuário poderá realizar qualquer função disponível. Podemos usar o Shell iterativamente ou através de “scripts”. Sempre que executamos comando estamos usando o Shell iterativamente. Podemos também programar um conjunto de comando para serem executados seqüencialmente sem a intervenção do usuário; neste caso os comandos são editados em um arquivo chamado script e estamos então fazendo uma programação Shell. Arquivos que iniciam o Shell São arquivos contendo uma lista de comandos do Shell, que são utilizados para personalizar o seu ambiente de trabalho. Eles devem estar localizados no seu diretório home e para que sejam executados quando se efetua o login. No CShell os principais arquivos são: .login : Executado pelo Shell apenas quando se inicia uma sessão. .cshrc : É executado sempre que se inicia uma nova cópia do Shell. Quando se inicia uma sessão .cshrc é executado antes de .login. NOTA: Arquivo que iniciam com um ponto (p.ex. .cshrc) são ocultos e não são apresentados quando se executa o comando ls. Para exibir arquivos ocultos digite ls –a. Características do C-Shell • Semelhante à linguagem C • Possui history que armazena comandos á medida que são digitados permitindo que sejam reutilizados sem necessitar redigitação. !! re-executa o último comando !n re-executa o comando n !ftp re-executa o último comando iniciado por ftp !echo:p lista o último comando echo executado • Possui aliases, isto é permite ao usuário criar nomes simbólicos para comandos • Permite que se mova as tarefas d primeiro para o segundo plano e vice-versa. Para iniciar um comando em segundo plano coloque o caractere & após o comando 8 Para listar os comando que estão sendo executados digite jobs Para trazer o comando para o primeiro plano digite fg n, onde n é o número do processo obtido no comando jobs Sempre que se executa um comando estamos usando o Shell iterativamente sendo que as entradas/saída padrão (stdin/stout) e a saída de erro padrão (stder) são direcionadas para o terminal. Pode-se também alterar as saídas padrão utilizando operadores que redirecionam a saída do comando. < arquivo Utiliza arquivo no lugar da entrada padrão (stdin) > arquivo Utiliza arquivo no lugar da saída padrão (stdout) >> A saída do comando é direcionada cumulativamente para arquivo arquivo & Reúne stderr e stdout ! Escreve sobre arquivos ignorando uma eventual proteção | Conecta stdout de um comando a stdin de outro (Conduto). Exemplo: ls – la|more (conecta a saída do comando ls a entrada do comando more) O Shell script Utilize o vi ou outro editor de texto para criar o arquivo com o “script”. Na primeira linha indique o qual o Shell que irá interpretar o comando. Para utilizar o C-Shell digite #!/bin/csh. Após a criação do script use o seguinte comando para que o sistema reconheça o seu script como um executável: chmod u+x nome_do_script. Caracteres especiais e metacaracteres Aspas duplas (“) “string” – mostra o string e substitui variáveis se houver Aspas simples (‘) ‘string’ – mostra o string e não substitui variáveis Crase (`) `comando` - o resultado do comando é utilizado na saída Barra invertida (\) Transforma caractere especial em caractere normal ; Separador de comando seqüencial ? Combina com qualquer caractere isolado * Combina com qualquer cadeia de caractere [a-z] Combina com caracteres alfabéticos minúsculos Variáveis no C-Shell Para processar as informações é necessário manter certos dados na memória RAM do computador. A memória RAM é dividida em pequenas partes e cada parte possui um número chamado endereço de memória. A estes endereços de memória podemos atribuir nomes que chamamos de variáveis. No Shell Linux existem dois tipos de variáveis: Variáveis do sistema (globais) – criadas e mantidas pelo sistema. Estas variáveis são representadas em letras maiúsculas. Variáveis definidas pelo usuário (locais) – Criadas e mantidas pelos usuários. Representadas em letras minúsculas. Nomes de variáveis devem começar com caracteres alfanuméricos ou caractere underscore (_) Nomes de variáveis não podem conter hífen (-) Os nomes de variáveis distinguem letras maiúsculas e minúsculas Não use ?,* etc, no nome de variáveis Não utilize espaços à direita ou à esquerda do sinal de igual quando na definição de variáveis. 9 Para utilizar o valor de uma variável devemos utilizar o sinal $ antes de seu nome (exemplo: set v1=casa, echo $v1 – escreve na tela o valor da variável v1, isto é “casa”) Atribuído valores a variáveis: Tipo string: set var=expressão (exemplos: set v=”física”, set ano=2004) Tipo inteiro: @ var=expressão ( Exemplo: @ ano=2004 , @ v1=2, @ v2=3 ) Incrementar e decrementar: @ v1++ (soma 1 à variável $v1) @ v2-- (subtrai 1 da variável $v2) Alguns comandos para variáveis $?variável Testa a existência da variável =1 se a variável está definida =0 caso contrário $status Testa se um comando foi executado com sucesso =0 sucesso =1 sem sucesso $#variável Retorna o número de elementos de um vetor (array) $variável[n], Retorna o n-ésimo elemento de um vetor. $variável[n-m], Exemplos: set letra=(a b c d e) $letra[1] Æ a $variável[n-] $letra[1-3] Æ (a b c) $letra[3-] Æ (c d e) $< Direciona o terminal como entrada padrão (stdin). Exemplo: set variável=$< Passagem de parâmetros: $#argv Retorna o número de argumentos passados $1, $2, $3,... Argumentos posicionais $0 Retorna o nome do programa $* Retorna todos os argumentos $$ Retorna o número do processo do comando atual Operadores Compara variáveis numéricas == (igual) != (diferente) Compara somente strings =~ (igual) !~ (diferente) Lógicos and, && (e); or, || (ou) ou strings 10 >, < (maior, menor) >=, <= (maior ou igual, menor ou igual) Operadores aritméticos +, -, *, / Teste para arquivos (V/F) -e arquivo (V se arquivo existe) -r arquivo (V se arquivo é legível) -w arquivo (V se arquivo pode ser escrito) -x arquivo (V se arquivo é executável) -d dir (V se dir existir) -z arquivo (V se arquivo existir com tamanho zero) Comandos de decisão e seleção if – then – else - o then deve estar, obrigatoriamente, na if (expressão) then comandos 1 else comandos 2 endif mesma linha do comando if e não pode constar outro comando na linha - na linha do else não pode haver outros comandos Exemplos: if ($a==$b) then echo “As variáveis são iguais” else echo “As variáveis são diferentes” endif switch Exemplo: switch (string) set data=’date | cut –c9-10’ case valor1: comandos 1 breaksw case valor2: comandos 2 breaksw default: comandos 3 breaksw endsw set texto=”Relatório do mês de“ switch ($data) case 01: echo “$texto Janeiro” breaksw case 09: echo “$texto Setembro” breaksw default: echo “Relatório Anual” breaksw endsw Comandos de ciclo (loop) foreach foreach var (expressão) comandos Exemplo: set tabela=(maria joão) foreach pessoa ($tabela[*]) 11 end echo $pessoa end while Exemplo: while (expressão) while ($a<=10) comandos echo “Valor = $a” end $a++ end O básico do editor vi O vi (visual editing) é o editor de texto básico do Unix/Linux. Ele é fornecido com todas as versões do sistema operacional. O vi possui três modos de edição: o modo de comandos, o modo de inserção e o modo de movimentação do cursor. - Para sair dos modos de inserção e de comandos tecle [ESC] - uma vez no modo de movimentação do cursor, digite "i" para entrar no modo de inserção e ":" para entrar no modo de comandos. Para iniciar o vi vi arquivo abre ou cria arquivo vi +18 arquivo abre arquivo na linha 18 vi +/”string” arquivo abre arquivo na primeira ocorrência de string view arquivo abre o arquivo somente para leitura Comandos de cursor h move à esquerda j move para baixo k move para cima l move à direita w move uma palavra à direita W move uma palavra à direita (além da pontuação) b move uma palavra à esquerda B move uma palavra à esquerda (além da pontuação) [Return] move uma linha abaixo [Back Space] move um caractere à esquerda [Espaço] move um caractere à direita H move para o início da tela M move para o meio da tela L move para o fim da tela [Ctrl-F] avança uma tela [Ctrl-D] avança meia tela [Ctrl-B] retorna uma tela [Ctrl-U] retorna meia tela Inserção de texto e linhas 12 a insere texto à direita do cursor A insere caractere no fim da linha i insere texto à esquerda do cursor I insere texto no inicio da linha o insere linha abaixo da linha atual O insere linha acima da linha atual Modificações de texto cw altera palavra à direita do cursor cc altera a linha C altera parte da linha à direita do cursor s substitui o caractere no qual o cursor está posicionado J junta a linha atual com a linha abaixo xp troca o caractere em que o cursor está com o caractere à direita u desfaz o comando anterior U desfaz todas as alterações na linha x apaga caractere dw apaga palavra à direita do cursor dd apaga a linha D apaga parte da linha à direita do cursor :5,10 d apaga da linha 5 até a linha 10 yy ou Y marca linha a ser copiada p copia a linha marcada abaixo da linha atual P copia a linha marcada acima da linha atual dd apaga a linha :1,2 co 3 copia as linhas 1-2 e coloca-as depois da linha 3 :4,5 m 10 move as linhas 4-5 e coloca-as depois da linha 10 Busca e substituição set nu mostra as linhas numeradas set nonu inibe a numeração das linhas G vai para a última linha do arquivo 21G vai para a linha 21 /string/ procura string ?string? procura string no texto acima n procura a próxima ocorrência de string :g/string1/s//string2/gc procura por string1 e substitui por string2 consultando antes [Ctrl-L] limpa a tela :r arquivo insere o conteúdo de arquivo depois do cursor :34 r: arquivo insere o conteúdo de arquivo após a linha 34 13 Salvando e saindo do vi :w salva as alterações no “buffer” :w arquivo grava o conteúdo do “buffer” em arquivo :wq ou :zz salva as alterações e sai do vi :q! sai do vi sem salvar as alterações Endereços interessantes na Internet www.ufba.br www.fis.ufba.br www.fapesb.ba.gov.br www.cnpq.br www.mec.gov.br www.sbfisica.org.br Maquinas de Busca: www.cade.com.br www.google.com.br www.scholar.google.com Linux: www.mandrakelinux.com/pt-br www.suse.com www.redhat.com www.conectiva.com.br www.kuruminlinux.com.br www.slackware.com Software: www.driversguide.com www.grisoft.com www.superdownloads.com.br www.macfee.com housecall.trendmicro.com Científico: www.scithdaily.com http://www.periodicos.capes.gov.br www.nist.gov cienciahoje.uol.com.br www.scite.pro.br/ Página da UFBA Página do IFUFBA Fundação de Amparo à Pesquisa do Estado da Bahia Conselho Nacional de Desenvolvimento Científico e Tecnológico. Ministério da Educação Sociedade Brasileira de Física Página do Mandrake Página do Suse Página do Redhat Página do Conectiva Fórum Kurumin Página do Slackware Drivers diversos AVG antivírus Possui diversos programas que podem ser descarregados Mcafee antivírus Antivírus com varredura “on-line” Apresenta “link” de noticias cientificas selecionadas Portal de periódicos da CAPES National Institute of Standards and Technology Revista de ciências “on-line” Banco de recursos didáticos de ciências Bibliografia [1] Augusto C. Campos, “Introdução ao Linux”, www.br-linux.org [2] Rodrigo O.R. Antunes, Instituto de Informática – Departamento de Ciências da Computação – PUC-MG, www.i2.com.br/~rora/aulas/topicos/arquivos. [3] Adriano Silveira da Silva, Ivan Leitzke Pagel, “Sistemas de arquivos no Linux”, Escola de Informática- Universidade Católica de Pelotas. [4] Cristiana Munhoz Eugênio, Lillian Palermo, “UNIX Avançado – Programação C-Shell”, UNICAMP, SP-Br. [5] Aurélio Marinho Jargas, “Canivete suíço do programador Shell”, http://aurelio.net/shell/canivete.html 14