UNIX Objetivos Introduzir o sistema operacional UNIX Mostrar

UNIX Objetivos • Introduzir o sistema operacional UNIX • Mostrar alguns comandos básicos • Foi desenvolvido pelo Bell Laboratories em 1969 • Maior parte dos laboratórios de pesquisa usa o sistema UNIX • A interface com o usuário é através da linha de comando e • É necessário saber a estruturação dos arquivos e comandos básicos http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

Observações iniciais Convenções tipográficas • negrito: comandos que devem ser teclados como estão • Palavras entre [colchetes]: indicam teclas que devem ser apertadas. Por exemplo: % ls diretório [Enter] significa que no sinal %, deve digitar ls seguido do nome de um diretório e pressionar a tecla "Enter" UNIX é sensível a minúsculo/maiúsculo, então LS não é o mesmo que ls. O mesmo acontece para nomes de arquivos/diretórios. Os arquivos: exemplo. txt, EXEMPLO. TXT são três arquivos diferentes. http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

Logging on É necessário ter um username e um password username: calvin password: a. Bc 123 Isto loga a pessoa com username calvin no sistema. http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

1. 1 Listando arquivos e diretórios ls (list) O comando ls lista o conteúdo do diretório onde foi dado o comando. Aquele diretório onde entramos é chamado home directory. É onde os arquivos e subdiretórios do usuário são salvos. Para encontrar o que está no seu home directory , digite: % ls Se não houver arquivos visíveis, o prompt retornará. ls, não faz com que TODOS os arquivos sejam listados, mas apenas aqueles cujos nomes não começam com um ponto (. ) Arquivos que começam com um ponto são os “arquivos escondidos” e geralmente contém algum tipo de informação importante relativa a configuração. Eles estão escondidos porque eles não devem ser alterados. Opções: % ls -a ls é um exemplo de um comando que pode ter opções: -a é um exemplo de uma opção. As opções mudam o comando (manual on line) % man ls http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

1. 2 Criando diretórios mkdir (make directory) Comando para a criação de (sub)diretórios. Fazer agora um subdiretório chamado unixtutorial para guardar os arquivos que serão criados no tutorial UNIX. % mkdir unixtutorial Para ver o diretório criado digite : % ls 1. 3 Mudando para outro diretório cd (change directory) O comando cd diretório significa mudar do diretório corrente para o diretório "diretório". % cd unixtutorial Digite ls para ver o que tem la dentro (deveria estar vazio) Exercício 1 a Faça um diretório dentro de unixtutorial chamado backup http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

1. 4 Os diretórios '. ' e '. . ' Ainda no diretório unixtutorial digite: % ls -a Você vai ver que no diretório unixtutorial têm dois diretórios chamados (. ) e (. . ) Em UNIX, (. ) significa o diretório corrente. Portanto digitando: % cd. (obs: há um espaço entre cd e o ponto) significa fique onde está. Isso pode parecer inútil agora, mas usando (. ) como o nome do diretório corrente pode economizar muito na digitação. (. . ) significa o superior do diretório corrente, então digitando % cd. . levará você para um diretório acima. Obs: digitando cd sem nenhum argumento sempre retorna ao home directory. http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

1. 5 Pathnames pwd (print working directory) Pathnames permitem você saber onde você está em relação ao sistema. Por exemplo, para saber em qual diretório está, digite % pwd O pathname completo vai parecer algo como: /shared/home/guest 01 o que significa que guest 01 (seu diretório home) está no diretório home (o diretório do grupo). Exercício 1 b Use os comandos ls, pwd e cd para explorar o sistema. http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

1. 6 Mais sobre diretórios home e pathnames Entenda pathnames Primeiro digite cd para voltar para o diretório home, então digite: % ls unixtutorial para listar o conteúdo do diretório Agora digite: % ls backup Você verá a mensagem: backup: No such file or directory Porque backup não está no seu diretório corrente. Para usar um comando num arquivo (ou diretório) que não está no diretório corrente, é preciso ou cd para o diretório correto, ou especificar o endereço (pathname) completo. % ls unixtutorial/backup http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

