Please enable JavaScript.
Coggle requires JavaScript to display documents.
15 LINUX, A memória virtual funciona como uma “extensão” da memória RAM,…
15 LINUX
História
Linux ->
é “apenas” o kernel, o núcleo do SO, que possui acesso privilegiado ao hardware
GNU/Linux ->
sistema operacional completo baseadi em Linux. ( descrição tecnicamente correta para o nome das mais variadas distribuições do sistema operacional Linux. )
Licença GNU/GPL
de software padrão adotada pelo Linux. Ela impede que o software seja integrado em um software proprietário e garante os direitos autorais. Não permite que as liberdades originais sejam limitadas, nem que sejam impostas restrições que impeçam a distribuição da mesma forma que foram adquiridos
Respeita as quatro liberdades do software livre.
1
.liberdade de usar o programa.
2.
Liberdade de estudar como o programa funciona.
3.
Liberdade de redistribuir cópias.
4.
Liberdade de melhorar o programa
você pode alterar qualquer parte do Linux, modificá-lo e até comercializá-lo, mas você não pode fechá-lo (não permitir que outros usuários o modifiquem) nem vendê-lo.
Distribuições Linux
Com o avanço do GNU/Linux no mercado, e diante da possibilidade de modificação, disponibilização e comercialização do sistema operacional, diversas empresas e organizações criaram as chamadas distribuições Linux
Distribuições Livres:
mantidas por comunidades sem fins lucrativos. Ubuntu, Debian, OpenSuSe. A distribuições convencionais, distribuídas para instalação nos discos rígidos, e as distribuições live, feitas para serem executadas diretamente em uma mídia ou pendrive, sem a necessidade de instalação.
Distibuições Corporativas
: mantidas por empresas que comercializam o Linux. Red Hat, Mandriva e SuSe. para “agregar valor” à distribuição, e justificar sua venda, essas empresas
oferecem suporte, treinamento de usuários e garantia
O Linux é um Sistema Operacional que dá uma liberdade incrível aos usuários, além de ser muito mais seguro do que o Windows.
O Linux pode ser instalado em qualquer computador de arquitetura x86 ou x64, pessoal ou de uma grande empresa
Entrando no sistema
o GNU/Linux é um sistema operacional com múltiplas distribuições. É
multiusuário e multitarefa
(com preempção).
sistema operacional de código aberto
Uma grande vantagem desse sistema operacional é que Linux pode ser instalado em qualquer computador de arquitetura x86 ou x64, que são os computadores domésticos e portáteis da atualidade. Ainda, pode ser instalado em arquiteturas “incomuns”, como servidores, terminais bancários, dentre outros. Até os sistemas operacionais iOS e Android, para smartphones, são oriundos do Linux
o Kernel do Linux é monolítico
por conter todos os módulos e subsistemas em um único executável binário (único arquivo). Como característica permitir que as funções essenciais sejam executadas através do kernel através do uso de módulos. O que significa que um módulo, apesar de não estar no mesmo código do kernel, é executado no espaço de memória do kernel fazendo com que o kernel continue sendo único e centralizado.
Inicialização do sistema operacional
O Linux instala no setor zero da MBR (o primeiro setor de um disco rígido) um software para a escolha do sistema operacional que irá carregar na máquina.
O Linux pode coexistir com qualquer outro sistema operacional instalado no computador.
Quando instalado em um computador, o Linux tem por procedimento padrão reconhecer os demais sistemas operacionais instalados, e incluir no inicializador atalhos para esses SOs. Além disso, é comum o GRUB ou o LILO oferecerem outros recursos, como testes de memória e inicialização em modo de recuperação
Uma vez escolhido o sistema operacional, o inicializador passa o controle para o mesmo, para que este seja carregado na memória do computador.
Sistemas de arquivos do Linux
Diferentemente do Windows, o Linux é um sistema operacional extremamente versátil, que reconhece muitos tipos de partições
Nos dias atuais,
a formatação mais comum para partições Linux é a ext4.
Além disso, é costume a destinação de parte do disco rígido para ser uma partição
swap
, ou seja, uma partição destinada exclusivamente para
servir de memória virtual para o sistema operacional
.
Atualmente, uma importante característica dos atuais sistemas de arquivos é o
Journaling
. É um recurso que permite recuperar um sistema após um desastre no disco em uma velocidade muito maior que nos sistemas de arquivos sem journaling.
Tanto o Windows quantoo Linux podem desfrutar deste recurso.
Alguns sistemas de arquivos compatíveis com o Jounaling são: HFS+, Ext3, Ext4, JFS, JFFS, JFFS2, LogFS, NTFS, Reiser4, ReiserFS e XFS.
Sistemas mais antigos, como o VFAT e ext2 não possuem suporte a journaling.
Ambiente gráfico
O sistema
X-Window
(X11, ou apenas X) foi desenvolvido por pesquisadores do MIT e á a base das interfaces gráficas disponíveis para o Linux
Geralmente,
duas camadas rodam sobre o X
:
um gerenciador de área de trabalho
e um gerenciador de janela
.
O
gerenciador de trabalho
é voltado para a interface gráfica do usuário, que lhe permite integrar com programas do sistema através da manipulação de ícones, ao invés da digitação de comandos em um shell.
O gerenciador de janela
permite abrir e fechar janelas, iniciar programas e configurar o mouse para que responda aos vários comandos de maneira apropriada
Diferentemente do Windows e do Mac, que possuem um único ambiente gráfico,
o Linux possui à sua disposição um rol variado.
Os ambientes gráficos ou gerenciadores gráficos mais populares são o
GNOME
e o
KDE
, mas existem outros como o XFCE, Enlightenment, LXDE, Unity, Cinnamon.
Shell
Assim como o Windows possui o Prompt do MS-DOS, o Linux possui o Shell (também chamado de Terminal).
é um ambiente textual
interpretador de comandos e linguagem de programação
.
Em boa parte das distribuições Linux,
Ctrl + Alt + T
é o comando de atalho que executa o terminal. e quando precisar interromper algum comando em execução, use
CTRL + C
(cancel).
Com
o interpretador de comandos
, o Shell também funciona como uma interface entre o usuário e o sistema operacional. Por meio dela, o usuário utiliza o teclado para digitar comandos. Ao digitar um comando na tela, a Shell o interpreta e invoca o comando pedido
Há disponível no Linux várias shells, das quais as mais comuns são
Bash
(Bourne Again Shell): uma versão melhorada do Bourne Shell, uma das shells originais do Unix.
Tcsh
(TC Shell): uma versão melhorada da versão da C Shell, desenvolvida como parte do Unix do BSD
Como
linguagem de programação de alto nível
, é possível organizar os comandos em um arquivo para execução futura. O Linux chama esses arquivos de Shell scripts, enquanto no Windows e no DOS eles são os batch files. Esses scripts são muito úteis para os usuários elaborarem operações complexas, para serem acionadas posteriormente por meio de comandos curtos
Estrutura de diretórios
bin:
binários essenciais do usuário
boot:
arquivos estáticos de boot - arquivos que auxiliam a inicialização do sistema operacional ficam nesta pasta.
dev:
arquivos de dispositivo (devices) - dispositivos de entrada e saída do sistema como mouse, ou modems, estarão acessíveis por aqui.
etc:
arquivos de configuração não específicos
home:
pastas dos usuários comuns dos sistemas
media:
ponto de montagem temporário para mídias removíveis, como dispositivos USB e DVDs de dados
mnt:
ponto de montagem temporário para sistemas de arquivos montados
opt:
softwares adicionais(adicionados pelo usuário)
sbin:
binários do sistema
srv:
dados para serviços providos pelo sistema
tmp:
arquivos temporários
usr:
multi-usuário utilitários e aplicações - o grosso dos programas ficam instalados dentro desse diretório. . Aqui ficam os executáveis e bibliotecas de todos os principais programas, comum a todos os usuários do computador
var:
arquivos variáveis (conteúdo dinâmico)
root:
home (diretório local) do superusuário, o administrador do sistema
proc:
sistema de arquivos virtual, documentos do kerel e status de processos como arquivos de teto
O Linux, assim como o Windows,
possui uma estrutura de diretórios hierarquizada,
na qual um diretório pode conter vários outros diretórios e arquivos.
Linux e Windows possuem estruturas de diretórios TOTALMENTE diferentes
lib:
guarda as bibliotecas e módulos usados pelos comandos presentes em /bin e /sbin
Estrutura de arquivos
um arquivo em Linux pode ser gravado em texto ou em código binário
Arquivo de texto –
tem seu conteúdo construído em linguagem humana, ou seja, é facilmente compreendido pelas pessoas,
Arquivo binário –
possuem um conteúdo em forma de código próprio para computadores.
Vale lembrar que o
GNU/Linux é Case Sensitive,
em que o sistema diferencia letras minúsculas das maiúsculas nos arquivos, o que não acontece no Windows
Cada componente de um
nome de caminho
não pode ter mais de
255 caracteres
e ada componente de um
caminho único
não pode ter mais do que
4096 caracteres
O Linux não exige uma extensão após o nome do arquivo. Isto
porque o sistema operacional é capaz de identificar a natureza do arquivo pelo código contido em seu cabeçalho
é possível utilizar várias extensões para nomear os arquivos.
Caso se depare com um arquivo sem extensão e queira saber qual o tipo dele, basta ir no shell digitar o comando
file /caminhodoarquivo/nomedoarquivo
Comandos mais comuns
Tais comandos são aplicados pelo usuário no Shell, para a execução de tarefas no computador.
Cd
altera o diretório atual
cd . ->
exibe o diretório atual
cd .. ->
sobe um nível na árvore de diretório.
cd /home/usuario1 ->
muda a pasta de navegação para /home/usuario1.
cd usuario1 ->
irá para o diretório usuário1, dentro da pasta atual
ls
lista o conteúdo de um diretório (similar a dir, no Windows).
ls ->
lista o conteúdo do diretório atual
ls –l ->
lista com detalhes os arquivos e diretórios da pasta
ls – a ->
lista inclusive os arquivos e pastas ocultas
ls –a –l ou ls –al ->
combina os comandos citados acima (utilização mais comum)
ls –R ->
lista diretórios recursivamente (vai exibindo também o conteúdo dos subdiretórios que existirem na pasta)
mkdir
cria um diretório. (similar a md no Windows)
mkdir -p ->
cria todos os diretórios no caminho até o diretório que você quer criar.
mkdir Teste1 ->
criará o subdiretório Teste1 dentro do diretório atual
Cp
copia arquivos ou uma lista de arquivos para um diretório de destino (copy no Windows).
cp teste.txt Teste1 ->
colocará o arquivo teste.txt, que deverá existir no diretório atual, dentro do subdiretório Teste1
cp -R ou cp -r ->
irá copiar todos os arquivos de um determinado diretório (inclusive subdiretórios para o diretório destino
cp -f ->
força a cópia
cp --parents ->
copia o arquivo e a estrutura de diretórios até ele para o destino
c*
copia todos os arquivos de um diretório
cp *.txt ->
copia todos os arquivos que terminem com
.txt.
mv
move (ou altera o nome de) arquivos. (similar a mv e rename no Windows)
mv teste.txt casa.txt ->
renomeia “teste.txt” para “casa.txt”
mv teste.txt /home/usuario/Teste2 ->
move o arquivo “teste.txt” do diretório atual para o diretório “/home/usuario/Teste2”
mv -f ->
força a movimentação
rm/rmdir
remove arquivos / diretório. (no Windows: del/deltree)
rmdir
apaga somente diretório vazio. Para apagar diretórios com algo dentro, você deve usar
rm - r
rm -f
irá apagar os seus arquivos sem pedir seu consentimento
apt-get
atualiza/instala/remove pacotes (aplicativos) no sistema
apt-get upgrade nome_do_pacote
: atualiza o pacote especificado
apt-get install nome_do_pacote:
instala o pacote especificado. Se o pacote já estiver instalado, tenta a atualização
apt-get check:
checa a integridade dos pacotes do Sistema (pacotes dependem uns dos outros, verifica se nenhuma dependência está quebrada)
apt-get remove nome_do_pacote:
desinstala o pacote especificado.
apt-get remove --purge nome_do_pacote:
desinstala o pacote especificado e suas dependências
cat
cat Estudo.txt
exibe o conteúdo do arquivo Estudo.txt
cat > Teste.txt
cria o arquivo Teste e o abre imediatamente para edição (útil quando queremos criar um arquivo do zero rapidamente. Quando terminar de preencher o arquivo, use Ctrl+D para sair de dentro dele.)
head e tail
head
mostra as primeiras linhas de um arquivo. Ex: head -10 a.txt mostra as 10 primeiras linhas do arquivo a.txt.
tail
mostra as últimas linhas de um arquivo ou mesmo do
output de outro comando, quando usado como filtro.
tail --lines 3 arquivo.txt
mostrará as últimas três linhas do comando arquivo.
find
pesquisa arquivos em uma hierarquia de diretórios. Por padrão, realiza as buscas no diretório de trabalho e nos subdiretórios
find /root –name casa
procura na pasta root arquivos ou diretórios com o nome “casa”
find /opt *.txt
procura na pasta opt qualquer arquivo com a extensão .txt
grep
procura um arquivo por um padrão
grep ‘linux’ /home/victor/teste.txt
encontra as ocorrências da palavra “linux” em teste.txt
Grep também pode ser usado em comandos conectados.
Jobs/top/ps
jobs
lista processos do console atual, disparados pelo usuário atual
ps
exibe os processos em execução no sistema
top
também exibe o uso de processos do sistema, mas exibe também o quanto esses processos consomem de memória e processador em tempo real. o top permanece em execução, em tempo real, até que o usuário finalize o processo.
kill
encerra um ou mais processos em andamento
kill -1 340
reinicia o processo de ID 340.
kill -9 223
encerra o processo de ID 223, sem mensagem de confirmação (destrói o processo).
man/info/whatis/--help
man
abre o manual do sistema operacional na página do comando pesquisado.
digitar um comando seguido do parâmetro
--help
também abre a ajuda do comando.
info
, abre um explorador de informações
whatis
, entrega um resumo rápido do comando
passwd
cria ou modifica a senha do usuário
pwd
exibe o nome do diretório atual.
tar
agrupa arquivos no formato Tape ARchive
vi
editor de texto em tela cheia
clear
limpa a tela do terminal
cut
lê o conteúdo de um ou mais arquivos e tem como saída uma coluna vertical.
diff
compara o conteúdo de dois arquivos ASCII (arquivos de texto).
du
saber o espaço utilizado em disco por pastas ou arquivos
exit
encerrar o shell (finalizar a sessão)
Usuário comum e superusuário
O
usuário comum
é, como o próprio nome diz, um usuário convencional, sem permissões para mexer em partes sensíveis do sistema. Sua pasta padrão de armazenamento de arquivos é /home/nomedousuáriocomum.
O
superusuário,
possui plenos poderes sobre o sistema. Sua pasta padrão é /root.
Quando deseja-se trabalhar no computador como o superusuário, o comando
su
(superuser) realiza essa
mudança.
quando deseja-se realizar apenas um comando com os poderes de superusuário, é possível concatenar o comando
sudo
. apenas este comando é aplicado com poderes de superusuário, e volta-se a ser um usuário comum
$
Símbolo do usuário comum no terminal
#
Símbolo do superusuário no terminal
Permissões de arquivo
São 9 caracteres que definem as propriedades de acesso a um arquivo. Porém, ao listar as propriedades, existe um primeiro caractere, adicional, que define o tipo de objeto.
Se este for um diretório, veremos a letra
d
.
Caso contrário, haverá um traço.
R (permissão de leitura), W (permissão de escrita) e X (permissão de execução) podem aparecer somente nas posições indicadas; caso contrário, um traço é exibido - as primeiras 3 combinações é permissão ao sono, as seguintes aos grupos e as últimas aos outros usuários (rwx.rwx.rwx)
o usuário do Linux pode mudar esses níveis de permissão dos arquivos e diretórios
chgrp
– change group (mudar grupo)
muda o grupo
de usuários que está associado a um arquivo.
chown
– change owner (mudar dono)
muda o dono
de um arquivo e/ou grupo ao qual o arquivo está associado
chmod
– change mode (mudar modo) muda o modo de acesso, ou seja, o nível de permissão de um arquivo.
A
memória virtual
funciona como uma “extensão” da memória RAM, para evita que o computador sofra problemas por ter sua memória RAM esgotada.