370 likes | 459 Views
Trabalhando com Linux. Shell. Programa que fica entre o usuário e o kernel Shells disponíveis sh - shell original do unix, criado por Bourne, disponível em todos os unixes csh - desenvolvido por UC-Berkeley bash - shell padrão do linux ksh, pdksh, etc. Shell - arquivo .bashrc.
E N D
Shell • Programa que fica entre o usuário e o kernel • Shells disponíveis • sh - shell original do unix, criado por Bourne, disponível em todos os unixes • csh - desenvolvido por UC-Berkeley • bash - shell padrão do linux • ksh, pdksh, etc
Shell - arquivo .bashrc • Arquivos que começam com . e terminam em rc geralmente são usados para configurar como um programa irá rodar • O arquivo .bashrc servirá para configurar o shell bash
Ciclo de Execução dos Comandos • Shell • Analisa componentes da linha de comando • Procura arquivo e verifica permissão de acesso • Pede ao kernel para executar comando • Passa opcões e argumentos válidos • Espera fim da execução • Exibe prompt do shell • Kernel • Copia o programa do disco para memória • Executa comando • Retorna comando ao shell
Comandos Unix comando [-opcoes] [argumentos] • who • who -H • ls • ls -l • ls -l /etc • date
Erros no comando • Condições: • command not found • permission denied • cannot open file • cp cp: insufficient arguments • DATE comand not found
Obtendo ajuda • man ls • man who • man cp • man man • man -a cp
Encerrando uma sessão • logout • exit
Terminais Virtuais • Teclas ALT-Fn • É possível abrir novas sessões usando-se as teclas ALT-Fn • Um número pré-definido de terminais é configurado • Se estiver em modo gráfico? • CTL-ALT-F6 tira do modo gráfico e vai para o modo texto • ALT-F7 leva novamente para o modo gráfico
Desligando [e Religando] • shutdown -h now Faz testes, fecha todos os arquivos, encerra todos processos e desliga o sistema • shutdown -r now Faz testes, fecha todos os arquivos, encerra todos processos e religa o sistema
Tipos de arquivos • Diretório • Ponteiro para outros arquivos • Não contém dados • Normal • Contém dados, programas, etc. • Especial • Ponteiro para um periférico • Não contém dados • Localizado no diretório /dev • Ligação simbólica • Ponteiro para outro arquivo
Nomes dos caminhos /home/ana/dados/texto.doc caminho absoluto pedro/programa.c caminho relativo
Caracteres especiais do shell • Expansão de nome de arquivos • * - qualquer conjunto de caracteres, • ? - qualquer caracter sozinho, • [ ] - lista ou extensão de caracteres • Execução de comando • -, +, <, >, >>, !, &, ;, ( ) , “ • Remoção de significado especial • “ “,‘ ‘, \
Exemplos de substituição • ls File.new file1 file2 file3 file4 file5 fig fit fin fun • ls fi? fig fin fit • ls f?? fig fit fun • ls fi[gn] fig fin • ls file[1-4] file1 file2 file3 file4 • ls file[!1-4] file5
Como gerenciar diretórios • Mostrar o diretório corrente • Listar o diretório corrente • Cria novos diretórios • Mudar de diretório • Remover diretórios
Diretório atual • pwd /home/adriano
Listando diretórios ls [-opções] [diretórios ou arquivos] • ls • ls meudir • ls -la meudir 534 drwxr-xr-x 5 paulo users 512 May 07 08:34 . 231 drwxr-xr-x 5 paulo users 512 May 07 08:34 .. 732 drwxr-xr-x 2 paulo users 512 May 13 08:34 memo 497 -rwxr-xr-x 1 paulo users 134 May 12 07:25 prog1 832 lrwxr-xr-x 2 paulo users 12 Jun 07 21:30 teste -> report/teste
Listando diretórios ls [-opções] [diretórios ou arquivos] • ls -lt lista em ordem cronológica, mais novos primeiro • ls -ltr lista em ordem cronológica, ordem reversa
Criando diretórios mkdir [-m modo] [-p] diretórios • mkdir subdir • mkdir programas dados • mkdir -m 700 meudir • mkdir -p teste/setembro
Removendo diretórios rmdir [-ps] [diretórios] • rmdir memo • rmdir report rmdir: report not empty • rmdir dados • rmdir teste
Mudando de diretórios cd [diretório] • pwd /home/paulo • cd report • pwd /home/paulo/report • cd ../cartas • pwd /home/paulo/report
Copiando arquivos cp [-fip] arqfont arqdest cp [-r] [-fip] dirfont dirdest • cp -i dados1.txt dado2.txt cp: overwrite dados2.txt? • cp memo1 memo2 memo3 ../backup • cp -r dir1/subdir1 subdir2 • cp /home/paulo/prog1.c .
Movendo arquivos/diretórios mv [-fi] origem arqdest mv [-fi] origem dirdest • Serve tanto para mover arquivos/diretórios como para renomeá-los • Exemplo: • mv dados.txt dados.ruim • mv programas progvelhos
Removendo arquivos rm [-fi] arquivo rm -r [-fi] diretório • Opção -i para que o sistema pergunte se quer mesmo remover. • Opção -f não pergunta nada. • Opção -r remove recursivamente nos subdiretórios. • rm -i prog* • rm -r -i meusprogramas
Removendo arquivos - avisos • Em Unix apagar um arquivo significa fazê-lo desaparecer. Não há lata de lixo. • Procurar usar a opção -i. Criar um alias e incluir no arquivo .bashrc é uma opção. • Usar a opção -f somente quando o seu aniversário cair em uma sexta, for ano bissexto e a lua estiver cheia.
O que é o arquivo/diretório? file [opções] arquivo • file * P001Q1.EPS: PostScript document Vhdl2-GRADU1.ppt: text Xdefaults.edmundo: English text bc: directory dead.letter: ascii text mbox.old.gz: gzip compressed data php: directory
Ligando arquivos/diretórios ln [opções] arqfonte [arqdest] ln [opções] arqfonte ... diretório Cria ligações entre arquivos. Opção -s cria ligação soft. Sem -s cria uma ligação hard, ou seja, outro nome para o arquivo. • ln -s ../ola • ln ola teste • ln -s ../ola oladaqui • ln -s ../ola ../novo .
less e more less [opções] [arquivo] • Comandos que permitem a leitura de arquivos • less é mais do que more • Para usar digite less e o nome do arquivo • Use q para parar de ver o arquivo • Use espaço para passar para próxima tela • Use b para voltar uma tela. • lessprograma.c
Procurando dados em arquivos grep [opções] arquivo ... • grep begin *.pas procura palavra begin nos arquivos do diretório • grep -i adriano *.txt procura palavra adriano, ignora caixa das letras • grep -i -w nota *.txt procura nota como palavra completa e ignora caixa • grep -s -l -w if *.pas procura palavra if, sem mensagens de erro, só lista arquivos
Procurando arquivos find [diretórios] [expressão] • find . -name prog.pas -print procura arq prog.pas a partir do diretório atual • find . -atime +2 -atime -4 -print procura arqs alterados a mais de 2*24 hs e menos de 4*48 hs • find . -name *.pas -exec grep -l rotina “{}” \; procura em arquivos *.pas a palavra rotina • find . -name *.pas -exec rm -i “{}” \; procura arquivos *.pas e pergunta se quer remover
Permissões de acesso • Usuários são divididos em três grupos • Usuário (u) • O seu grupo (g) • Outros (o) • Tipos de permissão • Leitura (r) • Escrita (w) • Execução (x)
Informações sobre os arquivos • ls -la * drwxr-xr-x 2 ze users 512 Jun 4 15:04 dados -rw-r--r-- 1 ze users 1765 Jun 5 17:00 d.txt • d.txt • usuário rw- • grupo r-- • outros r-- • dono ze • grupo users
Mudando modos chmod [opções] modo arquivo • modo = [ugoa] [+-=] [rwxXstugo] • chmod ug+x, o-r memo • chmod g+w grp.c • chmod go-rx a.out • chmod u=rwx prog.exe
Mudando modos chmod [opções] modo arquivo • chmod 644 memo • chmod 755 grp.c • chmod 700 a.out • chmod 770 prog.exe
Mudando grupo do arquivo chgrp [opções] grupo arquivo • chgrp projeto memo • chgrp users grp.c
Mudando dono do arquivo chown [opções] usuário[:grupo] arquivo • chown adriano teste • chown adriano:users novo_arquivo