Sistemas Operacionais

Principais Comandos Linux

29/07/2025

Comandos Bash

Índice

Sobre

Esse repositório tem por objetivo abordar os principais comandos bash oriundos do Unix.
Bem como, as diferentes abordagens e manipulação no sistema Linux.

Comandos de Manipulação de Diretórios

# Lista os arquivos do diretório atual
ls

# Lista os arquivos do diretório atual
ls .

# Lista o diretório anterior
ls ..

# Lista os arquivos do diretório /bin e /sbin
ls /bin /sbin

# Exibição de todos arquivos até os ocultos
ls -al

# Não classifica a listagem
ls -f

# Usa a identificação de usuário e grupo numérica
ls -n

# Lista diretórios e sub-diretórios recursivamente
ls -R

# Lista o diretório nativo - root
ls ~
ls /root

# Lista longa
ls -l

# Administra a pagina de vídeo juntando com o comando ls através do | (pipe)
ls -l | more

# Lista Arquivos ocultos (identificado na frente do diretório e o arquivo um ".")
ls -a

# Lista e adiciona simbolo para identificar (diretório, arquivo e link)
ls -F

# Combinando comandos -a e -F
ls -Fa

# Listar por data e time
ls -t

# Listar por data e time com os valores na tela
ls -lt

# Lista os arquivos em uma linha
ls -1

# Entra no Diretório home
cd home

# Vai para o diretório HOME do usuário
cd ~

# Retornará ao diretório raíz
cd /

# Retornará ao diretório anteriormente acessado
cd -

# Sobe um diretório
cd ..

# Estando no Diretório home, acessa diretamente exe2
cd /home/exe/exe2

# Mostra o diretório atual
pwd

# Cria um diretório (No Windows seria chamado de pasta)
mkdir diretorio_novo

# Criar varios diretórios um dentro do outro automaticamente
mkdir -p aulas/aula01/teoria

# Remove um diretório (deve estar vazio)
rmdir dudu

# Exibe uma arvore com os diretórios subsequentes
tree

Comandos de Manipulação de Arquivos


# Criar um arquivo vazio
touch nome_arquivo

# Criando dois arquivos
touch nome_arquivo1 nome_arquivo2

# Apaga arquivos
rm nome_arquivo

# Pergunta antes de remover (geralmente ativado por padrão)
rm -i

# Mostra os arquivos na medida que são removidos
rm -v

# Usado para remover diretórios e seus conteúdos recursivamente
rm -r

# Força a remoção dos arquivos sem perguntar
rm -f

# Apaga o arquivo teste.txt no diretório atual
rm teste.txt

# Apaga todos os arquivos do diretório atual que terminam com .txt
rm *.txt

# Copia arquivos
cp arquivo_origem arquivo_destino

# Pergunta antes de substituir um arquivo existente
cp -i

# Não pergunta, substitui todos os arquivos caso já exista
cp -f

# Copia o arquivo teste.txt para teste1.txt
cp teste.txt teste1.txt

# Copia o arquivo teste.txt para dentro do diretório /tmp
cp teste.txt /tmp

# Copia todos os arquivos do diretório atual para /tmp
cp * /tmp

# Copia todos os arquivos e o diretório /bin para /tmp recursivamente
cp -R /bin /tmp

# Move ou renomeia arquivos e diretórios
mv origem destino

# Substitui o arquivo de destino sem perguntar
mv -f

# Pergunta antes de substituir. É o padrão
mv -i

# Mostra os arquivos que estão sendo movidos
mv -v

# Muda o nome do arquivo teste.txt para teste1.txt
mv teste.txt teste1.txt

# Move o arquivo teste.txt para /tmp
mv teste.txt /tmp

# Mostra o conteúdo de um arquivo de texto
cat Exemplo.txt

# Mostra o número das linhas
cat -n Exemplo.txt

# Mostra o conteúdo de forma inversa (de baixo para cima)
tac Exemplo.txt

Metacaracteres (Wildcards)

? : Substitui apenas um caractere. ls ?texto

” [ ]”: Pesquisa um conjunto de caracteres. ls [abc]texto ou ls [a-z][0-9]texto

{}: Pesquisa um conjunto de strings. ls {ab,cd,ef}texto

Comandos Diversos


