Você está na página 1de 11

PREPARATÁRIO PARA EXAME LPIC-1 – 101

Um shell nada mais é do que o interpretador de comandos em si, ou seja, um programa que analisa
o que foi
digitado na linha de comando e executa esses comandos, caso sejam comandos válidos do sistema,
produzindo algum resultado.

Para saber quais shells estão


disponíveis no sistema execute um dos dois comandos:

# chsh -l
ou
# cat /etc/shells

Os comandos alias permitem a definição de um apelido para uma sequência de comandos, e o


comando
unalias desfaz essa ideia.
Quando da criação de um alias não pode haver espaço entre o nome da
variável e a declaração do seu valor.

Para listarmos todos os aliases do sistema:

# alias
ou
# alias –p

Para criar um alias com o nome limpar, para limpar a tela:


# alias limpar="clear"
Para remover uma alias execute o comando unalias seguido do nome do alias que deseja remover:
# unalias limpar

Veja o exemplo de executar três comandos na mesma linha


independentemente da saída do comando anterior:

# ls /tmp ; df -hT ; mount

Então assim o comando ls será executado, após o encerramento do primeiro comando o segundo é
executado.

Podemos executar vários comando em sequência, se o anterior foi bem sucedido(se retornou 0).
por exemplo, para o comando ip address show ser executado o comando que o antecede precisa ser
executado com sucesso.

# ifconfig && ip address show


Uma outra forma, é executar o comando seguinte apenas se o anterior não foi bem sucedido(se
retornou um valor diferente de 0).
Isso é chamado de OR(ou) Lógico.

# ifconfig eth5 || ip address show

A substituição de comandos é um recurso do shell bash permite que a saída de um comando substitua o
próprio comando. A substituição do comando ocorre quando um comando é incluído da seguinte maneira:
$ ( comando )
ou
` comando `
O Bash executa a expansão executando o comando em um ambiente de subshell e substituindo o
comando pela saída padrão do comando. Veja um exemplo:
# grep -i ext3 /boot/config-$(uname -r)

Use o comando history(comando built-in do bash) para ter uma listagem de todos os comandos digitados
para uma sessão do shell(interpretador de comandos).

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. Desta forma a possibilidade de recuperar os comandos digitados é
fabulosa.
Você poderá ver os comandos que digitou visualizando o conteúdo do arquivo .bash_history:
# cat ~/.bash_history
O símbolo "~" faz referência ao diretório home do usuário logado. uma outra forma é incluir o nome do
usuário
depois do símbolo "~", assim você poderá ver o conteúdo do diretório home desse usuário sem necessidade
dele está logado.
Por exemplo para ver o conteúdo do arquivo .bash_history do usuário suporte execute o comando:
# cat ~suporte/.bash_history

HISTFILE - Essa variável global tem localização do arquivo que armazena o histórico de comandos.
HISTSIZE - Define o número máximo de comandos que será armazenado no buffer.
HISTFILESIZE - Define o número máximo de linhas no arquivo de histórico.

Para definir uma variável de ambiente o procedimento adiciona o comando “export” antes da definição.
Abaixo mostramos exemplos de definição de variável local e de ambiente:

# LOCAL =" sem export na frente "


# export GLOBAL =" com export na frente "

O comando export define uma variável de ambiente para a sessão e para todas as sessões iniciadas a
partir dela. Por exemplo para redefinir a variável $PATH já existente, incluindo um valor adicional, execute
na linha de comando:

# export PATH="$PATH:/usr/local/sbin"

Para definir uma variável local você pode definir da seguinte forma:
# opt="/opt"
# kernel=Linux

Para exibir todas as variável(globais ou locais) execute o comando set:

# set
# set |grep -i opt

Mas se deseja apenas visualizar variáveis globais ou de ambientes, execute o comando env:

# env
# env|grep -i path

Caso queira remover qualquer variável, seja local ou global, é necessário executar o comando unset
seguido do nome da variável sem o "$"(cifrão) que antecede, da seguinte forma:

# unset kernel

Variáveis pré-definidas:
DISPLAY Determina em qual display do X o programa deve exibir suas janelas.
HOME Caminho para o diretório pessoal do usuário.
PWD O diretório atual.
UID Armazena o uid do usuário que está logado.
LOGNAME O nome que o usuário usou para entrar no sistema.
OLDPWD O ultimo diretório acessado.
SHELL O shell utilizado por padrão pelo usuário.
TERM O tipo de emulador de terminal utilizado.

Para exibir a versão do kernel linux e o nome do kernel do sistema operacional está utilizando, execute:

