Linux Professional Institute Learning Logo.
Ir para o conteúdo principal
  • Home
    • Todos os recursos
    • LPI Materiais Didáticos
    • Colabore Conosco
    • Publishing Partners
    • Seja um Publishing Partner
    • Quem Somos
    • FAQ
    • Colaboradores
    • Contato
  • LPI.org
2.1 Lição 2
Tópico 1: A comunidade Linux e a carreira Open Source
1.1 A evolução do Linux e sistemas operacionais populares
  • 1.1 Lição 1
1.2 Principais Aplicações Open Source
  • 1.2 Lição 1
1.3 Entendendo o Software Open Source e suas Licenças
  • 1.3 Lição 1
1.4 Habilidades ICT e trabalhando no Linux
  • 1.4 Lição 1
Tópico 2: Encontrando seu caminho em um Sistema Linux
2.1 O básico sobre a linha de comando
  • 2.1 Lição 1
  • 2.1 Lição 2
2.2 Usando a linha de comando para conseguir ajuda
  • 2.2 Lição 1
2.3 Usando diretórios e listando arquivos
  • 2.3 Lição 1
  • 2.3 Lição 2
2.4 Criando, Movendo e Deletando Arquivos
  • 2.4 Lição 1
Tópico 3: O Poder da Linha de Comando
3.1 Empacotando arquivos na linha de comando
  • 3.1 Lição 1
3.2 Pesquisando e extraindo dados de arquivos
  • 3.2 Lição 1
  • 3.2 Lição 2
3.3 Transformando comandos em Scripts
  • 3.3 Lição 1
  • 3.3 Lição 2
Tópico 4: O Sistema Operacional Linux
4.1 Escolhendo um Sistema Operacional
  • 4.1 Lição 1
4.2 Entendendo o Hardware do Computador
  • 4.2 Lição 1
4.3 Onde os dados são armazenados
  • 4.3 Lição 1
  • 4.3 Lição 2
4.4 Seu Computador na Rede
  • 4.4 Lição 1
Tópico 5: Segurança e Permissões de Arquivos
5.1 Segurança Básica e Identificação de Tipos de Usuários
  • 5.1 Lição 1
5.2 Criando Usuários e Grupos
  • 5.2 Lição 1
5.3 Gerenciando permissões e donos de arquivos
  • 5.3 Lição 1
5.4 Diretórios e arquivos especiais
  • 5.4 Lição 1
How to get certified
  1. Tópico 2: Encontrando seu caminho em um Sistema Linux
  2. 2.1 O básico sobre a linha de comando
  3. 2.1 Lição 2

2.1 Lição 2

Certificação:

Linux Essentials

Versão:

1.6

Tópico:

2 Como se orientar em um sistema Linux

Objetivo:

2.1 As bases da linha de comando

Lição:

2 de 2

Introdução

Todos os shells gerenciam um conjunto de informações de status ao longo das sessões do shell. Essas informações de tempo de execução podem mudar durante a sessão e influenciar o comportamento do shell. Esses dados também são usados pelos programas para determinar aspectos da configuração do sistema. A maioria desses dados é armazenada nas chamadas variáveis, que abordaremos nesta lição.

Variáveis

As variáveis são espaços de armazenamento para dados, como texto ou números. Uma vez definido, o valor de uma variável pode ser acessado posteriormente. As variáveis têm um nome, o que permite acessar uma variável específica mesmo quando seu conteúdo é alterado. Elas são uma ferramenta muito comum na maioria das linguagens de programação.

Na maioria dos shells do Linux, existem dois tipos de variáveis:

Variáveis locais

Essas variáveis estão disponíveis apenas para o processo atual do shell. Se você criar uma variável local e, em seguida, iniciar outro programa nesse shell, a variável não poderá mais ser acessada por esse programa. Como não são herdadas por subprocessos, essas variáveis são chamadas variáveis locais.

Variáveis de ambiente

Essas variáveis estão disponíveis tanto em uma sessão de shell específica quanto em subprocessos gerados a partir dessa sessão de shell. Essas variáveis podem ser usadas para transmitir dados de configuração para os comandos executados. Como os programas podem acessar essas variáveis, elas são chamadas variáveis de ambiente. A maioria das variáveis de ambiente aparece em letras maiúsculas (por exemplo, PATH, DATE, USER). Um conjunto de variáveis de ambiente padrão fornece, por exemplo, informações sobre o diretório inicial ou o tipo de terminal do usuário. Em certos casos, nos referimos ao conjunto completo de todas as variáveis de ambiente como ambiente.

Esses tipos de variáveis também são conhecidos como escopo de variáveis.