# Mostra o espaço livre/ocupado de cada partição
df

# Mostra o espaço em formato legível (Human-readable)
df -h

# Mostra os tamanhos em Megabytes
df -m

# Mostra o tipo de sistema de arquivos
df -T

# Mostra detalhes sobre a utilização da memória RAM
free

# Mostra o resultado em Megabytes
free -m

# Mostra uma linha contendo o total
free -t

# Procura por um texto dentro de um arquivo. Ex: grep "capitulo" texto.txt
grep "texto" arquivo.txt

# Exibe 2 linhas antes (-B) e 2 depois (-A) da ocorrência
grep "capitulo" texto.txt -A 2 -B 2

# Mostra o número de linhas junto com o conteúdo de um arquivo
nl teste.txt

# Mostra as linhas finais de um arquivo texto
tail teste.txt

# Mostra as 10 ultimas linhas do arquivo teste.txt
tail -n 10 teste.txt

# Muda a data e hora de um arquivo ou cria um arquivo caso não exista
touch teste.txt

# Muda somente a data e hora do acesso ao arquivo
touch -a teste.txt

# Muda somente a data e hora da modificação
touch -m

# Altera da data e hora do arquivo para 01/10 e 12:30
touch -t 10011230 teste

# Exibe informações do kernel
uname -a

# Exibe informações da CPU
cat /proc/cpuinfo

# Exibe informações da memória
cat /proc/meminfo

# Mostra mensagens na tela (útil em scripts)
echo "Minha mensagem"

# Mostra o tempo de execução do sistema desde que foi ligado
uptime

# Reinicia o computador
reboot

# Desliga o computador de forma programável
shutdown

# Faz o sistema ser reiniciado após 20 minutos
shutdown -r 20

# Cancela a execução do shutdown
shutdown -c

# Desligar o computador imediatamente
shutdown -h now

# Reinicia o computador imediatamente
shutdown -r now

# Interrompe o processo em execução no terminal
ctrl+C

Comandos de Rede


# Verificar seu endereço IP e configurações de rede
ifconfig

# Exibe a configuração de uma placa de rede eth0
ifconfig eth0

# Ativa uma interface ‘eth0’
ifup eth0

# Desabilita uma interface 'eth0'
ifdown eth0

# Configura um IP estático para a interface
ifconfig eth0 192.168.0.1 netmask 255.255.255.0

# Ativa a interface ‘eth0’ em modo DHCP
dhclient eth0

# Exibe tabela de rota
route -n

