OFICINA DE SHELLSCRIPT

Documentos relacionados
AULA 3. Bruno L. Albrecht Felipe A. Chies Lucas F. Zawacki. PET Computação UFRGS

AULA 4. Bruno L. Albrecht Felipe A. Chies Lucas F. Zawacki. PET Computação UFRGS

Minicurso Básico de Linux

Relatório contendo todos os comandos do Linux estudados

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Comandos de arquivos

Estácio-FIC Graduação em Redes de Computadores

Introdução ao Linux. Marcelo Gomes de Paula

Redes de Computadores

Programação Shell Script: como dominar seu terminal

S.O.R. A Interface de comando

Minicurso Básico de Linux

Linux - comando essenciais

ADMINISTRAÇÃO DE SISTEMAS UNIX Aula Prática 01 Sistemas Operacionais Gil Eduardo de Andrade

Introdução ao uso do Linux (parte 2)

1.1-Digitar o comando abaixo para entrar no manual on-line do sistema para buscar informações sobre o comando pwd. man pwd

Administração de sistemas operacionais. Comandos de manipulação de arquivos/diretórios.

Introdução a Administração de Sistemas GNU/Linux

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

10. mkdir [pasta1] [pasta2] (cria pasta1 e pasta dois ao mesmo tempo) Exemplo: $ mkdir teste1 teste2

Marcelo Gomes de Paula

1º Ano - Técnico em Informática Integrado. Sistemas Operacionais

CEFET SC UNIDADE DE SÃO JOSÉ CURSO TÉCNICO EM TELECOMUNICAÇÕES REDES DE COMPUTADORES/TELEFONIA DISCIPLINA DE SISTEMAS OPERACIONAIS

Estudo de Caso II: LINUX. Flávia Maristela

Introdução a Sistemas Abertos. Ambiente shell

Usando o terminal -- Linux -- Flávia Maristela

Informática. Linux. Professor Márcio Hunecke.

Realizar o gerenciamento básico de arquivos

Curso de Programação MINISTRADO POR LUCAS CATON. Comandos para o Terminal

Aula 02. Introdução ao Linux

SHELL. Alberto Felipe Friderichs Barros

Aula de Linux Modo Texto

Curso de extensão em Administração de sistemas GNU/Linux: redes e serviços

Sistemas Operacionais Abertos

Comandos de monitoração de ambiente e redes no Linux

Permissões de acesso no Linux

Entraremos em sistema linux para realizar algumas tarefas e aprender alguns comandos.

Comandos Básicos do Linux/Unix

10: Terminal do Linux (bash) ICO /2 Professores: Bruno Fontana da Silva Maria Cláudia de Almeida Castro

Linux Básico. Prof. Odilson Tadeu Valle, M. Eng.

Obtendo Ajuda. Linux oferece diversas formas de ajuda aos seus usuários:

Comandos Básicos no Linux

Introdução a shell scripts

LINUX -- Usando o Terminal -- Flávia Maristela

MÓDULO 01 INTRODUÇÃO AO LINUX

Sistemas Operacionais. Laboratório 1 (Ambiente de Aprendizado)

Aula 2 de Linux Modo Texto

EXERCÍCIOS PARA O UNIX BÁSICO. 1. Cada um dos usuários possui uma área de trabalho no Unix. Escreva no quadro abaixo o seu username.

Introdução ao Linux. Básico de Linux. 1. Estrutura de Diretórios: Listando Arquivos e Diretórios (pastas). Mudando de Diretório. Criando um Diretório.

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Prática 01: Conceitos Iniciais

Nesse guia, estão relacionados os principais comandos para manipulação de arquivos e diretórios, que são mais comumente usados no dia-a-dia de um pwd

Aula 04 Sistemas Embarcados LT38C

Administração de Sistemas Operacionais Prof.: Marlon Marcon

Curso de extensão em Administração de redes com GNU/Linux

Linux Diretórios. /opt. Aplicativos adicionais (opcionais). Não oficiais da distribuição.

Aula de Linux Modo Texto

Comandos básicos. Sistemas Operacionais II

Permissões de acesso no Linux. Sistemas Operacionais Curso Técnico em Informática Prof. Maria de Fátima de F. B. Marcílio