~ (home directory) Home directories podem ser chamado pelo caracter til ~. Ele pode ser usado para especificar caminhos começando no home directory. Digitando: % ls ~/unixtutorial lista o conteúdo do diretório unixtutorial, independente de onde você estiver. Sumário ls lista arquivos e diretórios ls -a lista todos arquivos e diretórios mkdir cria um diretório cd diretório muda para um determinado diretório cd muda para o diretório home cd ~ muda para o diretório home cd. . muda para o diretório superior pwd mostra o endereço do diretório http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

2. 1 Copiando Arquivos cp (copy) cp arquivo 1 arquivo 2 é o comando que faz uma cópia do arquivo 1 no diretório corrente e chama esta cópia de arquivo 2 Vamos pegar o arquivo armazenado em uma área de acesso do sistema, e usar cp para copiá-lo no diretório unixtutorial. Primeiro, cd para o diretório unixtutorial % cd ~/unixtutorial No prompt UNIX, digite: % cp /shared/home/paula/tutorials/UNIX/science. txt. O comando acima significa copiar o arquivo science. txt para o diretório corrente, mantendo o nome do arquivo. Exercício 2 a Crie uma cópia de segurança do arquivo science. txt copiando ela para um arquivo chamado science. bak http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

2. 2 Movendo arquivos mv (move) mv arquivo 1 arquivo 2 move (ou renomeia) arquivo 1 para arquivo 2 Para mover um arquivo de um lugar para outro, use o comando mv. Este comando move os arquivos ao invés de copiá-los, terminando com apenas um arquivo e não dois. Também pode ser usado para renomear arquivos, movendo o arquivo para o mesmo diretório, dando um nome diferente Vamos mover o arquivo science. bak para o seu diretório backup. Primeiro, mude para o diretório unixtutorial. Estando dentro do unixtutorial digite: % mv science. bak backup/. Digite ls backup para ver se funcionou. http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

2. 3 Apagando arquivos e diretórios rm (remove), rmdir (remove diretório) Para remover (deletar) um arquivo, use o comando rm. Como exemplo vamos criar uma cópia do science. txt, arquivá-lo e apagá-lo. Dentro do diretório unixtutorial, digite: % cp science. txt temparquivo. txt % ls (Para verificar se criou o arquivo) % rm temparquivo. txt % ls (para verificar se apagou o arquivo) Você pode usar o comando rmdir para remover um diretório (se o diretório estiver vazio). Tente remover o diretório backup. % rmdir backup UNIX não permite remover um diretório que não esteja vazio! Exercício: Crie um diretório teste usando mkdir e remova com rmdir. http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

2. 4 Mostrando na tela o conteúdo do arquivo clear (clear screen) Antes de começar a próxima seção limpe o terminal com clear. % clear cat (concatenate) Cat pode ser usado para mostrar o conteúdo do arquivo na tela. % cat science. txt less escreve o conteúdo do arquivo na tela, uma página de cada vez. % less science. txt Pressione a [barra de espaço] para ver a próxima página, digite [q] se você quiser sair do modo leitura. http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

2. 4 Mostrando na tela o conteúdo do arquivo head O comando head escreve as primeiras dez linhas do arquivo na tela. Primeiro limpe a tela com clear e digite: % head science. txt Depois digite: % head -5 science. txt Qual a diferença? tail O comando tail digita as últimas dez linhas do arquivo na tela. http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