# uname -r
# uname –s

Para exibir o nome do hardware da máquina (arquitetura), execute:

# uname –m

Sintaxe do comando “man”:


# man [ comando ]
ou
# man [ seção ] [ comando ]
Se for necessário visualizar o manual do comando “passwd”, podemos fazer da seguinte forma:
# man passwd

Uma dica muito interessante para LPI - Exame 101, é que ao usar o comando man seguido da opção -f, a
saída do comando é semelhante ao comando whatis.

# man -f passwd

Já o comando whatis pode ser usado para identificar manuais de referência para um determinado
termo.
o comando whatis utiliza um banco de dados que armazena a seção, nome dos manuais do sistema.
Basicamente é usado para saber informações sobre um determinado comando, por exemplo, você sabe
que existe um comando chamado vim, mas não sabe o que ele faz, execute o comando whatis para ver a
descrição do comando:

# whatis vim

vim (1) - Vi IMproved, a programmers text editor

Outro comando que a LPI cobra no exame 101 é o pwd, esse comando é usado para exibir em qual diretório
está trabalhando no momento da execução do comando. Por Exemplo:

# cd /usr/local && pwd

O comando apropos procura por programas e/ou comandos através de um descrição. Ele é útil quando
precisamos fazer alguma coisa, mas não sabemos qual comando usar como, por exemplo, saber quais são
os
compiladores presentes no sistema.

Sintaxe do comando apropos:

apropos <comando>
Veja abaixo um exemplo usado com o comando apropos.

# apropos compiler

O comando cat é usado para mostrar o conteúdo de arquivos.


Pode atuar como um redirecionador, tomando todo o conteúdo direcionado para sua entrada padrão e
enviando para sua saída padrão que é a tela. Por exemplo para exibir o conteúdo do arquivo /etc/passwd:

cat /etc/passwd ou cat </etc/passwd

Para exibir o conteúdo do arquivo /etc/passwd, mas númerando todas as linhas, execute:

cat -n /etc/passwd
Para exibir o conteúdo, númerando todas as linhas com exceção das em branco:
cat -b /etc/passwd

O comando nl, numera linhas, assim como o comando cat quando usado com a opção –n:

cat /etc/group | nl

Outro comando muito importante é o wc que tem a finalidade de fazer a contagem de linhas, palavras ou
caracteres, a partir das opções -l, -w e -m respectivamente:

wc -l /etc/group
wc -w /etc/group
wc -m /etc/group

O comando sort é usado para ordenar o conteúdo dos arquivos alfabeticamente, ou, numericamente
quando se usa a opçao -n.
Por exemplo, para ordenar alfabeticamente um arquivo, execute no terminal:

echo -e "slackware\ndebian\ncentos\nredhat\nopensuse\nubuntu\nfedora" > /tmp/distro.txt


sort /tmp/distro.txt

Para ordenar alfabeticamente mas de tras pra frente, execute:

sort -r /tmp/distro.txt

O comando less é utilizado para paginação:

Ex: less /tmp/distros.txt

Teclas Ação
Setas Navega pelo texto no sentido escolhido.

b Mesmo que “Page Down”.

Enter Avança Linha a Linha.

/ Faz busca pela string no texto.

O comando head mostra as primeiras linhas de arquivos.


Por padrão, as primeiras dez linhas são mostradas.
A quantidade de linhas a serem mostradas é indicada pela opção -n. Para exibir o conteúdo das
20 primeiras linhas do arquivo /etc/shadow:
head -n 20 /etc/shadow

A opção "-n" pode ser omitida e somente informado o número total das primeiras linhas que deve ser exibido:
head 10 /etc/passwd

O sinal de subtração "-" indica que a leitura de todo o conteúdo (do arquivo ou entrada padrão) deve ser
feita, com exceção das ultimas "n", onde "n" indica o número da linhas.

cat -n /etc/passwd | head -n -20

Então o comando acima vai ler todas as linhas do arquivo /etc/passwd com exceção das últimas 20
linhas.

O comando tail mostra o final de arquivos, por padrão as últimas dez linhas são exibidas.
A quantidade de linhas a serem mostradas é indicada pela opção -n.

tail -n 15 /etc/group

Para que o final do arquivo seja mostrado continuamente, à medida que mais texto é adicionado,
usasse a opção -f(de follow).

tail -f /var/log/messages

O sinal "+" indica que a leitura deve ser feita a partir da linha especificada após o sinal "+" até o fim do
arquivo.
No exemplo abaixo a partir da linha 15 até o final do arquivo /etc/passwd.

