Comandos Básicos no Shell Linux

De Wiki Projeto Root
Ir para navegação Ir para pesquisar

Sobre

Olá! Visitante, reunimos aqui, uma listagem de alguns comandos que podem ajudar você a administrar servidores e desktop com Sistemas Operacionais (SO) GNU-Linux. Como esta lista é grande, deixamos apenas o que achamos mais relevantes para pessoas que estão começando a se aventurar com sistemas GNU.


Vídeo Parte 01

Link: https://youtu.be/isMkuY9N3fc

1- su - SuperUsuario (para alterar para o usuário root)

2- whoami - para ver quem e o usuário logado

3- ls - Lista arquivos e diretórios

Exemplos:

  ls -l -> mostra com detalhes
  
  ls -la -> mostra com detalhes e também arquivos escondidos (ocultos)
  
  ls -lR -> mostra com detalhes recursivamente, do diretório principal pra baixo
  
  ls -lt -> mostra com detalhes decrescente
  
  ls -ltr -> mostra com detalhes invertendo a operação realizada
  
  ls -lh -> mostra com detalhes e o tamanho dos arquivos e mostrado em K, M, G, T
  
  ls -l *.conf -> mostra com detalhes arquivos com extensão .conf
  
  ls -ld etc -> mostra com detalhes o diretório especificado no comando


4- cd - entra em diretórios

Exemplos:

  cd ~user -> vai pra pasta do usuário
  
  cd / -> raiz
  
  cd . -> diretório corrente
  
  cd ~ -> vai para home do usuário corrente
  
  cd -> vai para home do usuário corrente
  

5- pwd - mostra a localização atual nas pastas

6- mkdir - cria pastas

Exemplo:

  mkdir -p /home/usuário/teste
  *cria a pasta teste dentro da pasta home do usuário
  

7- rm - apaga arquivos ou pastas

Exemplos:

  rm teste.txt (arquivo)
  rm -rf /home/usuário/teste (pasta/subpasta)


8- touch - cria arquivo em branco

9- cat - faz a leitura no shell do arquivo

10- echo - printa no shell ou em arquivo um texto ou comando


Exemplos:

  echo 1 (printa 1 no shell)
  
  echo "1" > /home/usuário/teste.txt ( adiciona na primeira linha 1, apagando todo o resto do conteudo )
  
  echo "2" >> /home/usuário/teste.txt ( adiciona na ultima linha 2, mantendo o conteudo anterior)
  

11- head - faz a leitura das primeiras linhas de um arquivo

Exemplos:

  head /home/usuário/teste.txt (lê as primeiras 11 linhas de um arquivo)
  head -n1 /home/usuário/teste.txt (lê a primeira linha de um arquivo)
  

12- tail - faz a leitura das ultimas linhas de um arquivo

Exemplos:

   tail -n10 /home/usuário/teste.txt (lê as ultimas 10 linhas do arquivo)
   tail -f /var/log/syslog (fica monitorando a saída de log, exibindo em tempo real as ultimas linhas)
   

13- cp - copia arquivos/pastas/subpastas

Exemplos:

  cp /home/usuário/teste.txt /home/usuário/novo_teste.txt
  cp -r /home/usuário/ /tmp/ (copia de modo recursivo -r)
  cp -p /home/usuário/ /tmp/ (copia de modo a manter as permissões de arquivos)


14- mv - move arquivos ou pastas

  mv /home/usuário/teste.txt /home/usuário/1.txt (move o conteúdo de teste.txt para 1.txt)
  mv /home/usuário/ /tmp/ (move a pasta usuário para tmp)
  

15- scp - cp utilizando o ssh (para copiar arquivos ou pastas entre computadores distintos conectados em rede ou internet)

Exemplos:

  scp /home/usuário/teste.txt root@192.168.0.10:/home/user/ (copia da maquina local para pasta user de uma maquina remota)


16- man - manual

Exemplos:

  man ls (exibe manual do ls)
  man cp (exibe manual do cp)
  man mv (exibe manual do mv)

Vídeo Parte 02

Link: https://youtu.be/VR8pjDDsWC4


