Sistemas Operacionais

Tipos de Sistemas Operacionais

  • Sistemas Monolíticos

    Kernel Único, código Compartilhado

  • Sistemas Modulares

    Kernel Modular, Drivers Separados

    um Kernel para interface de entrada e saída, um para conexão de rede etc...

  • Sistemas Distribuídos

    Recursos compartilhados em múltiplos computadores

    Sistemas distribuídos que rodam sobre uma interface de rede, como AWS, que compartilha recurso por meio da internet

kernel - Core ( Centro do Sistema Operacional)

Programa responsável por controlar todas as partes importantes de um SO

  • Interface de entrada e Saída
  • Segurança
  • Decidir qual processo irá executar

Estrutura Básica

  • 1 - kernel

    Núcleo do sistema, Gerencia Recursos.

  • 2 - Chamadas de Sistema

    Interface entre aplicações e kernel.

  • 3 - Gerenciamento de Processos

    Criação, término, escalonamento.

  • 4 - Gerenciamento de Memória

    Alicação, organização, proteção.

Conceitos Fundamentais

  • Processos

    Programas em execução.

  • Threads

    Unidades de execução dentro de um processo.

  • Sincronização

    Coordenação entre processos e Threads.

  • Comunicação

    Troca de dados entre processos.

Observação - interface de acesso ao sistema operaciona

O programa que serve para a interação dos usuários na realidade não faz parte do sistema operacional em si, embora use o SO para realizar seu trabalho. Na realidade, o que usuário utiliza diretamente é uma interface de acesso ao sistema operacional. Essa interface pode ser baseada em texto (shell, ou interpretador de comandos), ou baseada em interface gráfica com ícones (GUI - Graphical User Interface).

Programas podem ser executados em modo usuário ou kernel

  • Modo usuário

    Os softwares têm acesso limitado ao hardware e normalmente os programas e aplicativos são utilizados diretamente pelos usuários.

  • Modo kernel

    O SO é o único programa executado em modo núcleo, ou kernel. Significa que o SO possui o acesso completo ao hardware e consegue executar qualquer instrução possível.

Máquina de níveis ou máquina de camadas

Visões de usuário, que representam conjuntos de serviços ou funções, a abstração do hardware, ou seja, qualquer camada acima do hardware, pode ser chamada de máquina virtual

Máquina de níveis

  • Aplicativos
  • Utilitários
  • Sistema Operacional
  • Linguagem de Máquina
  • Microprogramação
  • Circuitos Eletrônicos

Componentes básicos de um sistema computacional -SC

  • Hardware

    Fornece recursos básicos de computação CPU, memória, dispositivos de E/S.

  • Aplicativos

    Definem as maneiras como os recursos são usados, para resolver os problemas de computação dos usuários, como compiladores, banco de dados, jogos de videogames, programas comerciais e outros.

  • Usuários

    São as pessoas, máquinas ou outros computadores.

  • Sistema operacional

    Controla e coordena o uso do hardware entre os vários programas de aplicação, para os diversos usuários.

Lista de inovações referentes a computadores e sistemas operacionais da quarta geração

  • Surgimento dos computadores pessoais
  • Integração em larga escala (LSI e VLSI) - Miniaturização e barateamento dos componentes eletrônicos
  • Intel produz seu primeiro microprocessador - Intel 4004
  • Intel 8080 - Primeiro microcomputador
  • 1976: Apple II (8 bits)
  • Surgimento da Microsoft
  • Redes distribuídas
  • Protocolos de redes
  • Redes locais
  • SO intimamente relacionados com o software de rede
  • Surgimento da linguagem Pascal e C
  • Surgimento do IBM PC - Intel 8088 de 16 bits com DOS (Disk Operating System)
  • Sistemas multiusuários foram impulsionados
  • Protocolos da internet TCP/IP
  • Surgimento das estações de trabalho
  • 1982: Surgimento da Sun Microsystems e das primeiras estações RISC
  • Surgimento das interfaces gráficas
  • Avanços de hardware, software e telecomunicações
  • Processadores e dispositivos de E/S mais rápidos e menores
  • Integração em ultra larga escala (ULSI)
  • Internet: Problemas de gerência, segurança e desempenho
  • Arquitetura Cliente - Servidor
  • Software aberto (Open Source)
  • Demanda cada vez maior de processamento
  • Arquiteturas paralelas
  • Processamento distribuído
  • SO em celulares, tablets e outros

