03. Dominando a linha de comando do Linux para o Ubuntu Server

A linha de comando é o coração da administração de servidores Linux. Quer você seja iniciante ou um administrador de sistemas experiente, entender o básico da administração por linha de comando é crucial para gerenciar seu Ubuntu Server com eficiência. Este artigo oferece uma introdução aprofundada à linha de comando do Linux, abordando comandos, ferramentas e técnicas essenciais para gerenciar arquivos, diretórios e o ambiente do servidor.


Artigo anterior:

01. Introdução ao Ubuntu Server – SysOSX: AI & Cloud

02. Como configurar seu primeiro servidor Ubuntu: um guia para iniciantes – SysOSX: AI & Cloud



Por que aprender a linha de comando?

A linha de comando do Linux, acessada por meio do terminal, é uma ferramenta poderosa para interagir com o sistema operacional. Ao contrário das interfaces gráficas, a linha de comando oferece:

  • Velocidade: As tarefas podem ser executadas mais rapidamente com comandos do que por meio de interfaces gráficas.
  • Flexibilidade: Automatize processos e execute operações complexas usando scripts.
  • Controle: Acesse funcionalidades mais profundas do sistema e solucione problemas com eficácia.

Acessando a linha de comando no Ubuntu Server

As instalações do Ubuntu Server não incluem uma interface gráfica por padrão, portanto todas as interações ocorrem pelo terminal. Aqui estão formas comuns de acessar a linha de comando:

1. Acesso direto via console local

Após fazer login no seu Ubuntu Server, você verá a interface do terminal.

2. Acesso remoto via SSH

Use o Secure Shell (SSH) para acessar seu servidor remotamente:

ssh username@server_ip


Comandos essenciais do Linux para iniciantes

1. Navegando pelo sistema de arquivos

Entender a hierarquia do sistema de arquivos do Linux é fundamental para gerenciar arquivos e diretórios.

Ver o diretório atual: pwd

Exibe o diretório de trabalho atual:

pwd

Listar o conteúdo do diretório: ls

Lista arquivos e diretórios no local atual:

ls

Opções:

  • ls -l: Lista detalhada com permissões, propriedade e tamanho.
  • ls -a: Inclui arquivos ocultos (arquivos que começam com .).

Mudar de diretório: cd

Muda para um diretório diferente:

cd /path/to/directory

Exemplos:

  • cd ..: Sobe um nível.
  • cd ~: Vai para o diretório home.

2. Gerenciando arquivos e diretórios

Criar um diretório: mkdir

Cria um novo diretório:

mkdir directory_name

Exemplo: crie uma estrutura de subdiretórios.

mkdir -p /home/user/documents/projects

Explicação:

  • A opção -p cria os diretórios pai se eles não existirem (por ex., documents e projects).

Remover um diretório: rmdir

Exclui um diretório vazio:

rmdir directory_name

Exemplo:

rmdir /home/user/old_directory

Copiar arquivos: cp

Copia arquivos ou diretórios:

cp source_file destination_file

Exemplo: copie um arquivo para um novo diretório.

cp /home/user/file.txt /home/user/backup/file.txt

Para copiar diretórios inteiros:

cp -r /home/user/documents /home/user/backup/documents

Mover ou renomear arquivos: mv

Move ou renomeia arquivos:

mv old_name new_name

Exemplo: renomeie um arquivo.

mv file.txt renamed_file.txt

Mover arquivos para outro diretório:

mv /home/user/file.txt /home/user/backup/

Excluir arquivos: rm

Exclui arquivos ou diretórios:

rm file_name

Exemplo: exclua um arquivo.

rm /home/user/file.txt

Para excluir diretórios e seu conteúdo:

rm -r /home/user/old_directory

Aviso: Tenha cuidado com rm para evitar exclusões acidentais.


3. Visualizar e editar arquivos

Visualizar o conteúdo de um arquivo: cat

Exibe o conteúdo de um arquivo:

cat file_name

Exemplo:

cat /etc/hostname

Visualizar o conteúdo de um arquivo com paginação: less

Permite rolar pelo conteúdo do arquivo:

less file_name

Exemplo:

less /var/log/syslog

Criar ou editar arquivos: nano

Um editor de texto amigável para iniciantes:

nano file_name

Exemplo: crie um novo arquivo ou edite um existente.

nano /home/user/new_file.txt

Pesquisar texto em arquivos: grep

Pesquisa uma string específica em arquivos:

grep "search_term" file_name

Exemplo: encontre mensagens de erro em um arquivo de log.

grep "error" /var/log/syslog


4. Comandos de administração do sistema

Verificar o uso do disco: df

Exibe o uso do espaço em disco:

df -h

Opções:

  • -h: Formato legível para humanos.

Verificar o uso da memória: free

Mostra o uso da memória:

free -h

Monitorar processos do sistema: top

Exibe processos em execução e o uso de recursos do sistema:

top

Alternativa:

  • htop: Um monitor de processos mais amigável (instale com sudo apt install htop).

Gerenciar serviços: systemctl

Controla os serviços do sistema:

sudo systemctl status service_name
sudo systemctl start service_name
sudo systemctl stop service_name
sudo systemctl restart service_name

Desligar ou reiniciar: shutdown

Desliga ou reinicia o servidor:

sudo shutdown now    # Immediate shutdown
sudo shutdown -r now # Immediate restart

5. Permissões e propriedade de arquivos

O Linux usa um modelo de permissões para controlar o acesso a arquivos e diretórios.

Ver as permissões de um arquivo: ls -l

Exibe as permissões de arquivos em formato detalhado:

ls -l

Alterar as permissões de um arquivo: chmod

Modifica as permissões de arquivos:

chmod 644 file_name

Alterar a propriedade de um arquivo: chown

