Servidor Linux: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(20 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 8: Linha 8:
:Vários sistemas comerciais foram desenvolvidos a partir do '''Unix''', como o '''Unix BSD''' (Universidade de Berkeley), o '''Unix System V''' (AT&T) e, com o desenvolvimento dos '''computadores pessoais''', o '''Linux''' <ref name=MORIMOTO>MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.</ref>.
:Vários sistemas comerciais foram desenvolvidos a partir do '''Unix''', como o '''Unix BSD''' (Universidade de Berkeley), o '''Unix System V''' (AT&T) e, com o desenvolvimento dos '''computadores pessoais''', o '''Linux''' <ref name=MORIMOTO>MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.</ref>.


;Utilização do Linux como servidores: O '''Linux''' hoje é utilizado em ''desktops'', ''laptops'',  ''smartphones'' e outros dispositivos. Contudo, o papel de '''servidor''' se mantem, sendo um dos sistemas operacionais mais utilizados na montagem de '''servidores de rede local''' e '''servidores Internet''' <ref name=MORIMOTO/>:
:O nome Linux surgiu da mistura de Linus + Unix. Linus é o nome do criador do Linux, Linus Torvalds, que construiu uma implementação do Unix em linguagem C para computadores pessoais.
 
;Utilização do Linux como servidores: O '''Linux''' hoje é utilizado em ''desktops'', ''laptops'',  ''smartphones'' (como o Android) computadores de placa única (como o Raspberry Pi) e outros dispositivos, como roteadores. Contudo, o papel de '''servidor''' se mantem, sendo um dos sistemas operacionais mais utilizados na montagem de '''servidores de rede local''' e '''servidores Internet''' <ref name=MORIMOTO/>:
:*Um '''servidores de rede local''' provê serviços de rede aos usuários em uma '''rede local''', incluindo o papel de '''roteador''' provendo acesso a Internet, servidor ''proxy'' ('''Squid'''), servidor DHCP, roteador NAT, ''firewall'' ('''iptables''') e servidor de arquivos e impressão ('''Samba''').
:*Um '''servidores de rede local''' provê serviços de rede aos usuários em uma '''rede local''', incluindo o papel de '''roteador''' provendo acesso a Internet, servidor ''proxy'' ('''Squid'''), servidor DHCP, roteador NAT, ''firewall'' ('''iptables''') e servidor de arquivos e impressão ('''Samba''').
:*Um '''servidor Internet''' é um servidor dedicado a prover serviços na Internet. Um exemplo é um '''servidor Web''' montado com '''Apache''', um interpretador '''PHP''' e um banco de dados '''MySQL''', conhecido como '''servidor LAMP'''. Outros serviços de rede também podem fazer parte do servidor, como servidor '''FTP''' para disponibilizar arquivos de forma pública, sistema de '''quotas''' para administrar espaço de armazenamento, servidor '''DNS''', servidor de '''Email''' e outros.
:*Um '''servidor Internet''' é um servidor dedicado a prover serviços na Internet. Um exemplo é um '''servidor Web''' montado com '''Apache''', um interpretador '''PHP''' e um banco de dados '''MySQL''', conhecido como '''servidor LAMP'''. Outros serviços de rede também podem fazer parte do servidor, como servidor '''FTP''' para disponibilizar arquivos de forma pública, sistema de '''quotas''' para administrar espaço de armazenamento, servidor '''DNS''', servidor de '''Email''' e outros.
Linha 21: Linha 23:


;Últimas versões Lixux:
;Últimas versões Lixux:
*Ubuntu 22.04 LTS
*Ubuntu 21.10
*Ubuntu 21.04
*Ubuntu 21.04
*Ubuntu 20.10
*Ubuntu 20.10
Linha 55: Linha 59:
:Alguns dos principais diretórios do sistema Linux são:
:Alguns dos principais diretórios do sistema Linux são:
:* '''/''' -> Diretório raiz do sistema.
:* '''/''' -> Diretório raiz do sistema.
:* /home/<usuario> -> Diretório pessoal do <usuário> correntemente logado no sistema.
:* /home/nome_usuario -> Diretório pessoal do usuário que está logado no sistema.
:* /etc -> Diretório com arquivos de configuração do sistema.
:* /etc -> Diretório com arquivos de configuração do sistema.


Linha 62: Linha 66:
;Mostrar o diretório corrente:
;Mostrar o diretório corrente:
  pwd
  pwd
:Quando um usuário loga no sistema o sistema automaticamente o posiciona neste diretório, que é seu diretório pessoal.
:Quando um usuário loga no sistema o sistema automaticamente o posiciona no diretório '''/home/nome_usuario''', que é seu diretório pessoal.


;Listar o conteúdo de um diretório:
;Listar o conteúdo de um diretório:
Linha 68: Linha 72:
  ls -l
  ls -l
  ls -a
  ls -a
:O parâmetro -l lista conteúdo do diretório incluindo detalhes das permissões de acesso, tamanho do arquivo e data de criação.
:O parâmetro '''-l''' lista conteúdo do diretório incluindo detalhes das permissões de acesso, tamanho do arquivo e data de criação.
:O parâmetro -a lista também arquivos ocultos, os quais iniciam com ".", por exemplo, .profile.
:O parâmetro '''-a''' lista também arquivos ocultos, os quais iniciam com ".", por exemplo, .profile.
 
;Criar arquivo vazio:
touch nome_arquivo
 
;Listar conteúdo de arquivo:
cat nome_arquivo
Inserir conteúdo no arquivo a partir de edição no teclado.
cat > nome_arquivo
Acrescentar conteúdo no final de um arquivo a partir de edição no teclado.
cat >> nome_arquivo
:A edição é finalizada com:
Ctrl-d  -> Salvar e sair
Ctrl-c  -> Sair sem salvar
 
;Criar diretório:
mkdir nome_diretorio
;Remover diretório
rmdir nome_diretorio
:Remove diretório vazio. Se o diretório não estiver vazio não consegue remover.


<!--
;Mudar para o diretório especificado:
  '''cd''' - muda diretório
  cd nome_diretorio
'''pwd''' - mostra diretório atual
Mudar para o diretório de nível superior.
'''ls''' - lista conteúdo do diretório atual
  cd ..
'''ls -l''' - para ver permissões de acesso
  '''ls -a''' - para ver arquivos ocultos
'''cp''' - cópia de arquivos
'''cp -r''' - cópia recursiva para diretórios
'''mv''' - mover arquivos e diretórios
'''rm''' - remover arquivos e diretórios
'''mkdir''' - criar diretórios
'''rmdir''' - remover diretórios
'''man''' - ajuda sobre comandos


;Comandos para localizar arquivos: Um comando útil para localizar arquivos no sistema é o comanco '''locate'''. Este comando faz uso de um banco de dados dos arquivos criado pelo comando '''updatedb'''. Entretando, o comando '''updatedb''' deve ser executado pelo menos uma vez antes do '''locate''', e periodicamente para atualizar o banco de dados.
;Copiar arquivos:
cp arquivo1 arquivo2
Copiar recursivamente, incluindo os arquivos e subdiretórios, o diretório dir1 para o dir2.
cp -r dir1 dir2


:Exemplo
;Mover arquivos:
  locate Modelo-PlanoEnsino.odt
  mv arquivo1 arquivo2
/home/evandro/Dropbox/AulasIFPR/Modelo-PlanoEnsino.odt


O comando '''find''' também permite localizar arquivos, mas procura varrendo toda a árvore de diretórios. Por exemplo:
;Remover arquivos:
  find /etc -name passwd
rm nome_arquivo
:Procura pelas ocorrências do arquivo passwd no diretório /etc.
Remover recursivamente diretórios e seu conteúdo:
  rm -r nome_diretorio


;Criação de links ou atalhos: O comando '''ln''' permite criar '''''links''''' que se comportam como '''atalhos''' para arquivos. Existem [https://www.vivaolinux.com.br/artigo/Voce-sabe-o-que-e-INODE?pagina=2 dois tipos de links:  '''''soft links''''' e '''''hard links''''':]
====Exercícios sobre comandos de arquivos e diretórios====
*'''soft links''' (ou '''links simbólicos'''): É um atalho estático, se mover ou deletar o arquivo o link fica quebrado;
Em seu diretório pessoal, crie a seguinte uma estrutura de '''diretórios''' incluindo o Brasil e os estados do sul e '''arquivos''' com as cidades citadas:
*'''''hard links''''': Se o arquivo é movido o link é automaticamente atualizado.
Brasil
ln arquivo link
+ PR
| + Curitiba
| + Guarapuava
| + Foz_do_Iguaçu
+ SC
| + Florianopolis
| + Blumenau
| + Joinville
+ RS
  + Porto_Alegre
  + Caxias_do_Sul
#Crie os diretórios com '''mkdir'''.
#Use '''cd''' para mudar de diretórios.
#Crie os arquivos das cidades com '''touch'''.
#Insira no arquivo Curitiba, usando '''cat >''', a frase: "Maior cidade do estado.".
#Copie o arquivo Curitiba, usando '''cp''', para os arquivos Joinville e Porto_Alegre.
#Insira no final do arquivo Curitiba, usando '''cat >>''', a frase "Capital do PR.".
#Insira no final do arquivo Porto_Alegre, usando '''cat >>''', a frase "Capital do RS.".
#Insira no final do arquivo Joinville, usando '''cat >>''', a frase "Cidade industrial.".
#Insira no arquivo das demais cidades, usando '''cat >''', frases que as caracterize.


O Linux usa muitos links na estrutura de diretórios, que é um recurso muito usado quando os arquivos de sistemas mudam de lugar em uma nova versão.
===Navegador modo texto===
-->
 
lynx URL
 
===Comandos com informações correntes do sistema===
 
;Calendário:
cal
 
;Data e hora:
date


====Exercícios sobre comandos Linux====
;Usuários logados no sistema:
#Crie usando '''mkdir''' no seu diretório home um diretório chamado AdmServ.
who
#Mude para este diretório com '''cd''' e verifique onde está com '''pwd'''.
Usuário logado na seção:
#Crie no diretório AdmServ mais três diretórios: dir1, dir2 e dir3.
whoami
#Mude para o diretório dir1 e crie um arquivo num, usando o comando '''cat''' contendo os números 1, 2, 3, 4 e 5.
Informações sobre um usuário:
#Mude para o diretório dir2 e crie um arquivo letras, usando o comando '''cat''' contendo os números a, b, c, d e e.
finger nome_usuario
#Copie, usando o comando '''cp''', os arquivos num e letras para o dir3.
#Mude para o diretório dir3 e acrescente ao arquivo letras, usando o comando cat, as letras f, g, h, i e j.


==Estrutura de arquivos e diretórios do Linux==
==Estrutura de arquivos e diretórios do Linux==
Linha 135: Linha 178:
*'''/var''': '''Arquivos de dados variáveis''', como ''spool'' de impressão, os arquivos de ''cache'' e arquivos de log.
*'''/var''': '''Arquivos de dados variáveis''', como ''spool'' de impressão, os arquivos de ''cache'' e arquivos de log.


==Sistema de arquivos==
<!--==Sistema de arquivos==


O '''sistema de arquivos''' caracteriza o modo como os dados são armazenados em uma '''partição''' do dispositivo de armazenamento.  
O '''sistema de arquivos''' caracteriza o modo como os dados são armazenados em uma '''partição''' do dispositivo de armazenamento.  
Linha 153: Linha 196:


O arquivo '''/proc/filesystems''' mostra os sistemas de arquivos são suportados pelo seu kernel atual.
O arquivo '''/proc/filesystems''' mostra os sistemas de arquivos são suportados pelo seu kernel atual.
-->


==Gerenciador da inicialização==
<!--==Gerenciador da inicialização==
Caso o computador tenha mais de um sistema operacional instalado há necessidade de um '''gerenciador da inicialização''' para definir a ordem de iniciação do sistema. No '''Ubuntu''' o gerenciador da inicialização é o '''GRUB'''.
Caso o computador tenha mais de um sistema operacional instalado há necessidade de um '''gerenciador da inicialização''' para definir a ordem de iniciação do sistema. No '''Ubuntu''' o gerenciador da inicialização é o '''GRUB'''.


Linha 161: Linha 205:
:Caso a ordem de inicialização seja alterada o GRUB deve ser atualizado:
:Caso a ordem de inicialização seja alterada o GRUB deve ser atualizado:
  sudo update-grub
  sudo update-grub
-->


==Gerenciamento de serviços e processos==
==Gerenciamento de serviços e processos==

Edição atual tal como às 20h42min de 23 de setembro de 2022

Servidor Linux

Origem
A origem do sistema operacional Linux é o Unix, o qual era um sistema operacional para servidores e computadores de médio porte das décadas de 1980 e 1990. O Unix foi escrito em Linguagem C, para computadores PDP-11 (DEC - Digital Equipament Corporation), demonstrando a relativa facilidade de migração para outros computadores. A DEC foi uma empresa pioneira de computadores nos EUA e tinha entre seus produtos os mini-computadores PDP e VAX, muito populares nas comunidades científica e de engenharia nos anos 70 e 80. A DEC foi comprada pela Compaq, que por sua vez se fundiu com a Hewlett-Packard [1].
Vários sistemas comerciais foram desenvolvidos a partir do Unix, como o Unix BSD (Universidade de Berkeley), o Unix System V (AT&T) e, com o desenvolvimento dos computadores pessoais, o Linux [2].
O nome Linux surgiu da mistura de Linus + Unix. Linus é o nome do criador do Linux, Linus Torvalds, que construiu uma implementação do Unix em linguagem C para computadores pessoais.
Utilização do Linux como servidores
O Linux hoje é utilizado em desktops, laptops, smartphones (como o Android) computadores de placa única (como o Raspberry Pi) e outros dispositivos, como roteadores. Contudo, o papel de servidor se mantem, sendo um dos sistemas operacionais mais utilizados na montagem de servidores de rede local e servidores Internet [2]:
  • Um servidores de rede local provê serviços de rede aos usuários em uma rede local, incluindo o papel de roteador provendo acesso a Internet, servidor proxy (Squid), servidor DHCP, roteador NAT, firewall (iptables) e servidor de arquivos e impressão (Samba).
  • Um servidor Internet é um servidor dedicado a prover serviços na Internet. Um exemplo é um servidor Web montado com Apache, um interpretador PHP e um banco de dados MySQL, conhecido como servidor LAMP. Outros serviços de rede também podem fazer parte do servidor, como servidor FTP para disponibilizar arquivos de forma pública, sistema de quotas para administrar espaço de armazenamento, servidor DNS, servidor de Email e outros.

Servidor dedicado e administração remota

Um servidor Linux pode ser uma máquina física dedicada para prover serviços de rede ou uma máquina virtual hospedada em um datacenter. Em ambos os casos, normalmente o servidor é montado com uma estrutura enxuta, com o modo gráfico desativado, liberando os recursos do hardware para o papel de servidor. Neste caso, a administração do servidor acaba sendo feita remotamente, principalmente utilizando SSH.

Servidor Linux Ubuntu

O sistema operacional Ubuntu lança uma nova versão para desktops e servidores a cada seis meses, nos meses de abril (versão ano.04) e outubro (versão ano.10). Cada versão tem atualizações de segurança gratuitas por pelo menos 18 meses. A versão de Longo Tempo de Suporte (LTS), lançada nos anos pares no mês de abril, o suporte é três anos para desktops, e cinco anos para servidores.

Últimas versões Lixux
  • Ubuntu 22.04 LTS
  • Ubuntu 21.10
  • Ubuntu 21.04
  • Ubuntu 20.10
  • Ubuntu 20.04 LTS
  • Ubuntu 19.10
  • Ubuntu 19.04
  • Ubuntu 18.10
  • Ubuntu 18.04 LTS
  • Ubuntu 17.10
  • ...

Comandos Básicos Linux

Embora o Linux possua interface gráfica, como o Gnome ou KDE, o administrador do sistema muitas vezes prefere (ou necessita) executar comandos de linha em um terminal.

O ambiente tradicional do Unix é o CLI (Command Line Interface), onde você digita os comandos para dizer ao computador o que ele deve fazer.

Site para treinar comandos básicos
Terminal Linux.
Sites com comandos básicos para praticar

Arquivos e diretórios no Linux

Arquivos
No Linux os arquivos armazenam informações que podem ser do tipo texto, áudio, imagem, vídeo, binários, etc.
O nome de um arquivo é formado por um nome e uma extensão, a qual indica o tipo do arquivo. Por exemplo:
  • texto.txt -> Arquivo de texto sem formatação, codificados em ASCII.
  • figura.jpg -> Arquivo de imagem do tipo jpg.
Diretórios
No Linux os diretórios são equivalentes as Pastas do sistema Windows. Permitem organizar as informações de forma hierárquica através de diretórios e subdiretórios.
Alguns dos principais diretórios do sistema Linux são:
  • / -> Diretório raiz do sistema.
  • /home/nome_usuario -> Diretório pessoal do usuário que está logado no sistema.
  • /etc -> Diretório com arquivos de configuração do sistema.

Comandos de arquivos e diretórios

Mostrar o diretório corrente
pwd
Quando um usuário loga no sistema o sistema automaticamente o posiciona no diretório /home/nome_usuario, que é seu diretório pessoal.
Listar o conteúdo de um diretório
ls
ls -l
ls -a
O parâmetro -l lista conteúdo do diretório incluindo detalhes das permissões de acesso, tamanho do arquivo e data de criação.
O parâmetro -a lista também arquivos ocultos, os quais iniciam com ".", por exemplo, .profile.
Criar arquivo vazio
touch nome_arquivo
Listar conteúdo de arquivo
cat nome_arquivo

Inserir conteúdo no arquivo a partir de edição no teclado.

cat > nome_arquivo

Acrescentar conteúdo no final de um arquivo a partir de edição no teclado.

cat >> nome_arquivo
A edição é finalizada com:
Ctrl-d  -> Salvar e sair
Ctrl-c  -> Sair sem salvar
Criar diretório
mkdir nome_diretorio
Remover diretório
rmdir nome_diretorio
Remove diretório vazio. Se o diretório não estiver vazio não consegue remover.
Mudar para o diretório especificado
cd nome_diretorio

Mudar para o diretório de nível superior.

cd ..
Copiar arquivos
cp arquivo1 arquivo2

Copiar recursivamente, incluindo os arquivos e subdiretórios, o diretório dir1 para o dir2.

cp -r dir1 dir2
Mover arquivos
mv arquivo1 arquivo2
Remover arquivos
rm nome_arquivo

Remover recursivamente diretórios e seu conteúdo:

rm -r nome_diretorio

Exercícios sobre comandos de arquivos e diretórios

Em seu diretório pessoal, crie a seguinte uma estrutura de diretórios incluindo o Brasil e os estados do sul e arquivos com as cidades citadas:

Brasil
+ PR
| + Curitiba
| + Guarapuava
| + Foz_do_Iguaçu
+ SC
| + Florianopolis
| + Blumenau
| + Joinville
+ RS
  + Porto_Alegre
  + Caxias_do_Sul
  1. Crie os diretórios com mkdir.
  2. Use cd para mudar de diretórios.
  3. Crie os arquivos das cidades com touch.
  4. Insira no arquivo Curitiba, usando cat >, a frase: "Maior cidade do estado.".
  5. Copie o arquivo Curitiba, usando cp, para os arquivos Joinville e Porto_Alegre.
  6. Insira no final do arquivo Curitiba, usando cat >>, a frase "Capital do PR.".
  7. Insira no final do arquivo Porto_Alegre, usando cat >>, a frase "Capital do RS.".
  8. Insira no final do arquivo Joinville, usando cat >>, a frase "Cidade industrial.".
  9. Insira no arquivo das demais cidades, usando cat >, frases que as caracterize.

Navegador modo texto

lynx URL

Comandos com informações correntes do sistema

Calendário
cal
Data e hora
date
Usuários logados no sistema
who

Usuário logado na seção:

whoami

Informações sobre um usuário:

finger nome_usuario

Estrutura de arquivos e diretórios do Linux

O diretório raiz (/) do Linux apresenta a seguinte lista de diretórios:

$ ls /
bin    dev   lib     proc  sbin  tmp  
boot   etc   media   root  opt   usr  
cdrom  home  mnt

Descrição e função dos diretórios:

  • /bin: Arquivos binários executáveis de comandos essenciais, como o cp, mv e grep.
  • /boot: Arquivos relacionados ao boot e ao kernel.
  • /dev: Arquivos associados a ponteiros para dispositivos físicos, como os discos rígidos, placas de som e vídeo etc.
  • /etc: Arquivos de configuração dos sistemas e aplicativos instalados na máquina.
  • /lib: Bibliotecas do sistema.
  • /mnt: Diretório de montagem dos dispositivos de armazenamento .
  • /media: Diretório de montagem dos sistemas de arquivos temporários, como pendriver.
  • /cdrom: Diretório de montagem do CD-ROM.
  • /opt: Arquivos de programas de terceiros, que não acompanham a distribuição.
  • /proc: Diretório de informações de processos e hardware do sistema.
  • /root: Diretório home do superusuário.
  • /sbin: Arquivos binários executáveis do superusuário.
  • /tmp: Arquivos temporários.
  • /usr: Onde ficam a maioria dos aplicativos instalados no sistema.
  • /var: Arquivos de dados variáveis, como spool de impressão, os arquivos de cache e arquivos de log.


Gerenciamento de serviços e processos

Cada serviço rodando no Linux, como um Servidor Apache, são chamados deamons ou serviços do sistema [2].

A tarefa de iniciar ou parar os serviços do sistema é automatizada por um conjunto de scripts, localizados na pasta /etc/init.d:

  • Para visualizar os serviços no init.d:
cd /etc/init.d
ls
  • Para iniciar um serviço usa-se o comando:
sudo service apache2 start
  • Para parar um serviço usa-se o comando:
sudo service apache2 stop

Cada processo no Linux é um aplicativo ou serviço ativo no sistema.

Para listar todos os processos ativos, usa-se o comando:

ps aux

Para saber a função de um processo, pode-se usar o comando:

whatis
Por exemplo, para saber qual o processo cron:
whatis cron
cron (8) - daemon to execute scheduled commands (Vixie Cron)

Para saber se um processo está rodando, como por exemplo o firefox, pode-se usar o comando:

ps aux | grep firefox
evandro   1886 10.6  3.5 980504 261976 ?       Sl   18:52   3:09 /usr/lib/firefox/firefox

Para matar um processo deve-se especificar o PID (Identificador do Processo), por exemplo, para matar o firefox:

kill 1886

Caso processo esteja travado, deve utilizar o seguinte parâmetro:

kill -9 1886

Referências

  1. DEC na Wikipédia https://pt.wikipedia.org/wiki/Digital_Equipment_Corporation
  2. 2,0 2,1 2,2 MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.

Evandro.cantu (discussão) 10h25min de 22 de junho de 2021 (-03)