fbpx
Whatsapp (31) 3069-8315
atendimento@certificacaolinux.com.br
Shell do Linux para Iniciantes

O Shell do Linux parece misterioso. Trabalhar com ele pode ser assustador no início, mas você pode aprender como trabalhando com Eficácia no Shell

Entrar com comandos no shell é mais do que simplesmente digitá-los. Primeiro, o comando precisa ser válido e estar nos diretórios listados na variável PATH ou com sua localização explícita.

O comando também pode requerer opções, geralmente precedidos pelo símbolo “-” ou “–” e por argumentos.

O importante é que cada comando tem sua sintaxe única e pode haver variações dependendo da distribuição do Linux.

$ ls

Este comando lista os arquivos no diretório corrente. Ele não requer nenhuma opção ou argumento para ser executado. O argumento –l pode ser acrescentado para gerar uma lista de arquivos detalhada:

$ ls –l

Podemos ainda colocar mais opções para o comando ls:

$ ls –l –a –t

Ou

$ ls –lta

No caso do comando ls, as opções podem ser passadas separadamente ou combinadas. A opção –a mostra todos os arquivos incluindo os ocultos. A opção –t mostra os arquivos ordenados pela última data de modificação. A ordem das opções não é importante para o ls.

Para ocultar um arquivo no Linux, o seu nome deve necessariamente começar com o símbolo “.” (ponto). Ex: .bash_history

Para alguns comandos as opções têm de ser precedidas com dois traços “–” ao invés de um traço.

Ainda, alguns comandos oferecem formas alternativas de indicar uma mesma opção. No caso do ls, as opções –a e –all produzem o mesmo efeito. O detalhe é que opções que são chamadas com dois traços não podem ser combinadas.

$ ls –lt –all

E não:

$ ls –lalllt

Alguns comandos podem aceitar argumentos como opcional. Para outros comandos os argumentos são necessários. Os argumentos são os parâmetros que os comandos aceitam ou necessitam. Vejamos o comando ls:

$ ls –l *.txt

No exemplo acima o comando ls recebeu a opção –l e o argumento *.txt que filtra os arquivos terminados com a extensão  .txt.

Outra variação possível são os comandos que precisam obrigatoriamente de uma opção para executar uma tarefa que geralmente não é precedida pelo traço.

É comum para esse tipo de comando que suas opções sejam sucedidas por argumentos. Veja como exemplo o comando dd:

$ dd if=bootdisk.img of=/dev/fd0

O comando dd copia e converte arquivos de acordo com as opções passadas. No exemplo, o comando irá ler uma imagem de um disco de boot (opção if=bootdisk.img) e irá gravar esta imagem no drive a: (opção of=/dev/fd0).

Quase todos os comandos aceitam a opção –-help que mostra uma ajuda simples das opções e argumentos aceitos pelo comando.

Você está no caminho (path) certo?

É importante que você tenha em mente que o Linux somente vai executar os comandos que sejam internos do interpretador, ou comandos cuja localização esteja na variável PATH ou comandos chamados com o seu caminho explícito.

$ ls

Ou

$ /bin/ls

No exame é muito importante que você esteja bem familiarizado com os comandos listados neste capítulo e sua sintaxe. Portanto você precisa saber quando o comando aceita opções com um traço, dois traços ou nenhum traço.

O Bash também permite que você entre com uma sequência de comandos em uma mesma linha. Para isso você deve separar os comandos com o símbolo ; (ponto e vírgula).

$ echo $PS1; echo $PS2

O Bash escreve em um arquivo chamado .bash_history localizado no diretório home de cada usuário o histórico de todos os comandos digitados pelos usuários.

A possibilidade de recuperar os comandos digitados é fabulosa. Isto pode ser bastante útil para fins de auditoria, relembrar a memória ou simplesmente economizar os dedos.

Você poderá ver os comandos que digitou visualizando o conteúdo do arquivo .bash_history.

$ cat ~/.bash_history

O comando cat, dentre outras coisas, serve para visualizar o conteúdo dos arquivos.

A seguir temos uma tabela detalhada dos atalhos para você poder fazer uso rápido dos comandos armazenados no arquivo .bash_history.

O símbolo “~” faz referência ao diretório home do usuário logado.

TABELA – Uso rápido dos comandos armazenados no arquivo .bash_history.