Sistemas de Arquivos:

  • FAT-16 (Máximo de tamanho de arquivos 2GB)
  • FAT-32 (Máximo de tamanho de arquivo 4GB)
  • EXT2 (Máximo de tamanho de arquivos 2GB)
  • EXT3 (Rápido e uso de Journing e máximo de tamanho de arquivos 2TB)
  • RaiserFS (Tolerância a falha *mas está descontinuado)
  • NTFS (Padrão após o WindowsXP)
  • XFS (Permite aumentar partições em funcionamento)
  • JFS (Melhor desempenho, *para desktop não é recomendado)
  • EXT4 (Melhor desempenho e máximo de tamanho de arquivos 16 TB)
  • SWAP (Memória em arquivo/partição)


Comandos:

whoami: mostra quem está logado

exemplo:

  whoami


fdisk: particionamento de discos

parâmetros

-l: exibe informações sobre os discos e as partições /dev/sdXX: utiliza o fdisk no caminho especificado para fazer o particionamento


exemplos:

  fdisk -l
  fdisk /dev/sdb
  
  Dentro fdisk
  m: ajuda
  n: criar nova partição
  p: exibe tabela de partição
  d: deleta partição
  w: aplicar mudanças e sair


mkfs: software que prepara (formata a partição)

exemplos:

  mkfs.ext4 /dev/sdb1
  mkfs.xfs /dev/sdb2


mount: software que faz a montagem (disponibilização) de devices

exemplos:

   mount (exibe os pontos de montagens no sistema)
   mount -t ext4 /dev/sdb1 /mnt/hd_01
   mount -t xfs /dev/sdb2 /mnt/hd_02


df: comando que exibe os pontos de montagem

parâmetros

-h exibe em formato humano (melhor entendível)

exemplos:

  df
  df -h


fstab ( arquivo que faz a montagem automática no boot )


exemplo:

   nano /etc/fstab
   
   # Dispositivo    ponto de montagem    sistema de arquivo    opções        verificação de integridade
   /dev/sdb1            /mnt/hd_01             ext4           defaults            *            *

Vídeo Parte 03

Link: https://youtu.be/eYUWzOTOcrw


Configurando o FSTAB

O FSTAB (File System Table) localizado em /etc. Sem dúvidas, é um dos arquivos de configuração mais importantes do GNU/Linux. O arquivo é lido na inicialização do sistema e é quem diz ao sistema o que montar, onde montar e os parâmetros de montagem.


   nano /etc/fstab


Modelo das informações

  #Dispositivo(Device) Ponto de montagem(/mnt) sistema de arquivo(ext3,ext4,etc..) opções(utilizada para infos avançadas) verificação de integridade(check disk)
  
  UUID=6ee6502d-9078-4f59-b843-0f56af2871b6  /mnt/HD_01   ext4   defaults 0   0
  UUID=3bc4806f-4056-1d56-c983-0d54a7f631d5  /mnt/HD_02   xfs    defaults 0   0


  • Parâmetros de opções mencionadas no vídeo:

noexec: diz ao disco ou partição que este não tem permissão de execução.

noatime: diz ao disco ou partição que não são considerados os valores de data e hora no momento da gravação de informação.


BLKID(UUID) do Disco

  blkid /dev/sdb
  Exemplo: UUID="6ee6503d-8078-4f59-b943-0f56af2771b6" TYPE="ext4" PARTUUID="91a56830-02"


Comando Mount/Umount

  1. Comando Mount: quando utilizado sozinho exibe os pontos de montagens já realizados, porém quando se fornece o comando seguido de um dispositivo, o tipo de sistema e um caminho ele faz a montagem.
  2. Comando Umount: utilizado para fazer o processo inverso, ou seja, desmonta os devices anteriormente montados, diferentemente do mount, o umount é utilizado apenas o comando seguido da unidade a ser desmontada, sem a necessidade de parâmetros.


Exemplo:

  mount 
  mount -t xfs /dev/sdb1 /mnt/HD_02
  umont /dev/HD_02 


Verificação de integridade de discos (FSCK/XFS_Check)

Utilizados para verificar se existem inconsistências nos discos, geralmente quando um servidor ou desktop com Linux não inicializa é preciso verificar os discos, estes são dois dos comandos primordiais para tal realização.


Exemplos:

  fsck.ext4 /dev/sdb1
  xfs_check /dev/sdb2
  xfs_repair /dev/sdb2


