Este site usa cookies e tecnologias afins que nos ajudam a oferecer uma melhor experiência. Ao clicar no botão "Aceitar" ou continuar sua navegação você concorda com o uso de cookies.

Aceitar

Parte 4 - Interpretador de Comandos Shell Linux

Junte-se a mais de 1000 pessoas

Entre para nossa lista e receba conteúdos exclusivos e com prioridade

O interpretador de comandos, comumente referido como shell, é uma interface entre o usuário e o sistema operacional em sistemas Linux e Unix-like. Ele permite que os usuários interajam com o sistema por meio de linhas de comando, executando programas, gerenciando arquivos, controlando processos e realizando uma ampla gama de tarefas. O shell interpreta os comandos digitados pelo usuário e os transforma em instruções compreensíveis pelo sistema operacional.

Funcionalidades do Interpretador de Comandos

Execução de Programas: O shell permite que os usuários executem programas e comandos diretamente do terminal.

Gerenciamento de Arquivos e Diretórios: Os comandos do shell permitem criar, listar, mover, copiar e excluir arquivos e diretórios.

Redirecionamento e Tubulação: O redirecionamento de entrada e saída permite direcionar a saída de um comando para um arquivo. A tubulação (uso do caractere ‘|’ ) permite que a saída de um comando seja usada como entrada para outro.

Automação de Tarefas: É possível criar scripts e automatizar tarefas complexas por meio da sequência de comandos no shell.

Gerenciamento de Processos: O shell permite iniciar, pausar, retomar e encerrar processos. Também é possível executar processos em segundo plano.

Principais Variantes do Shell

Bash (Bourne Again Shell): O Bash é uma das shells mais populares e amplamente usadas em sistemas Linux. É uma evolução do shell Bourne original, fornecendo recursos avançados, como expansão de variáveis, loops e condicionais.

Zsh (Z Shell): O Zsh é uma shell poderosa com muitos recursos avançados, incluindo uma melhor conclusão de comandos e personalização. Ele oferece uma experiência interativa aprimorada para os usuários.

Fish (Friendly Interactive Shell): O Fish é conhecido por sua interface amigável e colorida, bem como sua conclusão de comandos altamente eficaz. Ele é voltado para usuários que preferem uma experiência mais moderna e visualmente atraente.

Tcsh (TENEX C Shell): O Tcsh é uma extensão do C Shell (csh) e oferece recursos adicionais, como histórico de comandos melhorado e expansão de comandos.

Ksh (Korn Shell): O Ksh é uma shell que combina recursos do shell Bourne e do C Shell, proporcionando eficiência e recursos avançados para scripting e interatividade.

Dash: O Dash é uma shell minimalista projetada para ser rápida e eficiente em scripts. É comumente usado como a shell padrão em sistemas Linux mais leves e em sistemas de inicialização.

Cada variante tem suas próprias vantagens e desvantagens, e a escolha depende das preferências e necessidades individuais do usuário. No entanto, o Bash é amplamente adotado e muitas vezes a escolha padrão em muitas distribuições Linux devido à sua combinação de recursos poderosos e ampla compatibilidade.

Variáveis Locais e de Ambiente no Linux

As variáveis desempenham um papel fundamental no interpretador de comandos do Linux. Elas são elementos essenciais para personalizar o ambiente, executar scripts e controlar o comportamento dos programas. Neste artigo, vamos explorar a distinção entre variáveis locais e de ambiente, como defini-las e usá-las no contexto do Linux, por meio de exemplos práticos.

Exemplos de manipulação de variáveis locais em shell:

var=41
echo $var
comando=ls
echo $comando
echo "$comando"
echo '$comando'
numero1=5
numero2=3
soma=$((numero1 + numero2))
echo "A soma de $numero1 e $numero2 é igual a $soma"

Variáveis de Ambiente

As variáveis de ambiente desempenham um papel vital no ambiente Linux, influenciando o comportamento de programas, afetando a aparência da interface e ajustando várias configurações do sistema.

Existem diversas formas de se listar as variáveis de ambiente no Linux, com seus respectivos valores. As formas mais comuns incluem o emprego dos comandos:

printenv
env
set

Comando printenv

Permite exibir todas as variáveis de ambiente ou apenas uma parte delas.

Exemplo:

$ printenv

Para exibir o conteúdo de uma variável específica, como a variável HOME:

$ printenv HOME

Comando env

Mostra as variáveis de ambiente que foram exportadas, mas não mostra todas as variáveis do shell. Também pode ser usado para executar um comando em um ambiente modificado.

Exemplo:

$ env

Podemos também modificar o valor de uma variável de ambiente com o comando env. Por exemplo, vamos alterar o valor de HISTSIZE para 800:

$ env HISTSIZE=800

Comando set

Mostra o nome e o valor de cada variável do shell. Também permite alterar valores de opções do shell.

Exemplo:

$ set

Se você deseja apenas visualizar o conteúdo de uma variável de ambiente em particular, use o comando echo, seguido do nome da variável (precedido por um cifrão $). Por exemplo, para visualizar o conteúdo da variável de ambiente HISTFILE execute:

$ echo $HISTFILE

Exemplos das principais variáveis de ambiente e shell mais comuns no Linux:

HISTFILESIZE Número máximo de linhas contidas no arquivo de histórico.
HISTSIZE Número de comandos a serem armazenados no histórico de comandos. O valor padrão é 500.
HOME Diretório pessoal do usuário atual.
HOSTNAME Nome do computador.
LANG Configurações de localização e idioma atuais, incluindo a codificação de caracteres.
PATH Caminhos de busca para os comandos. É uma lista de diretórios, separados por dois-pontos (:), nos quais o shell procura pelos executáveis dos comandos.
PS1 Configurações do prompt do usuário.
PWD Valor do diretório de trabalho atual
RANDOM Retorna um número aleatório entre 0 e 32767.
TMOUT Timeout padrão do comando read do shell.
TERM Tipo de terminal de login do usuário.
SHELL Configuração de caminho do shell que interpretará os comandos digitados. Geralmente, é o shell bash.
USER Usuário logado atualmente.

Trabalhando com ALIAS no Linux

Utilização de Alias no Linux: Simplificando Comandos e Tarefas

Os aliases no Linux são uma ferramenta poderosa para criar atalhos e simplificar a execução de comandos frequentemente utilizados. Eles permitem que você substitua comandos longos e complexos por palavras-chave curtas e fáceis de lembrar. Neste artigo, vamos explorar o que são aliases, como criá-los e como eles podem melhorar a eficiência no uso do terminal.

O que são Aliases?

Alias é um recurso do shell que permite que você atribua um nome alternativo (ou abreviação) a um comando ou sequência de comandos. Em vez de digitar um comando longo toda vez que precisar executá-lo, você pode criar um alias para esse comando e usar o alias no lugar.

Criando Aliases

Os aliases podem ser definidos temporariamente ou permanentemente, dependendo das suas necessidades. Para defini-los temporariamente, use o seguinte formato:

alias nome_alias='comando_original'

Para defini-los permanentemente, adicione o comando ao arquivo de perfil do seu shell, como o arquivo ~/.bashrc no caso do Bash.

Exemplo de Alias Temporário:

alias ll='ls -l'

Exemplo de Alias Permanente:

Adicione a linha `alias ll=’ls -l’ ao arquivo ~/.bashrc para que o alias seja definido sempre que você abrir um terminal.

Benefícios dos Aliases

1. Economia de Tempo: Aliases ajudam a economizar tempo ao evitar a digitação repetitiva de comandos longos.

2. Simplificação: Comandos complexos podem ser substituídos por palavras-chave mais simples e fáceis de lembrar.

3. Prevenção de Erros: Evita erros de digitação ao substituir comandos propensos a erros por aliases concisos.

4. Personalização: Cada usuário pode criar seus próprios aliases de acordo com suas preferências e necessidades.

Exemplos Práticos

1. Listagem Detalhada: O comando ls -l exibe uma listagem detalhada de arquivos. Com um alias, isso pode ser simplificado:

alias ll='ls -l'

Agora, ao digitar ll, a saída será a mesma que ls -l.

2. Limpar o Terminal: O comando clear limpa o terminal. Um alias pode simplificar isso:

alias cls='clear'

Agora, cls limpará o terminal.

3. Mover para o Diretório Raiz: O comando cd / move para o diretório raiz. Um alias facilita isso:

alias root='cd /'

Ao digitar root, você irá para o diretório raiz.

Trabalhando com Banners de Login no Linux

Principais Comandos:

nano /etc/issue
nano /etc/motd

Gerenciando os Jobs Shell

Principais Comandos:

sleep 3600 & dd if=/dev/zero of=/dev/null & sleep 7200
jobs
bg 3
fg 1
Ctrl+C
jobs
fg 2
fg 3
dd if=/dev/zero of=/dev/null &
exit
top
kill ?

Recuperando comandos

history
ls /usr/bin | sort -f | less
history 8
!X #onde X é o numero do comando a ser recuperado
!!
!?string?  #Isso executa o comando mais recente que contém uma sequência específica de caracteres.
!?dat?
vim .bashrc

Comandos de conexão e expansão

cat /etc/passwd | sort | less
sudo apt update ; sudo apt dist-upgrade ; sudo apt install samba
command &
tar -czf home.tar.gz . &
jobs -l
vim $(find /home/roberto | grep palavra)
echo "Eu tenho $[2023 - 1987] anos de idade."
echo "Há $(ls | wc -w) arquivos nesse diretório."
ls | wc -w
ls -l $BASH

Modificando o Idioma e ALIAS em seu sistema

export LANG=pt_BR, export LANG=pt_BR:pt_PT:C
ls /usr/share/locale/
vim /etc/locale.gen
locale-gen
vim /etc/environment
export LANG=pt_BR
export LC_ALL=pt_BR
export LC_MESSAGES=pt_BR
ls --color=auto
alias ls='ls --color=auto'
ls
ls -la
ls --color=auto -la