Introdução a Administração de Sistemas GNU/Linux

COMANDOS DESCRIÇÃO EXEMPLOS DE USO

ISA. A Interface de comando

CMD. Prompt de comando do Win 10. Professor Jorge Maestre Carvalho

Gerenciamento de Arquivos

Introdução ao Linux. Instituto Federal de Educação, Ciência e Tecnologia do Sul de Minas Gerais Campus Pouso Alegre

Objetivos Instalação Gerência de Pacotes UNIX Shell. Curso UNIX. Matheus Braun Magrin Felipe dos Santos Silveira

Formação de Administradores de Redes Linux LPI level 1

UFRJ IM - DCC. Departamento de Ciência da Computação. Sistemas Operacionais II. 25/10/2016 Profª Valeria Menezes Bastos 1

b. Causa parada do processo c. Reinicia um processo parado d. O processo é enviado para primeiro plano e. O processo é enviado para segundo plano 5)

Práticas de Desenvolvimento de Software

Principais Comandos do Terminal no LINUX

Programação Shell Script: como dominar seu terminal (versão 2)

Técnico Subsequente em Redes de Computadores Introdução a Sistemas Abertos (ISA)

Comandos. Sistema Operacional GNU/Linux. Para Manipulação de Diretórios

PROJETO INTERDISCIPLINAR I

LISTA DE COMANDOS DO LINUX 1

UFRJ IM - DCC. Departamento de Ciência da Computação. Sistemas Operacionais II. 25/10/2016 Profª Valeria Menezes Bastos 1

Sistemas Operacionais. Linux Básico

Laboratório de Informática III. Sistema Operativo Linux

Introdução à Informática

Volnys Borges Bernal 6/15/99 1. C-Shell e TC Shell. O que é um shell? O que é um shell? O que é um shell? O que é um shell?

Entendendo o Sistema Operacinal. Prof. Armando Martins de Souza armandomartins.souza@gmail.com

LINUX. Uma visão geral

Introdução a. Shell Script. Clésio Matos

Sistemas Operacionais

Shell Script. Rafael Silva Guimarães

Linux para iniciantes: Desbravando o pingüim! Versão Parte 2

GNU/Linux/Bash. Aula 2

Comandos Linux. Instalação e Montagem de Computadores. Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos

Moisés Souto docente.ifrn.edu.br/moisessouto

Mestrado em Gestão de Informação Computadores e Redes de Comunicação, 2004/07

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Linux. Linux é um núcleo (kernel) para sistemas operacionais baseados no conceito de software livre.

Programação Aplicada a Redes de Computadores Shell Script

Sistemas Operacionais e Introdução à Programação. Redirecionamentos Editor vi

Sistema de Arquivos. Volnys Borges Bernal. Laboratório de Sistemas Integráveis

Transcrição:

OFICINA DE SHELLSCRIPT III Semana Acadêmica do II 24 de Outubro de 2008 Grupo PET Computação Felipe A. Chies Bruno L. Albrecht

SHELL

SHELL Programa que recebe comandos do teclado e os envia ao SisOp para serem executados; É um meio de interação entre o usuário e a máquina; Antigamente, era a única interface disponível nos computadores; Pode ser considerada um tipo de linguagem de programação > Shell Programming Resumindo: É um intepretador de comandos!

SHELL Tarefas executadas: Espera o usuário fornecer um comando (prompt) Analisa e trata caracteres especiais da linha de comando Procura arquivo executável do comando Cria um processo filho (fork) para executá lo Espera que o comando termine para retornar ao prompt Exceção: comandos em background (&)

SHELL Bourne Shell (sh) Korn Shell (ksh) Boune Again Shell (bash) C Shell (csh)

TERMINAL É um programa de terminal gráfico emulador de terminal; Permite que façamos uma interação com a shell através de uma janela, dentro da interface gráfica. A seguir, alguns comandos úteis que serão utilizados ao longo da oficina

man Principal comando de todos!!! Acessa as páginas de manuais (manpages); Exemplo: man ls Mostra a página do comando ls (descrição do comandos, uso, etc...); Opção man k <palavra> : lista todos os comandos onde a palavra aparece em sua descrição ou nome. Exemplo: man k java man man > comando válido! Obs.: sudo apt get install manpages manpages dev