Note

As variáveis não são persistentes. Quando o shell em que foram configuradas é fechado, todas as variáveis e seus conteúdos são perdidos. A maioria dos shells oferece arquivos de configuração que contêm variáveis definidas sempre que um novo shell é iniciado. As variáveis que devem ser definidas permanentemente precisam ser adicionadas a um desses arquivos de configuração.

Manipulação de variáveis

Como administrador do sistema, você precisará criar, modificar ou remover variáveis locais e de ambiente.

Trabalhando com variáveis locais

Você pode configurar uma variável local usando o operador = (igual). Uma atribuição simples criará uma variável local:

$ greeting=hello
Note

Não coloque espaço antes ou depois do operador =.

É possível exibir qualquer variável usando o comando echo. O comando geralmente exibe o texto na seção de argumentos:

$ echo greeting
greeting

Para acessar o valor da variável, você terá de usar $ (cifrão) na frente do nome da variável.

$ echo $greeting
hello

Como vimos, a variável foi criada. Agora abra outro shell e tente exibir o conteúdo da variável criada.

$ echo $greeting

Nada é exibido. Isso ilustra o fato de que as variáveis existem somente em um shell específico.

Para verificar se a variável é de fato uma variável local, tente gerar um novo processo e confira se esse processo é capaz de acessar a variável. Para isso, inicie outro shell e execute nele o comando echo. Como o novo shell roda em um novo processo, ele não herdará as variáveis locais do processo pai:

$ echo $greeting world
hello world
$ bash -c 'echo $greeting world'
world
Note

Lembre-se de usar aspas simples no exemplo acima.

Para remover uma variável, usamos o comando unset:

$ echo $greeting
hey
$ unset greeting
$ echo $greeting
Note

O unset requer o nome da variável como argumento. Portanto, não é possível adicionar $ ao nome, já que isso resolveria a variável e passaria o valor da variável para unset em vez do nome da variável.

Trabalhando com variáveis globais

Para disponibilizar uma variável local para subprocessos, podemos transformá-la em variável de ambiente. Usamos para isso o comando export. Quando ele é invocado junto ao nome da variável, essa variável é adicionada ao ambiente do shell:

$ greeting=hello
$ export greeting
Note

Aqui também não se deve usar $ ao executar export, já que queremos transmitir o nome da variável e não seu conteúdo.

Uma maneira mais fácil de criar a variável de ambiente é combinar os dois métodos acima, atribuindo o valor da variável na parte de argumento do comando.

$ export greeting=hey

Vamos conferir novamente se a variável está acessível aos subprocessos:

$ export greeting=hey
$ echo $greeting world
hey world
$ bash -c 'echo $greeting world'
hey world

Outra maneira de usar variáveis de ambiente é colocá-las na frente dos comandos. Vamos testar essa possibilidade com a variável de ambiente TZ, que contém o fuso horário. Essa variável é usada pelo comando date para determinar qual hora do fuso horário deve ser exibida:

$ TZ=EST date
Thu 31 Jan 10:07:35 EST 2019
$ TZ=GMT date
Thu 31 Jan 15:07:35 GMT 2019

Para exibir todas as variáveis de ambiente, use o comando env.

A variável PATH

A variável PATH é uma das variáveis de ambiente mais importantes de um sistema Linux. Ela armazena uma lista de diretórios, separados por dois pontos, que contêm programas executáveis que funcionam como comandos do shell do Linux.

$ echo $PATH
/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Para acrescentar um novo diretório à variável, usamos o sinal de dois pontos (:).

$ PATH=$PATH:new_directory

Eis um exemplo:

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$ PATH=$PATH:/home/user/bin
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/user/bin

Como vimos, $PATH é usado no novo valor atribuído a PATH. Essa variável é resolvida durante a execução do comando e garante que o conteúdo original da variável seja preservado. Obviamente, também dá para usar outras variáveis na atribuição:

$ mybin=/opt/bin
$ PATH=$PATH:$mybin
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/user/bin:/opt/bin

A variável PATH deve ser usada com cautela, pois é crucial para o trabalho na linha de comando. Vamos considerar a seguinte variável PATH:

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Para descobrir como o shell chama um comando específico, which pode ser executado com o nome do comando como argumento. Podemos, por exemplo, tentar descobrir onde o nano está armazenado:

$ which nano
/usr/bin/nano

Neste exemplo, o executável nano está localizado no diretório /usr/bin. Vamos remover o diretório da variável e verificar se o comando ainda funciona:

$ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin:/usr/games
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin:/usr/games

Vamos procurar pelo comando nano novamente:

$ which nano
which: no nano in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin:/usr/games)

Como vimos, o comando não foi encontrado, e portanto não foi executado. A mensagem de erro também explica o motivo pelo qual o comando não foi encontrado e em quais locais foi buscado.

Vamos readicionar os diretórios e tentar executar o comando novamente.

$ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$ which nano
/usr/bin/nano

Agora nosso comando voltou a funcionar.

Tip

A ordem dos elementos em PATH também define a ordem de pesquisa. O primeiro executável da lista que corresponda às especificações será executado.

Exercícios Guiados

  1. Crie uma variável local number.

  2. Crie uma variável de ambiente ORDER usando um dos dois métodos acima.

  3. Exiba o nome das variáveis e seu conteúdo.

  4. Qual o escopo das variáveis criadas anteriormente?

Exercícios Exploratórios

  1. Crie uma variável local nr_files e atribua o número de linhas encontrado no arquivo /etc/passwd. Dica: pesquise sobre o comando wc e substituição de comandos, e não se esqueça das aspas.

  2. Crie uma variável de ambiente ME. Atribua a ela o valor de variável USER.

  3. Inclua o valor da variável HOME a ME, usando o delimitador :. Exiba o conteúdo da variável ME.

  4. Usando o exemplo acima, crie uma variável chamada today e atribua a data de um dos fusos horários.

  5. Crie outra variável chamada today1 e atribua a ela a data do sistema.

Sumário

Nesta lição, você aprendeu:

  • Tipos de variáveis

  • Como criar variáveis

  • Como manipular variáveis

Comandos usados nos exercícios:

env

Exibe o ambiente atual.

echo

Gera uma saída de texto.

export

Torna as variáveis locais disponíveis para os subprocessos.

unset

Remove uma variável.

Respostas aos Exercícios Guiados

  1. Crie uma variável local number.

    $ number=5
  2. Crie uma variável de ambiente ORDER usando um dos dois métodos acima.

    $ export ORDER=desc
  3. Exiba o nome das variáveis e seu conteúdo.

    $ echo number
    number
    $ echo ORDER
    ORDER
    $ echo $number
    5
    $ echo $ORDER
    desc
  4. Qual o escopo das variáveis criadas anteriormente?

    • O escopo da variável number é somente o shell atual.

    • O escopo da variável ORDER é o shell atual e todos os subshells gerados por ele.

Respostas aos Exercícios Exploratórios

  1. Crie uma variável local nr_files e atribua o número de linhas encontrado no arquivo /etc/passwd. Dica: pesquise sobre o comando wc e substituição de comandos, e não se esqueça das aspas.

    $ nr_files=`wc -l /etc/passwd`
  2. Crie uma variável de ambiente ME. Atribua a ela o valor de variável USER.

    $ export ME=$USER
  3. Inclua o valor da variável HOME a ME, usando o delimitador :. Exiba o conteúdo da variável ME.

    $ ME=$ME:$HOME
    $ echo $ME
    user:/home/user
  4. Usando o exemplo acima, crie uma variável chamada today e atribua a data de um dos fusos horários.

    O exemplo a seguir usa os fusos horários GMT e EST, mas você pode escolher o que quiser.

    $ today=$(TZ=GMT date)
    $ echo $today
    Thu 31 Jan 15:07:35 GMT 2019

    or

    $ today=$(TZ=EST date)
    $ echo $today
    Thu 31 Jan 10:07:35 EST 2019
  5. Crie outra variável chamada today1 e atribua a ela a data do sistema.

    Se você estiver no horário GMT:

    $ today1=$(date)
    $ echo today1
    Thu 31 Jan 10:07:35 EST 2019

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

Próxima Lição

2.2 Usando a linha de comando para conseguir ajuda (2.2 Lição 1)

Ir para a próxima lição

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

A LPI é uma organização sem fins lucrativos.

© 2023 O Linux Professional Institute (LPI) é um organismo de apoio aos profissionais de Open Source e referência mundial em certificação. Com mais de 200.000 pessoas certificadas, somos o principal organismo de certificação independente para Linux e Open Source do mundo. O LPI certificou profissionais de mais de 180 países, oferece exames em diversos idiomas e tem centenas de parcerias de formação em todo o globo.

Nossa missão é proporcionar oportunidades econômicas e criativas para todos, tornando universalmente acessível a certificação de conhecimentos e competências em matéria de Open Source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Entre em Contato
  • Política de Privacidade e Cookies

Encontrou um erro ou quer ajudar a aprimorar esta página? Escreva pra nós.

© 1999–2023 The Linux Professional Institute Inc. Todos os direitos reservados.