# Descobrir o endereço IP de um host
host [www.google.com](https://www.google.com)

# Exibe a configuração de uma placa de rede sem fio
iwconfig wlan0

# Exibe as redes sem fio disponíveis
iwlist scan

# Mostra quem está atualmente conectado no computador
who

# Mostra o horário do último boot do sistema
who -b

# Mostra o total de usuários conectados
who -q

# Mostra o nível de execução atual do sistema
who -r

# Mostra o cabeçalho das colunas
who -H

# Mostra o nome do usuário atual
whoami

# Mostra o nome do domínio de seu sistema
dnsdomainname

# Mostra ou muda o nome de seu computador na rede
hostname

# Mostra na tela o caminho percorrido entre os Gateways da rede
traceroute www.debian.org

# Mostra endereços numericamente ao invés de usar resolução DNS
traceroute -n www.debian.org

# Similar ao traceroute
tracepath [www.google.com](https://www.google.com)

# Mostra conexões de rede, tabela de roteamento, estatísticas...
netstat -a

# Estatísticas da interface de rede
netstat -i

# Lista conexões TCP
netstat -t

# Lista conexões UDP
netstat -u

# Envia uma mensagem para todos os terminais (somente root)
wall /tmp/mensagem.txt
echo "Mensagem de teste" | wall
Acessos Remoto com SSH
Bash

# Instalação do cliente SSH (Debian/Ubuntu)
apt-get install openssh-client

# Instalação do servidor SSH (Debian/Ubuntu)
apt-get install openssh-server

# Conectar a um servidor remoto
ssh usuario@192.168.1.20

# Conectar por uma porta especificada
ssh -p 2222 usuario@ip_remoto

Comandos para Manipulação de Contas

# Adiciona um usuário ao sistema de forma interativa
adduser fernando

# Adiciona um grupo ao sistema
addgroup usuarios

# Apaga um usuário do sistema
userdel fernando

# Força a remoção do usuário
userdel -f fernando

# Remove o diretório HOME do usuário junto com o usuário
userdel -r fernando

# Mostra os grupos que o usuário pertence
groups fernando

# Apaga um grupo do sistema
groupdel usuarios2

# Modifica a senha de um usuário
passwd fernando

# Especifica o número máximo de dias que a senha poderá ser usada
passwd -x 90 fernando

# Mínimo de dias para a senha ser alterada
passwd -n 10 fernando

# Bloqueia a conta do usuário
passwd -l fernando

# Desbloqueia a conta de um usuário
passwd -u fernando

Arquivos Compactados
- .bz2: Arquivo compactado com o bzip2


# Comprime um arquivo (substitui o original por arquivo.bz2)
bzip2 arquivo

# Descompacta um arquivo .bz2
bunzip2 arquivo.bz2

# Comprime um arquivo (substitui o original por arquivo.gz)
gzip arquivo

# Descompacta um arquivo .gz
gunzip arquivo.gz

# Cria um arquivo .tar contendo ‘arq1’, ‘ arq2′ e ‘pasta1’
tar -cvf arquivo.tar arq1 arq2 pasta1

# Extrai um arquivo .tar
tar -xvf arquivo.tar
Repositórios
Bash

# Excluir pacotes quebrados
sudo apt-get install -f
sudo dpkg --configure -a

# Excluir arquivos que não estão sendo utilizados
sudo apt-get autoclean
sudo apt autoremove

# Verificar se um pacote específico está instalado
dpkg -l | grep nome_pacote

# Para saber quantos pacotes estão instalados
dpkg -l | wc -l

# Listar pacotes Instalados
sudo apt list --installed

# Atualiza a lista de pacotes do repositório
apt update

# Atualiza seus pacotes instalados para as versões mais novas
apt upgrade

# Atualiza sua Distribuição (kernel, etc)
apt dist-upgrade

# Exibe a lista de repositórios configurados
cat /etc/apt/sources.list

# Remove um pacote
apt remove nome-pacote

Pacotes Redhat, Fedora, CentOS

# Baixa e instala um pacote rpm resolvendo dependências
yum install nome-pacote

# Instala um RPM local e tenta resolver dependências com repositórios
yum localinstall nome-pacote.rpm

# Atualiza todos os pacotes instalados no sistema
yum update

# Remove um pacote RPM
yum remove nome-pacote

# Lista todos os pacotes instalados no sistema
yum list

# Encontra um pacote no repositório
yum search nome-pacote

# Limpa o cache de pacotes baixados
yum clean packages

# Remove os arquivos de cache e cabeçalhos de pacotes
yum clean all

Instalação

Estrutura de diretórios e partições comuns na instalação do Linux.


$ tree
 .
 ├── Instalação
 │   ├── Swap
 │   ├── /usr (via NFS)
 │   └── Limitação 1024 cilindros
 ├── Gerenciador de Boot
 │   └── LILO
 │   │   ├── /etc/lilo.conf
 │   │   └── lilo
 │   └── GRUB
 │       ├── /boot/grub/menu.lst
 │       └── /sbin/grub-install
 │
 ├── Partições Comuns
 │   ├── /var
 │   ├── /home
 │   ├── /boot
 │   ├── /(raiz)
 │   └── /tmp
 └── MBR (Master Boot Record)

Comandos de Manipulação de Diretórios

# Lista os arquivos do diretório atual
ls

# Lista os arquivos do diretório atual
ls .

# Lista o diretório anterior
ls ..

# Lista os arquivos do diretório /bin e /sbin
ls /bin /sbin

# Exibição de todos arquivos até os ocultos
ls -al

# Não classifica a listagem
ls -f

# Usa a identificação de usuário e grupo numérica
ls -n

# Lista diretórios e sub-diretórios recursivamente
ls -R

# Lista o diretório nativo - root
ls ~
ls /root

# Lista longa
ls -l

# Administra a pagina de vídeo juntando com o comando ls através do | (pipe)
ls -l | more

# Lista Arquivos ocultos (identificado na frente do diretório e o arquivo um ".")
ls -a

# Lista e adiciona simbolo para identificar (diretório, arquivo e link)
ls -F

# Combinando comandos -a e -F
ls -Fa

# Listar por data e time
ls -t

# Listar por data e time com os valores na tela
ls -lt

# Lista os arquivos em uma linha
ls -1

# Entra no Diretório home
cd home

# Vai para o diretório HOME do usuário
cd ~

# Retornará ao diretório raíz
cd /

# Retornará ao diretório anteriormente acessado
cd -

# Sobe um diretório
cd ..

# Estando no Diretório home, acessa diretamente exe2
cd /home/exe/exe2

# Mostra o diretório atual
pwd

# Cria um diretório (No Windows seria chamado de pasta)
mkdir diretorio_novo

# Criar varios diretórios um dentro do outro automaticamente
mkdir -p aulas/aula01/teoria

# Remove um diretório (deve estar vazio)
rmdir dudu

# Exibe uma arvore com os diretórios subsequentes
tree
Comandos de Manipulação de Arquivos
Bash

# Criar um arquivo vazio
touch nome_arquivo

# Criando dois arquivos
touch nome_arquivo1 nome_arquivo2

# Apaga arquivos
rm nome_arquivo

# Pergunta antes de remover (geralmente ativado por padrão)
rm -i

# Mostra os arquivos na medida que são removidos
rm -v

# Usado para remover diretórios e seus conteúdos recursivamente
rm -r

# Força a remoção dos arquivos sem perguntar
rm -f

# Apaga o arquivo teste.txt no diretório atual
rm teste.txt

# Apaga todos os arquivos do diretório atual que terminam com .txt
rm *.txt

# Copia arquivos
cp arquivo_origem arquivo_destino

# Pergunta antes de substituir um arquivo existente
cp -i

# Não pergunta, substitui todos os arquivos caso já exista
cp -f

# Copia o arquivo teste.txt para teste1.txt
cp teste.txt teste1.txt

# Copia o arquivo teste.txt para dentro do diretório /tmp
cp teste.txt /tmp

# Copia todos os arquivos do diretório atual para /tmp
cp * /tmp

# Copia todos os arquivos e o diretório /bin para /tmp recursivamente
cp -R /bin /tmp

# Move ou renomeia arquivos e diretórios
mv origem destino

# Substitui o arquivo de destino sem perguntar
mv -f

# Pergunta antes de substituir. É o padrão
mv -i

# Mostra os arquivos que estão sendo movidos
mv -v

# Muda o nome do arquivo teste.txt para teste1.txt
mv teste.txt teste1.txt

# Move o arquivo teste.txt para /tmp
mv teste.txt /tmp

# Mostra o conteúdo de um arquivo de texto
cat Exemplo.txt

# Mostra o número das linhas
cat -n Exemplo.txt

# Mostra o conteúdo de forma inversa (de baixo para cima)
tac Exemplo.txt
Metacaracteres (Wildcards)
* : Substitui um conjunto de caracteres (prefixo ou sufixo). ls t*o

? : Substitui apenas um caractere. ls ?texto

[]: Pesquisa um conjunto de caracteres. ls [abc]texto ou ls [a-z][0-9]texto

{}: Pesquisa um conjunto de strings. ls {ab,cd,ef}texto

Comandos Diversos
Bash

# Mostra o espaço livre/ocupado de cada partição
df

# Mostra o espaço em formato legível (Human-readable)
df -h

# Mostra os tamanhos em Megabytes
df -m

# Mostra o tipo de sistema de arquivos
df -T

# Mostra detalhes sobre a utilização da memória RAM
free

# Mostra o resultado em Megabytes
free -m

# Mostra uma linha contendo o total
free -t

# Procura por um texto dentro de um arquivo. Ex: grep "capitulo" texto.txt
grep "texto" arquivo.txt

# Exibe 2 linhas antes (-B) e 2 depois (-A) da ocorrência
grep "capitulo" texto.txt -A 2 -B 2

# Mostra o número de linhas junto com o conteúdo de um arquivo
nl teste.txt

# Mostra as linhas finais de um arquivo texto
tail teste.txt

# Mostra as 10 ultimas linhas do arquivo teste.txt
tail -n 10 teste.txt

# Muda a data e hora de um arquivo ou cria um arquivo caso não exista
touch teste.txt

# Muda somente a data e hora do acesso ao arquivo
touch -a teste.txt

# Muda somente a data e hora da modificação
touch -m

# Altera da data e hora do arquivo para 01/10 e 12:30
touch -t 10011230 teste

# Exibe informações do kernel
uname -a

# Exibe informações da CPU
cat /proc/cpuinfo

# Exibe informações da memória
cat /proc/meminfo

# Mostra mensagens na tela (útil em scripts)
echo "Minha mensagem"

# Mostra o tempo de execução do sistema desde que foi ligado
uptime

# Reinicia o computador
reboot

# Desliga o computador de forma programável
shutdown

# Faz o sistema ser reiniciado após 20 minutos
shutdown -r 20

# Cancela a execução do shutdown
shutdown -c

# Desligar o computador imediatamente
shutdown -h now

# Reinicia o computador imediatamente
shutdown -r now

# Interrompe o processo em execução no terminal
ctrl+C
Comandos de Rede
Bash

# Verificar seu endereço IP e configurações de rede
ifconfig

# Exibe a configuração de uma placa de rede eth0
ifconfig eth0

# Ativa uma interface ‘eth0’
ifup eth0

# Desabilita uma interface 'eth0'
ifdown eth0

# Configura um IP estático para a interface
ifconfig eth0 192.168.0.1 netmask 255.255.255.0

# Ativa a interface ‘eth0’ em modo DHCP
dhclient eth0

# Exibe tabela de rota
route -n

# Descobrir o endereço IP de um host
host [www.google.com](https://www.google.com)

# Exibe a configuração de uma placa de rede sem fio
iwconfig wlan0

# Exibe as redes sem fio disponíveis
iwlist scan

# Mostra quem está atualmente conectado no computador
who

# Mostra o horário do último boot do sistema
who -b

# Mostra o total de usuários conectados
who -q

# Mostra o nível de execução atual do sistema
who -r

# Mostra o cabeçalho das colunas
who -H

# Mostra o nome do usuário atual
whoami

# Mostra o nome do domínio de seu sistema
dnsdomainname

# Mostra ou muda o nome de seu computador na rede
hostname

# Mostra na tela o caminho percorrido entre os Gateways da rede
traceroute www.debian.org

# Mostra endereços numericamente ao invés de usar resolução DNS
traceroute -n www.debian.org

# Similar ao traceroute
tracepath [www.google.com](https://www.google.com)

# Mostra conexões de rede, tabela de roteamento, estatísticas...
netstat -a

# Estatísticas da interface de rede
netstat -i

# Lista conexões TCP
netstat -t

# Lista conexões UDP
netstat -u

# Envia uma mensagem para todos os terminais (somente root)
wall /tmp/mensagem.txt
echo "Mensagem de teste" | wall
Acessos Remoto com SSH
Bash

# Instalação do cliente SSH (Debian/Ubuntu)
apt-get install openssh-client

# Instalação do servidor SSH (Debian/Ubuntu)
apt-get install openssh-server

# Conectar a um servidor remoto
ssh usuario@192.168.1.20

# Conectar por uma porta especificada
ssh -p 2222 usuario@ip_remoto
Comandos para Manipulação de Contas
Bash

# Adiciona um usuário ao sistema de forma interativa
adduser fernando

# Adiciona um grupo ao sistema
addgroup usuarios

# Apaga um usuário do sistema
userdel fernando

# Força a remoção do usuário
userdel -f fernando

# Remove o diretório HOME do usuário junto com o usuário
userdel -r fernando

# Mostra os grupos que o usuário pertence
groups fernando

# Apaga um grupo do sistema
groupdel usuarios2

# Modifica a senha de um usuário
passwd fernando

# Especifica o número máximo de dias que a senha poderá ser usada
passwd -x 90 fernando

# Mínimo de dias para a senha ser alterada
passwd -n 10 fernando

# Bloqueia a conta do usuário
passwd -l fernando

# Desbloqueia a conta de um usuário
passwd -u fernando
Arquivos Compactados
.bz2: Arquivo compactado com o bzip2

.gz: Arquivo compactado com o gzip

.tar: Arquivo que armazena vários arquivos em um único (não compacta, apenas agrupa)

Bash

# Comprime um arquivo (substitui o original por arquivo.bz2)
bzip2 arquivo

# Descompacta um arquivo .bz2
bunzip2 arquivo.bz2

# Comprime um arquivo (substitui o original por arquivo.gz)
gzip arquivo

# Descompacta um arquivo .gz
gunzip arquivo.gz

# Cria um arquivo .tar contendo ‘arq1’, ‘ arq2′ e ‘pasta1’
tar -cvf arquivo.tar arq1 arq2 pasta1

# Extrai um arquivo .tar
tar -xvf arquivo.tar
Repositórios
Bash

# Excluir pacotes quebrados
sudo apt-get install -f
sudo dpkg --configure -a

# Excluir arquivos que não estão sendo utilizados
sudo apt-get autoclean
sudo apt autoremove

# Verificar se um pacote específico está instalado
dpkg -l | grep nome_pacote

# Para saber quantos pacotes estão instalados
dpkg -l | wc -l

# Listar pacotes Instalados
sudo apt list --installed

# Atualiza a lista de pacotes do repositório
apt update

# Atualiza seus pacotes instalados para as versões mais novas
apt upgrade

# Atualiza sua Distribuição (kernel, etc)
apt dist-upgrade

# Exibe a lista de repositórios configurados
cat /etc/apt/sources.list

# Remove um pacote
apt remove nome-pacote
Pacotes Redhat, Fedora, CentOS
Bash

# Baixa e instala um pacote rpm resolvendo dependências
yum install nome-pacote

# Instala um RPM local e tenta resolver dependências com repositórios
yum localinstall nome-pacote.rpm

# Atualiza todos os pacotes instalados no sistema
yum update

# Remove um pacote RPM
yum remove nome-pacote

# Lista todos os pacotes instalados no sistema
yum list

# Encontra um pacote no repositório
yum search nome-pacote

# Limpa o cache de pacotes baixados
yum clean packages

# Remove os arquivos de cache e cabeçalhos de pacotes
yum clean all
Instalação
Estrutura de diretórios e partições comuns na instalação do Linux.

Shell

 $ tree
 .
 ├── Instalação
 │   ├── Swap
 │   ├── /usr (via NFS)
 │   └── Limitação 1024 cilindros
 ├── Gerenciador de Boot
 │   └── LILO
 │   │   ├── /etc/lilo.conf
 │   │   └── lilo
 │   └── GRUB
 │       ├── /boot/grub/menu.lst
 │       └── /sbin/grub-install
 │
 ├── Partições Comuns
 │   ├── /var
 │   ├── /home
 │   ├── /boot
 │   ├── /(raiz)
 │   └── /tmp
 └── MBR (Master Boot Record)
 ```

## FHS - FileSystem Hierarchy Standart
> Hierarquia Padrão do Sistema de Arquivos

```shell

/ (Diretório raiz)
├── /home   # Diretório de trabalho dos usuários
├── /root   # Diretório de trabalho do administrador
├── /boot   # Kernel do sistema - processo de boot
├── /bin    # A maioria dos programas possui o seu arquivo executável
├── /sbin   # Ferramentas para configurar e manutenção do sistema
├── /lib    # Bibliotecas compartilhadas
├── /dev    # Arquivos de dispositivos de hardware
├── /etc    # Arquivos de configuração específicos à máquina
├── /tmp    # Arquivos temporários
├── /mnt    # Local de montagem temporária de dispositivos
├── /proc   # Processos em execução (sistema de arquivos virtual)
├── /usr    # Programas e dados de usuários (instalados)
├── /var    # Contém arquivos de dados variáveis (logs, emails)
└── /opt    # Pacotes de software adicionais/opcionais

Permissões

chmod: Altera as permissões de arquivos e diretórios.
chown: Altera o proprietário (usuário e grupo) de um arquivo ou diretório.

Cada arquivo tem três tipos de usuários que podem interagir com ele:

Proprietário: O usuário que criou e possui um arquivo/diretório.

Grupo: Todos os usuários que são membros do mesmo grupo.

Outros: Todos os outros usuários no sistema.

Exemplos de Permissões:

Uso do chown:

Sintaxe básica: chown [usuario:grupo] [arquivo/diretorio]

Opções comuns para chown e chmod:

Voltar