ESTRUTURA DE DIRETÓRIOS A árvore de diretórios do Linux segue um padrão estabelecido pelo unix durante a maior parte de sua existência, mas controlada por um conjunto de regras estabelecidas pelo Linux FileSystem Standard, ou FSSTND.

cd Descrição: permite nos a navegação entre os diretórios do sistema; Exemplo: cd /usr Vamos para o diretório usr. Opções: cd ~ : vai para o diretório home do usuário; cd. : diretório atual; cd.. : vai para o diretório pai (na árvore); cd : vai para o último diretório acessado.

pwd Descrição: permite saber em qual diretório estamos no momento, onde pwd significa "print working directory"; Exemplo: pwd

cat Descrição: Utilizado, em geral, para concatenar arquivos ou exibir arquivos de texto na tela; Exemplos: cat n arq.txt exibe o conteúdo do arquivo na tela ( n com as linhas numeradas) cat arq1 arq2 arq3 > arq_final concatena os 3 arquivos e coloca o resultado no arq_final;

tac Descrição: Comando similar ao cat, mas exibe ou concatena os arquivos na ordem inversa; Exemplo: tac arq.txt exibe o conteúdo do arquivo na tela na ordem inversa;

ls Descrição: lista os arquivos do diretório desejado; Exemplo: ls Lista os arquivos do diretório atual; Opções: ls a : mostra também os arquivos ocultos; ls l : listagem com mais detalhes; ls lhs : com tamanhos de arquivos legíveis ( h) e classificados por tamanho ( S); ls R : lista também os sub diretórios; ls 1 : um arquivo por linha.

dir Descrição: comando similar ao ls; Exemplo: dir lh Lista os arquivos do diretório atual no formato longo com tamanhos legíveis ;

mkdir Descrição: cria um diretório vazio; Exemplo: mkdir /home/felipe/pet cria uma pasta 'pet' no local desejado.

rm Descrição: remove arquivos e diretórios. Exemplos: rm a.txt remove o arquivo a.txt; rm r /home/felipe remove o diretório 'felipe' e todos os seus arquivos e subdiretórios recursivamente; Nota: Use este comando com muito cuidado!

rmdir Descrição: outra forma de remover diretórios, mas apenas remove diretório vazios; Exemplo: rmdir /home/felipe/pet remove a pasta vazia 'pet'.

mv Descrição: move arquivos e diretórios, sendo muito usado também para renomear um determinado arquivo. Exemplos: mv ~/a.txt /tmp/a.txt move o arquivo do diretório pessoal do usuário para a pasta /tmp ; mv teste1.txt teste2.txt renomeia o arquivo teste1.txt para teste2.txt.

cp Descrição: faz cópias de arquivos e diretórios. Exemplos: cp /home/felipe /tmp faz uma cópia de toda a pasta do usuário felipe para a pasta tmp; cp a.txt a_copia.txt cria uma cópia do arquivo a.txt no diretório corrente; cp *.txt /tmp copia todos arquivos com extensão '.txt' para a pasta tmp;

scp Descrição: copia remotamente um arquivo/diretório (de uma máquina para outra) Exemplos: scp fachies@portal.inf.ufrgs.br:public_html/index.htm ~/ copia o arquivo index.htm remoto para o diretório home local, sem renomeá lo scp ~/arquivo.htm fachies@portal.inf.ufrgs.br:public_html/index.html Copia o arquivo arquivo.htm local para o diretório remoto e renomeia o para index.html

wget Descrição: baixa um arquivo (qualquer) da internet Exemplo: wget http://www.inf.ufrgs.br/~fachies/index.htm Baixa o arquivo e coloca o na pasta onde o comando foi executado wget http://www.inf.ufrgs.br/~blalbrecht/oficina/arquivo.tgz O ~/pet/oficina/shell.tgz Baixa o arquivo arquivo.tgz e coloca o na pasta indicada, com o novo nome