Atalho  Descrição
!! Executa o último comando digitado
!n Executa o comando na linha n no arquivo .bash_history
!texto Executa o comando mais recente que inicia com o texto
!?texto Executa o comando mais recente que contém o texto
^texto1^texto2 Executa o último comando substituindo o texto1 pelo texto2
Alt M < Vai para o início do arquivo .bash_history
Alt M > Vai para o fim do arquivo .bash_history
Ctrl p Recupera os comandos armazenados no arquivo .bash_history de trás para frente
Ctrl n Recupera os comandos já listados de frente para trás
Ctrl b Volta um caractere nos comandos já recuperados
Ctrl f Anda um caractere para frente nos comandos já recuperados
Ctrl a Volta para o início da linha nos comandos já recuperados
Ctrl e Vai para o fim da linha nos comandos já recuperados
Ctrl l Limpa a tela
Ctrl d Apaga caracteres do texto do cursor até o fim da linha
Ctrl k Apaga o texto do cursor até o fim da linha de uma só vez
Ctrl y Cola o texto apagado pelo comando anterior na tela
Ctrl rtexto Procura comandos que contenham o texto do último comando para o primeiro
Ctrl stexto Procura comandos que contenham o texto do primeiro comando para o último

Veja agora como dominar o bash_history:

Quer saber se uma certificação vale a pena ? Saiba porque os salários são bons, e porque as empresas estão procurando profissionais de Linux.

Você vai ententer que os benefícios superam de longe o sacrifício.

E se você já se decidiu, veja nosso Guia de Certificação.

E se quer saber onde fazer as provas, consulte a lista de cidade.

Se quiser saber o idioma das provas, veja esse post.

Aprenda muito mais sobre Linux em nosso curso online. Você pode fazer a matrícula aqui com trial de 7 dias grátis. Se você já tem uma conta, pode acessar aqui.

Gostou? Compartilhe 🙂

Aprenda a trabalhar com Variáveis no Shell do Linux

Trabalhar com variável do Shell do Linux é essencial para qualquer administrador de sistemas, pois elas em conjunto com alguns comandos dão muito poder e flexibilidade.

Durante a execução do bash são mantidas algumas variáveis especiais que contêm alguma informação importante para a execução do shell.

Estas variáveis são carregadas no início da execução do bash e também podem ser configuradas manualmente em qualquer momento.

Prompt de comandos PS1 e PS2

A primeira variável que iremos abordar é a PS1 ou simplesmente Prompt String 1. Esta variável guarda o conteúdo do prompt de comandos do bash quando ele está pronto para receber comandos.

Existe também a variável PS2 que guarda o conteúdo do prompt de comandos quando são necessários múltiplas linhas para completar um comando.

Estas duas variáveis do shell não afetam como o interpretador irá processar os comandos recebidos, mas podem ser de grande ajuda quando carregam informações extras como nome do usuário, diretório corrente, etc.

Esta variável é a grosso modo como o shell irá se apresentar.

Convencionou-se que as variáveis são todas escritas em caixa-alta. Mas é importante que você saiba que $nome e $NOME são duas variáveis diferentes para o shell.

O conteúdo de qualquer variável do Shell poderá ser visualizado com o comando echo sucedido pelo símbolo $ mais o nome da variável:

$ echo $PS1

\$

O caractere \ diz que qualquer outro caractere que o sucede deve ser interpretado exatamente como ele é e não processado pelo shell. Ele é o que chamamos de metacaractere.

É comum que o prompt de comandos padrão do bash venha no formato:

\u@\h:\W\$

Os comandos e variáveis no Linux são sensíveis às letras maiúsculas e minúsculas.

Cada um destes caracteres é interpretado de forma especial. O \u é utilizado para representar o nome do usuário, o \h é utilizado para representar o nome do sistema (hostname) e o \W é o diretório corrente. Um exemplo para este prompt é:

uira@notebook:home$

Variável PATH

Outra variável importante do Shell é o PATH. O path guarda uma lista dos diretórios que contêm os programas que você poderá executar sem precisar passar na linha de comandos o caminho completo de sua localização.

$ echo $PATH

/sbin:/bin:/usr/sbin:/usr/bin

É importante que você saiba que o interpretador de comandos do bash acompanha a seguinte ordem para achar e executar os comandos digitados:

1)    O comando digitado é um comando interno do interpretador de comandos?

2)    Se não for, o comando é um programa executável localizado em algum diretório listado na variável PATH?

3)    A localização do comando foi explicitamente declarada?

Uma dica interessante é incluir “:.” no final da variável PATH para que o bash inclua o diretório corrente na sua lista de busca por programas executáveis. Diferentemente do MS-DOS, o diretório corrente não está incluso na lista de busca padrão.

Sem incluir o “:.” no PATH é necessário informar o caminho relativo ao chamar programas no diretório corrente com “./nomedoprograma”.

Listando as variáveis no Linux

Uma lista completa das variáveis do shell poderá ser obtida com o comando set.

Você poderá também alterar ou criar uma nova variável do shell através dos comandos:

$ LIVRO=”Certificação Linux”

$ export LIVRO

Preferencialmente as variáveis devem ser declaradas em caixa alta e não coloque espaços entre o nome da variável, o símbolo = e o seu conteúdo. Se o conteúdo for alfanumérico é desejável que ele esteja entre aspas simples ou duplas.

Diferença de aspas simples e aspas duplas no Linux