MS Windows x Unix

Principais Características do Windows

  • Interface Gráfica

    Facilidade de uso e Interação

  • Suporte a Multitarefa

    Executar vários programas simultaneamente

  • Compatibilidade

    Grande variedade de Software e Drivers

  • Segurança

    Recursos de proteção contra vírus e malware

Principais Características do Unix

  • Multitarefa

    Gerenciar vários processos simultaneamente

  • Multiusuários

    Permitir acesso a vários usuários

  • Portabilidade

    Funcionamento em várias plataformas

  • Segurança

    Recursos de segurança robustos

Principais Diferenças

  • Windows

    • Interface Gráfica Amigável
    • Foco em Compatibilidade e jogos
  • Unix

    • Interface de linha de comando
    • Foco em estabildade e segurança

Tipos de sistemas Operacionais

  • Monoprogramável

    Executa um único programa de cada vez

  • Multiprogramável

    Executa múltiplos programas simultaneamente

  • Multiprocessador

    Utiliza múltiplos processadores para executar tarefas

Sistemas monoprogramáveis/monotarefa

Executa apenas um programa de cada vez, sem compartilhamento de recursos.

O tempo de execução é dedicado exclusivamente a um programa

Utilizado em programas simples e antigos

Sistemas Multiprogramáveis/multitarefas

capacidade de executar vários programas simultaneamente

Os recursos são compartilhados entre os programas em execução

Gerenciamento de memória

A memória é dividida entre os programas

Gerenciamento de CPU

A CPU alterna entre os programas

Sistemas com múltiplos processadores

Utilizam múltiplos processadores para executar tarefas simultaneamente

Aumentam significamente o desempenho do sistema

processamento paralelo

Compartilhamento de recursos

aplicações complexas

Tipo

Monoprogramável

multiprogramável

Multiprocessador

Caracteristica

Simples e eficiente para sistemas pequenos

Compartilhamento de recursos e multitarefa

Múltiplos processadores para maior desempenho

Vantagem

Fácil de gerenciar

Utilização eficiente de recursos

Processamento paralelo e capacidade de executar aplicações complexas

Sistemas com Múltiplos Processadores

Escalabilidade

Aumenta a capacidade de processamento.

Disponibilidade

Se um processador falhar, outro pode assumir a carga de trabalho.

Balanceamento de carga

Distribui a carga de trabalho entre os processadores.

Em sistemas com múltiplos processadores, os processadores podem se comunicar de duas maneiras: fortemente acoplados e fracamente acoplados

Sistemas fortemente acoplados

Os processadores compartilham somente a memória principal e os periféricos são gerenciados por um único sistema operacional.

Sistemas fortemente acoplados ainda podem ser divididos em:

  • SMP - Symmetric Multiprocessors
  • Os processadores acessam a memória uniformemente ao longo do tempo.
  • Numa - Non-Uniform Memory Acess
  • Como existem conjuntos de processadores e memória principal, e um conjunto se conecta aos outros por meio de uma rede de interconexão, o tempo de acesso dos processadores à memória varia conforme a localização física.

Sistemas fracamente acoplados

Dois ou mais sistemas computacionais independentes (cada um possui o seu próprio sistema operacional e gerencia seus próprios recursos, como processador, memória e periféricos) estão conectados por linhas de comunicação.

Os sistemas com múltiplos processadores também podem ser chamados de sistemas avançados de processamento. Eles podem ser constituídos de computadores com vários processadores, processadores com vários núcleos e sistemas distribuídos. O SO deve estar adaptado para operar esses sistemas.

Sistemas de Grande Porte