Altera a propriedade de arquivos:

sudo chown new_owner:new_group file_name


6. Pesquisar e encontrar arquivos

Localizar arquivos: locate

O comando locate não está instalado por padrão. Instale-o primeiro:

sudo apt update
sudo apt install mlocate

Atualize o banco de dados:

sudo updatedb

Pesquise arquivos:

locate file_name

Encontrar arquivos: find

Pesquisa arquivos com base em critérios:

find /path -name "file_name"


7. Comandos de rede

Verificar a conectividade de rede: ping

Testa a conectividade com um host:

ping google.com

Verificar portas abertas: ss

O comando netstat está obsoleto e não está instalado por padrão. Use ss, uma alternativa moderna:

ss -tuln

Explicação:

  • -t: Exibe conexões TCP.
  • -u: Exibe conexões UDP.
  • -l: Exibe portas em escuta.
  • -n: Mostra endereços e portas numéricos.

Testar a conectividade remota: curl

Busca dados de uma URL:

curl http://example.com


Dicas práticas para administração por linha de comando

1. Usar o preenchimento com Tab

Pressione Tab enquanto digita um comando ou nome de arquivo para autocompletar caminhos ou comandos.

2. Usar comandos de histórico

Acesse comandos executados anteriormente:

history

Execute um comando específico do histórico:

!number

3. Redirecionar a saída

Salve a saída de um comando em um arquivo:

command > output_file

4. Encadear comandos

Execute vários comandos em sequência:

command1 && command2

Fluxo de trabalho de exemplo: configurando um servidor web

Aqui está um guia passo a passo para configurar um servidor web usando comandos básicos. Siga estas instruções para configurar seu site personalizado e garantir que ele substitua a página padrão do Apache.


1. Atualizar o sistema

Manter o sistema atualizado é essencial para a segurança e a estabilidade. Execute o comando a seguir para atualizar todos os pacotes:

sudo apt update && sudo apt upgrade -y


2. Instalar o Apache

Instale o servidor web Apache:

sudo apt install apache2 -y

Depois de instalado, verifique se o Apache está em execução:

sudo systemctl status apache2

Você deve ver uma mensagem de status como: Active: active (running).


3. Criar um diretório para o seu site

Crie um diretório para armazenar os arquivos do seu site. Para este exemplo, criaremos um diretório chamado mywebsite:

sudo mkdir -p /var/www/mywebsite


4. Definir permissões

Defina a propriedade e as permissões corretas para que o Apache possa acessar os arquivos do site:

sudo chown -R www-data:www-data /var/www/mywebsite
sudo chmod -R 755 /var/www/mywebsite

5. Criar um arquivo HTML de exemplo

Adicione um simples arquivo index.html para servir como página inicial do seu site:

sudo tee /var/www/mywebsite/index.html > /dev/null << EOF
<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome to My Website</h1>
</body>
</html>
EOF

Isso cria uma página básica que diz: “Welcome to My Website”.


6. Configurar um host virtual

Para servir seu site personalizado, crie um novo arquivo de configuração de host virtual para o Apache:

sudo nano /etc/apache2/sites-available/mywebsite.conf

Cole o conteúdo a seguir no arquivo:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/mywebsite
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Salve e saia do arquivo pressionando Ctrl+O, depois Ctrl+X.


7. Habilitar seu site

Habilite a nova configuração de host virtual:

sudo a2ensite mywebsite.conf

Desabilite a configuração padrão do site do Apache para garantir que seu site seja servido:

sudo a2dissite 000-default.conf

Recarregue o Apache para aplicar as alterações:

sudo systemctl reload apache2


8. Testar a conectividade

Verifique se seu site está funcionando executando:

curl http://localhost

Você deve ver o conteúdo HTML do seu arquivo index.html personalizado:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome to My Website</h1>
</body>
</html>

Como alternativa, abra um navegador e navegue até http://<your-server-ip> para ver seu site.


Solução de problemas

Se você ainda vir a página padrão do Apache ou encontrar problemas:

  • Verifique se seu site está habilitado
    Verifique se sua configuração está ativa:
ls /etc/apache2/sites-enabled/ 
  • Você deve ver mywebsite.conf. Caso contrário, ative-o usando:
sudo a2ensite mywebsite.conf
  • Verifique os logs do Apache
    Procure erros nos logs:
sudo tail -f /var/log/apache2/error.log
  • Reinicie o Apache
    Se o problema persistir, reinicie o Apache:
sudo systemctl restart apache2

Conclusão

Dominar a linha de comando do Linux é essencial para administrar o Ubuntu Server com eficiência. Ao aprender e praticar esses comandos, você ganhará confiança para gerenciar seu ambiente de servidor, solucionar problemas e executar tarefas administrativas com eficiência.

Próximos passos: Gerenciar usuários e permissões

Quando você estiver à vontade com o básico da administração por linha de comando, o próximo passo fundamental na gestão de servidores é entender usuários, grupos e permissões. Gerenciar adequadamente as contas de usuário e os controles de acesso é essencial para manter a segurança e garantir que apenas pessoas autorizadas possam acessar ou modificar arquivos e recursos confidenciais do seu servidor.

No próximo artigo, “Gerenciar usuários e permissões”, abordaremos:

  • Como criar, modificar e excluir contas de usuário.
  • Gerenciar grupos para um controle de acesso eficiente.
  • Entender as permissões de arquivos e diretórios (leitura, escrita, execução).
  • Usar ferramentas avançadas como sudo para escalonamento de privilégios.
  • Boas práticas para proteger contas de usuário no Ubuntu Server.

Fique atento a insights práticos para melhorar sua segurança e gestão de acessos!

14 thoughts on “03.Mastering the Linux Command Line for Ubuntu Server”

Deixe um comentário