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

Documentos relacionados