Sistemas de Tempo Real

Definição e Aplicações

  • Tempo Crítico

    Responde a eventos dentro de um limite de tempo específico.

  • Aplicações

    Controladores industriais, sistemas de navegação, dispositivos médicos.

  • Segurança

    Falhas podem ter concequências graves e até fatais.

  • Exemplos

    sistemas de controle de tráfego aéreo, carros autônomos, robôs industriais.

Características e Serviços

  • Capacidade

    Alto desempenho e capacidade de armazenamento

    Gerenciam grandes capacidades de dados

  • Disponibilidade

    Operam continuamente com alta confiabilidade

    Minimização de interrupções e falhas

  • Escalabilidade

    Capacidade de expanção para atender demandas crescentes

    Adaptação a diferentes necessidades e tamanhos

Execução de tarefas em tempo compartilhado

  • Multiprogramação

    Múltiplas tarefas compartilham os recursos do sistema.

  • Escalonamento

    Alocação de tempo de CPU para cada tarefa.

  • Comunicação

    Mecanismos para troca de informações entre tarefas.

Alguns serviços oferecidos pelos sistemas operacionais de computadores de grande porte

  • Sistemas em lote

    O sistema em lote (batch) processa tarefas de rotina sem a presença interativa do usuário. Por exemplo: processamento de apólices de companhia de seguro; relatório de vendas de uma cadeia de lojas.

  • Sistemas de processamento de transações

    Os sistemas de processamento de transações administram grandes quantidades de pequenas requisições. Cada unidade de trabalho é pequena, mas o sistema precisa tratar centenas ou milhares delas por segundo.

    Por exemplo: processamento de verificações em um banco ou em reservas de passagens aéreas.

  • Sistemas de tempo compartilhado

    Os sistemas de tempo compartilhado permitem que múltiplos usuários remotos executem suas tarefas simultaneamente no computador. Por exemplo: realização de consultas a um banco de dados.

Os serviços de sistemas de tempo real são aqueles que possuem o tempo como parâmetro fundamental. Podemos citar, como exemplo, a linha de montagem de um carro. Esses sistemas podem ser de dois tipos:

  • Sistema de tempo real crítico

    Neste sistema, as ações precisam ocorrer em determinados instantes. Como exemplos, podemos citar processos industriais, de aviônica e militares.

  • Sistema de tempo real não crítico

    Neste tipo de sistema, o descumprimento de um prazo não causa dano permanente. Como exemplos, podemos citar sistema de áudio digital, multimídia, telefones digitais.

Os sistemas operacionais variam quanto aos tipos de licenças, ou seja, o conjunto de ações que o usuário do SO pode ou não fazer. Vamos conhecer a seguir alguns tipos:

  • Software Proprietário

    • Licenciado sob direitos legais exclusivos – copyright.
    • Usualmente o código-fonte total ou parcial não é disponibilizado para modificação por qualquer pessoa, apenas a fabricante possui o acesso.
  • Software livre (Free software)

    Software livre se refere à liberdade dos usuários executarem, copiarem, distribuírem, estudarem, modificarem e aperfeiçoarem o software.

    Por exemplo, a licença GNU da Free Software Foundation (FSF) possui as seguintes liberdades:

    • Liberdade nº 0: Executar o programa, para qualquer propósito.
    • Liberdade nº 1: Liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades. Acesso ao código-fonte é um pré-requisito para esta liberdade.
    • Liberdade nº 2: Liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo.
    • Liberdade nº 3: Liberdade de aperfeiçoar o programa e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie. Acesso ao código-fonte é um pré-requisito para esta liberdade.
  • Software de código aberto (Open source)

    O código-fonte é disponibilizado por meio de uma licença de código aberto para modificação ou melhoria por qualquer pessoa. O termo "código aberto" foi criado pela OSI (Open Source Initiative).

    O software de código aberto difere-se de um software livre por não respeitar as 4 liberdades definidas pela Free Software Foundation (FSF), compartilhadas também pelo projeto Debian em "Debian Free Software Guidelines (DFSG)". Vale ressaltar que qualquer licença de software livre é também uma licença de código aberto (Open Source), mas o contrário nem sempre é verdade.

    São exemplos de licenças de código aberto:

    • Apache License.
    • MIT License.
    • Mozilla Public License.
    • Common Development and Distribution License.
    • Eclipse Public License.