2. 5 Buscando o conteúdo de um arquivo Busca simples usando less Usando less, você pode pesquisar o arquivo texto por uma palavra chave. Por exemplo, procura pela palavra science no arquivo science. txt. % less science. txt agora, ainda em less (isto é, não pressione [q], digite uma barra invertida seguida da palavra science: /science Digite [n] para procurar pela próxima vez que a palavra aparece. grep é um dos vários utilitários do UNIX. Procura os arquivos por palavras ou padrões. Digite: % grep science. txt grep imprime cada linha contendo a palavra science http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

2. 5 Buscando o conteúdo de um arquivo Digite: % grep Science science. txt O comando grep é case sensitive; faz distinção entre Science e science. Para ignorar a distinção entre maiúscula e minúscula use a opção -i % grep -i science. txt Para buscar por uma frase ou padrão, é preciso incluir a frase entre aspas simples. Por exemplo, para procurar por 'spinning top', digite: % grep -i 'spinning top' science. txt Algumas opções do grep são: -v mostra as linhas que NÃO tem a palavra -n precede cada linha que tem a palavra com o número da linha -c imprime apenas o número total das linhas É possível usar mais do que uma opção por vez. Por exemplo, o número de linhas sem as palavras science ou Science: % grep -ivc science. txt http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

2. 5 Buscando o conteúdo de um arquivo wc (word count) % wc -w science. txt : Conta o número de palavras do arquivo % wc -l science. txt : Conta o número de linhas do arquivo Sumário cp arquivo 1 arquivo 2 copia arquivo 1 e chama arquivo 2 mv arquivo 1 arquivo 2 move ou renomeia arquivo 1 para arquivo 2 rm arquivo remove um arquivo rmdir diretório remove um diretório cat arquivo mostra um arquivo more arquivo mostra um arquivo uma página por vez head arquivo mostra as primeiras linhas de um arquivo tail arquivo mostra as últimas linhas de um arquivo grep 'keyword' arquivo busca um arquivo por palavras-chave wc arquivo conta o número de linhas/palavras/caracteres em um arquivo http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

3. Redirecionando A maioria dos processos iniciados pelos comandos UNIX escrevem para a tela (output) e pegam os comandos do teclado (input). 3. 1 Redirecionando a saída de dados Utilizamos o símbolo > para redirecionar o output. Por exemplo, para criar um arquivo chamado list 1 que contém uma lista de frutas, digite: % cat > list 1 Agora digite alguma lista de coisas. Pressione [Return] depois de cada item: lisina arginina glicina alanina ^D (Control D parar) O comando cat lê a entrada do teclado e > redireciona a saída para o arquivo list 1. Para ler o conteúdo do arquivo digite: % cat list 1 http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

Exercício 3 a • Crie um arquivo chamado list 2 contendo as palavras tirosina, valina e serina. • Leia o arquivo. • Agora adicione outros amino ácidos ao arquivo list 1. A forma >> adiciona as saídas no arquivo. Digitando: % cat >> list 1 E escrevendo nomes de mais amino ácidos histidina leucina triptofano ^D (Control D to stop) Você deve ter agora dois arquivos: list 1 e list 2. Juntar esses dois arquivos em um com cat: % cat list 1 list 2 > biglist O que estamos fazendo é lendo os arquivos list 1 e list 2 e colocando o texto desses dois arquivos no terceiro arquivo biglist http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

3. 2 Redirecionando a entrada de dados Usamos o símbolo < para redirecionar a entrada de um comando. O comando sort ordena uma lista em ordem numérica ou alfabética. Digite: % sort E escreva o nome de algumas proteínas, pressionando [Return] depois de cada um. hexoquinase tripsina calmodulina ^D (control d parar) A saída será: calmodulina hexoquinase tripsina Usando < você pode direcionar a entrada a partir de um arquivo. Por exemplo: % sort < biglist E a lista biglist será ordenada e colocada na tela. % sort < biglist > slist Vai ordenar a lista biglist e escrevê-la no arquivo slist. http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

3. 3 Pipes Para ver quem está no sistema digite: % who Para ter uma lista ordenada de quem está no sistema: % who > names. txt % sort < names. txt Isso pode ser feito em uma só linha de comando utilizando o pipe. O símbolo para este comando é a barra vertical | Por exemplo: % who | sort vai dar o mesmo resultado que os dois comandos anteriores. http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

Sumário comando > arquivo redireciona saída para um arquivo comando >> arquivo acrescenta saída a um arquivo comando < arquivo redereciona entrada para um arquivo comando 1 | comando 2 pipe a saída do comando 1 para a entrada do comando 2 cat arquivo 1 arquivo 2 > arquivo 0 junta arquivo 1 e arquivo 2 no arquivo 0 sort ordena os dados who lista usuários que estão logados http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

4. 1 Wildcards: caracteres * e ? O caracter * é chamado wildcard, e pode significar nenhum ou mais que um caracter em um arquivo (ou diretório). Por exemplo, no seu diretório unixtutorial, digite: % ls list* Lista todos os arquivos que começam com list % ls *list Lista todos os arquivos que terminam com list O caracter ? significa exatamente UM caracter Assim ls ? aso vai encontrar arquivos como vaso, caso, mas não atraso. 4. 2 Convenções em nomes de Arquivos Caracteres com significados especiais como / * & % , devem ser evitados quando nomeamos arquivos e diretórios. Também deve-se evitar os espaços em branco entre nomes. http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

4. 3 Help Manuais on-line % man wc Alternativa: % whatis wc : dá uma informação de uma linha sobre o comando, mas não diz nada sobre opções. Apropos Quando você não tem certeza sobre o comando: % apropos keyword dá para você os comandos com palavra chave. Ex. % apropos copy http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

Sumário * qualquer número de caracteres ? UM caracter man comando lê o manual on line do comando whatis comando descrição breve do comando apropos palavra chave encontra os comandos com a palavra chave http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

5. Permissões de Acesso • O acesso aos arquivos depende das permissões. • Existem três tipos de permissões: • read, r • write, w • execute, x • Existem três classes de acesso • owner, o • group, g • other, o • (all, a) http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

% ls -l (l long listing!) Com esse comando obtem-se muitos detalhes sobre o conteúdo do diretório. -rwxrw-r-- 1 paula bioinfo 2450 Sept 29 11: 52 arquivo 1 permissões dono e grupo tamanho, data e horário nome do arquivo Se o d está presente ele estará sempre no lado esquerdo da lista e significa que é um diretório. Caso não for diretório, começará com -. Os outros 9 símbolos indicam as permissões, e são lidos em 3 grupos de 3. • permissões de arquivo para o dono do arquivo (ou diretório), • permissões ao grupo de pessoas ao qual o arquivo pertence (bioinfo), • permissões para todos os outros. Exemplo: -rwxrwxrwx: é um arquivo que todo mundo pode ler, escrever, executar (e apagar) -rw-------: um arquivo que apenas o dono pode ler e escrever http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

5. 1 Mudando os direitos de acesso chmod (changing mode) Só o dono do arquivo pode usar chmod para mudar as permissões de um arquivo. Significado As opções de chmod são: Símbolo u usuário (user) g grupo (group) o outros (other) a todos (all) r ler (read) w escrever (e apaga) (write) x executa (e acessa diretório) + adiciona permissão - tira permissão Exemplo, para remover as permissões de ler e escrever do arquivo biglist para grupo e outros: % chmod go-rwx biglist Para dar permissão de leitura para o arquivo biglist para todos % chmod a+rw biglist http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

5. 2 Processos e Jobs Cada processo é identificado por um único PID (process identifier). % ps Para rodar um processo em background (deixando o prompt livre), digite & no final da linha de comando. Por exemplo, o comando sleep espera alguns segundos antes de continuar. Digitando: % sleep 10 Faz esperar 10 segundos antes do prompt retornar. Tem que ficar esperando. Mas se digitar % sleep 10 & (para rodar em background) O prompt retorna na mesma hora permitindo que você rode outro programa. Se você esqueceu de colocar o símbolo &, pode levar o programa a background digitando ^Z (ctrl-Z) e: % bg http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

5. 3 Matando um processo kill ps (process status) Processos podem ser terminados usando o PID % sleep 100 & % ps PID TT S TIME COMANDO 20077 pts/5 S 0: 05 sleep 100 21563 pts/5 T 0: 00 netscape 21873 pts/5 S 0: 25 nedit % kill 20077 Se um processo não é terminado, use a opção -9 % kill -9 20077 http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

6. Editores de texto 1. pico. . . amigável e orientado pelo menu 2. vi. . . editor poderoso mas não muito fácil de usar 3. emacs Para abrir e editar um arquivo: % pico filename % vi filename %emacs filename Mais sobre UNIX em http: //www. cbi. cnptia. embrapa. br/ Services Manuals UNIX Intro http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX

Chime é um programa para mostrar estruturas moleculares em três dimensões. Exercício Fazer o tutorial do Chime: http: //www. umass. edu/microbio/chimehow/chimehow. htm Fazer os itens do OPTIONAL ADVANCED FEATURES http: //www. cbi. cnpia. embrapa. br Paula Kuser Falcão UNIX
- Slides: 32