Interpretadores de comandos. Interpretadores de comandos de login válidos. Caracteres especiais. José Pedro Oliveira

Documentos relacionados
Este documento não é de forma alguma exaustivo, nem pretende ser um manual, apenas uma referência aos pontos nele abordados.

Este documento não é de forma alguma exaustivo, nem pretende ser um manual, apenas uma referência aos pontos nele abordados.

Algoritmos e Estruturas de Dados

Pesquisa por nome. Pesquisa por nome Pesquisa por tipo Pesquisa por tamanho. Pesquisa de ficheiros. José Pedro Oliveira

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

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?

Programação Shell Script: como dominar seu terminal

Programação. Folha Prática 1. Lab. 1. Departamento de Informática Universidade da Beira Interior Portugal Copyright Ó 2000 All rights reserved.

105 Shell Script. João Bosco Teixeira Junior

Interface gráfico. José Pedro Oliveira Interpretador de comandos Comando su. Conceitos de Sistemas Informáticos 2005

Duplicação e partilha de ficheiros

Administração de Redes de Computadores

Sistemas Operativos Guião da 1 a aula prática

Introdução a Sistemas Abertos. Ambiente shell

Shell Script. Rafael Silva Guimarães

Introdução aos Sistemas Operativos

João Correia Lopes. v 1.0, Outubro de Introdução aos Sistemas Operativos v1.0 1

Licenciatura em Eng.ª Informática Sistemas Operativos - 2º Ano - 1º Semestre. Trabalho Nº 4 Desenvolvimento de um mini-shell

SISTEMAS OPERATIVOS I

1.2 Organização de directórios e ficheiros A linha de comandos

Curso de Formação LPIC-1 Exame 101

Ana Paula Tomás. Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2010/2011

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

Sistemas Operacionais II

Abortar a execução dum programa

Arquitetura de Sistemas Operativos

Listagens de ficheiros e directorias

Sistema Operacional GNU/Linux. Comandos. para Execução de Programas

Instalação e Configuração de Servidores Linux Server Gerenciamento de Processos. Prof. Alex Furtunato

Unnamed Pipes. Chamada ao sistema pipe. Pipes. Comunicação entre processos. Unnamed Pipes Chamada so sistema. José Pedro Oliveira

Sistemas Operativos. (ano letivo ) Laboratório 2

Introdução ao Shell-Script

Preparatório LPIC-101

SISTEMAS OPERATIVOS I

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

SISTEMAS OPERATIVOS I

Introdução a shell scripts

Redes de Computadores

Curso de Formação LPIC-1 Exame 101

Minicurso Básico de Linux

Contatos do Professor Apresentação do Conteúdo Datas das Avaliações Referências Conceitos Básicos Arquivos de Configuração de Ambiente Regras a

Aula 9: Shell Script

Minicurso Básico de Linux

Sistema de Entrada/Saída

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

Gestão de ficheiros e directórios

Processos. Volnys Borges Bernal. Edson Toshimi Midorikawa

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

Programação de Scripts Considerações Gerais. Adaptado do material do Prof. Mário Fiocco Júnior

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCENS UFES Departamento de Computação. Shell Script

SISTEMAS OPERATIVOS I

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Configuração do Interpretador de Comandos

PROGRAMAÇÃO I - Folha prática 1

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

Aula 5 e 6: Introdução ao shell

SISTEMAS OPERATIVOS I

Introdução ao sistema operativo UNIX

Licenciatura em Eng.ª Informática Sistemas Operativos - 2º Ano - 1º Semestre. Trabalho Nº 1 - Linux e C

Shell Script. Básico do básico

Introdução à linguagem C

Sistemas Operacionais de Redes Comandos de Administração. segunda-feira, 1 de julho de 13

Programação. Folha Prática 10. Lab. 10. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Administração de sistemas Linux. Administração de processos.

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

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

CET GRSI Sistema Operativo de Rede. António Paulo Santos

Conceito de programação

Ambiente de desenvolvimento

SISTEMAS OPERATIVOS I

ADMINISTRAÇÃO DE REDES I LINUX. Shell Script. Frederico Madeira LPIC 1, CCNA

FACULDADE DE TECNOLOGIA SENAC PELOTAS. Trabalho de Shellscript Atividade 5 Introdução a Informática

A D M I N I S T R A Ç Ã O D E S I S T E M A S / P E D R O B R A N D Ã O REFERÊNCIAS DOS SLIDES

Programação Shell Script: como dominar seu terminal

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

SISTEMAS OPERATIVOS I

Variáveis. Você pode ver as variáveis do sistema com os comandos printenv, env e set como mostra o exemplo abaixo:

Nesta aula... 1 Funcionamento da disciplina, objectivos e avaliação. 2 Introdução aos computadores

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

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

