Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
# chsh -l
ou
# cat /etc/shells
# alias
ou
# alias –p
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.
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:
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
# 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
# uname –m
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
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:
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.
apropos <comando>
Veja abaixo um exemplo usado com o comando apropos.
# apropos compiler
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:
sort -r /tmp/distro.txt
Teclas Ação
Setas Navega pelo texto no sentido escolhido.
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.
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.
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:
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.
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:
comandos hash:
Md5sum:
Md5sum /tmp/distros_copias.txt
Sha256sum:
Sha256sum /tmp/distros_copias.txt
Sha512sum:
Sha512sum /tmp/distros_copias.txt
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:
Para trocar todas as palavras root por bastos do arquivo /etc/passwd execute:
Para alterar a segunda ocorrência da palavra root por linha no arquivo /etc/passwd por bastos:
# file /dev/input/mice
# file /etc/passwd
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 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
# mkdir -p /tmp/novo_diretório/novo_subdiretório/dir
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:
# 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).
-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
-cmin -/+N - O status do arquivo foi modificado pela última vez há "N"(quantidade) em minutos atrá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
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
O comando gzip é usado para compactar e decompactar arquivos compactados. Exemplo prático para
compactar o arquivo /tmp/file1.iso:
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:
EX:
Outro comando que a LPIC-1 no exame 101 pode cobrar é o gunzip que pode descompactar arquivos criados
pelo comando gzip, zip.
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
# ls /dev/sd?
# 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]
# ls /dev/sd\[ab\]\[\!23\]
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:
# cd /lib/modules/$(uname -r)
O comando apropos faz uma busca por manuais tanto ,por nome quanto por descrição, para
referencia.
O comando info faz o mesmo que o man só que mais completo mostrando todas as seções