ln Descrição: cria ligações (links, atalhos) entre arquivos ou diretórios. Exemplo: ln s /home/felipe/mp3 /mp3 cria um link simbólico (soft link) 'mp3' na raiz para o diretório localizado dentro do home do usuário felipe; ln /home/felipe/mp3 /mp3 Semelhante ao anterior, mas cria um hard link

ln Para quem já fez SisOp: Hard link: ponteiro para um i node Soft link: ponteiro para um ponteiro para um i node (mais parecido com um 'atalho') Ou seja: Apagar um arquivo significa apagar um ponteiro para seu i node Apagar um hard link apaga um ponteiro para um i node Apagar um soft link apaga somente o soft link Exercício: Crie um arquivo, escreva teste nele. Crie um hard link e um soft link para ele. Dê um 'cat' nos 3 arquivos. Apague o arquivo. Dê um 'cat' nos links.

touch Descrição: muda a data e hora que um arquivo foi criado. Também pode ser usado para criar arquivos vazios (utilização mais comum). Exemplos: touch arq cria um arquivo vazio se ele não existir, ou modifica a data de última alteração para a atual; touch t 10201830 arq altera a data do arquivo (ou cria) para 20/Out às 18h30;

Execução de Comandos Pipe ( ): concatena a saída de um comando com a entrada de outro ls grep txt Cat arquivo.txt less Seqüencial ( ; ): comandos executados em seqüência Background ( & ): executa um comando em background, deixando o terminal livre firefox &

grep Descrição: Procura por uma expressão dentro de um arquivo(s) ou no dispositivo de entrada padrão. Exemplos: grep Curso Linux arq1.txt arq2.txt Procura a expressão ( Curso Linux ) nos dois arquivos; ls grep linux Procura a expressão (linux) na saída do comando ls;

more / less Descrição: Mostra arquivos na tela de forma paginada; Navegação: para sair do aplicativo digite q use as teclas Page Down, Ctrl+F ou Space para avançar use as teclas Page Up ou Ctrl+B para voltar. use Enter para avançar apenas uma linha por vez. Exemplo: more arq.txt less arq.txt Obs.: tecle 'h' no less para saber mais teclas de navegação

vi / vim Descrição: editor de texto vim (vi improved); No Ubuntu ambos os comandos abrem o vim! Exemplo: vim arq.txt Abre o arquivo para edição ou cria (desde que ao fecharmos salvarmos) um novo se não existir;

diff Descrição: compara o conteúdo de dois arquivos, exibindo a diferença entre eles; Exemplos: diff arq1.txt arq2.txt exibe a diferença na tela dos dois arquivos; diff i arq1.txt arq2.txt > arq.txt salva no arq.txt a difença entre os dois arquivos, ignorando as diferenças entre maisúculas e minúsculas ( i);

sort Descrição: organiza as linhas de um arquivo texto ou da entrada padrão; Exemplos: sort d nomes.txt exibe na tela os nomes em ordem alfabética ( d) sort n numeros.txt > crescente.txt ordena os números ( n) em ordem crescente, colocando o resultado no arquivo crescente.txt;

PERMISSÕES No Linux, como em outros sitemas Unix, cada arquivo tem uma permissão. As permissões são atributos dos arquivos que especificarão se ele pode ser lido, escrito ou executado, e por quem; Trata se de um conjuto de 10 letras; Exemplo: drwxr xr x 1 : tipo (arquivo normal, diretório, link, etc); 2 a 4 : permissões para o dono (rwx); 5º a 7º: permissões para os membros do grupo (rwx); 8 a 10 : permissões para os outros (rwx);

PERMISSÕES O Linux (na verdade, qualquer sistema operacional baseado em Unix) possui um tipo de usuário que tem acesso irrestrito aos arquivos e processos do sistema: trata se do usuário root ou super usuário; Use o com moderação e tome cuidado! No ambiente shell (antes do primeiro caractere): $: usuário normal; #: root;

PERMISSÕES E TIPOS Tipo: d: diretório; l: link; : arquivo normal; Demais bits (rwx): r: permissão para leitura (read); w: permissão para escrita (write); x: permissão para execução; : ausência de permissão; Outro exemplo: rw r r