Componetes Principais do sistema operacional

  • Kernel

    Núcleo do sistema operacional

  • Gerenciador de arquivos

    Organiza e gerencia arquivos do sistema

  • Interface de usuário

    Permite a interação com o sistema operacional

  • Utilitários

    Ferramentas para gereniamento e manutenção do sistema

O Kernel: Definição e Funcionalidades

Parte central do sistema operacional, responsável por gerenciar o hardware e recursos.

  • Gerenciamento de processos

    Cria, executa e encerra processos

  • Gerenciamento de memória

    Aloca e dasaloca memória para processos

  • Gerenciamento de dispositivos

    Controla acesso a dispositivos de hardware

  • Gerenciamento de arquivos

    Controla acesso e organização de arquivos

System Calls: Conceito e importância

Interface entre processos de usuário e o kernel.

  • Processo de usuário

    Solicita serviços do kernel

  • Kernel

    Fornece serviços ao processo de usuário.

  • System Calls

    Meio de comunicação entre kernel e processos.

Tratamento de interrupções pelo kernel

O kernel responde a eventos inesperados, como interrupções de hardware

  • Evento

    Interrução de hardware, como precionar uma tecla.

  • Processamento

    O kernel interrompe a execução atual e processa a interrupção.

  • Retorno

    O kernel retorna a execução anterior

Gerência de memória pelo kernel

O kernel gerencia a alocação e o uso da memória RAM.

  • Alocação

    Aloca memória para processos.

  • Desalcação

    Libera memória quando processos terminam.

  • Gerenciamento de páginas

    Organiza a memória em páginas para acesso eficiente.

Suporte a rede pelo kernel

O kernel gerencia a comunicação de rede entre dispositivos.

  • Roteamento

    Encaminha pacotes de rede para dispositivos específicos.

  • Gerenciamento de interfaces

    Controla as intefaces de rede, como Ethernet e Wi-Fi.

  • Protocolos de Comunicação

    Implementa protocolos de comunicação, como TCP/IP.

O sistema operacional funciona com algumas particularidades quanto à execução das rotinas:

  • - Tarefas não sequenciais, ou seja, as rotinas são executadas concorrentemente.
  • - Sem ordem predefinida.
  • - Eventos assíncronos.
  • - Eventos relacionados ao hardware e eventos relacionados às tarefas internas do próprio SO.

Já o núcleo do SO deve atuar considerando essas particularidades, e para isso implementa funções como:

  • - Tratamento de interrupções e exceções.
  • - Criação e eliminação de processos e threads.
  • - Sincronização e comunicação entre processos e threads.
  • - Escalonamento e controle de processos e threads.
  • - Gerência de memória.
  • - Gerência do sistema de arquivos.
  • - Gerência dos dispositivos de E/S.
  • - Suporte a redes locais e distribuídas.
  • - Contabilização do uso do sistema.
  • - Auditoria e segurança do sistema.

A execução das rotinas no sistema operacional é controlada pelo mecanismo denominado system call ou chamada ao sistema, que é um mecanismo de proteção por software que garante a execução somente de rotinas previamente autorizadas.

System Calls

A system call é uma “porta de entrada” para o acesso ao núcleo do SO e aos seus serviços. Cada serviço possui uma system call associada, e cada SO possui seu próprio conjunto de chamadas, com nomes, parâmetros e formas de ativação específicas.

Em geral, para qualquer situação, o funcionamento da system call consiste:

  • - Na realização da chamada ao sistema pela aplicação que deseja executar rotina(s).
  • - No processamento da solicitação pelo kernel.
  • - No retorno, para a aplicação solicitante, de uma resposta, com um estado de conclusão, indicando se houve algum erro.