Processos. Programas e Processos. Aula 1 - Chamadas ao sistema. José Pedro Oliveira fork exit getpid, getppid wait, waitpid

Linux. Departamento de Ciência de Computadores da FCUP IC Aula 1 1

Comunicação baseada em canais de I/O e Pipelines no sistema Unix. José C. Cunha, DI-FCT/UNL

Aula 04 Sistemas Embarcados LT38C

Descrição. Termos e utilitários. Áreas em foco. Processos. Processos. Comandos GNU e Linux

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

Python: Entrada e Saída. Claudio Esperança

Introdução aos Sistemas Informáticos

Sistemas Operativos. Engenharia de Sistemas e Informática. Valter Alves Paulo Almeida. Escola Superior de Tecnologia de Viseu

A ferramenta make. A - Introdução. O C é orientado para a produção de aplicações informáticas de grande dimensão

Programação Python. Nesta aula... 1 Programação. 2 Python. Operadores e Operandos Variáveis, Expressões, Instruções Funções Ciclos Comentários

Guia de Consulta Rápida. Bash. Joel Saade. Novatec Editora.

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais

Preparatório LPIC-1 Tópico 103

C/C++; biblioteca stdio

Manipulação de directorias

Introdução a Sistemas Abertos. Shell Script

Complementos de Programação. Engenharia Electrotécnica - Electrónica e Computadores. Ano Lectivo: 2005/2006. Ana Madureira. Gestão de Processos

Sistemas Operativos Guião da 2 a aula prática

Transcrição:

Conteúdo Utilização (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos 2005-2006 1 2 3 4 de login válidos Programa que aceita comandos do teclado e os executa. A bash é um exemplo de um interpretador de comandos UNIX. de login É o especificado no ficheiro /etc/passwd. Funções de um interpretador de comandos fornecer um interface de linha de comando realizar redirecção de Entrada/Saída (I/O - Input/Output) realizar substituição de nome de ficheiros realizar substituição de variáveis fornecer uma linguagem de programação interpretada Ficheiro /etc/shells Ficheiro de texto que contem os caminhos absolutos (full pathnames) de interpretadores de comandos de login válidos. $ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/bash2 /bin/ash /bin/bsh /bin/tcsh /bin/csh

Arrancar e terminar uma shell da bash Arrancar outra shell Basta invocar o binário da shell pretendida. Exemplos: sh csh Nota: O prompt apresentado varia conforme o tipo de shell. Terminar logout exit CTRL+D (se shell de login) (marca de fim de ficheiro) globais /etc/profile /etc/profile.d/*.sh pessoais /.bash profile /.bashrc /.bash logout O caracter representa a homedir do utilizador. Caracteres de citação (quoting) white space caracteres (espaços e tabs) usados para separar argumentos newline indica o fim de uma linha de comando \ caracteres de citação; permitem alterar a maneira de como a shell interpreta caracteres especiais & no fim de um comando indica à shell para correr esse comando em background < > >> ` caracteres de redirecção *? [ ] [ˆ substituição de caracteres em nomes de ficheiros $ indica a presença de uma variável ; usado para separar comandos numa mesma linha Caracteres de citação \ - retira o significado especial ao caracter seguinte... - retira o significado especial de todos os caracteres especiais delimitados pelo caracter... - retira o significado especial de todos os caracteres especiais delimitados pelo caracter com a excepção do caracter $, ou seja, permite que variáveis sejam interpoladas.

Exemplos : comando printenv $ echo $USER jpo $ echo $USER jpo $ echo \$USER $USER Comando externo printenv Permite listar variáveis de ambiente. Quando invocado sem opções lista o nome e valor de cada variável de ambiente. $ printenv EDITOR /usr/bin/vim $ echo $USER $USER : comando set : comando echo Comando interno set Permite manipular variáveis de ambiente. Quando invocado sem opções lista o nome e valor de cada variável de ambiente. $ set BASH=/bin/bash BASH COMPLETION=/etc/bash completion BASH COMPLETION DIR=/etc/bash completion.d BASH VERSION= 3.00.14(1)-release COLORS=/etc/DIR COLORS.xterm... Comando interno echo Permite enviar para o STDOUT linhas de texto. Por omissão força uma mudança de linha e não interpola sequências de escape. Algumas opções -e - interpola as sequências de escape (exemplo: \t) -n - suprime a mudança de linha $ echo Utilizador: $USER Utilizador: jpo $ echo -e a\tb a b

Conteúdo Execução de um comando 1 2 3 4 Execução de um comando 1 esperar que o utilizador introduza um comando 2 realizar certas tarefas se o comando contiver caracteres especiais (reservados) 3 se for um comando interno, executá-lo. Saltar para o ponto 1. 4 encontrar o executável do comando (externo). Se o ficheiro não for encontrado gerar uma mensagem de erro. 5 criar um processo filho que irá executar o comando 6 esperar que o processo termine e retornar ao início da lista Contem lista de directórios que o interpretador pesquisa para encontrar comandos externos. $ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/x11r6/bin:/home/jpo/bin Comando which Mostra o caminho completo (pathname) de comandos. $ which perl /usr/bin/perl (exit code) Praticamente todas as invocações de comandos geram um número inteiro código de saída que pode ser utilizado para modifcar como um outro comando é executado. Para a grande maioria de comandos um código de saída zero indica sucesso. Problemas são indicados através de valores diferentes de zero. Variável $? $? = 0 - sucesso $?!= 0 - problemas

: exemplos $ date; echo $? Mon Apr 5 21:36:13 WEST 2004 0 $ rm ficheiro inexistente; echo $? rm: cannot lstat ficheiro inexistente : No such file or directory 1 cmd - executa o comando cmd cmd & - executa o comando cmd em background cmd1 ; cmd2 - execução sequencial de comandos (cmd1 ; cmd2) cmd3 - o output dos comandos cmd1 e cmd2 é enviado para o standard input do comando cmd3 cmd1 && cmd2 - o comando cmd2 só é executado se e só se o comando cmd1 tiver terminado correctamente (código de saída igual a zero) cmd1 cmd2 - o comando cmd2 só é executado se e só se o comando cmd1 tiver terminado incorrectamente (código de saída diferente de zero) : exemplos $ ( echo Bom dia ; echo Boa tarde ) grep dia Bom dia $ make && make test && make install... (output omitido)... $ rm ficheiro inexistente 2> /dev/null echo Falhou Falhou Executar tarefas em background terminar a linha de comando com o caracter & Jobs CTRL+Z - suspender execução do processo em foreground jobs - ver tarefas fg - enviar tarefa para foreground bg - enviar tarefa para background

Exemplos Conteúdo Executar as seguintes operações 1 correr o acroread 2 suspender o acroread (CTRL+Z) 3 listar as tarefas (jobs) 4 colocar o acroread a executar em background Executar as seguintes operações 1 correr o vi 2 suspender o vi (CTRL+Z) 3 listar as tarefas (jobs) 4 retomar a execução do vi em foreground 1 2 3 4 Ficheiros abertos por omissão stdin - descritor número 0 (o teclado) stdout - descritor número 1 (o ecrã) stderr - descritor número 2 (as mensagens de erro também são enviadas para o ecrã) > - redirecção do standard output >> - redirecção do standard output em modo de append < - redirecção do standard input n> - redirecção do n-ésimo descritor &> e >& - redirecção do standard output e do standard error n>&m - redirecção do descritor n para o descritor m (uso típico: 2>&1) - pipe: o standard output é redireccionado para o standard input de um segundo processo `... ` - backticks: a sequência é substituída pelo resultado do comando (delimitado pelos caracteres ` )

Exemplos Exemplo de utilização de backticks $ ls -lr > ls-lr.txt Redirecciona a saída do programa ls para o ficheiro ls-lr.txt. $ cat /etc/inittab less Redirecciona a saída do programa cat para a entrada do programa less (paginador). $ gcc -Wall -pedantic ola.c 2> erros.txt Redirecciona a saída de erros (standard error) do programa gcc para o ficheiro erros.txt. Determinar que RPM contem o interpretador de Perl $ which perl /usr/bin/perl $ rpm -qf /usr/bin/perl perl-5.8.0-88.3 A sequência de comandos acima pode ser reduzida a apenas um único $ rpm -qf `which perl` perl-5.8.0-88.3 Conteúdo 1 2 3 4 Comando history Lista as últimas entradas do histórico de comandos Algumas opções -c - limpa o histórico -d n - limpa a entrada na posição n Ficheiro de log do histórico /.bash history

Utilização do histórico Utilização do histórico teclas navegação - cursores, Page Up/Down,...!! - re-executa o último comando!n - re-executa o comando número n!-n - re-executa o comando n linhas atrás!string - re-executa o último comando começado por string!?string? - re-executa o último comando que contem string ˆstr1ˆstr2ˆ - re-executa o último comando substituindo previamente str1 por str2 CTRL+R - pesquisa de comandos no histórico $ history... 1007 pdflatex bash.tex 1008 man bash 1009 gvim bash.tex 1010 acroread bash.pdf 1011 history $!1009 (re-executa o comando 1009 do histórico) $!pd (re-executa o último comando começado pelos caracteres pd ) Referências Referências Conteúdo Referências Documentação GNU Bash http://www.gnu.org/software/bash/manual/bash.html 5 Referências Bibliografia Learning the bash Shell (segunda edição) http://www.oreilly.com/catalog/bash2/ Advanced Bash-Scripting Guide http://www.tldp.org/ldp/abs/html/index.html