chmod / chown / chgrp chmod: altera a permissão do arquivo/diretório; chmod u+x exec Adiciona (+) permissão de execução(x) ao dono do arquivo (u); chmod 770 liberado Permissão (rwx = 111 em binário = 7 em octal) para o dono e membros do grupo, e nenhuma ( = 0) para os outros; chown: altera o dono do arquivo/diretório chown R bruno /home/felipe/oficina chgrp: altera o grupo do arquivo/diretório chgrp R pet /home

sudo Descrição: Permite a execução de um comando como outro usuário ou como super usuário; A configuração do sudo geralmente é feita através do arquivo /etc/sudoers; Exemplo: sudo u felipe vim /home/felipe/arq.txt executa um comando como o usuário felipe; sudo vim /etc/passwd executa o comando acima como root;

locate Descrição: pesquisa em uma base de dados de nomes de arquivos por nomes que satisfaçam um determinado padrão. Essa base de dados é atualizada com o comando Exemplo: $ sudo updatedb # updatedb locate oficina_shell /home/felipe/oficinashell/oficina_shell.parte1.pdf /home/felipe/oficinashell/oficina_shell.parte2.pdf

find Descrição: Comando utilizado para procurar por arquivos (ou diretórios) na árvore de diretórios, a partir de um caminho. Exemplos: find. name a.txt busca todos arquivos que tenham nome a.txt, a partir do diretório atual; find / size +10000k busca no computador todos arquivos com tamanho maior que 10.000 Kb;

mount / umount Descrição: inclui o sistema de arquivos de um dispositivo qualquer à grande árvore de arquivos do sistema Linux; Exemplos: sudo mount t ntfs /dev/hda1 /mnt/windows monta o hda1 com sistema de arquivos ntfs no ponto /mnt/windows; sudo mount t vfat /dev/sda /mtn/usb monta o dispositivo USB (localizado em /dev/sda), com o sistema de arquivos fat no diretório /mnt/usb; sudo umount /dev/hda1 desmonta o hda1, se este não estiver em uso Se hda1 estiver em uso, pode se utilizar o comando fuser para descobrir quais processos estão utilizando o

OUTROS COMANDOS uname: exibe informações sobre o sistema; uname a mostra todas as informações ( a), como o nome do kernel, o nome de rede da máquina, a versão e a data de compilação do sistema operacional e o hardware da máquina. shutdown: programa o desligamento / reinicialização do sistema sudo shutdown r 20:00 Reinicia o sistema às 20h

(DES)COMPACTAÇÃO DE ARQUIVOS zip / unzip: formato Zip zip compactado.zip descompactado.txt compacta o arquivo (2º argumento) no arquivo compactado.zip unzip compactado.zip descompacta o arquivo no diretório atual gzip / gunzip: formato GZ bzip2: formato BZ2 bzip2 z compactado.bz2 descompactado.txt Compacta arquivos Bzip2 d compactado.bz2 Descompacta arquivos

tar Descrição: agrupa/desagrupa arquivos no formato tar; Exemplos: tar cvf arquivos.tar *.txt Agrupa todos os arquivos (*.txt) em um.tar com nome arquivos.tar; tar xvf arquivos.tar desagrupa o arquivo no diretório atual; tar xzvf arquivos.tar.gz descompacta o arquivo (Tar + Gz); tar xjpvf arquivos.tar.bz2 descompacta o arquivo (tar + bz2)

Redirecionador de fluxo > envia a saída de um comando para um arquivo (sobrescreve o arquivo) >> igual ao '>', mas faz um append < envia o conteúdo de um arquivo para o comando Mais informações: Google!

STDIN. STDOUT. STDERR STDIN: entrada para os programas (padrão: teclado) STDOUT: saída para os programas (padrão: terminal) STDERR: saída de erro para os programas (padrão: variável de ambiente $?) Obs.: Os redirecionadores de fluxo '>' e '>>' mudam o STDOUT, enquanto o '<' muda o STDIN

/dev/null É um buraco negro! Tudo o que for mandado para lá desaparece! Bom para evitar mensagens desnecessárias until! who grep pet > /dev/null do sleep 60 done echo usuário pet foi embora às $(date %H:%Mh )!! $./testeuntil2 usuário pet foi embora às 17:39!! $