Um exemplo de conjunto de chamadas de sistema é o POSIX (Portable Operating System Interface for Unix), padrão internacional ISO/IEC/IEEE 9945 que foi uma tentativa de padronizar as system calls.

O objetivo inicial foi unificar as diversas versões existentes do sistema operacional UNIX, permitindo um aplicativo utilizando o padrão POSIX teoricamente poder ser executado em qualquer SO que possua suporte. É incorporado, atualmente, pela maioria dos sistemas operacionais modernos.

Já o conjunto de chamadas de sistemas Win32 é suportada desde o Windows 95. Cada nova versão do Windows traz novas chamadas que não existiam anteriormente, buscando não invalidar os programas existentes.

A API Win32 possui um grande número de chamadas para gerenciar aspectos da interface gráfica (como janelas, figuras geométricas, textos, fontes de caracteres, caixas de diálogos, menus etc.) e possui diferenças em relação ao POSIX. Veja algumas de suas características:

  • Desacoplamento de chamadas

    Uma característica é o desacoplamento das chamadas de biblioteca e das chamadas reais ao sistema, o que pode dificultar a identificação do que é uma chamada ao sistema, e do que é uma chamada de biblioteca no espaço do usuário.

  • Acesso aos serviços do SO

    A API Win32 também permite aos programadores acesso aos serviços do SO mesmo quando trabalhando em uma versão diferente com chamadas ao sistema modificadas. As chamadas Win32 chegam a milhares.

Modos de Acesso

Modo Kernel

O núcleo do sistema operacional, também conhecido como kernel, opera nesse modo. Ele tem acesso completo ao hardwaree aos recursos do sistema.

Modo Usuário

Aplicações e programas que você usa normalmente operam nesse modo. Eles tem acesso limitado, sendo impedidos de acessar diretamente o hardware para evitar erros ou acesso indevido.

Escalonamento de Processos e threds

Planejamento

O sistema operacional decide qual processo deve ser executado em determinad momento, distribuindo o tempo de processamento entre os processos.

Escalonamento

O sistema determina a ordem de execução dos processos, preiorizando processos importantes e garantindo que todos os procesos tenham oportunidade de executar.

Gerenciamento de Threds

O sistema gerencia a execução de threds dentro de um processo, permitindo que um processo execute váras tarefas simultaneamente.

Comunicação entre processos e sincronização

Mensagens

Processos podem se comunicar trocando mensagens, permitindo que eles compartilhem dados e coordenem suas ações.

Sincronização

O sistema fornece mecanismos para sincronizar o acesso a recursos compartilhados, evitando conflitos entre processos que acessam os mesmos dados.

Semáforos

Uma estrutura de dados que permite controlar o acesso a recursos compartilhados, garantindo que apenas um processo tenha acesso ao recurso por vez.

Mutex

Um mecanismo de exclusão mútua que permite que apenas um processo tenha acesso a um recurso compartilhado por vez, garantindo a integridade de dados.


Arquiteturas de Kernel

Arquitetura Monolítica

Vantagens

Simples de implementar e depurar, com alta performace para tarefas de baixo nível, como gerenciamento de memória.

Desvantagens

Menos segurança, pois falhas em um módulo podem afetar todo o sistema. Dificuldade para adicionar novos recursos.

Arquitetura em Camadas

Estrutura em camadas

Organiza o kernel em camadas, com cada camada responsável por um conjunto expecífico de funções.

Segurança aprimorada

Falhas em uma camada geralmente não impactam em outras camadas, melhorando a segurança.

Modularidade

Facilidade para adicionar novos recursos, pois cada camada pode ser modificada independentemente.

Arquitetura de Máquina Virtual

Virtualização

Permite que um sistema operacional rode em cima de outro sistema operacional, em uma camada de abstração.

Flexibilidade

Facilita a utilização de vários sistemas operacionais em um único hardware.

Isolamento

Os sistemas operacionais virtualizados são separados entre si, aumentando a segurança.

