Você está na página 1de 25

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

leandro@utfpr.edu.br
http://lapti.ct.utfpr.edu.br

Você também pode gostar