Quando o texto de uma variável é uma sequência comum de letras e números, pouco importa se você vai usar aspas simples ou duplas.

$  FRASE1=”Este é um teste”

$  FRASE2=’de direfença entre aspas’

$ echo $FRASE1 $FRASE2

Este é um teste de diferença entre aspas

Mas se você for utilizar as variáveis entre aspas, há diferença:

$ echo “$FRASE1 $FRASE2”

Este é um teste de diferença entre aspas

$ echo ‘$FRASE1 $FRASE2’

$FRASE1 $FRASE2

Então as aspas duplas expandem o conteúdo das variáveis, enquanto as aspas simples não.

Isto faz diferença se você quer por exemplo incluir um diretório na variável PATH:

$ echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin

$ PATH=”$PATH:/ora/oracle/admin/bin”

$ echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin:/ora/oracle/admin/bin

Neste caso as aspas simples não funcionariam.

Exportar variáveis do shell para uso nos programas

Depois de criar uma variável do shell, é preciso exportá-la para o ambiente com o comando export.

Quando uma variável é exportada para o ambiente ela fica disponível para todos os processos filhos do shell (todos os programas e aplicações que você executar no bash).

Cada vez que um processo é executado pelo shell, ele somente irá receber as variáveis criadas pelo shell se elas forem exportadas com o comando export.

Assim o processo filho (o programa que desejamos executar) vai herdar do processo pai (o shell) as variáveis criadas.

Veja o exemplo abaixo, onde criamos uma variável chamada LIVRO:

$  LIVRO=”Certificação Linux”

echo $LIVRO

Certificação Linux

Se executarmos o bash novamente no mesmo terminal, para criar um processo filho, você verá que a variável LIVRO não existe, porque ela não foi exportada para os processos filho:

$ bash

$ echo $LIVRO

Algumas palavras não podem ser utilizadas como variáveis, pois são o que chamamos de palavras reservadas do Bash, utilizadas como comandos internos.

Palavras reservadas do shell

São elas: alias, alloc, bg, bind, bindkey, break, breaksw, builtins, case, cd, chdir, command, complete, continue, default, dirs, do, done, echo, echotc, elif, else, end, endif, endsw, esac, eval, exec, exit, export, false, fc, fg, filetest, fi, for, foreach, getopts, glob, goto, hash, hashstat, history, hup, if, jobid, jobs, kill, limit, local, log, login, logout, ls-F, nice, nohup, notify, onintr, popd, printenv, pushd, pwd, read, readonly, rehash, repeat, return, sched, set, setenv, settc, setty, setvar, shift, source, stop, suspend, switch, telltc, test, then, time, times, trap, true, type, ulimit, umask, unalias, uncomplete, unhash, unlimit, unset, unsetenv, until, wait, where, which, while.

Comando set

Uso:

$ set [variável]

O comando set informa uma lista de todas as variáveis locais, variáveis ambientais e funções do shell.

Algumas opções do comando set alteram o comportamento do bash, a saber:

  • -C Previnem que a saída de um programa usando `>’, `>&’ e `<>’ regrave arquivos. Mesmo que a opção -o noclobber
  • -n Lê os comandos, mas não os executa. Útil para checar scripts. Mesmo que opção -o noexec
  • -P Proíbe o shell de seguir links simbólicos. Mesmo que opção -o physical
  • -a Marca as variáveis modificadas ou criadas para export. Mesmo que opção -o allexport
  • -o history Habilita guardar o histórico de comandos digitados.

Ao utilizar as opções do set, o símbolo + pode ser utilizado para desabilitar as opções.

Comando unset

Uso:

$ unset [variável]

O comando unset apaga uma variável ambiental da memória.

Ex.:

$ unset LIVRO

Comando env

Uso:

$ env VARIAVEL=valor programa

O comando env é utilizado para executar um programa enviando uma variável ambiental. Ele habilita que um determinado programa possa ler uma variável sem a necessidade de exportá-la com o comando export. A opção -i diz para o env ignorar o ambiente herdado, sem alterar o conteúdo de qualquer variável existente. É útil para alterar uma variável momentaneamente para um teste.

Ex.:

$ env HOME=/home/guest2 programax

Comando pwd

Uso:

$ pwd

O comando pwd informa o diretório absoluto corrente.

Ex.:

$ pwd

/usr/local

Quer saber se uma certificação vale a pena ? Saiba porque os salários são bons, e porque as empresas estão procurando profissionais de Linux.

Você vai ententer que os benefícios superam de longe o sacrifício.

E se você já se decidiu, veja nosso Guia de Certificação.

E se quer saber onde fazer as provas, consulte a lista de cidade.

Se quiser saber o idioma das provas, veja esse post.

Aprenda muito mais sobre Linux em nosso curso online. Você pode fazer a matrícula aqui com trial de 7 dias grátis. Se você já tem uma conta, pode acessar aqui.

Gostou? Compartilhe 🙂

Open chat