Arquitetura de Microkernel

Kernel mínimo

Oferece apenas os serviços essenciais, como gerenciamento de processos e comunicação entre processos.

Serviços como processos

Outros serviços, como drivers de dispositivos e gerenciamento de arquivos, são executados como processos separados.

]

Segurança Aprimorada

Falhas em um serviço não afetam o microkernel, proporcionando maior segurança.

Arquitetura Exokernel

Menos Abstração

O exokernel oferece menos abstração que o microkernel, expondo o hardware diretamente aos aplicativos.

Controle direto

Os aplicativos tem controle direto aos recursos do hardware, permitindo otimizações e melhor desempenho.

Segurança e desempenho

A segurança depende da confiabilidade dos aplicativos, que tem controle direto sobre o hardware.

Impacto no desempenho e na segurança

Arquitetura

Monolítica

Camadas

Máquina Virtual

Microkernel

Exokernel

Desempenho

Alta

Média

Baixa

Baixa

Alta

Segurança

Baixa

Média

Alta

Alta

Baixa

Linux

Estrutura de diretórios no Linux

Estrutura hierárquica de Diretórios

Raiz

O ponto de partida da estrutura, representado pelo caractere "/".

Todos os outros diretórios são organizados em relação a raiz.

Diretórios principais

Diretórios como "/bin", "/etc", "/home", "/usr". São ramificações da raiz, cada um com suas funções específicas.

Subdiretórios

Dentro dos diretórios principais, você encontra sobdiretórios, que podem conter arquivos ou outros subdiretórios, criando uma estrutura complexa mais organizada.

Diretórios Importantes

/home

Armazena os dados dos usuários, como arquivos, configurações e programas instalados, cada usuário possúi um diretório exclusivo dentro de "/home".

/bin

Contém os comandos essenciais para o sistema, como "ls", "cp", "rm", etc. Esses comandos são acessíveis por todos os usuários.

/etc

Armazena os arquivos de configuração do sistema, como configurações de rede, serviços e permissões. Alterações neste diretório exige cuidado.

/VAR

Armazenam arquivos que variam durante o uso do sistema, como logs, caches, arquivos temporários e bancos de dados.

Linux Comandos Básicos

cls : Limpa a tela

Para parar um programas temos as opções:

  • Ctrl+c
  • Ctrl+d
  • Shift+z

sudo: Para executar um comando em modo super usuário

sudo apt install python3: Instala o Python 3

ls -lah: Lista os arquivos, "l" com detalhes, "a" com arquivos ocultos e "h" com as permições.

pwd: Mostra o diretório atual.

vi "nome do arquivo": Abre o editor vi

para entrar no modo edição devemos apertar a

para sair Ctr+C depois Shift+:wq! "wq!" significa "escreve sai agora".

para visualizar o arquivo cat "nome do arquivo"

Alguns aplicativos são obtidos na forma de código-fonte aberto, implicando na necessidade de compilação do código. Os passos gerais para compilação de código-fonte são:

  • Realizar o download do arquivo-fonte (por exemplo, .tar.gz).
  • Descompactar o arquivo-fonte.
  • Acessar o diretório contendo os arquivos do código-fonte.

Por fim, deve-se executar os seguintes comandos:

./configure

make

make install

Comandos básicos para uso via terminal

• pwd → Mostra o diretório no qual o usuário está no momento.

• sudo "comando" → Permite que o usuário execute comandos como ‘root’, sem ter que usar a conta de ‘root’.

• su → Permite que o usuário entre no modo Super Usuário. Aconselha-se usar esse comando somente quando for necessário, não sendo aconselhado usar o modo super usuário para executar suas ações de rotina. Configure primeiramente usando o comando sudo passwd para poder usar o comando su. A linha de comandos, então, ficará da seguinte maneira:

root@teste-VirtualBox:/#

root: Usuário ‘root’

teste-VirtualBox: Nome da máquina

/#: Usuário que possui nível de acesso privilegiado a partir da raiz do sistema Depois que tiver realizado o procedimento que demandou o uso da conta ‘root’, volte para o usuário padrão digitando exit.

