Técnicas para desenvolvimento e aceleração de códigos científicos
|
Nesta atividade, aprenderemos a utilizar a infraestrutura do laboratório.
O terminal nada mais é que um interpretador de comandos. (É como 'Processador de comandos' (janela DOS) do Windows) Ele pode ser do tipo sh, bash, csh, ksh, etc. O padrão é sh ou bash. A Figura abaixo mostra uma janela com um terminal bash.
Bash e Sh são linguagens de script, isto é, podemos criar uma lista de comandos sequenciais, funções, etc, para realizar diversas tarefas. Depois, basta salvá-los como scripts, e executá-los.
OBS: letras maiúsculas e minúsculas são consideradas diferentes!
<nome_comando> <-op1> <-op2> <-opN> <nome_comando> <--help> OU <-h> man <nome_comando>
Editores são pequenos programas usados para edição de arquivos texto e códigos fonte. (Como o Notepad, do Windows e o antigo Edit do DOS). A figura abaixo mostra um exemplo de editor.
Eles existem em versões linha de comando e gráficas:
Compiladores são um conjunto de ferramentas que transformam uma linguagem fonte em uma linguagem de máquina destino.
Seu principal uso é para criar executáveis e bibliotecas.
Como compilar um programa C/C++, usando o gcc?
gcc -g -o HelloWorld helloworld.c
Opções mais utilizadas:
-g : Inclui os símbolos de debug dentro do executável
-o : Nomeia o executável que será criado (o padrão é criar um arquivo chamado a.out)
Rodando programas:
1) Ir até o diretório onde ele está localizado
cd dir_do_programa
2) Chamar o executável
./executavel <arg1> <...> <argN>
É baseado em árvore com uma única raiz (o diretório raiz é o "/")
Todos os outros diretórios estão abaixo do raiz, inclusive outros sistemas de arquivos, outros discos e mapeamentos de rede.
OBS:
Todos os diretórios possuem os subdiretórios:
. O próprio diretório
.. Seu diretório pai
Exemplo:
/ ├── bin ├── boot ├── cdrom ├── dados ├── dev ├── etc ├── home │ ├── usuario1 │ └── usuario2 ├── lib ├── lib32 ├── lib64 ├── lost+found ├── media ├── mnt ├── opt ├── proc ├── root ├── run ├── sbin ├── srv ├── sys ├── tmp ├── usr └── var
pwd (Print Working Directory)
Mostra o diretório corrente (atual)
Sintaxe:
pwd
cd (Change directory)
Muda o diretório atual para o novo diretório (como abrir uma pasta no Windows).
Sintaxe:
cd <novo_diretório>
ls (List)
Lista o conteúdo (nome dos arquivos) de um diretório.
Sintaxe:
ls <arquivo_ou_diretório>
Opções mais utilizadas:
-l : lista mais informações além do nome, como data criação, permissões, dono, tamanho, etc
-a : lista também os arquivos e diretórios ocultos
Exemplos:
ls -la /usr/
mkdir (Make directory)
Cria um novo diretório (ou pasta).
Sintaxe:
mkdir <novo_diretório>
Opções mais utilizadas:
-p : cria também os diretórios (ou pastas) hierarquicamente anteriores, caso nao existam.
Exemplos:
mkdir dir1 mkdir -p /dir1/dir2/dir3
rmdir (Remove directory)
Apaga um diretório necessariamente vazio.
Sintaxe:
rmdir
cp (Copy)
Copia arquivos para um outro diretório ou criar uma cópia.
Sintaxe:
cp <arquivo1> <copia_arquivo1> cp <arquivo1> <arquivo2> <...> <arquivoN> <diretório_destino>
mv (Move)
Move arquivos para um outro diretório.
Pode ser usado também para renomear arquivos/diretórios
Sintaxe:
mv <arquivo1> <arquivo1_novo_nome> mv <arquivo1> <arquivo2> <...> <arquivoN> <diretório_destino>
rm (Remove)
Remove arquivos.
Sintaxe:
rm <arquivo1> <arquivo2> <...> <arquivoN>
Opções mais utilizadas:
-i : Pede confirmação antes de remover cada arquivo.
cat (Concatenate)
Concatena arquivos, muito utilizado para mostrar o conteúdo de um arquivo diretamente no terminal.
Sintaxe:
cat <nome_do_arquivo>
#include <stdio.h> int main () { printf ("Hello world!!! \n"); }