Servidor Debian - Parte 0 - Estrutura de arquivos e comandos básicos
Estrutura de arquivos
É muito bom entender a estrutura de arquivos do linux.
Vou fazer algum comparativo com o Windows, mas nem sempre é o comparativo ideal, pois são sistemas diferentes.
O diretório raiz (/)
Todos os arquivos e diretórios do sistema Linux instalado no computador partem de uma única origem: o diretório raiz. Mesmo que estejam armazenados em outros dispositivos físicos, é a partir do diretório raiz – representado pela barra (/) – que você poderá acessá-los.Também vale lembrar que o único usuário do sistema capaz de criar ou mover arquivos do diretório raiz é o root, ou seja, o usuário-administrador. Isso evita que usuários comuns cometam erros e acabem comprometendo a integridade de todo o sistema de arquivos. É equivalente ao C: do Windows.
Binários executáveis: /bin
No diretório /bin estão localizados os binários executáveis que podem ser utilizados por qualquer usuário do sistema. São comandos essenciais, usados para trabalhar com arquivos, textos e alguns recursos básicos de rede, como o cp, mv, ping e grep. Obs.: na verdade a pasta bin é um link (atalho) da pasta /usr/bin.Binários do sistema: /sbin
Assim como o /bin, este diretório armazena executáveis, mas com um diferencial: são aplicativos utilizados por administradores de sistema com o propósito de realizar funções de manutenção e outras tarefas semelhantes. Entre os comandos disponíveis estão o ifconfig, para configurar e controlar interfaces de rede TCP/IP, o fdisk, que permite particionar discos rígidos, por exemplo, o fsck, que permite checar e reparar sistemas de arquivos, o shutdown, utilizado para desligar e reiniciar o sistema,Programas diversos: /usr
Se você não encontrar um comando no diretório /bin ou /sbin, ele certamente está aqui. O /usr reúne executáveis, bibliotecas e até documentação de softwares usados pelos usuários ou administradores do sistema. Além disso, sempre que você compilar e instalar um programa a partir do código-fonte, ele será instalado nesse diretório.Configurações do sistema: /etc
No diretório /etc ficam arquivos de configuração que podem ser usados por todos os softwares, além de scripts especiais para iniciar ou interromper módulos e programas diversos. É no /etc que se encontra, por exemplo, o arquivo resolv.conf, com uma relação de servidores DNS que podem ser acessados pelo sistema, com os parâmetros necessários para isso. Grossamente falando seria equivalente à pasta Arquivos de Programas do Windows.Bibliotecas: /lib
Neste ponto do sistema de arquivos ficam localizadas as bibliotecas usadas pelos comandos presentes em /bin e /sbin. Normalmente, os arquivos de bibliotecas começam com os prefixos ld ou lib e possuem "extensão" so.Opcionais: /opt
Aplicativos adicionais, que não são essenciais para o sistema, terminam neste diretório.Aquivos pessoais: /home
No diretório /home ficam os arquivos pessoais, como documentos e fotografias, sempre dentro de pastas que levam o nome de cada usuário. Vale notar que o diretório pessoal do administrador não fica no mesmo local, e sim em /root.Inicialização: /boot
Arquivos relacionados à inicialização do sistema, ou seja, o processo de boot do Linux, quando o computador é ligado, ficam em /boot.Volumes e mídias: /mnt e /media
Para acessar os arquivos de um CD, pendrive ou disco rígido presente em outra máquina da rede, é necessário "montar" esse conteúdo no sistema de arquivos local, isso é, torná-lo acessível como se fosse apenas mais um diretório no sistema.Em /media ficam montadas todas as mídias removíveis, como dispositivos USB e DVDs de dados. Já o diretório /mnt fica reservado aos administradores que precisam montar temporariamente um sistema de arquivos externo.
Serviços: /srv
Dados de servidores e serviços em execução no computador ficam armazenados dentro desse diretório.Arquivos de dispositivos: /dev
No Linux, tudo é apresentado na forma de arquivos. Ao plugar um pendrive no computador, por exemplo, um arquivo será criado dentro do diretório /dev e ele servirá como interface para acessar ou gerenciar o drive USB. Nesse diretório, você encontra caminhos semelhantes para acessar terminais e qualquer dispositivo conectado ao computador, como o mouse e até modems.Arquivos variáveis: /var
Todo arquivo que aumenta de tamanho ao longo do tempo está no diretório de arquivos variáveis. Um bom exemplo são os logs do sistema, ou seja, registros em forma de texto de atividades realizadas no Linux, como os logins feitos ao longo dos meses.Processos do sistema: /proc
Lembra da história de que tudo funciona como um arquivo no Linux? Pois o /proc é a prova disso. Nesse diretório são encontrados arquivos que revelam informações sobre os recursos e processos em execução no sistema. Quer um exemplo? Para saber há quanto tempo o Linux está sendo usado desde a última vez em que foi iniciado, basta ler o arquivo /proc/uptime.Arquivos temporários: /tmp
Arquivos e diretórios criados temporariamente tanto pelo sistema quanto pelos usuários devem ficar nesse diretório. Boa parte deles é apagada sempre que o computador é reiniciado.Como fica fácil perceber, os nomes dos diretórios dão dicas do que pode ser encontrado em seu interior e, com alguns meses de uso, você estará navegando por eles com facilidade.
Comandos básicos
Bom, com o sistema instalado, vamos conhecer um pouco sobre o Linux.Quando se logar no sistema você se deparará com o seguinte:
altair@servidor:~$
altair: Nome do usuário logado atualmente;
@servidor: "AT" hostname. Indica que você está logado no computador com nome servidor;
~: O "~" representa que você está na sua pasta home, ou seja, "/home/altair";
$
: Esse símbolo significa que o usuário "altair"
é um usuário, não um Super Usuário, (nesse caso o símbolo seria "#").
Então olhando essa linha você sabe o nome do usuário logado, o
computador em que está trabalhando, a pasta em que você se encontra
atualmente e seu privilégio de usuário.ls
Lista os arquivos do diretório.Você pode apenas digitar "ls", como "ls /etc" (ls e o nome da pasta) ou passar alguma opção para ele, como em "ls -lha".
A opção -a exibe os arquivos ocultos;
O -l exibe as informações dos arquivos;
O -h exibe de uma forma mais humanizada, melhor para entendermos os tamanhos dos arquivos.
more
Caso o ls traga muito conteúdo, é possível ver linha a linha com o "|more".Ex.: ls -lha /etc |more
cd
Esse comando acessa o diretório:Ex.: cd /home/ezio
Nesse exemplo acessamos o diretório "/home;ezio".
Caso quisermos sair de um diretório, acessamos a pasta "..".
Ex.: cd ..
E caso quisermos ir direto para a raiz, basta acessar a "/".
Ex.: cd /
cp
Este comando faz a cópia do arquivo apontado.Ex.: cp /etc/samba/smb.conf /etc/samba/bkp_smb.conf
No exemplo efetuamos a cópia do arquivo smb.conf para o mesmo diretório com o nome bkp_smb.conf.
mv
Funciona como o cp, porém move o arquivo.mkdir
Cria uma pasta.Ex.: mkdir /arquivos
Cria uma pasta chamada "arquivos" na raiz "/".
rm
Exclui um diretório.Muitas vezes não será possível excluir o diretório pois o memso possui algum conteúdo, nesse caso utilizamos o -R para apagar também todo seu conteúdo. (Mas cuidado!! Pois você está apagando o diretório.)
ip addr
Verifica o IP de seu computador.neofetch
Exibe as informações básicas de seu hardware e software como processador, sistema operacional, kernel, resolução, placa de vídeo, memória, etc.man
Serve como um manual do comando. Lá você encontrará a função do comando e todas as opçoes dele.Ex.: man mkdir
history
Exibe um histórico com os comandos que você já digitou.apt
Apt é o comando para gerenciarmos pacotes. Se quisermos instalar um novo recurso, digitamos o nome do programa que queremos instalar. Na minha opinião, muito mais prático que no Windows, onde vem todo aquele instalador te oferecendo Baidu, Opera, e outros programas que você não está interessado.Ex.: apt install samba
Mas caso você não conheça exatamente o nome do programa que precisa, basta procurar utilizando o apt search.
Ex.: apt search apache
Buscando nesse site você consegue encontrar diversas alternativas para programas que utilizamos.
Para desinstalar um programa basta utilizar apt remove ou apt purge.
O comando "apt remove" remove apenas os binários e dependências que não são mais utilizados, mas os arquivos de configuração permanecem.
Já o comando "apt purge" remove tudo, até os arquivos de configuração.
apt autoremove: autoremove é usado para remover pacotes que foram instalados automaticamente para satisfazer dependências de outros pacotes e que já não são mais necessários.
nano
As configurações dos programas no linux são feitos em "arquivos de texto", portanto para editá-los utilizaremos o Nano que nada mais é do que nosso editor de texto e, na minha opinião, mais amigável.Existem diversos outros programas como o Vi, Vim, Emacs, etc.
fdisk [opções]
O fdisk permite gerenciar partições, é obrigatório o uso das seguintes opções:
-C tamanho: especifica o número de cilindros do disco.
-h: exibe informações sobre o fdisk.
-l: lista as partições existentes no disco atual (caso o usuário não especifique o disco).
-s partição: lista o tamanho da partição em blocos.
-v: exibe versão do aplicativo.
df
Utilizado para saber como anda o espaço em disco ou de um diretório específico:Ex.: df -h /var
Ex.: df -h
Sist. Arq. Tam. Usado Disp. Uso% Montado em
udev 486M 0 486M 0% /dev
tmpfs 101M 5,6M 95M 6% /run
/dev/sda1 26G 6,1G 18G 26% /
tmpfs 502M 0 502M 0% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 502M 0 502M 0% /sys/fs/cgroup
/dev/sda2 22G 704M 21G 4% /var
tmpfs 101M 12K 101M 1% /run/user/1000
Obs.: Aqui podemos ver que o /dev/sda1 com o Debian 10 recém-instalado ocupa cerca de 6,1GB em disco.
mount
Para montar unidades de disco, pendrives, etc, muitas vezes é necessário monta-las manualmente. Para isso usamos o comando mount.Ex.: mount /dev/sdc1 /media/pendrive
Com isso ele ira montar o pendrive (/dev/sdc1) na pasta /media/pendrive.
Para saber os discos que o linux está reconhecendo utilize o comando fdisk -l.
Para montar uma pasta compartilhada na rede em um PC Windows, basta usar:
mount -t cifs //192.168.1.100/compartilhamento /media/arquivos -o username=usuario,password=senha
Para que o linux monte sua unidade automaticamente, na inicialização, precisamos acessar o arquivo fstab
sudo nano /etc/fstab
E adicionar o comando de montagem da unidade que precisar:
Ex.:
/dev/sdb2 /media/arquivos ntfs auto,rw,exec,users,dmask=000,fmask=111,nls=utf8 0 0
Reiniciar o PC.
No caso de um compartilhamento Windows, no fstab, usar:
//192.168.1.100/compartilhamento /media/arquivos cifs rw,username=usuario,password=senha 0 0
su
Lembra que comentei que o usuário root é um super-usuário?Utilizando o comando "su", você pode deixar o seu usuário como super-usuário, desde que ele seja autorizado a isso. Basta digitar "su", então o sistema solicitará a senha de root e você estará logado como super-usuário.
Obs.: No Linux Mint, durante a instalação não é solicitado o cadastro da senha de root, então, com seu usuário, digite:
sudo passwd root
E crie a senha de root
sudo
O sudo siginifica "Super User Does", ou seja, fazer como super usuário.É utilizado na hora de fazer tarefas administrativas como instalação de programas, alteração de configurações, alteração de arquivos importantes, etc.
Basta, com seu usuário, colocar o sudo antes do comando:
sudo apt update
Obs.: No Debian o sudo não vem instalado, então precisamos instalar:
apt install sudo
Depois precisamos adicionar o nosso usuário ao grupo sudo:
adduser altair sudo
shutdown, halt, poweroff, reboot
ShutdownO shutdown serve para reiniciar ou desligar o computador.
Ex.:
# shutdown
# shutdown now
# shutdown 13:20
# shutdown -r now #reinicia o sistema agora
# shutdown -p now # faz um poweroff agora
# shutdown -H now # executa o halt agora
# shutdown -r09:35 # reinicia a máquina no horário especificado, no caso, 09:35am
shutdown -c # Cancela o desligamento agendado
Halt
O
halt
instrui o hardware a parar todas as funções de CPU, mais sem
desligar. Você pode usá-lo para deixar o sistema em um estado onde
você pode executar manutenção de baixo nível.
Note
que em alguns casos, ele desliga completamente o sistema. Vamos ver
alguns exemplos de comandos:
Ex.:
# halt # para a máquina
# halt -p # executa um poweroff
# halt --reboot # reinicia a máquina
Power
off
Poweroff
envia
um sinal ACPI com instruções para desligar o sistema. Vejamos
alguns exemplos:Ex.:
# poweroff #poweroff
# poweroff --halt #executa um halt
# poweroff --reboot #reinicia a máquina
Reboot
O
reboot
envia instruções para reiniciar o sistema.Ex.:
# reboot #reinicia a máquina
# reboot --halt #executa um halt
# reboot -p #executa um poweroff
systemctl
O Systemd é um gerenciador de sistema de inicialização que é amplamente usado tornando-se o novo padrão para computadores com Linux.O systemctl serve para reiniciar, parar ou iniciar um serviço.
Para verificar o status de um serviço em seu sistema, você pode usar o comando status:
systemctl status application.service
sudo systemctl enable application.service
Obs.: Isto
irá criar um link simbólico de cópia do sistema do arquivo de serviço
(normalmente em /lib/systemd/system ou /etc/systemd/system) para o local
no disco onde systemd procura por arquivos de inicialização automática
(geralmente /etc/systemd/system/some_target.target.wants
sudo systemctl disable application.service
Para
iniciar um serviço do systemd, executando instruções no arquivo de
unidade do serviço, use o prefixo start no comando
sudo systemctl start application.service
Para parar um serviço em
execução, você pode usar o comando prefixo stop no comando:
sudo systemctl stop application.service
sudo systemctl restart application.service
sudo systemctl reload application.service
pwd
Serve para saber em qual pasta você está.whoami (Who am I)
Serve para saber qual usuário está logado.
&&
É utilizado para executar mais de um comando por vez:Ex.: apt update && apt upgrade
chmod
Define as permissões do arquivo ou diretório.Muitas vezes queremos alterar a permissão do diretório e de todo o seu conteúdo, então utilizamos chmod 777 -R /arquivos (altera a permissão para 777 do diretório "arquivos" localizado na raiz "/" e de todo o seu conteúdo -R redundantemente).
neofetch
Exibe informações do sistema, como versão do kernel, informalções do SO., resolução da tela, interface gráfica, terminal, tema, processador, placa de vídeo, e memória.Permissões de arquivos
Na seção de comandos básicos vimos o comando chmod.Aqui entenderemos como funcionam as permissões no linux.
Ex.:
root@servidor:/# ls -lha
total 72K
drwxr-xr-x 19 root root 4,0K mar 24 17:53 .
drwxr-xr-x 19 root root 4,0K mar 24 17:53 ..
drwxr-xr-x 2 root root 4,0K mar 24 17:53 arquivos
lrwxrwxrwx 1 root root 7 mar 23 14:56 bin -> usr/bin
drwxr-xr-x 3 root root 4,0K mar 24 00:07 boot
drwxr-xr-x 16 root root 3,2K mar 24 12:15 dev
drwxr-xr-x 125 root root 4,0K mar 24 12:36 etc
drwxr-xr-x 3 root root 4,0K mar 23 20:32 home
lrwxrwxrwx 1 root root 7 mar 23 14:56 lib -> usr/lib
drwxr-xr-x 3 root root 4,0K fev 8 09:51 media
drwxr-xr-x 2 root root 4,0K fev 8 09:51 mnt
drwxr-xr-x 2 root root 4,0K fev 8 09:51 opt
dr-xr-xr-x 144 root root 0 mar 25 2020 proc
drwx------ 6 root root 4,0K mar 24 12:15 root
drwxr-xr-x 26 root root 740 mar 24 17:52 run
lrwxrwxrwx 1 root root 8 mar 23 14:56 sbin -> usr/sbin
drwxr-xr-x 2 root root 4,0K fev 8 09:51 srv
dr-xr-xr-x 12 root root 0 mar 24 12:15 sys
drwxrwxrwt 16 root root 4,0K mar 24 15:26 tmp
drwxr-xr-x 12 root root 4,0K mar 23 15:01 usr
drwxr-xr-x 12 root root 4,0K mar 23 15:01 var
Vamos analisar a linha em negrito:
drwxr-xr-x 2 root root 4,0K mar 24 17:53 arquivos
O diretório "arquivos", possui 4Kbytes, foi alterado em 24 de março às 17:53, seu dono é o root e o grupo do criador é root e possui as permissões:
drwxr-xr-x
O primeiro caractere "d" indica o tipo do arquivo, neste caso "d" indica que é um diretório.
Cada arquivo ou pasta tem 3 permissões.
(Usuário Dono) (Grupo Dono) (Outros)
Usuário dono: é o proprietário do arquivo;
Grupo Dono: é um grupo, que pode conter vários usuários;
Outros: se encaixam os outros usuários em geral.
As permissões vão aparecer assim:
(r) Leitura
(w) Escrita
(x) Execução
Como as permissões são divididas em 3, irá aparecer assim:
(_ _ _) (_ _ _) (_ _ _), ou seja, (rwx)(rwx)(rwx)
Caso não haja todas as permissões, poderá aparecer incompleto:
rwxr-xr-x, ou seja, neste exemplo:
Dono do arquivo tem permissão de Ler, Escrever e Executar (rwx);
Grupo tem permissão de Ler e Executar (r-x);
Outros tem permissão de Ler e Executar. (r-x);
Textual
Usamos letras antes das permissões (chmod é o comando para modificar permissões de arquivos):chmod u+rw, g+w, o-rwx teste.txt
Onde:
U - representa usuário;
G - representa grupo;
O - representa outros.
Octal
O modo Octal tem a mesma função de definir permissões, só que em números. Exemplo:$ chmod 620 teste.txt
(comando) (permissão) (arquivo)
Tipo de permissão Octal:
4 - Indica permissão de leitura;
2 - Permissão de escrita;
1 - Indica permissão de execução;
0 - Indica sem permissões.
Agora é simples, é só somar e ditar as permissões, exemplo:
4 + 2 + 1 = 7 (permissão de rwx)
4 + 2 = 6 (permissão rw)
4 = (permissão r)
Exemplo: A permissão 610 indica que o arquivo tem permissão:
6 para dono do arquivo
1 para grupo e
0 para outros
Ou seja
dono= (rw_) Grupo=(_ _ x) Outros=(_ _ _)
Fonte:
https://guialinux.uniriotec.br/
https://www.youtube.com/watch?v=Vd-CEeoonIM
https://www.vivaolinux.com.br/artigo/Entendendo-as-permissoes-no-Linux
https://canaltech.com.br/linux/entendendo-a-estrutura-de-diretorios-do-linux/
https://www.youtube.com/watch?v=90UseHX4-ns
https://linuxconfig.org/how-to-install-the-latest-amd-drivers-on-debian-10-buster
https://sempreupdate.com.br/como-usar-o-systemctl-para-gerenciar-servicos-do-systemd/
https://sempreupdate.com.br/entendendo-os-comandos-de-shutdown-halt-poweroff-e-reboot-no-linux/
https://www.youtube.com/watch?v=Vd-CEeoonIM
https://www.vivaolinux.com.br/artigo/Entendendo-as-permissoes-no-Linux
https://canaltech.com.br/linux/entendendo-a-estrutura-de-diretorios-do-linux/
https://www.youtube.com/watch?v=90UseHX4-ns
https://linuxconfig.org/how-to-install-the-latest-amd-drivers-on-debian-10-buster
https://sempreupdate.com.br/como-usar-o-systemctl-para-gerenciar-servicos-do-systemd/
https://sempreupdate.com.br/entendendo-os-comandos-de-shutdown-halt-poweroff-e-reboot-no-linux/