AGENDA 0 Por que Unix/Linux? 0 Estrutura do sistema Unix/Linux 0 O Shell 0 Nomes de arquivos especiais 0 Comandos 0 Estrutura dos comandos 0 Comados básicos 0 Arquivos padrão 0 Combinação de comandos 0 Permissões dos arquivos 0 Compilação de programas 2 POR QUE UNIX/LINUX PARA HPC? Geralmente as aplicações Unix/Linux possuem código fonte disponível o que permite adaptações, melhoramentos, otimizações. Muitas das aplicações científicas já estão escritas para esses sistemas. Alta compatibilidade entre as ferramentas desses sistemas. São seguros. São sistemas estáveis. São sistemas escaláveis. 3 ESTRUTURA DO SISTEMA 4 O SHELL 0 O shell é o interpretador da linha de comandos. É a interface entre o usuário o kernel. 0 Os shells mais comuns são os seguintes 0 Bourne Again Shell (/bin/bash) 0 C Shell (/bin/csh) 0 Turbo C Shell (/bin/tcsh) 0 Korn Shell (/bin/ksh) 5 ALGUNS NOMES DE ARQUIVOS ESPECIAIS 0 Alguns nomes de arquivos são especiais: 0 / Diretório raiz 0 . Diretório atual 0 .. Diretório pai (diretório anterior) 0 ~ Diretório home 0 Exemplos: mesmo que a 0 ../jane/x volta um nível, depois entra no diretório jane e em seguida no diretório x 0 ./a 6 ARQUIVOS ESPECIAIS 0 /home – Os diretórios dos usuários são armazenados no home. 0 /bin, /usr/bin – Comandos de sistema 0 /sbin, /usr/sbin – Comandos usados pelos administradores do sistema 0 /etc – Contém arquivos de configuração 0 /var - logs, diretórios de spool etc. 0 /dev – arquivos de dispositivos. 0 /proc – arquivos especiais de sistema 7 ESTRUTURA DOS COMANDOS EM LINUX 0 Para executar um comando, digite seu nome e os argumentos na linha de comando. ls -l /etc Comando Opções (flags) Argumentos 8 COMANDOS BÁSICOS DO LINUX 0 cd 0 Mudança de Diretório 0 Ex: cd / 0 Ir para o diretório raiz 0 ls 0 Listar os arquivos e diretório do local corrente 0 Ex: ls 0 Variações 0 ls –a 0 ls –l 9 COMANDOS BÁSICOS DO LINUX 0 pwd 0 Mostra a localização atual 0 Ex: pwd 0 mkdir 0 Cria um Diretório 0 Ex: mkdir aula11 10 COMANDOS BÁSICOS DO LINUX 0 cat 0 Exibe o Conteúdo de um Arquivo 0 Ex: cat aula.txt 0 Ex: cat –n aula.txt 0 cp 0 Copia de arquivos 0 Ex: cp aula.txt aula2.txt 0 Ex: cp aula.txt /tmp 11 COMANDOS BÁSICOS DO LINUX 0 date 0 Exibe e altera a data e hora do computador 0 Ex: date 0 Ex: date +%d/%m/%Y 0 mv 0 Mover ou renomear arquivos 0 Ex: mv aula.txt aula3.txt 0 Ex: mv aula3.txt /aula/aula2 12 COMANDOS BÁSICOS DO LINUX 0 clear 0 Limpar a tela 0 Ex: clear 0 df 0 Saber a quantidade de disco ocupada 0 Ex: df –H 0 free 0 Verificar a utilização da memória RAM 0 Ex: free -m 13 COMANDOS BÁSICOS DO LINUX 0 rm ou rmdir 0 apagar arquivos e diretórios 0 Ex: rm aula2.txt 0 Ex: rm –d aula2 0 man 0 Manual on-line dos comando do linux 0 Ex: man date 0 Ex: man cp 14 ARQUIVOS PADRÃO 0 O conceito UNIX de arquivos padrão 0 standard input (stdin) onde um comando obtém seus dados de entrada. 0 standard output (stdout) onde um comando escreve seu resultado. 0 standard error (stderr) onde um comando escreve os erros da sua execução. 15 REDIRECIONAMENTO DE SAÍDAS 0 É possível redirecionar as saídas de programas com >. 0 Exemplo: ao invés de mostrar os resultados na tela, pode-se gravar o resultado em um arquivo. 0 ls –la > listaArquivos 0 Cuidado, com o >, se o arquivo existir o conteúdo será sobrescrito. Para evitar o problema, use >> (append). 16 REDIRECIONAMENTO DE ENTRADAS 0 É possível redirecionar as entradas de programas com <. 0 Exemplo: suponha que queiramos contar as linhas de um arquivo. 0 wc < arquivo 17 REDIRECIONAMENTO DE SAÍDAS DE ERRO 0 As saídas de erro são redirecionadas com 2>. 0 Exemplo: suponha que queiramos contar as linhas de um arquivo. 0 ls –l arquivo 2> erro.log 18 COMBINAÇÃO DE COMANDOS 0 Os comandos podem ser combinados através do pipe. 0 O pipe ‘|’ permite que a saída de um comando seja a entrada de outro. 0 Exemplo: 0 ls –la | less 0 Nesse exemplo, a saída do comando ls serve como entrada para o comando less. 19 PERMISSÕES DE ARQUIVOS 0 Todo arquivo 0 É de propriedade de alguém 0 Pertence a um grupo 0 Tem algumas permissões de acesso para o usuário, para o grupo e para os outros. 20 PERMISSÕES DE ARQUIVOS 0 Todo usuário … 0 Tem um uid (id de usuário), gid (id de grupo) e uma lista de grupos dos quais é membro: 0 O uid é quem você é (name and number) 0 O gid é seu grupo inicial 0 A lista de grupos são os grupos que você pertence. 21 PERMISSÕES DE ARQUIVOS 0 Linux/Unix proveem três tipos de permissão: 0 Read – permissão para ler o arquivo/diretório 0 Write – permissão para escrever no arquivo/diretório 0 EXecute – permissão para executar o arquivo (script ou programa). 22 PERMISSÕES DE ARQUIVOS 0 Ao usar o comando (ls -l) será mostrada uma lista de arquivos e suas permissões: -rwxrwxr-x -rw-rw-r--rw-rw-r-drwxrwxr-x 1 1 1 7 gradvohl gradvohl gradvohl gradvohl gradvohl gradvohl gradvohl gradvohl 5224 221 1514 1024 Dec Dec Dec Dec 30 30 30 31 03:22 03:59 03:59 14:52 hello hello.c hello.s posixu Grupo Permissões Dono 23 PERMISSÕES DE ARQUIVOS -rwxrwxrwx Permissões dos outros Permissões do grupo Permissões do usuário flag de Diretório (d=diretório; l=link) 24 ALTERAR PERMISSÕES DE ARQUIVOS 0 Use o comando chmod para mudar as permissões dos arquivos. 0 Exemplos: 0 chmod u+x script.sh 0 chmod o-w arq.c 0 chmod a-x arquivo.q 25 COMPILAÇÃO DE PROGRAMAS 0 Em Linux/Unix , a compilação de programas é feita da seguintes forma: 0 Programaas em C: cc fonte.c –o fonte.o gcc fonte.c –o fonte.o 0 Programas em Fortran gfortran fonte.f –o fonte.o 26