nl /etc/passwd | tail -n +15

O comando uniq mostra o conteúdo de arquivos, suprimindo linhas sequenciais repetidas. com a opção -d,
ele mostra as linhas que se repetem. Por exemplo:

echo -e "slackware\ndebian\ncentos\nredhat\nopensuse\nubuntu\nfedora\ncentos\ndebian" >


/tmp/distro.txt

sort /tmp/distro.txt | uniq

Veja algumas opções no uniq:


Opção Descrição
-c-- Informa a quantidade de ocorrências duplicatas.
-i --Ignora maiúsculas e minúsculas.
-u-- Imprime somente linhas únicas.
-d --Imprime somente linhas duplicadas.

O comando od é usado para converter entre o conteúdo de um arquivo de texto em formatos, como,
hexadecimal, octal e binário.

od /etc/passwd

O comando paste é similar ao comando join, mas com algumas diferenças. O comando paste, mescla linhas
entre arquivos, não sendo necessário uma palavra chave. Simplesmente juntará na saída padrão linha à linha
entre dois arquivos.

Veja o exemplo para concatenar arquivos lado a lado, na forma de colunas:

paste /etc/group /etc/gshadow


O comando split divide um arquivo em outros menores, seguindo critérios como tamanho ou número de
linhas.
A opção -l indica a quantidade de linhas de cada parte do arquivo dividido. A opção -b inidica o
tamanho de cada parte.
echo -e "slackware\ndebian\ncentos\nredhat\nopensuse\nubuntu\nfedora" > /tmp/distro.txt

Por exemplo para dividir o arquivo /tmp/distro.txt criado anteriormente em várias partes, com três linhas por
parte é usada a opção "-l" com o comando split:

split -l 3 /tmp/distro.txt distros_partes_

Para unir novamente o arquivo, pode ser utilizado o comando:

cat distros_partes_* > distros_copia.txt

comandos hash:

O Linux utiliza três tipos de comandos para criar hash de arquivo:

Md5sum:

Md5sum /tmp/distros_copias.txt

Sha256sum:

Sha256sum /tmp/distros_copias.txt

Sha512sum:

Sha512sum /tmp/distros_copias.txt

O comando sed é um editor de textos não interativo.

O sed é capaz de executar uma série de comandos de edição em um arquivo de texto, mas seu uso
mais comum e cobrado no EXAME 101 da LPI é encontrar e trocar uma string por outra ou deletar uma
informação.

Por exemplo para deletar a 1 até a terceira linha do arquivo /etc/passwd, execute:

sed '1,3d' /etc/passwd ou cat /passwd | sed '1,3 d'

Para trocar todas as palavras root por bastos do arquivo /etc/passwd execute:

sed s/root/bastos/g /etc/passwd

Para alterar a segunda ocorrência da palavra root por linha no arquivo /etc/passwd por bastos:

sed s/root/bastos/2 /etc/passwd

O comando tr converte caracteres.

o comando tr usa apenas a entrada padrão.

Por exemplo, convertertodas as letras de minúsculas para maiúsculas:

# echo "texto qualquer"| tr 'a-z' 'A-Z'


ou echo 'texto qualquer'| tr '[:lower:]' '[:upper:]'

Trocando espaços pelo caractere undescore:

# echo "Frase cheia de espaços" | tr ' ' '_'

O comando cut delimita um arquivo em colunas, em determinado número de caracteres,ou por


posição de campo. Por exemplo para mostrar os campos da posição 1 e 3 do arquivo/etc/group,que
estão separados por ":":

# cut -d ':' -f 1,3 /etc/group

# cut -d ':' -f 1,3 /etc/group --output-delimiter '='

O comando file é usado para determinar qual é o tipo de arquivo consultado.


sua sintaxe é bem simples:
file [opções] arquivo
Para saber o tipo do arquivo /dev/input/mice e /etc/passwd execute:

# file /dev/input/mice
# file /etc/passwd

Para listar arquivos ou conteúdo de um diretório usamos o comando ls.


Existem diversas opções para o comando ls. Veja abaixo as opções mais comuns.
Opções Descrição
-l Exibe informações detalhadas sobre arquivo e pastas.
-a Exibe arquivos ocultos.
-h Exibe o tamanho de arquivos em formatos legiveis.
-F Acrescenta ao nome do objeto um caracter para indicar o seu tipo.
-r Ondem inversa (decrescente) de exibição.
-R Listagem em modo recursivo, ou seja, exibe o conteúdo do diretório corrente e de todo conteúdo
das subpastas.
-1 Exibe uma saída simples (apenas o nome) em uma coluna.
-t Ordena a saída pela data/hora da criação.
--color Saída colorida de acordo com as definições da variável LS_COLORS. Indicando o tipo do
arquivo.

