Escola Secundária Alberto Sampaio Carlos Freitas Sistema operativo que incluí funções especiais que permitem a ligação de um computador a uma LAN. Exemplos: Unix GNU/Linux; Mac Os; Windows Server 2003. Aula 3/4/5 - Sistemas Operativos 2 Sistema operativo de rede, livremente distribuído e open source que funciona em várias plataformas; O kernel (núcleo) utilizado pela maioria dos SOs GNU é o Linux; GNU: GNU is Not Unix. Aula 3/4/5 - Sistemas Operativos 3 Como o Linux é um SO com capacidades de multiutilizador, é necessário que se faça um login; Elementos necessários: Nome do utilizador; Password. Os elementos para login, são criados pelo administrador do sistema (root). Aula 3/4/5 - Sistemas Operativos 4 Após um login bem sucedido, o utilizador encontra-se na sua home directory; Home directory: Pasta de trabalho do utilizador, onde tem direitos de execução, escrita e leitura; Geralmente /home/nomeUtilizador/; Aula 3/4/5 - Sistemas Operativos 5 Quando se efectua o login, somos saudados por uma prompt com um aspecto semelhante ao seguinte: $ O aspecto da prompt pode ser modificado para incluir: O nome do computador; Nome da directoria corrente; … O programa que apresenta a prompt é chamado de shell; A shell é o programa que nos permite comunicar com o sistema operativo (CLI - Command Line Interface). Aula 3/4/5 - Sistemas Operativos 6 Existem várias implementações de programas de shell: sh: ksh: C-Shell. bash: Korn Shell; csh: Bourne Shell (Steven Bourne); Bourne Again Shell (Integra funcionalidades da ksh e csh); … Aula 3/4/5 - Sistemas Operativos 7 Para se saber qual a shell em utilização: echo $SHELL A maioria dos sistemas Linux utiliza a Bourne Again Shell (bash); Para “fechar” a shell Bash (voltar à prompt de login): Escrever na prompt: logout, ou exit Ou Pressionar Ctrl+D. Aula 3/4/5 - Sistemas Operativos 8 Além de multiutilizador, o SO Linux é um sistema multitarefa; Mesmo que um sistema Linux seja utilizado por apenas um utilizador, este tem à sua disposição seis consolas virtuais (pode ser alterado); Para alternar entre elas, basta pressionar: Alt + Fn (1 ≤ n ≤ 6); Alt + F7 (reservado para o modo gráfico); Se se estiver em modo gráfico (X11), para alternar para uma das consolas de texto, pressionar: Ctrl + Alt + Fn; Alt + F7 regressa ao modo gráfico; Aula 3/4/5 - Sistemas Operativos 9 Na prompt da shell bash: cd nomeDir cd / Informa a shell que se pretende trabalhar na directoria de raiz (root directory) cd Informa a shell que se pretende trabalhar na directoria com o nome nomeDir (cd C hange D irectory ) Regressa à home directory, qualquer que seja a directoria onde se esteja pwd Informa ao utilizador qual a directoria onde se está a trabalhar actualmente ( P resent W orking D irectory ) Aula 3/4/5 - Sistemas Operativos 10 Caminhos absolutos (começam com /): /usr/share /dev /etc/network Interpretados a partir da raiz. Caminhos relativos (não começam com /): usr Maildir home/antonio/Docs Interpretados relativamente à pwd. Aula 3/4/5 - Sistemas Operativos 11 Exemplo com o comando cd: cd /usr cd usr Mudar para a directoria hierarquicamente abaixo da pwd; cd ../power Mudar para a directoria usr que existe dentro da pwd; cd .. Mudar para a directoria usr na raiz; Mudar para a directoria power que é “irmã” da pwd; cd ~/radical Mudar para a directoria radical dentro da home directory. Aula 3/4/5 - Sistemas Operativos 12 .refere-se à pwd (directoria corrente); Utiliza-se frequentemente para a execução de programas na directoria corrente; Exemplo: ./meuprog Executa o programa com o nome meuprog que se encontra na pwd (obviamente meuprog é executável). Aula 3/4/5 - Sistemas Operativos 13 Para nos referirmos às home directories de outros utilizadores: Com caminho absoluto: /home/jaquim Com o caracter ~: ~/jaquim Aula 3/4/5 - Sistemas Operativos 14 ls Apresenta uma listagem (ls - list) do conteúdo da pwd: antonio@imortal:~$ ls dead.letter Docs Maildir profile ls -a Apresenta uma listagem de TODO (a - all) o conteúdo da pwd. Inclui: Ficheiros ocultos (começados por . ); Links especiais . e .. ; antonio@imortal:~$ ls -a .alias .bash_profile .cshrc Docs profile .. .bash_history .bashrc dead.letter Maildir .viminfo Aula 3/4/5 - Sistemas Operativos 15 ls -l Apresenta uma listagem longa (l - long) dos conteúdos da pwd, incluindo direitos, número de links, proprietário, grupo, tamanho, última alteração e nome: antonio@imortal:~$ ls -l total 16 -rw------- 1 antonio users dead.letter drwx------ 2 antonio users drwxr-xr-x 9 antonio users Maildir drwx------ 14 antonio users profile 1 2004-04-13 21:13 4096 2004-04-24 13:11 Docs 4096 2004-05-04 17:11 4096 2004-04-21 20:03 ls -lh O parâmetro h (human readable) faz com que os tamanhos dos ficheiros sejam apresentados em Kb, Mb e Gb. Aula 3/4/5 - Sistemas Operativos 16 ls nomeficheiro Apresenta apenas o ficheiro nomeficheiro caso este exista; ls nomeDirectoria Apresenta o conteúdo da directoria com o nome nomeDirectoria; ls -d nomeDirectoria Apresenta apenas a directoria (d) com o nome nomeDirectoria; ls -R nomeDirectoria Apresenta todos os ficheiros contidos na directoria nomeDirectoria e respectivas sub-directorias (R recursivo). Aula 3/4/5 - Sistemas Operativos 17 Um inode number é um índice numérico que identifica cada objecto no sistema de ficheiros; ls -i Apresenta uma listagem do conteúdo da pwd junto com os respectivos inodes: antonio@imortal:~$ ls -i 65570 dead.letter 65631 Docs 65571 Maildir 65543 profile Podem existir dois ficheiros com um mesmo inode number, desde que que se encontrem em sistemas de ficheiros diferentes (e.g. partições diferentes). Aula 3/4/5 - Sistemas Operativos 18 mkdir power Cria a directoria power na pwd; mkdir um dó li tá Cria as directorias um, dó, li e tá na pwd; mkdir -p um/dó/li/tá Cria a inteira árvore de directorias especificada (p - parent directories). Aula 3/4/5 - Sistemas Operativos 19 cp fich1 fichCópia cp -i fich1 fichCópia Cria uma cópia do ficheiro fich1 com o nome fichCópia, mas se fichCópia já existir, pergunta (i - Interactivo) se se quer substituir; cp /usr/src/kernel-source-2.6.5.tar . Cria uma cópia do ficheiro fich1 com o nome fichCópia; Cria uma cópia do ficheiro kernel-source-2.6.5.tar que se encontra em /usr/src/ na pwd (.); cp -R /usr/src . Cria uma cópia da directoria /usr/src e TODO o seu conteúdo em . (pwd). Aula 3/4/5 - Sistemas Operativos 20 mv fich1 fich2 Move (mv) o ficheiro com o nome fich1 para fich2. Equivalente a renomear o ficheiro com o nome fich1 para o nome fich2. mv -i fich1 fich2 Igual ao anterior mas pergunta se se pretende substituir fich2 se este já existir. Aula 3/4/5 - Sistemas Operativos 21 touch fich1 Cria um ficheiro com o nome fich1; Se fich1 já existir, apenas actualiza a sua data e hora (mtime) para a data e hora correntes do sistema. Aula 3/4/5 - Sistemas Operativos 22 A informação no Unix, encontra-se organizada em ficheiros que por sua vez se encontram organizados em directorias As directorias encontram-se organizadas numa estrutura em árvore, onde existe uma raiz comum com várias ramificações. A estrutura de directórios do Unix pode ser representada (tal como a estrutura do DOS) por uma árvore invertida com a raiz no topo. O símbolo do directório raiz(root directory) é uma barra “ / ”, ao contrário do DOS que é uma barra invertida “\”. Quando se inicia uma sessão em Unix, o utilizador após o login fica posicionado automaticamente no seu directório pessoal. Aula 3/4/5 - Sistemas Operativos 23 . Eis um exemplo da estrutura de directórios de um sistema Unix: /(root) stand sbin etc unix dev term 1 home opt constty 15 Aula 3/4/5 - Sistemas Operativos usr bin ls var lib x cat 24 tmp stand: versão executável do kernel sbin: comandos para administração do sistema etc: ficheiros de configuração do sistema dev: ficheiros especiais que correspondem na sua utilização a discos, terminais, etc. home: onde são criados os ficheiros do utilizador opt: onde fica armazenado software não pertencente ao Unix usr: ficheiros estáticos e partilháveis (comandos de sistema lin, bibliotecas - lib) var: contém logs, ficheiros temporários, etc. tmp: só ficheiros temporários. De cada vez que o sistema é reinicializado esta directoria é limpa Aula 3/4/5 - Sistemas Operativos 25 dev - Contém ficheiros especiais (de dispositivos) tais como terminais, impressoras e dispositivos de armazenamento etc - Contém bases de dados de configuração e administração do sistema (contém, por exemplo, os ficheiros com as passwords de todos os utilizadores) home - Contém os directórios-conta e ficheiros de todos os utilizadores opt - Contém os eventuais pacotes de aplicações adicionais / sbin - Contém os programas de arranque e recuperação do sistema stand - Contém programas standard e ficheiros de dados utilizados na primeira inicialização do sistema tmp - Contém todos os ficheiros temporários utilizados pelo Sistema Unix Contém programas vários do Sistema Unix, utilitários, comandos de usr - administração de sistema, dados e ficheiros executáveis de jogos, compiladores e bibliotecas de linguagens de programação, manuais, etc. var - Contém directórios de ficheiros que diferem ao longo das diferentes versões de Unix. Estes incluem ficheiros de contabilidade, de registo da actividade do sistema, ficheiros de correio electrónico, etc. Aula 3/4/5 - Sistemas Operativos 26 Identificação da directoria actual pwd Indica o directório actual. Aula 3/4/5 - Sistemas Operativos 27 Mudar de directoria $home Muda para o directório pessoal. cd permite ao utilizador mudar a directoria de trabalho. O caminho pode ser relativo ou absoluto. Aula 3/4/5 - Sistemas Operativos 28 Usando-se: cd sem o nome do directório fará com que seu directório corrente seja o seu directório padrão, cd - fará com que seu directório corrente seja o directório onde estava anteriormente e é uma maneira conveniente de se alternar entre dois directórios, cd .. fará com que seu directório corrente seja o directório exactamente superior ao que você se encontra (muito útil). Aula 3/4/5 - Sistemas Operativos 29 Criar directorias: mkdir Permite criar novas directorias cria uma directoria, tendo como ponto de origem a directoria de trabalho. du df Espaço já utilizado em disco; numero de blocos de 512 bytes de todos os directórios existentes no sistema. Quantidade de espaço livre no disco em blocos de 512 bytes. Aula 3/4/5 - Sistemas Operativos 30 Eliminar directorias vazias: rmdir permite apagar directorias vazias. O directório a remover deve pertencer ao utilizador que o pretende remover. Deve estar posicionado no directório pai daquele que vai ser eliminado. O directório a eliminar não deve conter qualquer conteúdo. Aula 3/4/5 - Sistemas Operativos 31 Listar o conteúdo de uma directoria: ls ou dir Lista o conteúdo do directório corrente, permite listar nomes e atributos de ficheiros e directorias O comando dir é um alias para o comando ls de forma que estes comandos fazem exactamente a mesma coisa. A listagem dos arquivos é normalmente codificada por cores: azul escuro = directórios, cinza = arquivos normais, Verde = arquivos executáveis, violeta = arquivos gráficos, Vermelho = arquivos comprimidos, azul claro = links simbólicos, amarelo = arquivos de dispositivos, castanho = FIFO Aula 3/4/5 - Sistemas Operativos 32 Opções do comando ls: a-lista todos os ficheiros de uma directoria, incluindo aqueles que começam com “.”(os que se encontram escondidos). s-lista os ficheiros e o seu tamanho em kbytes. l-lista o tipo de ficheiro, permissões para o dono, grupo do dono e outros utilizadores, numero de ficheiros relacionados, nome do dono e tamanho. Fim Aula! Aula 3/4/5 - Sistemas Operativos 33 Quando utilizado o comando ls -l a saída será uma sequência semelhante à seguinte: 1 2 3 4 5 6 - rw- -- -- 1 roo - t 7 roo t Aula 3/4/5 - Sistemas Operativos 8 9 753 Mar 8 18:39 10 31 mb ox 34 1 Tipo de item listado: d - directório (l no linux) c - periférico b - unidade - - ficheiro normal 2 Permissões de acesso do dono ao item: r - leitura w - escrita x - execução Permissões de acesso do grupo a que pertence o dono ao item: r - leitura w - escrita x - execução 3 Aula 3/4/5 - Sistemas Operativos 35 4 5 6 Permissões de acesso dos outros utilizadores ao do item: r - leitura w - escrita x - execução Número de ficheiros associados Nome do dono do item 7 8 9 Nome do grupo a que pertence o dono do item Tamanho do item Data de criação e/ou alteração 10 Nome do item Aula 3/4/5 - Sistemas Operativos 36 ls -al |more Lista o conteúdo do directório corrente, todos os arquivos (incluindo aqueles começando com um ponto), e em um formato mais longo. A saída é canalizada para o comando "more", de forma que a exibição seja interrompida quando a tela ficar cheia. O comando ls tem diversas opções úteis. Algumas delas tem atalhos (aliases) para evitar uma digitação complicada. Execute ll (="long ls [ls longo]", um alias para ls -l). Uma outra opção de uso frequentemente é ls -ad (lista todos os subdirectorias no directório corrente, mas não lista os conteúdos). Aula 3/4/5 - Sistemas Operativos 37 Exemplos: $ls /etc Lista os ficheiros existentes no directório etc $ls /etc/a* Lista todos os ficheiros do directório etc cujo nome começa por a $ls nl???? Lista todos os ficheiros começados por nl e que possuem mais quatro caracteres $ls /bin/[a-f]* Lista todos os ficheiros do directório bin cujo nome começa por uma letra entre a e f $ls /bin/[b,g]* Lista todos os ficheiros do directório bin cujo nome começa por b ou g $ls -aR|more Lista todos os directórios abaixo do actual por páginas Aula 3/4/5 - Sistemas Operativos 38 Considerações sobre o nome de ficheiros Unix: Em algumas versões do Unix, o nome dos ficheiros pode ter até 256 caracteres (Ex. Santa Cruz). Pode usar-se qualquer combinação de caracteres incluindo números, excepto os caracteres seguintes que têm um significado especial para o Shell: ! “ „‟ ; / ; $ <> () | { } [] ~ Maiúsculas e minúsculas são interpretadas diferentemente: MENU.txt é diferente de menu.txt. As extensões podem ter qualquer comprimento. Dentro de um directório não podem existir nomes duplicados. Aula 3/4/5 - Sistemas Operativos 39 Símbolos de redireccionamento: > Indica ao computador onde colocar o output da linha de comandos. Ex. echo > teste cria o ficheiro teste com o conteúdo especificado caso este não exista. Se já existe substitui o conteúdo existente pelo novo conteúdo. >> Indica ao computador onde adicionar o output. Ex. echo >> teste cria o ficheiro teste com o conteúdo especificado caso este não exista. Se já existe adiciona o novo conteúdo ao conteúdo existente. < Indica ao computador de onde vem o input para a linha execução do comando Ex. mail sara<mensagem utiliza o ficheiro mensagem para enviar para o utilizador sara. Aula 3/4/5 - Sistemas Operativos 40 Criação de ficheiros de texto simples: echo Envia as entradas do teclado para o terminal directamente, ou para outro local se a saída for redireccionada. (echo > ou >> nome_ficheiro) touch Cria ficheiros simples de experiência e vazios quando não existe outro já com o mesmo nome no directório de trabalho. (touch nome_ficheiro) Aula 3/4/5 - Sistemas Operativos 41 Criação de ficheiros de texto simples: cat Cria ficheiros de texto de forma rápida, digitando texto até que seja pressionada CTRL+d para terminar a entrada. (cat > nome_ficheiro) cat >> fich1 acrescenta linhas no ficheiro Aula 3/4/5 - Sistemas Operativos 42 Ver o conteúdo de um ficheiro: cat > nome_fich visualiza o conteúdo de um ficheiro; cat > fich1 fich2 > fich_final Com a utilização dos símbolos de redireccionamento e com o comando cat é possível concatenar vários ficheiros para um só. Aula 3/4/5 - Sistemas Operativos 43 Ver o conteúdo de um ficheiro: grep procura palavras ou cadeias de caracteres dentro de ficheiros. (grep “texto a procurar” nome_ficheiro) strings Apresenta no ecrã qualquer cadeia de caracteres que possa existir no interior de um ficheiro binário Aula 3/4/5 - Sistemas Operativos 44 Ver o conteúdo de um ficheiro: more Imprime o conteúdo de um ficheiro página a página (more nome_ficheiro) Teclas de movimentação no more: Q ou q -sair do more Enter - visualizar nova linha Barra de espaços - visualizar nova página /- permite pesquisar por palavras dentro de um ficheiro a partir da localização actual. Aula 3/4/5 - Sistemas Operativos 45 Ver o conteúdo de um ficheiro: head imprime as primeiras 10 linhas de um ficheiro se nada for especificado (head nome_fich) ou o nº de linhas indicado (head -5 nome_fich) tail imprime as últimas 10 linhas de um ficheiro se nada for especificado (tail nome_fich) ou o nº de linhas indicadas (tail -5 nome_ficheiro) Aula 3/4/5 - Sistemas Operativos 46 Procura de ficheiros na árvore de directórios: find Permite procurar um ficheiro numa hierarquia de directorias, a partir de um ponto especificado pelo utilizador, o nome de um ficheiro ou parte dele. find / -name tlp -print 1 “/” indica ao find que deve iniciar a procura na raiz “.” indica ao find que deve iniciar a procura a partir do directório actual e continuar para os directórios abaixo 2 “-name” indica ao find que se refere a um nome de ficheiro ou directório “-user” procura todos os ficheiros pertencentes a um determinado utilizador 3 Nome do ficheiro ou ficheiros que se pretende procurar 4 Para imprimir no ecran(opcional) Aula 3/4/5 - Sistemas Operativos 47 Identificação de tipos de ficheiros: Categorias dos ficheiros Unix Ficheiros correspondentes a periféricos, como terminais e impressoras Ficheiros correspondentes às unidades de disco Directórios Ficheiros vulgares: Ficheiros de texto em código ASCII Ficheiros de código fonte Programas de shell Unix Ficheiros binários Ficheiros de programas executáveis Aula 3/4/5 - Sistemas Operativos 48 Identificação de tipos de ficheiros: file Permite identificar os vários tipos de ficheiros. (file nome_ficheiro) É conveniente saber a localização exacta dos ficheiros. Os caracteres de escape “?” e “*” podem ser utilizados com este comando. Aula 3/4/5 - Sistemas Operativos 49 Cópia de ficheiros na árvore de directórios: cp <origem> <destino> Cria uma nova cópia de um ficheiro mantendo o ficheiro original intacto para a directoria actual com um novo nome ou para outra directoria com o mesmo nome ou outro. (cp nome_ficheiro novo_nome_ficheiro ou directoria_destino) A nova cópia substitui qualquer outra com o mesmo nome na directoria para onde é criada a cópia. Se forem copiados mais do que um ficheiro então o destino deverá ser um directório. No ficheiro de origem deve ter permissão de leitura e o de destino deve ter permissão de escrita. Aula 3/4/5 - Sistemas Operativos 50 Deslocação e alteração do nome de ficheiros: mv <origem> <destino> Permite alterar o nome de ficheiros e/ou movê-los. (mv nome_ficheiro novo_nome_ficheiro ou directoria_destino) Aula 3/4/5 - Sistemas Operativos 51 Eliminação de ficheiros: rm Algumas opções do comando rm: Permite a remoção de ficheiros e/ou directórios não vazios. (rm nome_ficheiro) -d permite remover directórios -f elimina os ficheiros protegidos contra escrita -r ou -R elimina directórios e o respectivo conteúdo sem qualquer aviso -i o sistema pede confirmação ao utilizador antes de eliminar o ficheiro Aula 3/4/5 - Sistemas Operativos 52