• cd [opções] "caminho" → Navega entre as pastas do sistema.

o cd .. ➔ Acessa um diretório de nível acima do atual.

o cd / ➔ Vai para o diretório raiz.

o cd ~ ➔ Vai para o seu diretório pessoal.

o cd – ➔ Volta para o diretório no qual o usuário se encontrava antes de mudar.

• ls → Lista arquivos e diretórios. A opção –a mostra arquivos ocultos e a opção –l mostra mais informações (detalhes). Exemplo: “ls” ou “ls –l” ou “ls –a” ou “ls –la”

• Símbolo ~ → Representa o diretório pessoal (home) do usuário, também chamado de diretório de login.

• Exemplos:

o ~teste → Caminho para a pasta pessoal do usuário ‘teste’

• cd ~teste

o Acessa a pasta pessoal do usuário ‘usuário’.

• ls ~teste/documentos

o Lista os arquivos na pasta ‘documentos’, contida na pasta pessoal do usuário.

• cat → Exibe o conteúdo de um arquivo na tela do terminal. Exemplo: “cat /etc/resolv.conf”

• head [opção] → Exibe o conteúdo do início de um arquivo.

o -n → Exibe as n primeiras linhas

o Ex.: “head -3 /etc/hosts”

• tail → Exibe o conteúdo do final de um arquivo.

o -n → Exibe as n primeiras linhas

o Exemplo: “tail -3 /etc/hosts”

Limpa a tela do terminal.

• cp → Copia arquivos.

o Exemplo: “cp arquivo1 arquivo2”

▪ Observação: Origem e destino no mesmo diretório.

o Ex.: “cp arquivo1 /dir/arquivo2”

▪ Obs.: Destino em diretório diferente.

o Exemplo: “cp /dir/arquivo1 /dir/arquivo2”

▪ Observação: Origem e destino em diretórios diferentes.

• mv → Move arquivos.

o Exs.: “mv /home/teste/resolv.conf /tmp/”

o “mv /home/teste/resolv.conf /tmp/”

• rm → Remove arquivos/diretórios. Opção –rf remove de forma recursiva e forçada (muito cuidado ao usar, pois poderá apagar tudo acidentalmente).

o Exemplo: “rm /tmp/musica.mp3”

• mkdir → Cria um diretório.

o Exemplo: “mkdir /home/teste/musicas”

• rmdir → Remove um diretório, apenas se ele estiver vazio.

• Exemplo: “rmdir /home/teste/musicas”

• man "comando" → Exibe uma página de instruções para um comando ou arquivo de configuração.

• Exemplo: “man head”.

• exit ou logout → Sai da sessão atual, ou realiza o logout do usuário.

o Pode-se encerrar a sessão também com a combinação de teclas CTRL+D.

• reboot → Reinicia a máquina.

• poweroff ou halt → Desliga a máquina de forma segura.

• shutdown "opção" "quando" [Mensagem] → Reinicia ou desliga a máquina.

o Exemplo: ‘shutdown –h +5 “Aviso: Servidor desligando”’: O servidor desligará em 5 minutos e será enviada a mensagem aos demais usuários conectados.

o Lembre-se de usar “sudo”.

• date → Mostra a data e hora do sistema.

o Exemplo: “sudo date 082013502020”: Altera a data e hora para 13:50h de 20/08/2020.

• history → Exibe o histórico de comandos já digitados no terminal.

• touch "nome" → Cria o arquivo vazio. Se o arquivo já existe, sua hora é atualizada.

• apt → Gerenciador de pacotes do Ubuntu, evolução do Apt-Get.

o apt update ➔ Atualiza a lista de fontes.

o apt install "nome_pacote" ➔ Instala um novo pacote.

o apt remove "nome_pacote" ➔ Remove um pacote.

o apt upgrade ➔ Atualiza todos os pacotes instalados.

o apt full-upgrade➔ Atualiza o sistema todo para uma nova versão.