O comando touch pode alterar a data e hora que um arquivo foi acessado ou modificado.
Quando usado sem opções ele cria o arquivo se esse arquivo não existir.
Quando executado sem opções, mas o arquivo existindo então ele altera a data e hora de criação e
modificação de um arquivo para os valores atuais do sistema.

# touch /var/log/messages

Para alterar somente a data de modificação de uma arquivo para a data atual do sistema:

# touch -m /var/log/messages

O comando cp é utilizado para copiar arquivos. Suas opções principais são:

-i - Modo interativa. Pergunta antes de sobrescrever um arquivo.

-p ou --preserve - Copia também os atributos do arquivo original.

-r ou -R - Copia recursivamente o conteúdo do diretório de origem.


-a - Está opção equivale as opções -R --preserve=all e -d(preserva links).

# cp --preserve=all -i /etc/passwd /tmp

O comando mv move e renomeia arquivos. Usado com a opção -i, ele pede confirmação antes de
sobrescrever um arquivo de destino.

# cp -v /etc/passwd /tmp

# mv /tmp/passwd /tmp/passwd.old

O comando mkdir cria diretórios.


Para criar uma árvore de diretórios recursivamente, sem necessidade de criar um a um, usa-se a opção -p:

# mkdir -p /tmp/novo_diretório/novo_subdiretório/dir

Para alterar permissões durante a criação do diretório usa-se a opção -m:

# mkdir -m 750 /tmp/lpic1

Outra opção que pode ser usada é a -v, que server para exibir o que está sendo feito pelo comando mkdir:

# mkdir -v /tmp/lpic1/exame101

O comando rm é utilizado para apagar arquivos e diretórios, suas principais opções são:

-r ou -R - Remove o conteúdo de um diretório recursivamente.

-f - Força a remoção de um arquivo ou diretório.

-v - Modo verbose, ou seja, exibe detalhes do que está sendo feito.

-i - Modo interativo, pergunta se deseja remover um arquivo ou diretório antes de remover.

-d - Está opção ativa a remoção de diretórios vazios.

# rm -vfr /tmp/novo_diretorio/novo_subdiretorio

Outro comando que a LPIC1 - EXAME 101, costuma cobrar é o rmdir, a principal diferença entre o
comando rm e rmdir, é que o comando rmdir é usado para remover diretórios vazios.
O comando rm pode ter esse comportamento com a opção -d:

# rmdir /tmp/novo_diretório

O comando find pode localizar arquivos e diretório no em uma distribuição GNU/Linux, cuja sintaxe básica
é:
find <diretório onde será feita à busca> <opções> <padrão de busca> [ opcional -exec comando {} \;]
Alguns padrões de busca:
-type - Define o tipo do arquivo (d para diretório, f para arquivo comum e l para link).

-name - Nome do arquivo.

-iname - Nome do arquivo, mas não leva em consideração caixa ALTA ou BAIXA.
-atime -/+N - Arquivo acessado antes("-") ou após("+") N. "N" corresponde à expressão n*24 horas.

-amin -/+N - Arquivo foi acesso antes("-") ou após("+") N. "N" corresponde quantidade em minutos.

-ctime -/+N - O status do arquivo foi modificado pela última vez há N * 24 horas atrás. O sinal "-" significa

antes e sinal "+" significa após.

-cmin -/+N - O status do arquivo foi modificado pela última vez há "N"(quantidade) em minutos atrás.

O sinal "-" significa antes e sinal "+" significa após.

-mtime - Os dados do arquivo foi modificado pela última vez há N * 24 horas atrás. O sinal "-" significa
antes e sinal "+" significa após.

-mmin - Os dados do arquivo foi modificado pela última vez há "N"(quantidade) em minutos atrás.O sinal
"-
" significa antes e sinal "+" significa após.

Exemplo de utilização do find: encontrar todos os arquivos do tipo link em /user/lib, com o

status(permissões) modificado há menos de 24 horas( 1 dia):

# find /usr/lib -type l -ctime -1

Buscar arquivos de configuração do sistema dentro de /etc/ com extensão .conf:

# find /etc -type f -iname '*.conf'

O comando tar une arquivos e diretórios dentro de um só arquivo ou fitas DAT e podemextrair e atualizar
estes arquivos empacotados.
Exemplo prático, para criar um arquivo contendo todo o diretório /etc e seu conteúdo com o tar, podemos usar
a forma:
tar cvf etc.tar /etc