Agendando Tarefas na Cron (crontab)

O crontab, é um programa do Unix que edita o arquivo onde são especificados os comandos a serem executados e a hora e dia de execução pelo cron, um serviço que executa comandos agendados nos sistemas operacionais do tipo Unix. O cron se encarregará de verificar a hora e determinar se existe ou não algum programa a ser rodado. Caso exista ele o rodará na hora e data solicitada.


  1. Listando tarefas já agendadas

crontab -l


  1. Editando as tarefas

crontab -e

Exemplo de agendamento:

   [minutos] [horas] [dias do mês] [mês] [dias da semana]    [comando]
   
   28          01      *              *     *               ls /etc/ > /home/agenda.txt    
   
   29          01      *              *     *               mv /home/agenda.txt /home/agenda2.txt    


  • Monitorar atividades com o watch

Exemplo:

   watch -n 1 ls /home
  • Manual do Cron
  man crontab


Listar cron de todos os usuários

  • Lista todos os usuários e suas tarefas agendadas no sistema, mostra juntamente os comentários, caso seja necessário para entender o agendamento.
ssh root@IP-SERVER "bash -c 'for user in \$(cut -f1 -d: /etc/passwd); do echo \"=== Usuário: \$user ===\"; crontab -u \$user -l 2>/dev/null; done'"


Exemplo de Saída:

=== Usuário: root ===
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
# @reboot /bin/ajustes.sh

# Faz Backup das configurações do PVE (/etc/pve/)
00 23 *  *  * /bin/backup-pve.sh
=== Usuário: daemon ===
=== Usuário: bin ===
=== Usuário: sys ===
=== Usuário: sync ===
=== Usuário: games ===
=== Usuário: man ===
=== Usuário: lp ===
=== Usuário: mail ===
=== Usuário: news ===
=== Usuário: uucp ===
=== Usuário: proxy ===
=== Usuário: www-data ===
=== Usuário: backup ===
=== Usuário: list ===
=== Usuário: irc ===
=== Usuário: _apt ===
=== Usuário: nobody ===
=== Usuário: systemd-network ===
=== Usuário: _chrony ===
=== Usuário: dhcpcd ===
=== Usuário: messagebus ===
=== Usuário: tcpdump ===
=== Usuário: sshd ===
=== Usuário: _rpc ===
=== Usuário: statd ===
=== Usuário: postfix ===
=== Usuário: frr ===
=== Usuário: tss ===
=== Usuário: ceph ===
=== Usuário: dnsmasq ===
  • Lista apenas as tarefas agendadas dos usuários que tem tarefas agendadas, ignorando os usuários que não tem e também ignora os comentários.
ssh root@IP-Server "bash -c 'for user in \$(cut -f1 -d: /etc/passwd); do cron_out=\$(crontab -u \$user -l 2>/dev/null | grep -v \"^#\"); if [ ! -z \"\$cron_out\" ]; then echo -e \"\n=== Usuário: \$user ===\"; echo \"\$cron_out\"; fi; done'"

Exemplo de Saída:

=== Usuário: root ===

00 23 *  *  * /bin/backup-pve.sh

Comando SSH

Secure Shell (SSH) é um protocolo de rede criptográfico para operação de serviços de rede de forma segura sobre uma rede insegura. A melhor aplicação de exemplo conhecido é para login remoto a sistemas de computadores pelos usuários. O SSH fornece um canal seguro sobre uma rede insegura em uma arquitetura cliente-servidor, conectando uma aplicação cliente SSH com um servidor SSH. Aplicações comuns incluem login em linha de comando remoto e execução remota de comandos, mas qualquer serviço de rede pode ser protegido com SSH. A especificação do protocolo distingue entre duas versões maiores, referidas como SSH-1 e SSH-2. Por padrão é utilizada a porta TCP 22, pondendo ser modificada para qualquer porta definida pelo administrador, para se conectar em porta fora do padrão basta adicionar o parâmetro -p (PORTA) seguido da nova porta.


  1. Instalar o server de ssh
   apt-get install openssh-server
  1. Para acessar máquinas com o ssh-server


Exemplos:

  ssh usuario@ip_do_cliente/servidor
  ssh diegocosta@192.168.0.107
  ssh root@192.168.0.107 -p 2222