Baixe o app para aproveitar ainda mais
Prévia do material em texto
Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 1. Linux e suas características 1.1 Breve comentário sobre o Linux Linux foi desenvolvido inicialmente por Linus Torvalds (programador Finlandês). O sistema Linux é um sistema baseado no Unix por isso o seu nome é uma mistura de Linus + Unix. O sistema Unix surgiu em 1960 como um projeto de grandes empresas, reescrito em 1973 em linguagem C ganhou aceitação no mercado, e por meados de 1977 e 1981 sofreu modificações sendo adotado como um sistema padrão. O Unix era um sistema muito caro e inacessível para um usuário comum. Por isso com intuito estudantil um professor chamado Tanembaum desenvolveu o Minix, um sistema baseado no Unix, mas que não possuía nenhum código do Unix, já Linus Torvalds um estudante de Ciência da Computação decidiu desenvolver o Minix e montar o seu Kernel inclusive divulgando a idéia. Sem intuito de ganhar dinheiro o Sistema foi cada vez mais ganhando adeptos e o trabalho se tornou um conjunto de idéias. 1.2 Características do Linux Multiusuário - Vários usuários podem acessar o sistema simultâneo utilizando o recurso de multitarefa podendo o sistema ser um servidor de aplicativos através de uma rede. Multitarefa - Muitos programas podem rodar ao mesmo tempo, visiveis ou em background. Multiprocessador - Permite o uso de mais um processador, inclusive trabalhar com SMP ( cluster de máquinas ) . Multiplataforma - Podem rodar em diversos tipos de computador, tipo RISC OU CISC. --------------------------------------------------------------------------------------------------------------------- 1 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Sistema de arquivos - Forma de armazenamento de arquivos através de uma estrutura, o usuário não precisa conhecer os detalhes técnicos do armazenamento, apenas conhecer a estrutura aonde os arquivos são gravados. Suporta diversos tipos de sistema de arquivos. Fontes True Type - Com caracteristicas agora de servidor de fontes, XFS. Consoles virtuais - Diversos consoles virtuais, podendo trabalhar ou em modo background, ou em modo foreground ( primeiro e sgundo plano ) Protocolos - Podendo trabalhar com diversos tipos de protocolos de rede. 2. Kernel Kernel é o núcleo do sistema operacional. É responsável pelo gerenciamento de processos e de recursos, como memória, CPU e discos. --------------------------------------------------------------------------------------------------------------------- 2 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 2.1 Arquitetura do Kernel --------------------------------------------------------------------------------------------------------------------- Kernel monolítico ou mono-bloco monolítico — em um único bloco, com todas as funcionalidades carregadas na memória modular — com os módulos específicos para cada tarefa carregados opcionalmente, dinamicamente. 3 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 2.3 Funções do kernel --------------------------------------------------------------------------------------------------------------------- * Gerenciamento de processos – multitarefa * Gerenciamento de memória - swap * Gerenciamento de dispositivo - I/O * Chamadas de sistema - é o mecanismo usado pelo programa para requisitar um serviço do sistema operacional, ou mais especificamente, do kernel do sistema operacional. ( através da prioridade do processo ) 4 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 3. Estrutura de arquivos Uma característica dos arquivos é que no linux é diferenciar maiúsculo de minúsculo. Nós temos diversos tipos de arquivos, podemos considerar os arquivos, os arquivos especiais e os links. Arquivos = executáveis, scripts, configuração, textos, bibliotecas. Arquivos especiais = dispositivos de blocos, dispositivos de caracteres e sockets. Links = simbólicos e hard Links. 3.1 Arquivos binários e arquivos de textos. Arquivos binários - Quando alguém se referir desta forma para os arquivos saiba que um arquivo binário é um arquivo que já foi compilado. Você não consegue ler o arquivo. Exemplo: executáveis. OBS. Compilar é pegar um arquivo de texto e transformá-lo num arquivo binário, a linguagem binária é a linguagem que a máquina entende. --------------------------------------------------------------------------------------------------------------------- 5 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Arquivos executáveis - Os arquivos executáveis são arquivos binários porque sofreram algum tipo de compilação para que fossem gerados. Extensão “* ” ( asterisco ) Arquivos de textos - São arquivos no quais você pode abrir e verificar o conteúdo dele através de caracteres. Você consegue ler. Exemplo: arquivos de configuração, scripts. Arquivos de configuração - Arquivos de configuração são arquivos responsáveis por algum tipo de configuração no computador como teclado, mouse e video. Arquivos de configuração são conhecidos como arquivos de textos. Você pode, por exemplo, mudar a configuração do vídeo editando o arquivo diretamente. Extensão “.conf ” Arquivo de Scripts - Você já deve ter ouvido falar neste tipo de arquivo, quando usamos o terminal que é a interface de texto nós digitamos um comando e damos enter, ao darmos enter a shell interpreta o comando e o executa. Este tipo de ação nós chamamos de interativo, o script são comandos não interativos. Extensão “ .sh ” Exemplo: O programador preocupado com um usuário que não sabe nada de comandos procura fazer um arquivo no qual o usuário tem na sua frente uma tela de interface gráfica com botões ou opções para serem clicados, atrás desta tela existe um terminal que é aberto junto, este terminal o usuário não tem acesso, ao clicar num botão ou numa opção desta tela (interface gráfica) o usuário verifica que foi executado um comando no terminal sem ele saber o nome do comando, na verdade a ação de clicar naquele botão executou aquele comando. Desta forma o usuário seguindo as orientações da tela consegue executar os comandos sem ter interatividade com o terminal. Dizemos então que isso é um script, logo, script é um conjunto de comandos num arquivo. 3.2 Arquivos de bibliotecas Os arquivos de bibliotecas poderiam ser comparados ao grosso modo as dlls do Windows. Nós temos bibliotecas dinâmicas ou compartilhadas e as bibliotecas estáticas, as dinâmicas (compartilhadas)podem ser usadas por diversos programas enquanto as estáticas apenas por um programa. Extensão: Bibliotecas estáticas possuem o libname.a Bibliotecas dinâmicas possuem o libname.so.x.y.z onde o x.y.z é algum forma de número de versão. 3.3 Pseudo-arquivos --------------------------------------------------------------------------------------------------------------------- 6 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Um exemplo de pseudo-arquivo são os links simbólicos, na verdade são atalhos para o arquivo e não exatamente o arquivo. Os arquivos relacionados aos dispositivos são também pseudo-arquivos, já que estes arquivos funcionam como acesso ao hardware. 3.4 Arquivos Tarball São arquivos empacotados. A características destes arquivos é apenas de empacotar. Você quando vai viajar coloca diversas roupas numa mala. O tarball faz exatamente isso, coloca diversos arquivos apenas num arquivo. Ele não compacta o arquivo diminuindo o tamanho, ele apenas serve para juntar diversos arquivos em apenas um arquivo. O tarball é muito utilizado em programas que vem com código fonte aonde temos muitos arquivos, esses programas precisam ser compilados para gerar o executável do mesmo. O tarball mantém intacta a estrutura destes arquivos. Para tornar o tarball ainda mais eficiente é combinado com ele os compactadores, como o gunzip ou bunzip. 3.5 Arquivos ocultos Possuem um ponto no inicio do nome. 3.6 Arquivos especiais Os arquivos de dispositivos de bloco estão associados aos discos. Os arquivos de dispositivos de caracteres são associados ao console e monitor Os sockets são arquivos de comunicação, memória. 3.7 Links Links são pseudo-arquivos que apontam para um determinado arquivo. No linux existem dois tipos de links, os simbólicos e os Hard links. Os simbólicos são links iguais aos links encontrados no Windows. Se o arquivo original é removido ele perde sua utilidade, pois aquele endereço que apontava não existe mais. Os links simbólicos como nos links do Windows podem tanto apontar para um arquivo ou um diretório. Outra vantagem do link simbólico é de poder apontar para arquivos que não pertencem ao mesmo sistema de arquivos. Os links Hard links não são bem links, na verdade um hard link é uma cópia do original e carrega toda a característica do arquivo original, se o original for removido ele continua funcionando, isso se deve porque ele aponta para o inode do arquivo original e não exatamente ele. Os Links hard links são limitados porque só funcionam com arquivos e não diretórios. --------------------------------------------------------------------------------------------------------------------- 7 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 3.8 Extensão A extensão no Linux não tem tanta importância como no Windows, no DOS, por exemplo, um arquivo recebe oito caracteres no seu nome seguido de ponto e três caracteres como extensão. No linux tanto o nome como as extensões podem chegar até 255 caracteres, a importância da extensão no linux esta associada apenas a compilação. Você poderá encontrar arquivos com duas ou até três extensões ou mais no Linux. 4. Sistema de arquivos 4.1 Definição. É a forma que o sistema operacional usa para representar determinada informação em um espaço de armazenagem 4.2 Tipos de sistemas de arquivos ext2 – é um sistema rápido porque grava diretamente, quando ocorre uma quebra o fsck ( scandisk ) é acionado, é um processo lento, muitas vezes sem expectativas ocorrendo perda de dados. ext 3 – utiliza uma camada chamada JDB ( Journaling Block Device ) , para recuperar dados ao invés de armazenar bytes ele armazena blocos modificados na memória para rastrear as operações pendentes. A vantagem é que não existe uma complexidade para gravar esses dados no journal e a desvantagem e que o journal acaba ficando maior. Reiserfs – possui suporte para arquivos grandes ( 2 Gb ) , o acesso a árvore de diretórios é mais rápido. Utiliza uma estrutura de dados chamada árvore balanceada, trata a partição como uma única tabela de dados, ela aloca o espaço de forma fixa no tamanho necessário do arquivo. 4.3 Journaling O fsck promove uma correção de erros muito lento, caso ocorra um desligamento Incorreto do PC enquanto os dados estavam sendo gravados ele não consegue recuperar com eficiência essa perda de dados. Muitas vezes o trabalho fica Perdido. O Journaling consegue acompanhar essas mudanças, essas informações são armazenadas numa parte separada do sistema de arquivos chamadas de Journal. ( registro de logs ). O sistema de arquivos verifica o registro de logs e efetua a modificação, logo entendemos que os dados são escritos antes no registro de logs, e depois são gravados no sistema de arquivos. Quando esses dados são gravados o que estava no registro de log é apagado. --------------------------------------------------------------------------------------------------------------------- 8 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 5. Diretórios5. Diretórios 5.1 Diretório Raiz5.1 Diretório Raiz È o diretório principal do Linux, dentro dele estão todos os outro diretórios do sistema, o diretório raiz é representado por uma “ / ” , organizado em uma estrutura de diretórios e sub- diretórios. 5.2 Estrutura de diretórios do Linux5.2 Estrutura de diretórios do Linux Cada diretório pode conter arquivos ou outros diretórios, um diretório dentro de outro diretório é chamado de subdiretório do diretório anterior. O Linux possui uma estrutura principal organizada. A estrutura é organizada da seguinte maneira: / Diretório Raiz, a unidade do disco. / bin Dentro deste diretório contém os arquivos programas do sistema. / boot Contém arquivos de inicialização do sistema. / dev Contém arquivos de dispositivos de entrada e saída (periféricos) / etc Contém arquivos de configuração do sistema / home Diretórios contendo os arquivos do usuário. / lib Bibliotecas compartilhadas por programas e módulos do kernel / mnt Ponto de montagem temporário / root Diretório do usuário root / sbin Diretório com arquivos especiais, programas usados pelo root para administração e controle do sistema. / tmp Diretório com arquivos temporários gerados por programas / usr Contém maior parte dos seus programas, normalmente acessível como leitura , todos os arquivos do usuário devem estar aqui ( segunda maior hierarquia ) / var Informação variável, contém maior parte dos arquivos que são gravados com freqüência pelos programas do sistema 5.3 Tipos de diretórios5.3 Tipos de diretórios Segue abaixo como é feita a descrição dos diretórios Diretório padrão È aquele diretório em que nos encontramos no momento chamado de diretório atual. Diretório superior É o próximo diretório, é aquele diretório em que desejamos entrar e que para isso listamos antes para saber o seu nome. Diretório --------------------------------------------------------------------------------------------------------------------- 9 Professor Alessandro Borges de Lima Curso Básico --------------------------------------------------------------------------------------------------------------------120 paginas anterior É aquele diretório que vem anterior ao diretório atual no qual desejamos voltar. Diretório Home É o diretório do usuário contendo todos os arquivos do mesmo. 5.4 Caminho na estrutura de diretórios5.4 Caminho na estrutura de diretórios Caminho são os diretórios que teremos que percorrer até chegar ao arquivo, é por onde também observamos a nossa posição em relação ao diretório raiz dentro da estrutura de diretórios. figura exemplo 5.5 Estruturas de diretórios - particularidades --------------------------------------------------------------------------------------------------------------------- 10 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Diretório /proc - fornece informações sobre o kernel e sobre os processos que estão rodando no momento, além de informações sobre a utilização de alguns dispositivos. Diretório /boot - contém informações para o gerenciador de inicialização do sistema. É aqui que normalmente fica o arquivo contendo o kernel da máquina e informações para o carregador do sistema operacional. Diretório /usr - contém comandos, bibliotecas, programas, páginas de manual e outros arquivos que não mudam mas que se fazem necessários para a operação normal do sistema. Como são estáticos, é interessante compartilhar esses arquivos pela rede, o que resulta numa grande economia de espaço em disco utilizado. Diretório /var - contém arquivos que mudam freqüentemente. É nele que estão contidos arquivos de registro, arquivos temporários, spools de impressão, arquivos de configuração de correio eletrônico e de news. Diretório /usr/sbin: Esta pasta contém arquivos binários utilizados pelo administrador do sistema, como network daemons e outros binários que apenas o administrador do sistema tem acesso. O mais importante: estes arquivos não são vitais para a manutenção ou reparação do sistema Linux Diretório /usr/bin: Neste diretório estão contidos outros arquivos binários referentes aos usuários. Estes binários não são essenciais ao usuários se comparados com a pasta /bin. Diretório /lost+found: Sempre que seu sistema "crashar" ou tiver um shutdown forçado, o Linux irá tentar recuperar o que está corrompido no próximo boot. Caso um arquivo esteja corrompido, ele será colocado aqui neste diretório. Diretório /usr/src/linux, que armazena o código fonte do Kernel. Diretório /var/log/messages: armazena logs do sistema. 5.6 Documentação Diretório /usr/lib/help – Arquivos de help Diretótio /usr/man – manuais de comandos Diretório /usr/share – manuais independente de arquitetura Diretório /usr/doc – documentação de programas Diretório /usr/info – Páginas info. --------------------------------------------------------------------------------------------------------------------- 11 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Exercícios 1. Sobre a estrutura de diretórios associe a primeira coluna com a segunda 1 – Diretório raiz 2 – boot 3 – etc 4 – sbin 5 – var 6 - tmp 7 – dev 8 – bin 9 – mnt 10 – usr 11 – lib 12 – root 13 – home 2 – Quais dos diretórios seguintes deve fazer parte do diretório de raiz? Selecione todas as alternativas corretas. ( ) /etc ( ) /home ( ) /lib ( ) /usr ( ) /root 3 – Sobre sistemas de arquivos, aquilo que mais caracteriza, associe a primeira coluna com a segunda 1 – fsck 2 - journaling --------------------------------------------------------------------------------------------------------------------- 12 ( ) Diretório Raiz, a unidade do disco. ( ) Dentro deste diretório contém os arquivos programas do sistema. ( ) Contém arquivos de inicialização do sistema. ( ) Contém arquivos de dispositivos de entrada e saída (periféricos) ( ) Contém arquivos de configuração do sistema ( ) Diretórios contendo os arquivos do usuário. ( ) Bibliotecas compartilhadas por programas e módulos do kernel ( ) Ponto de montagem temporário ( ) Diretório do usuário root ( ) Diretório com arquivos especiais, programas usados pelo root para administração e controle do sistema. ( ) Diretório com arquivos temporários gerados por programas ( ) Contém maior parte dos seus programas, normalmente acessível como leitura , todos os arquivos do usuário devem estar aqui ( segunda maior hierarquia ) ( ) Informação variável, contém maior parte dos arquivos que são gravados com freqüência pelos programas do sistema ( ) as informações são armazenadas numa parte separada do sistema de arquivos chamadas de registro de logs. O sistema de arquivos verifica o registro de logs e efetua a modificação, logo entendemos que os dados são escritos antes no registro de logs, e depois são gravados no sistema de arquivos. Quando esses dados são gravados o que estava no registro de log é apagado. ( ) promove uma correção de erros muito lento, caso ocorra um desligamento incorreto do PC enquanto os dados estavam sendo gravados ele não consegue recuperar com eficiência essa perda de dados. Muitas vezes o trabalho fica Perdido. Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 4 Sobre documentação associe a primeira coluna com a segunda. 1 - /usr/lib/help 2 - /usr/man 3 - /usr/share 4 - /usr/doc 5 - /usr/info 5 – Sobre arquivos associe a primeira coluna com a segunda. 1. Binários 2. Textos 3. Tarball 4. Pacotes 5. Pseudo-arquivos 6. Bibliotecas 7. Links 8. Scripts 9. Extensão 6. Comandos básicos 6.1 Comandos para inicializar e terminar uma sessão 6.1.1 Login Descrição: cancela a sessão atual e inicia uma nova. Sintaxe: login Exemplo: $ login 6.1.2 Logout Descrição: sair do sistema. Sintaxe: logout Exemplo: $logout Outros: crtl + d , exit. --------------------------------------------------------------------------------------------------------------------- 13 ( ) páginas info ( ) documentos de programa ( ) manuais de comandos ( ) Arquivos de help ( ) documentação de programas ( ) é um conjunto de comandos num arquivo no qual interage com o usuário sem acesso ao terminal. ( ) Podem ser rígidos ou simbólicos. ( ) é o que identifica um arquivo. ( ) Os arquivos de configuração são considerados deste tipo. ( ) É um arquivo usado pelas distribuições como padrões de instalação. ( ) É um empacotador no qual mantém intacta a estrutura de diretórios muito usado em backup ou programas com código fonte no qual é preciso gerar um executável depois. ( ) Parecido com as dlls do Windows determinados arquivos são dependentes dos mesmos para funcionarem ( ) Um arquivo executável é um arquivo deste tipo. ( ) São arquivos que representam um dispositivo ou um determinado Link. Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 6.1.3 Exit Descrição: encerra a Shell. Sintaxe: exit Exemplo: $exit6.2 Comandos para reinicializar ou desligar o computador 6.2.1 Reboot Descrição: reinicia o computador Sintaxe: reboot Exemplo: $reboot 6.2.2 Halt Descrição: desliga o computador Sintaxe: halt Exemplo: $halt 6.2.3 Opções de comandos sync sync descarregar buffer de disco. descarregar buffer de disco. root e não root root e não root shutdown -h 0 desliga root halt desliga root e não root init 0 desliga root shutdown -r 0 reboot root init 6 reboot root reboot reboot root e não root <CTRL> + <ALT> + <DEL> reboot root e não root Obs.: Em shutdown –h 0 e shutdown –r 0, onde 0 significa o tempo de espera em minutos. Quando o valor é 0 (zero), a execução é imediata. Obs.: Quando um usuário não root executa os comandos halt ou reboot, será solicitado sua senha pessoal 6.3 Comandos de terminal 6.3.1 Clear limpa a tela. 6.3.2 Echo Mostra mensagens. Este comando é útil na construção de scripts para mostrar mensagens na tela para o --------------------------------------------------------------------------------------------------------------------- 14 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas usuário acompanhar sua execução. echo [mensagem] A opção -n pode ser usada para que não ocorra o salto de linha após a mensagem ser mostrada. 6.4 Comandos de ajuda 6.4.1 Man Descrição: consulta de manuais. Sintaxe: man [opções] [seção] <comando> Opção Descrição -a Exibe todas as páginas. -h Exibe uma mensagem de ajuda. -w Exibe a localização das páginas a serem exibidas. Exemplo: $man ls Observação: para sair do manual pressione a tecla Q 6.4.2 Info Descrição: exibe informações do comando. Sintaxe:info [opções] <comando> Opções Descrição -d <nomedir> Adiciona um diretório à lista de diretórios. -f <arqinfo> Especifica o diretório a ser utilizado. -h Exibe uma mensagem de ajuda. Exemplo:$info ls 6.4.3 Whatis Descrição: Consulta manuais a partir de um banco de dados. Sintaxe: whatis <palavra-chave> Exemplo: $whatis ls Obs. Para sair do manual aperte Q 6.4.4 Apropos Descrição: Exibi informações a partir de um banco de dados. Sintaxe: apropos <palavra-chave> Exemplo:$apropos man Obs. Para sair do manual aperte Q Atenção: O whatis não possui manual, para saber sobre ele digite makewhatis -? , para gerar o banco de dados do mesmo utilize o comando makewhatis, no comando apropos apesar de utilizar o mesmo banco de dados do whatis você pode gerar um banco de dados usando o comando mandb -r --------------------------------------------------------------------------------------------------------------------- 15 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 6.4.5 help Digitado após o comando exibe um resumo. Sintaxe: comando --help 6.5. Comandos de navegação 6.5.1 cd Descrição: Muda de diretório Exemplo: cd nome Muda para diretórios com um nível abaixo. Exemplo: cd nome/ Muda para diretórios com um nível abaixo. Exemplo: cd- ( barra ) Muda para o diretório em que se encontrava anteriormente Exemplo: cd .. Muda um diretório acima, ou seja um diretório anterior Obs. entre o cd e os dois pontos é necessário um espaço. Exemplo: cd /nome Muda para o diretório que contém o nome Obs. você pode mudar para qualquer diretório ou subdiretório desejado, independente de onde estejas. Exemplo: cd ~ O til representa a pasta do usuário, muda para a pasta do usuário. Observação: Nível acima - Um diretório anterior Nível abaixo - Um diretório posterior Diretório corrente - É o diretório aonde se encontra. 6.5.2 pwd Descrição: Mostra o diretório corrente ou exibe o diretório atual 6.5.3 ls Descrição: lista conteúdos Opção Finalidade -a Exibe todos os arquivos, mesmo os arquivos ocultos. --color Lista os arquivos com padrões de extensão/tipo reconhecidos com cores diferentes. -d Lista o nome do diretório em vez de seu conteúdo. -h Combinada com a opção -l, mostra os tamanhos de arquivo em bytes. Ex: 1K, --------------------------------------------------------------------------------------------------------------------- 16 Exemplos cd / cd ~ cd /usr/bin cd .. tree tree –d / diretórios * executáveis @ links simbólicos ~ arquivos de backup = Sockets | pipes Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Opção Finalidade 20M, 5G. -l Faz a listagem de arquivos detalhada. -r Mostra os arquivos em ordem reversa. -S Os arquivos são listados obedecendo a ordem de seus tamanhos. -F Adiciona um símbolo à extremidade de cada arquivo. Estes símbolos são: / para indicar um diretório; @ para indicar um link simbólico a outro arquivo; e * para indicar um arquivo executável. -1 Lista os nomes de arquivos, um por linha. 6.6 Comandos de manipulação de arquivos e diretórios 6.6.1 touch Cria arquivos vazios, se este existir modifica a data de criação. Opções -c = não cria caso ele exista -m = atualiza a hora de criação -a = atualiza a data 6.6.2 mkdir mkdir : cria diretórios. mkdir [/caminho/diretório] cria um diretório no caminho especificado. mkdir dir1 dir2 dir3 dir4 cria vários diretórios em paralelo, ao mesmo tempo. mkdir -p dir1/dir2/dir3 cria uma árvore de diretórios. 6.6.3 rmdir rmdir [/caminho/diretório] : elimina um diretório no caminho especificado. Diretórios vazios 6.6.4 rm -r rm –r [/caminho/diretório] : elimina diretório no caminho especificado, a opção -r elimina de forma recursiva ( diretórios ) , a opção -f força e eliminação sem perguntas. 6.6.5 cp cp : copia arquivo. cp [/caminho/arquivo1] [/caminho/arquivo2] copia arquivo do caminho origem para o caminho destino. OBS.: arquivo1 <> arquivo2 : copia com nome diferente. --------------------------------------------------------------------------------------------------------------------- 17 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas arquivo1 = arquivo2 : copia com nome idêntico. Pode-se omitir arquivo2. cp [/caminho/arquivo(1) .. arquivo(n)] [/caminho] copia N arquivos ao mesmo tempo. 6.6.6 rm rm : remove (elimina) arquivo. rm [/caminho/arquivo] elimina o arquivo no caminho especificado rm [/caminho/arquivo(1) .. arquivo(n)] elimina N arquivos ao mesmo tempo. Remove arquivos Opções -f = não exibe mensagem -i = pede confirmação -r = apaga um diretório de forma recursiva -v = exibe o nome do arquivo antes de eliminá-lo 6.6.7 mv mv : move e renomeia arquivo mv [/caminho1/arquivo] [/caminho2] move arquivo do caminho-origem para o caminho-destino. mv [/caminho1/arquivo1] [/caminho1/arquivo2] renomeia arquivo1 para arquivo2. mv [/caminho1/arquivo1] [/caminho2/arquivo2] move o arquivo, renomeando. mv [/caminho/arquivo(1) .. arquivo(n)] [/caminho] move N arquivos do caminho-origem para o caminho-destino. 6.6.8 ln – cria links Opções -s = cria links simbólicos Cria linkspara arquivos e diretórios no sistema. O link é um mecanismo que faz referência a outro arquivo ou diretório em outra localização do disco. O link em sistemas GNU/Linux faz referência reais ao arquivo/diretório podendo ser feita cópia do link (será copiado o arquivo alvo), entrar no diretório (caso o link faça referência a um diretório), etc. ln [opções] [origem] [link] Onde: origem --------------------------------------------------------------------------------------------------------------------- 18 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Diretório ou arquivo de onde será feito o link. link Nome do link que será criado. opções -s Cria um link simbólico. Usado para criar ligações com o arquivo/diretório de destino. -v Mostra o nome de cada arquivo antes de fazer o link. -d Cria um hard link para diretórios. Somente o root pode usar esta opção. Procure sempre usar links simbólicos (opção -s) sempre que possível ao invés de hard links. Observações: Se for usado o comando rm com um link, somente o link será removido. Se for usado o comando cp com um link, o arquivo original será copiado ao invés do link. Se for usado o comando mv com um link, a modificação será feita no link. Se for usado um comando de visualização (como o cat), o arquivo original será visualizado. Exemplos do comando ln ln -s /dev/ttyS1 /dev/modem - Cria o link /dev/modem para o arquivo /dev/ttyS1. ln -s /tmp ~/tmp - Cria um link ~/tmp para o diretório /tmp. Exercícios exemplos 1. Crie um diretório chamado exercício na pasta home do usuário mkdir exercício 2 – Crie um arquivo chamado arquivo.doc dentro do diretório exercício e escreva o seu nome. cat > arquivo.doc meu nome Crtl+c 3 – crie um link para o arquivo.doc chamado de amizade.doc ln /exercicio/arquivo.doc amizade.doc 4 – exclua o arquivo.doc rm /exercicio/arquivo.doc 5 – visualize o arquivo amizade.doc cat amizade.doc Exercícios exemplos 1. Crie um diretório chamado exercício na pasta home do usuário mkdir exercício 2 – Crie um arquivo chamado arquivo.doc dentro do diretório exercício e --------------------------------------------------------------------------------------------------------------------- 19 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas escreva o seu nome. cat > arquivo.doc meu nome Crtl+c 3 – visualize usando o comando tree ( mostra a arvore de diretórios ) 4 – crie um link simbólico para o arquivo.doc chamado de amizade.doc ln -s /exercicio/arquivo.doc amizade.doc 5 – exclua o arquivo.doc rm /exercicio/arquivo.doc 6 – visualize o arquivo amizade.doc cat amizade.doc Exercícios 1 - Sobre o comando ln responda ( V ) de verdadeiro ou ( F ) de falso: ( ) Existe dois tipos de links ( ) O link simbólico é usado para criar ligações com arquivo ou diretório de destino. ( ) Os hardlink usado no Linux pode ser comparado ao link usado no Windows. ( ) O link não faz nenhuma referência à arquivos. 2 – Crie um link simbólico para o arquivo /dev/hdd com o nome de /dev/cdrom3 Comando:____________________________________________ 3 – Crie um link simbólico para o arquivo /dev/ttys1 com o nome de /dev/modem3 Comando:____________________________________________ 4 – Crie um link simbólico do diretório /tmp dentro da pasta do usuário. Comando:____________________________________________ 5 – Diga se é verdadeiro ou falso ( ) Se for usado o comando rm com um link , somente o link é removido ( ) se for usado o comando cp com um link, o link será copiado. ( ) se for usado o comando mv no link a modificação será no arquivo original ( ) Se for usado o cat, a visualização será no arquivo original. ( ) não tem como fazer hardlink de diretórios ou arquivos em partições diferentes. ( ) Hardlink faz referência ao inodo do arquivo 6 - Sobre manipulações de arquivos e diretórios associe a primeira coluna com a segunda: 1 – rmdir 2 – mr –r 3 – cd 4 – touch 5 – ls 6 – mkdir --------------------------------------------------------------------------------------------------------------------- 20 ( ) Cria diretórios vazios ( ) lista arquivos ( ) deleta diretório vazio ( ) visualiza arquivos pausadamente ( ) deleta usando o recurso recursivo ( ) cria arquivos vazios ( ) permite a movimentação entre diretórios. ( ) concatena, visualiza, edita arquivos Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 7 - cat 8 – ls | more 6. 7. Comandos de hora, data, calendário e versão de sistema 6.7.1 Date date: O comando "date",a nível de usuário, exibe na tela a data configurada no sistema. Ele pode se usado com opções mostram a data local ou data universal GMT - Greenwich Mean Time. A configuração dos dados deste comando só podem se realizadas pelo super-usuário. Para exibir a data local, basta executar "date". Caso queira a data GMT utilize a opção "- u". Exemplo: date MesDiaHoraMinuto[AnoSegundos] Onde: MesDiaHoraMinuto[AnoSegundos ] São respectivamente os números do mês, dia, hora e minutos sem espaços. Opcionalmente você pode especificar o Ano (com 2 ou 4 dígitos) e os segundos. +[FORMATO ] Define o formato da listagem que será usada pelo comando date. Os seguin-tes formatos são os mais usados: • %d - Dia do Mês (00-31). • %m - Mês do Ano (00-12). • %y - Ano (dois dígitos). • %Y - Ano (quatro dígitos). • %H - Hora (00-24). • %I - Hora (00-12). • %M - Minuto (00-59). • %j - Dia do ano (1-366). • %p - AM/PM (útil se utilizado com %d). • %r - Formato de 12 horas completo (hh:mm:ss AM/PM). • %T - Formato de 24 horas completo (hh:mm:ss). • %w - Dia da semana (0-6). Se quiser mudar a Data para 25/12 e a hora para 08:15 digite: date 12250815 Para mostrar somente a data no formato dia/mês/ano: date +%d/%m/%Y 6.7.2 Cal cal : exibe calendário do mês e ano corrente. As configurações abaixo podem variar. Ex.:cal mostra o calendário total do ano corrente. cal 1999 mostra o calendário do ano em questão. cal 2 1999 mostra o calendário de fevereiro do ano em questão. --------------------------------------------------------------------------------------------------------------------- 21 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 6.7.3 uname Retorna o nome Retorna o nome e versão do kernel Veja $man uname Exercícios ( Para fazer os exercícios relacionado ao date você poderá usar o o manual para pesquisa ) 1 - Em relação ao comando date associe a coluna da esquerda com a coluna da direita. ( 1 ) date +%d ( ) retorna o dia do ano (1-366) ( 2 ) date +%m ( ) retorna o ano ( quatro dígitos ). ( 3 ) date +%y ( ) retorna a hora ( 00-24 ) ( 4 ) date +%Y ( ) retorna o mês do ano. ( 5 ) date +%H ( ) retorna a hora (00-12 ) ( 6 ) date +%I ( ) retorna o ano ( dois dígitos ) ( 7 ) date +%M ( ) retorna AM ou PM ( 8 ) date +%j ( ) retorna o dia do mês ( 9 )date +%p ( ) retorna os Minutos ( 00-59 ) 2- Em relação ao comando date associe com um traço a coluna da esquerda com a direita. date +%r Retorna o dia da semana. date +%T Formato de 12 horas completo ( hh:mm:ss AM ou PM ) date +%w Formato de 24 horas. ( hh:mm:ss ) 3 - O comando: $ date + “ %d de %B de %Y ” me retorna: _________________________________________________________________________ 4 - Que dia da semana é o dia 4 de outubro de 1500 _______________________________________________________ 6.8 Comandos de paginação 6.8.1 cat (a) cat –n [/caminho/arquivo(1) .. arquivo(n)] | more : mostra conteúdo de arquivo texto. Obs.: {|more: faz paginar}; {-n: exibe a numeração das linhas do arquivo} (b) cat > [arquivo] : cria ou atualiza arquivo, destruindo seu conteúdo original. --------------------------------------------------------------------------------------------------------------------- 22 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas (c) cat >> [arquivo] : cria ou atualiza arquivo, preservando seu conteúdo original. Obs.: Tanto pata cat > quanto para cat >>, usamos as teclas <CTRL> + <C> para fechar o arquivo. (d) cat [/caminho/arquivo(1) .. arquivo(n)] > [arquivo-destino] : concatena arquivos, de forma que o arquivo destino terá seu conteúdo original destruído. (e) cat [/caminho/arquivo(1) .. arquivo(n)] >> [arquivo-destino] : concatena arquivos, de forma que o arquivo destino terá seu conteúdo original preservado. 6.8.2 tac Mostra o conteúdo de um arquivo binário ou texto (como o cat) só que em ordem inversa. tac [opções] [diretório/arquivo] [diretório1/arquivo1] diretório/arquivo Localização do arquivo que deseja visualizar o conteúdo opções -s [string] Usa o [string] como separador de registros. - Lê a entrada padrão Exemplo: tac /usr/doc/copyright/GPL. 6.8.3 more Permite fazer a paginação de arquivos ou da entrada padrão. O comando more pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela é ocupada, o more efetua uma pausa e permite que você pressione Enter para continuar avançando o número de páginas. Para sair do more pressione q. Exemplo: more [arquivo] Onde: arquivo É o arquivo que será paginado O more somente permite avançar o conteúdo do arquivo linha por linha, para um melhor controle de paginação, use o comando less. Para visualizar diretamente arquivos texto compactados pelo gzip .gz use o comando zmore. Exemplos: more /etc/passwd, cat /etc/passwd|more. 6.8.4 less Permite fazer a paginação de arquivos ou da entrada padrão. O comando less pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela --------------------------------------------------------------------------------------------------------------------- 23 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas é ocupada, o less efetua uma pausa (semelhante ao more) e permite que você pressione Seta para Cima e Seta para Baixo ou PgUP/PgDown para fazer o rolamento da página. Para sair do less pressione q. Exemplo: less [arquivo] Onde: arquivo É o arquivo que será paginado Para visualizar diretamente arquivos texto compactados pelo utilitário gzip (arquivos .gz), use o comando zless. Exemplos: less /etc/passwd, cat /etc/passwd|less Resumo Comando less = exibe arquivos texto Opção –p <texto> procura a linha aonde o texto é encontrado Ex. less –p bash /etc/passwd Exercicios 1– Dê um comando more sobre o arquivo /etc/passwd Comando: ___________________________________________________________ 2-Dê um comando less sobre o arquivo /etc/passwd Comando: ___________________________________________________________ 3- Qual a semelhança e a diferença entre os dois comandos? __________________________________________________________ __________________________________________________________ __________________________________________________________ 6.9. Comandos de filtragem 6.9.1 head Mostra linhas iniciais de um arquivo. head [/caminho/arquivo] : mostra as dez primeiras linhas de um arquivo. head –n [/caminho/arquivo] : mostra as n primeiras linhas de um arquivo. Exemplo: head -5 /etc/passwd head [opções] --------------------------------------------------------------------------------------------------------------------- 24 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Onde: -c [numero] Mostra o [numero] de bytes do inicio do arquivo. -n [numero] Mostra o [numero] de linhas do inicio do arquivo. Caso não for especificado, o head mostra as 10 primeiras linhas. Exemplos: head teste.txt, head -n 20 teste.txt. 6.9.2 tail A mesma coisa que o head mas agora com as linhas finais Exemplo: tail -5 /etc/passwd Mostra as linhas finais de um arquivo texto. tail [opções] Onde: -c [numero] Mostra o [numero] de bytes do final do arquivo. -n [numero] Mostra o [numero] de linhas do final do arquivo. Exemplos: tail teste.txt, tail -n 20 teste.txt. 6.9.3 wc Conta palavras Opção –l = conta linhas, -w = palavras , -c = caracteres Exemplo: wc –l /etc/passwd 6.9.4 tr substitui caracteres Exemplo: tr ls | tr “a-z” “A-Z” 6.9.5 sort Ordenar Opções: -b Ignora linhas em branco. -d Somente usa letras, digitos e espaços durante a organização. -f Ignora a diferença entre maiúsculas e minúsculas. -r Inverte o resultado da comparação. -n Caso estiver organizando um campo que contém números, os números serão organizados na ordem aritmética. Exemplo: cat > sort.doc 3 --------------------------------------------------------------------------------------------------------------------- 25 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 4 2 1 crtl+c comando: sort sort.doc Exercícios 1 – Qual o comando que eu poderia utilizar para ver as ultimas 5 linhas do arquivo, /etc/passwd Comando:________________________________________________ 2 – Qual o comando que eu poderia utilizar para ver as primeiras 5 linhas do arquivo /etc/passwd Comando:________________________________________________ 3 – Crie um arquivo chamado desordenado.txt e inclua os seguintes números em cada linha 3 9 8 5 4 2 1 6 7 a – Com qual comando eu ordeno esses arquivos ? Comando: _____________________________________________ b - Agora utilizando um redirecionador coloque esses comandos ordenados em um arquivo chamado ordenado.txt Comando: _____________________________________________ 4 – Quantas linhas, palavras e bytes tenho no arquivo /etc/passwd ___________________________________ Comando: _____________________________ --------------------------------------------------------------------------------------------------------------------- 26 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 6.10. Comandos de pesquisa 6.10.1whereis Localiza o arquivo que contém uma página de manual. A pesquisa é feita usando-se os caminhos de páginas de manuais configuradas no sistema (normalmente o arquivo /etc /manpath.config). whereis [comando] Exemplo: whereis ls, whereis cd. 6.10.2 which Mostra a localização de um arquivo executável no sistema. A pesquisa de arquivos executáveis é feita através do path do sistema. which [comando] Exemplos: which ls, which shutdown Obs. find e grep serão vistos em separado. Exercícios 1 – Caso eu quisesse saber aonde estão os binários, fontes, páginas do manual do comando ls, como seria o comando? Comando: _____________________________________________________ 2 – se eu quisesse saber o caminho completo do comando ls, qual seria o comando digitado? Comando: ___________________________________________________________ 6.11. Outros comandos 6.11.1 fmt Descrição: formata o texto na largura desejada, ele adiciona ou remove espaços. Parâmetro: -w <número> configura a largura Sintaxe: $ fmt –w <número> <arquivo> Exemplo: $ fmt –w 100 arquivo.txt 6.11.2 join Descrição: une linhas com índices em comum. Parâmetro: -j <número> Sintaxe: join –j <número> <arquivo1> <arquivo2> Exemplo: --------------------------------------------------------------------------------------------------------------------- 27 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Arquivo teste.txt 1. carro 2. moto 3. caminhão Arquivo teste2.txt 1. verde 2. amarelo 3. preto Utilizando o comando: $ join –j 1 teste.txt teste2.txt Resultado: 1. carro verde 2. moto amarelo 3. caminhão preto 6.11.3 file Exibe o tipo de um arquivo. Alguns arquivos, tais como arquivos binários e executáveis, não podem ser visualizados na tela. O comando "file" pode ser útil se você não tem certeza sobre o tipo do arquivo. O uso do comando permitirá a visualização do tipo do arquivo. Exercício 4 – O que o comando file faz? Digite: $file /etc/* | more _______________________________________________________________________ 6.11.4 du du : Exibe o espaço ocupado de um diretório e de todos os seus subdiretórios, em blocos de 512 bytes; isto é, unidades de 512 bytes ou caracteres.. du –k /root exibe o tamanho dos diretório/subdiretório em kb. du –c /root exibe o total geral, em caso de existir subdiretórios. 6.11.5 df Mostra o espaço livre/ocupado de cada partição. df [opções] Exercício ( use o manual ) Em relação ao comando df associe a coluna da esquerda com a coluna da direita. ( 1 ) df –h ( ) Somente lista sistema de arquivos locais ( 2 ) df –a ( ) lista em kbytes ( 3 ) df –k ( ) inclui sistema de arquivos com 0 blocos --------------------------------------------------------------------------------------------------------------------- 28 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas ( 4 ) df -l ( ) Mostra o espaço livre/ocupado em Mb, Kb, Gb ao invés de blocos Obs. Bloco de dados são usados para armazenar as informações dos arquivos. 6.11.6 free Mostra detalhes sobre a utilização da memória RAM do sistema. free [opções] Onde: opções -b Mostra o resultado em bytes. -k Mostra o resultado em Kbytes. -m Mostra o resultado em Mbytes. -o Oculta a linha de buffers. -t Mostra uma linha contendo o total. -s [num] Mostra a utilização da memória a cada [num] segundos. O free é uma interface ao arquivo /proc/meminfo. 6.11. 7 nl Mostra o número de linhas junto com o conteúdo de um arquivo. nl [opções] [arquivo] Onde: -f [opc] Faz a filtragem de saída de acordo com [opc]: a Numera todas as linhas. t Não numera linhas vazias. n Numera linhas vazias. texto Numera somente linhas que contém o [texto]. -v [num] Número inicial (o padrão é 1). -i [num] Número de linhas adicionadas a cada linha do arquivo (o padrão é 1). Exemplos: nl /etc/passwd, nl -i 2 /etc/passwd. 6.11.8 time Mede o tempo gasto para executar um processo (programa). time [comando] Onde: comando é o comando/programa que deseja medir o tempo gasto para ser concluído. Exemplo: time ls --------------------------------------------------------------------------------------------------------------------- 29 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas 6.11.9 uptime Mostra o tempo de execução do sistema desde que o computador foi ligado. 6.11. 10 seq Imprime uma seqüência de números começando em [primeiro] e terminando em [último], utilizando [incremento] para avançar. seq [opções] [primeiro] [incremento] [último] Onde: primeiro Número inicial da seqüência. incremento Número utilizado para avançar na seqüência. último Número final da seqüência. Exercícios 1 – o que este comando faz? $seq 1 3 27 _____________________________________________________ 2 – Crie um arquivo com uma seqüência com incremento de 4 até o número 50 começando pelo número 1, chame o arquivo de crescente.txt Comando:______________________________________________ 6.11.11 diff Compara dois arquivos e mostra as diferenças entre eles. O comando diff é usado somente para a comparação de arquivos em formato texto. diff [diretório1/arquivo1] [diretório2/arquivo2] [opções] 7. Redirecionamento e Pipe Utilização da entrada e saída padrão com o uso de operadores (redirecionamento) e pipe. --------------------------------------------------------------------------------------------------------------------- 30 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Entrada padrão (stdin - standard input): onde o comando vai ler seus dados de entrada. Saída padrão (stdout - standard output): onde o comando vai escrever seus dados de saída. Saída de erro (stderr - standard error): onde o comando vai enviar mensagens de erro. Identificadores: Entrada Padrão : 0 Saída Padrão : 1 Erro padrão : 2 A entrada padrão do processo é associada ao teclado e as saídas padrão e de erros à tela atual. O shell se utiliza de operadores de direção para trabalhar com entrada e saída padrão 7.1 - Saída em arquivo: a saída padrão (stdout) do comando é desviada para um arquivo usando o operador ">" a ) Redirecionamento de saída > O dispositivo de saída padrão é a tela, esse recurso funciona como um recurso para redirecionar essa saída para algum outro local. Exemplo: Comando ou programa ou script > dispositivo ou arquivo. Obs. Quando usado com arquivo ele cria ou substitui o mesmo. Exercício exemplo: $ ls > /dev/tty2 ( user as teclas alt+f2 para ir ao terminal tty2 e ver o resultado ) $ cat > texto ( para fechar o arquivo utilize numa linha vazia as teclas ctrl+d ) Obs. Se o arquivo com nome de texto existir ele substitui, se não existir ele cria. Utilize o comando cat para visualizar o conteúdo. b ) Redirecionamento duplo >> --------------------------------------------------------------------------------------------------------------------- 31 Professor Alessandro Borges de LimaCurso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas O dispositivo de saída padrão é a tela, esse recurso funciona como um recurso para redirecionar essa saída para algum outro local. Exemplo: Comando ou programa ou script >> dispositivo ou arquivo. Obs. Quando utilizado com arquivos ele adiciona a saída padrão ao final do arquivo ao invés de substituir o mesmo. Utilizado para acrescentar conteúdos em arquivos. Exercício exemplo: $ ls >> texto Obs. Utilize o mesmo arquivo da caso anterior para verificar que o resultado do comando ls foi adicionado no final do arquivo com o nome de texto. Utilize o comando cat para visualizar o conteúdo. 7.2 - Entrada de arquivo: a entrada padrão (stdin) pode ser obtida a partir de um arquivo usando o operador "<". a ) Direcionamento de entrada < Esse operador envia dados ao comando. Exemplo: comando < dispositivo ou arquivo. Exemplo cat < texto Obs. Foi enviando ao comando cat o conteúdo do arquivo texto. Nesse caso pode-se omitir o direcionamento de entrada, uma vez que é a mesma coisa, não existe a necessidade de digitar o mesmo, o exemplo acima foi apenas para demonstrar como funciona esse comando. b ) Redirecionamento de entrada duplo. << Usado para marcar um fim de exibição Exemplo cat << texto Obs. O arquivo será mostrado até que a palavra texto seja localizado na linha inicial. 7.3 - Uso combinado, concatenação, saída de erro e operador de duplicação. Uso combinado: os dois operadores podem ser usados simultaneamente. Exemplo: $ rev < listagem.txt > listrev.txt Concatenação: a saída padrão pode ser concatenada a um arquivo existente usando-se o operador ">>", como mostra o exemplo: Exemplo: $ ls /etc >> listagem.txt Saída de erros - saída padrão é a saída normal dos programas, seria os arquivos encontrados. E a saída de erro, como o próprio nome diz, são os erros encontrados pelo programa durante sua execução. Respectivamente "1>“ para --------------------------------------------------------------------------------------------------------------------- 32 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas uma saída padrão e "2>“ para a saída de erro. Exemplo: $ ls /xpto /etc/passwd > acerto.txt 2> erro.txt O Operador & - serve para redirecionar e duplicar. É chamado de operador de duplicação. Serve para redirecionar a saída de um identificador para entrada de outro identificador. No exemplo abaixo a saída de erro ( stderr ) esta sendo gravada no arquivo e a saída padrão ( stdout ) esta também sendo gravado no arquivo. Exemplo: $ ls /Xpto >pesquisa.txt 2< &1 7.4 - Pipe Permite conectar a saída standard de um comando à entrada standard de outro. Um mesmo fluxo de dados pode ser tratado por diversos comandos consecutivamente Os comandos conectados são lançados simultaneamente pelo shell e executam ao mesmo tempo Exemplo: ls arquivo.txt | more Obs. Nesse caso estão sendo utilizados dois comandos, ls e more. 8. Curingas Existem 4 tipos de curingas no linux. Os curingas são considerados filtros. Asterisco - referência a nome/arquivo restante. Interrogação - referência a uma letra naquela posição padrão - referência a uma faixa de caracteres, pode ser separados por travessão ( conjuntos), ou virgula ( separados ), é sensitivo, ou seja, diferencia maiúsculo de minúsculo. Tem a negação que é a não procura por determinado caractere Padrões - expande e gera strings. 4 tipos - * , ? , [ ] , { } --------------------------------------------------------------------------------------------------------------------- 33 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Resumo : ? mostra um caracter qualquer * corresponde a todos caracteres [ ] corresponde qualquer caractere dentro disso. [a-z] corresponde a faixa de caracteres Exemplos: ls arquivo? ls se* ls *1 ls sessão[12] ls sessão[1-9] ls s[a-t]*o ( começa por s, repete número qualquer entre a e t e termina com o ) --------------------------------------------------------------------------------------------------------------------- "*" - Faz referência a um nome completo/restante de um arquivo/diretório. "?" - Faz referência a uma letra naquela posição. [padrão] - Faz referência a uma faixa de caracteres de um arquivo/diretório. Padrão pode ser: [a-z][0-9] - Faz referência a caracteres de a até z seguido de um caracter de 0 até 9. [a,z][1,0] - Faz a referência aos caracteres a e z seguido de um caracter 1 ou 0 naquela posição. [a-z,1,0] - Faz referência a intervalo de caracteres de a até z ou 1 ou 0 naquela posição. Caso a expressão seja precedida por um ^, faz referência a qualquer caracter exceto o da expressão. Por exemplo [^abc] faz referência a qualquer caracter exceto a, b e c. {padrões} - Expande e gera strings para pesquisa de padrões de um arquivo/diretório. X{ab,01} - Faz referência a seqüencia de caracteres Xab ou X01 X{a-z,10} Faz referencia a seqüencia de caracteres Xa-z e X10. O que diferencia este método de expansão dos demais é que a existência do arquivo/diretório é opcional para geração do resultado. Isto é útil para a criação de diretórios. Lembrando que os 4 tipos de curingas ("*", "?", "[]", "{}") podem ser usados juntos 34 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Exercícios 1 - Em relação aos curingas associe a primeira coluna com a segunda. a - Asterisco b - interrogação c - [padrão] d - {padrões} Crie os arquivos casa, case, casi, caso, xa, xo, xi, casarao, casinha. Utilizando um comando de filtro, faça os exercícios abaixo no mesmo diretório corrente dos arquivos criados. Use o comando apropriado. 2 - Qual a diferença entre cas[a-o] e o cas[a,o], qual o resultado produzido ? __________________________________________________________ __________________________________________________________ 3 - Existe alguma diferença no resultado x{a-z} e o x[a-z], eles são diferentes ou iguais? __________________________________________________________ __________________________________________________________ 4 - Qual a diferença entre cas* e o cas? Qual os resultados produzidos por cada? __________________________________________________________ __________________________________________________________ 5 - Qual a diferença entre [^abc] e o [^a,b,c] __________________________________________________________ __________________________________________________________ 6 - Que tipo de comandos utilizam os curingas ou metacaracteres? __________________________________________________________ __________________________________________________________ --------------------------------------------------------------------------------------------------------------------- 35 ( ) [a-z,1,2] ( ) [a-z,A-Z] ( ) X {ab,01 } ( ) cas* ( ) cas? ( ) [^abc] ( ) X { a-z,10} Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginasCrie 5 arquivos, teste1.txt, teste2.txt, texto3.txt, teste100.txt, teste101.txt, teste4.new, teste5.new 7 - Realize os comandos no mesmo diretório corrente e escreva os resultados vistos. 1 - ls teste* 2 - ls *.txt 3 - ls teste?.txt 4 - ls teste*.txt 5 - ls teste[1-3].txt 6 - ls teste[1,3].txt 7 - ls teste[^1].txt 8 - rm -f teste?.new 9 - rm -f teste* __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ 8 – Sobre Metacaracteres diga se é verdadeiro ou falso ( ) O asterisco significa um ou mais caracteres ( ) A interrogação significa qualquer um caractere ( ) A lista permite eu listar uma seqüência de caracteres ( ) ^ [ ] significa listar no inicio e [ ^ } significa negação, listar tudo menos o que esta entre colchetes ( ) [A-Z a-z] eu listo letras maiúsculas e minúsculas 9. Find --------------------------------------------------------------------------------------------------------------------- 36 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Usado para pesquisar arquivos pelo nome, data de criação ou modificação, proprietário, tamanho do arquivo, tipo de arquivo. A busca é realizada no disco. Vamos a sintaxe "básica" desse comando? $ find <diretório> <opções/expressão> Diretório é o local aonde deseja realizar a pesquisa. Em opções/expressão representam os critérios da busca ou a ação a ser executada nos arquivos encontrados. Leitura Lembre que numa pesquisa você terá sempre um resultado. Em find é comum utilizamos operadores que nos retornam verdadeiro ou falso. Observação: O comando find é um comando complexo com muitas opções, nesse curso você verá apenas algumas dessas opções. Opções: a para acessados time dias m para modificados min minutos c para criados Argumentos numéricos podem ser: +n : valores maiores que n. -n : valores menores que n. n : valor exatamente igual a n. -atime n : procura por arquivos acessados há n dias. -mtime n : os dados foram modificados em até n dias atrás. -ctime n : o status do arquivo foi mudado nos últimos n dias. -amin n : arquivo foi acessado há n minutos. -mmin n : os dados dos arquivos foram modificados há n minutos -cmin n : o status do arquivo foi alterado em até n minutos atrás. -size n[bckw] : procura por arquivos que tem n unidades de espaço. Ao usar + (-) antes de n procura-se por um arquivo maior (menor) que n. As unidades são b - blocos de 512 bytes (padrão); c - bytes; k - kilobytes; w - palavras de 2 bytes Outros parâmetros ou ações: -name arquivo = indica o arquivo a ser procurado Obs. usa-se iname caso queira o nome exato. --------------------------------------------------------------------------------------------------------------------- 37 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas -user usuário = indica que o arquivo tem que pertencer a o usuário indicado Obs. usa-se nouser quando quer saber arquivos que não pertencem ao uid do dono. -group grupo = indica que o arquivo tem que pertencer a o grupo indicado Obs. usa-se nogroup quando quer saber arquivos que não pertencem ao gid do dono. -print = imprime o nome do arquivo na tela, é sempre necessário pois sem ele não irá ser mostrado nada Obs. Existe uma infinidade de opções para essa ação. -exec comando {} \; = executa o comando para todos os arquivos encontrados o {} \; faz parte da sintaxe e é substituído pelo nome do arquivo e é necessário o espaço entre as chaves e a barra Alguns operadores: expr1 expr2 - são implícitas; expr2 não será avaliada se expr1 for falsa. expr1 -a expr2 - o mesmo que expr1 expr2. expr1 -and expr2 - o mesmo que expr1 expr2. expr1 -o expr2 - Ou; expr2 não é avaliada se expr1 for verdadeira. expr1 -or expr2 - o mesmo que expr1 -o expr2. expr1 , expr2 - lista; ambas expr1 e expr2 sempre são avaliadas. O valor de expr1 é descartado; o valor da lista é o valor de expr2. Exercícios de entendimento. 1. O comando find é utilizado para realizar a pesquisa em: ( ) banco de dados ( ) disco 2. É correto afirmar que o comando find é um comando poderoso e muito complexo, que além de realizar uma busca ele pode interagir com os arquivos. ( ) verdadeiro ( ) falso 3. Eu posso utilizar o comando find para procurar arquivos pelo nome, data de criação ou modificação, proprietário, tamanho e tipo. ( ) verdadeiro ( ) falso 4. Sobre os parâmetros do comando find relacione a primeira coluna com a segunda. 1. cmin 2. mtime 3. amin 4. atime 5. mmin 7. ctime 5. Sobre os operadores utilizados no comando find responda verdadeiro ou falso. ( ) expr1 expr2 é igual a expr1 -a expr2 é igual a expr -and expr2 ( ) expr1, expr2 é igual a expr1 -o expr2 é igual a expr -or expr2 ( ) expr1, expr2 é diferente de expr1 -o expr2 6. Sobre outras opções e ações realizadas no comando find diga se é verdadeiro ou falso. --------------------------------------------------------------------------------------------------------------------- 38 ( ) procura por arquivos acessados há n dias. ( ) os dados foram modificados em até n dias atrás. ( ) o status do arquivo foi mudado nos últimos n dias. ( ) arquivo foi acessado há n minutos. ( ) os dados dos arquivos foram modificados há n minutos ( ) o status do arquivo foi alterado em até n minutos atrás. Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas ( ) a digitação da opção exec{}/; esta feita da forma correta, sem utilização de espaços. ( ) a opção -name é igual a opção -iname, ambos procuram pelo nome do arquivo. ( ) a opção -print me mostra na tela de saída padrão o resultado desejado. ( ) a opção -user ou a -nouser me permite trabalhar com o id do usuário. ( ) a opção -group é a mesma coisa que -user só que se refere ao id do grupo. Agora vamos ao que interessa, que é fazer a lógica do comando, sabendo do básico agora necessitamos de ver como é que esse comando funciona e sua utilização, segue abaixo alguns exemplos nos quais você usará para entender os exercícios propostos no curso. Exemplos relacionado a modificação e acesso. $find /home -mtime -30 Procura todas as entradas modificadas a menos de 30 dias. $find ~/ -atime +10 Procura todas as entradas acessadas a mais de 10 dias. Obs. Observe o local da busca. Sabe qual a diferença de uma para a outra? Faça o exemplo e descubra. Exemplos relacionado ao tamanho $find /etc -size +1200b Procurar todas as entradas em /etc que tenham mais de 1200 blocos de tamanho: $find . -size +1000k lista os arquivos com mais de 1000k de tamanho a partir do diretório atual (que está representado pelo '.'). Exemplos relacionados aos operadores Usando iname: -iname ‘*ma*’ -or–iname ‘*cv*’ Usando mtime e size : -mtime -5 –and –size 4c Exemplos usando outras opções $find / -name alessandro.txt -print $find / -user kurumin -print $find / -name alessandro.txt -user kurumin -exec rm {} \; $find / -iname ‘*ma*’ -print -or –iname ‘*cv*’ -print $find / -iname ‘*ma*’ -print -or –iname ‘*cv*’ $find / -iname ‘*ma*’ -or –iname ‘*cv*’ -print $find /-nouser kurumin -print $find /-group kurumin -print Obs. Note que você poderá usar a criatividade sempre para realizar sua busca diversificando suas intenções com esse comando, apesar do curso ser básico você pode aprofundar no assunto e ver mais opções desse comando, existe sites bons no qual inclusive utiliza o pipe para combinar o find com comandos diversos. --------------------------------------------------------------------------------------------------------------------- 39 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas Estudo de caso para ser feito em casa com bastante paciência. O seu patrão esta meio perdido. Ele andou salvando um arquivo no qual não lembra mais o diretório de localização. Já observou toda a pasta do seu usuário e verificou que fez a burrada de estar logado como root permitindo salvar esse arquivo em qualquer lugar do computador. Aqui entra o seu desafio. Para dificultar mais ainda seu trabalho o danado do patrão super atarefado não lembra o nome do arquivo. A única informação que você obtém é que esse arquivo foi escrito essa semana. Você já sendo uma pessoa esperta foi verificar que o editor utilizado é o openoffice.org writer. Logo você pode estar entrando numa verdadeira sinuca. Porque ao observar esse editor ele permite salvar arquivos do tipo doc e sxw. Exercícios sobre o comando find 1 – Encontrar todas as entradas *.txt dentro do diretório /usr Comando: _____________________________________________ 2 - Procure todas as entradas acessadas a mais de 3 dias em /etc Comando: _____________________________________________ 3 - Procure todas as entradas modificadas a menos de 2 dias em /etc que tenham mais de 5 Kbytes de tamanho Comando: _____________________________________________ 4 - Procurar todas as entradas *ab* ou *cd* (maiúsculas ou minúsculas) presentes em /etc Comando: _____________________________________________ 10. Grep O comando grep é usado para verificar o conteúdo dos arquivos, na tentativa de encontrar uma mesma palavra no qual esta sendo pesquisada. Além do grep temos o egrep que usa uma sintaxe mais recente de expressão regular. Como nesse curso não vemos expressões regulares você verá o comando egrep no próximo curso. O grep é uma poderosa ferramenta que --------------------------------------------------------------------------------------------------------------------- 40 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas combinada trás uma gama muito boa de opções, inclusive, usando as próprias expressões regulares que podemos dizer, é um casamento perfeito. Sintaxe: grep [paramento] [string] [arquivo] Parâmetro é a opção String é a palavra à ser pesquisada Arquivo é o arquivo no qual deseja fazer a pesquisa. Opções: -i: ignora letras (desconsidera maiúsculas de minúsculas ) -n: número da linha ( mostra o número de linha ) -c: número de ocorrências ( retorna número de coincidências ) -v: inverte a busca ( modo verbose ) Exemplos: grep -i palavra index.txt cat Alessandro.txt | grep alessandro ls | grep kurumin Exercícios 1. Procure todas as linhas usando o comando grep contento a palavra bash no arquivo /etc/passwd ______________________________________________________ 2. Procure todas as linhas usando o comando grep que não contenham a palavra bash no arquivo / etc/passwd ______________________________________________________ 3. Usando o comando cat crie um arquivo com o nome família com o seguinte conteúdo: Hello hello casa Casa Após de criado o arquivo realize os seguintes comandos: a. grep –v [Hh]ello família ______________________________________________________ --------------------------------------------------------------------------------------------------------------------- 41 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas b. grep –i [Hh]ello família ______________________________________________________ c. grep –c [Hh]ello família ______________________________________________________ d. grep –n [Hh]ello família ______________________________________________________ 11. O Editor de Textos VI O editor de textos (modo caracter) vi é muito utilizado no mundo Linux para editar arquivos de configuração. O vi apresenta 2 modos de uso: a) Modo de edição quando pressionamos a tecla < i >. b) Modo de comando quando “chamamos” o vi ou desabilitamos o modo de edição pressionando a tecla <ESC>. Operações básicas do modo de comando: Obs.: Conceito de linha: Considerasse linha o texto digitado até o próximo enter. x apaga um caracter yy copia a linha corrente nyy copia n linhas D remove a linha corrente para posterior “colagem” nD remove n linhas para posterior “colagem” Obs.: Notar que é necessário pressionar a tecla <shift> para obter D (maiúsculo) p cola o texto copiado ou removido para a memória, após o cursor P cola o texto copiado ou removido para a memória, após o cursor Obs.: Notar que é necessário pressionar a tecla <shift> para obter P (maiúsculo) dd remove a linha corrente ndd remove n linhas dDD apaga do cursor até o final da linha Obs.: Notar que é necessário pressionar a tecla <shift> para obter DD (maiúsculo) --------------------------------------------------------------------------------------------------------------------- 42 Professor Alessandro Borges de Lima Curso Básico -------------------------------------------------------------------------------------------------------------------- 120 paginas cc elimina a linha corrente, permitindo a inclusão imediata de uma nova linha ncc elimina n linhas, permitindo a inclusão imediata de uma nova linha o insere linha em branco abaixo da linha corrente e habilita edição O insere linha em branco acima da linha corrente e habilita edição Obs.: Notar que é necessário pressionar a tecla <shift> para obter O (maiúsculo) u desfaz as últimas alterações . refaz o que “u” desfez / procura palavra n continua (next) a procura da palavra, para frente N continua (next) a procura da palavra, para trás Obs.: Notar que é necessário pressionar a tecla <shift> para obter N (maiúsculo) e avança para a próxima palavra (final da palavra) após o cursor b retrocede para a palavra (início da palavra) anterior ao c cursor <shift> :% s / termo-antigo / termo-novo substitui o termo-antigo pelo termo-novo <shift> :e nome-do-arquivo edita outro arquivo (novo ou já existente) <shift> :r nome-do-arquivo insere na posição do cursor o arquivo especificado <shift> :q! sai sem salvar <shift> :wq (ou x) sai gravando <shift> :wq! (ou x!) sai gravando, forçando <shift> :w salva sem sair <shift> :w! salva
Compartilhar