As instruções fornecidas representam:


c - Criar um arquivo.
v - Modo verbose, Mostra cada arquivo que é incluído.
f - Especifica em seguida a localização para o arquivo criado

Para extrair o conteúdo do arquivo etc.tar para /tmp, execute:


tar xvf etc.tar -C /tmp
A opção "-C" informa o local para onde será feita a extração do conteúdo. e "x" informa que o conteúdo do
arquivo deve ser extraido.
Uma outra opção muito importante do comando é a "-t" que informa que o conteúdo do arquivo deve ser
listado/visualizado.

tar -vtf etc.tar

O comando gzip é usado para compactar e decompactar arquivos compactados. Exemplo prático para
compactar o arquivo /tmp/file1.iso:

dd if=/dev/zero of=/tmp/file1.iso bs=1M count=1024

gzip /tmp/file1.iso

Para descompactar podemos utilizar o programa gzip com a opção “-d” minúsculo:

gzip -d /tmp/file1.iso.gz
para preservar o arquivo original execute o comando:

gzip –c (nome do arquivo) > (nome do arquivo)

EX:

Gzip –c etc.tar > etc.tar.gz

Outro comando que a LPIC-1 no exame 101 pode cobrar é o gunzip que pode descompactar arquivos criados
pelo comando gzip, zip.

dd if=/dev/zero of=/tmp/file2.iso bs=1M count=1024 && gzip /tmp/file2.iso

gunzip /tmp/file2.iso.gz

As operações com arquivos e diretórios permitem o uso de caracteres curinga, que são padrões de
substituição de caracteres. O caractere "*" substitui qualquer sequência de caracteres:

# ls /etc/*.conf

O caractere "?" substitui apenas um caractere:

# ls /dev/sd?

O uso de colchetes "[ ]" indica uma lista de caracteres:

# ls /dev/sd[abc]

O uso de Chaves "{ }" inidicam uma lista de palavras separados por virgula:

# mkdir -v /tmp/distro-{debian,redhat,fedora,opensuse,slackware,centos,ubuntu}

O uso do caractere "!" exclamação antes de um curinga o exclui da operação. no exemplo abaixo é usado
como uma exceção:

# ls /dev/sd[ab][!23]

Curingas precedidos de "\" não realizam substituição:

# ls /dev/sd\[ab\]\[\!23\]

ls: não é possível acessar /dev/sd[ab][!23]: Arquivo ou diretório não encontrado

O comando dd realiza cópias byte a byte, ou seja, realiza a cópia sequencial de dados de qualquer origem
para qualquer destino. Por isso, é especialmente útil para fazer cópias completas de discos ou
partições e imagens de mídias como CDs e DVDs.

Por exemplo para criar uma copia da partição sda1, execute o comando:

# dd if=/dev/sda1 of=/tmp/part_sda1.hd

Podemos também criar arquivos vazios, que poderão ser montados para arquivar outros arquivos:
# dd if=/dev/zero of=/tmp/file1.iso bs=1M count=1024

bs - Informa ao comando dd para ler e escrever um número de BYTES de cada vez. M indica o valor em
Megabytes.
count - Informa ao comando dd para copiar somente N blocos de entrada. no exemplo do comando copia
1024 blocos de 1M informado por bs.

O comando cpio realiza três operações: criar arquivamentos, extrair o conteúdo de arquivamentos e
copiar arquivos de um local para outro.
Principais opções:

-o - Modo de saída de cópia(criar).

-i - Modo de entrada de cópia(extrair).

-t - Lista o conteúdo de um arquivamento.

-d - Cria estrutura de diretório se necessário.

Para criar uma cópia do kernel linux e outros arquivos de /boot:

# cd /lib/modules/$(uname -r)

# ls | cpio -ov > /tmp/files_modules.cpio

Para Extrair o conteúdo do arquivo files_modules.cpio:


# cd /tmp
# cpio -ivd < files_modules.cpio

O comando apropos faz uma busca por manuais tanto ,por nome quanto por descrição, para
referencia.

O apropos faz a mesma coisa que o man-k

O man –f faz o mesmo que o apropos

O comando whatis procura manuais por nomes específicos

O comando info faz o mesmo que o man só que mais completo mostrando todas as seções

O comando whereis traz o local do comando com os binários

O comando Whitch fa o mesmo que o whereis mas com o caminho absoluto

O caminho /usr/share/doc é onde fica a documentação/dev/null descarta os erros

Você também pode gostar