Similares em shell GNU/Linux de comandos cmd.exe do MS-Windows Primeira viso H. G. Fernandes 1 1 Faculdade Sumar Cursos de Tecnologias da Informao e Comunicao, 2014 H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Outline 1 Abordagem Putting it all together A importncia da repetio 2 Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Putting it all together A importncia da repetio Agenda 1 Abordagem Putting it all together A importncia da repetio 2 Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Putting it all together A importncia da repetio Livros americanos tm abordagem aparentemente cotica: Listam cada vez mais informaes. . . . . . aparentemente sem ordem alguma. Mas a surge a seo Putting it all together. Ou Juntando as coisas, ou Juntando tudo. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Putting it all together A importncia da repetio Agenda 1 Abordagem Putting it all together A importncia da repetio 2 Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Putting it all together A importncia da repetio Alguns conceitos so muito abstratos ou profundos Qualquer ser humano normal vai demorar para entend-los. Alguns conceitos so interrelacionados Em um primeiro momento, conseguimos ver apenas parte das relaes. Portanto, hoje em dia normal aprender e aprender de novo. Estamos nos tempos da educao continuada. Principalmente na rea de informtica, nunca paramos de aprender. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Agenda 1 Abordagem Putting it all together A importncia da repetio 2 Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Unix, grande inuncia O sistema operacional Unix, criado na dcada de 1970, por uma equipe de gnios do Bell Labs. O poder e a simplicidade dos conceitos presentes nele inuenciaram todos sistemas operacionais subsequentes, e a prpria teoria dos sistemas operacionais. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Relaes de sistemas operacionais atuais com Unix GNU/Linux Apple IOS Microsoft Windows Unix H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo A tabela mostra que os 3 sistemas operacionais mais usados atualmente devem muito ao Unix. Mas o Microsoft Windows tem se distanciado dessa herana. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Um shell envolve o sistema operacional Figura: Imagem de http://web.stanford.edu/~rjweiss/public_html/IRiSS2013/shell/#16 H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Um shell envolve o sistema operacional(cont.) O kernel, ou ncleo, a parte mais interna do sistema operacional. Ele tem todo acesso ao hardware do computador, mas para que se comunique com o usurio necessrio ter outro software, chamado shell, porque envolve o ncleo. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Exemplos de shell Um shell pode ser grco, como o caso do Microsoft Windows Explorer; No modo texto (ou no grco), o shell cmd.exe chamado de Prompt de comandos no Microsoft Windows; H vrios shells grcos para sistemas GNU/Linux. Mas, no modo texto, o mais comum o chamado bash; bash, ou Bourne Again shell, uma extenso do Bourne Shell (ou sh), tambm muito usado. O mesmo shell pode ser adaptado a vrios sistemas operacionais. De fato, h bash para Microsoft-Windows. Cygwin excelente ambiente para aprender sistemas operacionais derivados do Unix sob Microsoft Windows http://cygwin.com H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Agenda 1 Abordagem Putting it all together A importncia da repetio 2 Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Nas tabelas a seguir, os comandos so mostrados de modo simplicado. O objetivo apenas fornecer uma ponte intuitiva entre comandos conhecidos no cmd.exe e aqueles do shell bash. Tambm mostrado o uso comum de nomes de arquivos: no GNU/Linux, tende-se a usar nomes padronizados para vrios diretrios. E as mnsculas so muito mais usadas que as maisculas. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Agenda 1 Abordagem Putting it all together A importncia da repetio 2 Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Sobre o prompt de comandos A palavra prompt tem mesmo o signicado de pronto. o cursor piscando na linha de comando dos shells em modo texto. No MS-Windows, sob cmd.exe, o prompt pode ser algo como C:\Users\Aluno\Fontes\Python> No GNU/Linux, sob bash, o prompt pode ser algo como aluno@computador:/src/python$ Diz-se que o caracter de prompt aquele a partir de onde comea o texto do usurio. Assim, em GNU/Linux ele $ e em MS-Windows, ele >. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Volumes e sistemas de arquivos Supondo um PC convencional com HD, disco de CD-ROM e um pendrive. Dispositivo Possveis nomes MS-Windows GNU/Linux HD C: / CD-ROM D: /media/cdrom pendrive E: /media/F958-CEDD H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Sobre volumes Um pacote de informaes, ou uma mdia, chamado volume em computao; No MS-Windows, os volumes so distintos uns dos outros; no GNU-Linux, so ligados ao volume de boot. No MS-Windows, cada volume tem seu diretrio raiz; no GNU-Linux, apenas aquele de boot. O separador de diretrios sob MS-Windows a contra-barra (ou \); no GNU/Linux, ele a barra normal de diviso, ou /; O processo de tornar um volume acessvel chamado de montar no GNU/Linux. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Sobre sistemas de arquivos A maneira pela qual as informaes so organizadas em um volume chamada sistema de arquivos; Um dos sistemas de arquivos mais simples (e por isso muito limitado) chamado FAT32; Um sistema de arquivos mais sosticado para MS-Windows o NTFS, iniciais de NT lesystem; Em GNU-Linux, um dos sistemas mais comuns o ext4. A maior parte dos sistemas de arquivo para GNU-Linux, case sensitive: A.txt e a.txt so dois nomes diferentes. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Comandos simples para arquivos Funo cmd.exe bash Cpia copy A.txt B.txt cp a.txt b.txt Movimentao move A.txt B.txt mv a.txt b.txt Remoo del A.txt rm a.txt Exibio type A.txt cat a.txt H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Comandos simples para diretrios Funo cmd.exe bash Listagem detalhada dir Fontes ls -l src Listagem concisa dir /b Fontes ls src Criao md Fontes mkdir src Remoo rd Fontes rmdir src Apenas para di- retrios vazios. Apenas para di- retrios vazios. Mudana cd Fontes cd src H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Agenda 1 Abordagem Putting it all together A importncia da repetio 2 Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Sobre arquivos e sistemas operacionais No dia a dia, um arquivo um repositrio passivo de papeis; Mas, desde o Unix, um arquivo qualquer via de comunicao; Escrever em um arquivo em disco muito semelhante a escrever em uma impressora; que por sua vez tem sua escrita muito semelhante a escrever na tela... Assim, programadores s se interessam pelos detalhes de um arquivo quando necessrio. Por exemplo, escrever em negrito em uma impressora. O que permite que os programas sejam muito exveis. Por ex., o contedo a escrever em um relatrio, ou em uma pgina Web semelhante, mudando apenas os detalhes da formatao. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Programas e sua comunicao padro Quando disparado, um programa recebe do sistema operacional (MS-Windows ou derivado do Unix), duas formas de comunicao, mostradas na gura: Normalmente, a entrada padro associada ao teclado e a sada padro associada tela; Seus nomes so stdin (de standard input ) e stdout (de standard output ) H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo O que redireo? A gura abaixo mostra duas redirees: A entrada padro foi redirecionada para um arquivo em disco, em vez do teclado; A sada padro foi redirecionada para um arquivo em disco, em vez da tela. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Alguns exemplos de redireo Uma vez que a redireo est presente em MS-Windows e em GNU/Linux, seguem alguns exemplos em ambos: Tipo Comando Sada padro MS-Windows dir /b Fontes > Fontes.dir GNU/Linux ls src > src.dir Entrada padro MS-Windows sort < Fontes.dir GNU/Linux sort < src.dir Entrada e sada padro MS-Windows sort < Fontes.dir > Fontes.sort GNU/Linux sort < src.dir > src.sort H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Explicando os comandos com redireo 1 A redireo da sada padro representada por >, sugerindo que os dados saem do programa; 2 A redireo da entrada padro representada por <, sugerindo que os dados entram no programa; 3 Como os comandos dir e ls no fazem nenhuma formatao, sua sada como um arquivo de texto. Assim, a extenso dos arquivos gerados por eles na redireo poderia ser .txt; 4 IMPORTANTE: Os nomes dos arquivos redirecionados podem ser quaisquer. Naturalmente, melhor usar nomes signicativos. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo A canalizao, ou pipeline Uma canalizao, ou pipeline pode ser resumida na gura Ou seja: a sada padro de um programa 1 anterior e a entrada padro de um programa 2 posterior so ajustadas, atravs de sua redireo. Similar s canalizaes de gua, os pipelines podem conter dezenas de programas conectados deste modo. H. G. Fernandes Similares em Linux de comandos do Windows Abordagem Uma tabela de comandos Histria mnima dos sistemas operacionais Palavras de advertncia Tabelas simplicadas de comandos em dois SO O conceito de redireo Para que servem as canalizaes, ou pipelines ? Os sistemas operacionais derivados do Unix costumam ter muitas ferramentas para manipulao de texto: awk, grep, cut, sed etc. Alm disso, programas mais genricos (ls, find, sort etc.) seguem padres prximos e compatveis com eles. Assim, os pipelines permitem fazer grandes transformaes nos dados de sada de um programa, permitindo ajust-los aos formatos de outros. O uso prtico e simplicado dos pipelines ou canalizaes merece um estudo parte. H. G. Fernandes Similares em Linux de comandos do Windows