Computação 2
Sistema Operacional Linux
Introdução a comandos do shell
2023
Histórico
Linux hoje e seu desenvolvimento
●
O desenvolvimento do Linux é centralizado pelo
Linus Torvald e por alguns “braços direitos”, dentre
eles, o famoso Alan Cox.
●
Qualquer pessoa no mundo pode colaborar com o
kernel, que está sob a GPL
●
GPL (Gnu Public License) é a licensa criada por
Stallman, que permite a distribuição do código e do
programa livremente, e permite a alteração, sob
algumas condições (a principal, é manter o copyleft
original)
Mas o que é Linux?
Kernel, utilitários, GNU, etc
●
“Somente” o kernel é realmente o Linux. Núcleo do sistema é
responsável pelo funcionamento dos dispositivos e
funcionamento do computador (SO)
●
Utilitários (shell, editores, programas) são a parte visível ao
usuário. Entretanto, são “emprestados” do projeto GNU, ou
são comerciais
●
GNU (Gnu is Not Unix): Projeto fundado por Richard
Stallman, que propunha a criação de um sistema completo
(kernel, utilitários, etc), sob a GPL, e independente de
qualquer tipo de UNIX
Sistemas de arquivos
Discos, arquivos e diretórios
●
1 byte = 8 bits. 1 bit assume valor 0 ou 1
●
Discos magnéticos: divididos em trilhas (circulares),
e cada trilha é dividida em setores. Um setor, em
geral, tem 512 bytes
●
Há necessidade de organizar esses dados de forma
que possamos entender e utilizar com facilidade
●
A maioria dos sistemas utilizam o conceito de
arquivos e diretórios
Sistemas de arquivos
Discos, arquivos e diretórios
●
Arquivo: um conjunto de setores no disco, associado
a um nome (uma cadeia ASCII)
– O arquivo nada mais é que uma seqüência de bits (0 e
1), mas que podem assumir diversos tipos (arquivo
binário, arquivo texto, etc)
●
Cada sistema permite uma maneira de organizar os
discos e arquivos. O UNIX e o Linux utilizam a
estrutura de árvores
Sistemas de arquivos
Discos, arquivos e diretórios
●
Para o agrupamento de arquivos, existe o conceito de
diretório. Um diretório não armazena dados em si, mas
agrupa arquivos
●
Árvore: o sistema contém apenas um diretório raiz (root),
e todos outros estão “dentro” da raiz
●
Um diretório pode conter vários diretórios
●
Os dispositivos são associados a arquivos especiais,
que se encontram em /dev
●
Qualquer partição ou dispositivo de I/O é associado a
um arquivo para ser utilizado
Conceitos de usuário e senha
Sistema multi-usuário e proteção
●
O UNIX e o Linux incorporam o conceito de
usuário. Várias pessoas podem utilizar o
computador, e cada uma deve ter acesso
restrito aos recursos
●
Cada usuário tem um ID no sistema, associado
a um username
●
Para acessar a máquina, o usuário possui uma
senha. Proteção individual, e do sistema todo
Computadores em rede
Hostname, conexão remota, etc
●
Com a popularidade da Internet, quase todos os
computadores estão em rede
●
Pode-se acessar um outro computador, através
de programas apropriados
●
Cada máquina em uma rede contém um nome.
Normalmente, um nome único associado àquela
rede, e o hostname, compõe-se por nome e
domínio da rede
Comandos e Programas Úteis
●
Antes de Comecar:
– Linux é Case Sensitive
– A tecla Tab é muito util!
– O Atalho “Ctrl + C” não copia e nem o “Ctrl +
v” cola!
– Sua pasta principal é a /home/<login>
ls
●
Lista arquivos/pastas de um diretório
●
Principais opções (argumentos):
-a: mostra arquivos e pastas ocultas
-l: mostrar detalhes dos arquivos e pastas
• Exemplo
• ls –la
• Esse comando vai listar as arquivos/pastas do diretório atual do
terminal
cd
●
Comando para se dirigir para uma pasta
●
Exemplo:
– cd /home/arss/public_html
– Com esse comando o terminal vai para a pasta
desejada.
mkdir
●
“Make dir”
●
Cria um diretório ou uma cadeia de diretórios
●
Principais opções (argumentos):
-p : Cria cadeia de diretórios se necessário
• Exemplo:
• mkdir –p /home/arss/uma/aula/sobre/linux
• Esse comando vai criar essa pasta
rm
●
“remove”
●
Remove um arquivo ou pasta
●
Principais opções (argumentos):
-r : recursivamente, remova todos os arquivos e pastas
• Exemplo
• rm –r /home/arss/uma/
• Esse comando vai remover a pasta “uma” e todos os arquivos
e pastas que estiverem dentro dela;
cp
●
“Copy”
●
Copia uma pasta ou um arquivo para um determinado
destino
●
Sintaxe: cd [args] <origem> <destino>
●
Principais opções (argumentos):
-r : recursivamente, copia todos os arquivos e pastas para o
destino
• Exemplo
• cp /home/arss/arquivo.zip /home/arss/Desktop/
• Move o arquivo “arquivo.zip” para o Desktop
mv
●
“Move”
●
Move um arquivo ou pasta para um destino
●
Funciona do mesmo jeito que o “cp”
●
Mas também é usado para renomear arquivos.
●
Exemplo:
mv nome.zip nomeNovo.zip
Isso renomea o arquivo para o “nomeNovo.zip”
chmod
●
O linux tem um sistema de permissões
restrito por default
●
Todos os arquivos tem um dono(o “owner”)
●
Por default apenas o dono tem permissão
para alterar arquivos
●
O “chmod” pode alterar essas permissões
chmod
●
Sintaxe: chmod [args] <alteração na permissão> <arquivo>
●
Argumentos
– São 3 números:
●
Permissão do dono
●
Permissão do grupo do dono
●
Permissão para todos os usuários
– Quanto maior o número mais poder o usuário vai ter! O maio número é
7;
– Exemplo
●
Chmod 777 pasta
●
Todos os usuários poderão fazer qualquer coisa nessa pasta
vim
●
Um Editor de texto bem simples
●
Para poder escrever/alterar um texto é só apertar “insert”
●
Para executar algum comando do vim é só apertar “esc”
digitar o comando
●
Comandos uteis:
– :q - sair do vim
– :w - Salvar as alterações do arquivo
– Usar a ! (exclamação) força a execução de algum comando
vim
●
Usando o vim:
– Sintaxe:
●
vim <nome do arquivo>
●
Se o arquivo não existir, o vim criará um se as
alterações no arquivo forem salvas
GCC (GNU Compiler Collection)
●
Uma coleção de compiladores
●
C/C++, Java, Ada, Pascal, Fortran
●
Sintaxe:
– gcc –o <arquivoExecutavel> <arquivoFonte>
– Essa é a forma mais simples de se compilar um
arquivo
– E para executar um arquivo no linux é só digitar:
●
./<arquivoExecutavel>
Obtendo ajuda no Linux
●
Duas formas básicas:
– --help : a maioria dos programas ao receber
esse argumento mostram como usar o
programa.
– man <nomePrograma> : mostra o manual do
programa, também é muito útil.
Alguns comandos do shell
- ls (lista os arquivos e subdiretórios do diretório atual)
- pwd (caminho atual)
- mkdir (criar um subdiretório)
- cd (trocar de diretório)
- echo “olá” > prova.txt (criar um arquivo de texto)
- cp, mv (copiar, mover e renomear arquivos)
- rm (apagar arquivos)
- cat (ler o conteúdo de um ou vários arquivos de entrada)
- wc (conta linhas, palavras e caracteres dos arquivos de entrada)
Outros comandos de interesse
head -5 (escreve as primeiras 5 linhas do texto)
tail -11 (escreve as últimas 11 linhas do texto)
head -12 | tail -1 (escreve a linha 12)
head -N (escreve as primeiras N linhas do texto)
tail -N (escreve as últimas N linhas do texto)
head -N | tail -1 (escreve a N linha)
Comandos mais interessantes para
processamento de texto
cat : concatena diversos arquivos.
more : permite a paginação.
head : seleciona as "n" linhas iniciais.
tail : seleciona as "n" linhas finais.
wc : conta o número de linhas, palavras e bytes.
sort : ordena as linhas segundo critérios ajustáveis.
uniq : elimina linhas repetidas, deixando uma soa linha.
sed : para operações complexas de strings (trocas, etc).
grep : selecciona linhas contendo uma determinada expressão.
cut : selecciona colunas do fluxo de entrada.
rev : reverte a ordem dos caracteres de cada linha.
Obrigado
[email protected]
http://lapti.ct.utfpr.edu.br