Mostrando postagens com marcador comandos avançados. Mostrar todas as postagens
Mostrando postagens com marcador comandos avançados. Mostrar todas as postagens

segunda-feira, 1 de junho de 2015



Amigos, alguns de vocês devem ter lido meu outro post sobre os repositórios no Debian Linux. Ao atualizar um de meus computadores para a nova versão, code nome Jessie, percebi que as dicas não eram mais válidas, então venho aqui atualizá-las e peço desculpas para os que seguiram o outro post usando o Debian 8.

Antes de começar

Esse tutorial requer um mínimo de conhecimento sobre o "mundo linux", caso seja sua primeira visita a esse mundo, recomendo que comece com o Ubuntu.

Primeiro, vamos fazer um backup do arquivo de repositórios, abra o terminal e digite:

sudo cp /etc/apt/sources.list /home/seuusuarioaqui/Desktop/sources.list

O comando acima, copiará o arquivo para a Desktop, substitua "seuusuarioaqui" pelo nome do usuário logado no momento e também fique à vontade para editar o caminho do backup (não altere o que vem antes de "/home" pois os resultados são imprevisíveis).

Caso haja algum problema fatal, é só copiar o backup de volta ao sistema com o comando:

sudo cp /caminhoquevocesalvouaqui /etc/apt/sources.list

Substituindo "/caminhoquevocesalvouaqui" pelo caminho do backup no seu HD.

Configurando os repositórios


No terminal digite:

sudo leafpad /etc/apt/sources.list

Observe que "leafpad" é um editor de texto e pode ser que seu sistema possua outro, verifique clicando em "Aplicativos" e movendo o cursor sobre "Acessórios", depois procure por um na lista flutuante que apareceu, ao encontrar guarde o nome e depois digite no lugar de "leafpad" no comando acima.

Uma janela com o editor de texto, vá em "Opções" e depois clique em "Números nas linhas" ou "Numerar linhas", isso fará uma barra aparecer na esquerda do documento com as linhas contadas. (Isso varia de editor para editor, o pluma por exemplo mostra essa informação em sua barra de status)

Na linha 5, adicione um "hashtag" (#) no início da linha, o resultado será esse:

#deb cdrom:[Debian GNU/Linux 8.0.0 _Jessie_ - Official i386 DVD Binary-1 20150425-11:43]/ jessie contrib main

Isso desativará a busca por softwares no drive de CD/DVD.

Na última linha adicione o texto abaixo:

#Repositórios Extras (BR)

deb http://ftp.br.debian.org/debian jessie main contrib non-free
deb-src http://ftp.br.debian.org/debian jessie main contrib non-free

deb http://ftp.br.debian.org/debian/ jessie-updates main contrib non-free
deb-src http://ftp.br.debian.org/debian/ jessie-updates main contrib non-free

#Multimedia
deb http://www.deb-multimedia.org jessie main non-free
deb-src http://www.deb-multimedia.org jessie main non-free

#BackPorts
deb http://http.debian.net/debian/ jessie-backports main contrib non-free

Isso fará com que ele busque por software em seus repositórios, inclusive os pacotes "non-free" que não são "open source" (código aberto).

Salve as mudanças (Ctrl+S), feche a janela e digite no terminal:

sudo apt-get update
Um erro de chave pode aparecer, mesmo que não apareça, digite:
sudo apt-get install deb-multimedia-keyring

Isso ativará o download dos pacotes de multimídia, copiando a chave pública para seu computador, depois digite (uma linha de cada vez, ENTER no fim de todas):
sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Caso seja solicitado, concorde com a instalação das atualizações e aguarde o download e instalação das mesmas.

Manutenção


Para manter sempre sua distro atualizada, recomendo que uma vez por semana abra o terminal e digite (um de cada vez):
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Extra


NÃO recomendo fazer isso a menos que seja um usuário avançado e domine linux.


Muitos devem conhecer o famoso Kali Linux, pois saiba que você poderá adicionar os repositórios do mesmo e ter acesso à todas as suas ferramentas direto do seu Debian (somente continue se tiver certeza do que está fazendo). Para isso volte no arquivo sources.list e na última linha adicione:

# Repositório Kali Linux
deb http://http.kali.org/kali kali main non-free contrib
deb http://security.kali.org/kali-security kali/updates main contrib non-free

# Edge repositories Kali Linux
deb http://repo.kali.org/kali kali-bleeding-edge main
deb-src http://repo.kali.org/kali kali-bleeding-edge main

Após isso, salve e feche, então atualize o sistema:

sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade

Pronto.

Solução de Problemas


Um erro pode ser relatado pelo terminal, com um texto semelhante ao abaixo:

W: GPG error: http://kali.org.com debian Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3EE67F3D0FF405B2

Caso você tenha adicionado os repositórios do Kali erros de assinatura  aparecerão, mas não se preocupe pode instalar sem problemas.

No caso de outros problemas, que geralmente são marcados com "W" ou "E" ou ainda "Err" no terminal, salve um print da tela e vá até a comunidade ou o nosso grupo para que possamos tentar resolver seu erro específico, se possível salve um log dos comandos que foram digitados num .txt pois isso facilitará quem for ajudar.

Conclusão


Com esse mini tutorial, seu Debian Jessie estará pronto para voar. Estarei acompanhando as mudanças e caso ocorram estarei adicionando o conteúdo aqui no blog, então não deixe de nos acompanhar, entre no nosso grupo do Facebook também.

Links Úteis


https://debian.org/ (em inglês)

https://www.debian.org/support (em inglês)

https://www.debian.org/doc/ (em inglês)

Agradeço a atenção e espero ter sido claro, qualquer dúvida vá ao nosso grupo que a equipe estará pronta a ajudar, até a próxima.

sexta-feira, 17 de maio de 2013

Depois de um tempo parado com essa série e com meus estudos por falta de tempo, agora vou voltar a estudar e criar posts sobre Linux, voltado para a certificação LPI 1. No post de hoje vamos ver alguns comandos avançados no terminal, todos eles de altíssima relevância e cobrados no exame. Mais específicamente vamos ver comandos de busca e manipulação de entradas e saídas de comandos com alguns operadores.


Localizadores


Vamos começar pelos comandos localizadores. Existem uma série de comandos úteis para localizar todo o tipo de arquivo no sistema. Vejamos os principais:

Find

Este comando procura por diretórios e arquivos por uma infinidade de características, por exemplo, data de criação, data de modificação, nome, tamanho, etc.

A sintaxe do comando find é find [diretório] [opções/expressão].

Algumas flags interessantes:

- name [expressão]: Procura pela [expressão] definida nos nomes de arquivos e diretórios processados.

# find /etc -name*.conf

- maxdepth [num]: Limita a recursividade de busca na árvore de diretórios. Por exemplo, limitando a 1, a busca será feita apenas no diretório especificado e não irá incluir nenhum subdiretório.
# find /etc -maxdepth 1 -name*.conf

- amin [num]: Procura por arquivos que foram acessados [num] minutos atrás. Caso seja antecedido por “-”, procura por arquivos que foram acessados entre [num] minutos atrás e o momento atual.

# find ~ -amin -5

- atime [num]: Procura por arquivos que foram acessados [num] dias atrás. Caso seja antecedido por “-”, procura por arquivos que foram acessados entre [num] dias atrás e a data atual.

# find ~ -atime -10

- uid [num]: Procura por arquivos que pertençam ao usuário com o “uid 1000” [num].
# find / -uid 1000

- user [nome]: Procura por arquivos que pertençam ao usuário “aluno” [nome].

# find / -user aluno

- perm [modo]: Procura por arquivos que possuem os modos de permissão [modo]. Os [modo] de permissão podem ser numérico (octal) ou literal.
# find / -perm 644

- size [num]: Procura por arquivos que tenham o tamanho [num]. O tamanho é especificado em bytes. Você pode usar os sufixos k, M ou G para representar o tamanho em Quilobytes, Megabytes ou Gigabytes, respectivamente. O valor de [num] Pode ser antecedido de “+” ou “-” para especificar um arquivo maior ou menor que [num].
# find / -size +1 M

- type [tipo]: Procura por arquivos do [tipo] especificado. Os seguintes tipos são aceitos: b - bloco; c - caractere; d - diretório; p - pipe; f - arquivo regular; l - “link” simbólico; s - “socket”.
# find / dev - type b


Xargs


Outra forma de procurar por arquivos e/ou diretórios e executar um comando é através do comando xargs que obtém como a entrada a saída ok do comando antes do pipe e envia como stdin do próximo comando, no caso o ls -ld:

# find / etc -type d | xargs ls -ld


Time


O comando time permite medir o tempo de execução de um programa:
# time find / -name *.conf


Locate


Outro método de busca é o comando locate, mas este em específico não faz a busca recursivamente, e sim por uma base de dados. Então, antes de usar esse comando você precisa atualizar a base de dados com o comando:
# updatedb

Pode ser que a primeira vez ele demore um pouco, porque ele está varrendo, verificando e catalogando todos os arquivos do disco. A sintaxe do comando é bem simples, apenas o comando e o que você pretende procurar.
# locate howto

A saída do comando acima será parecida com:
/usr/share/doc/python2.4-xml/howto.cls
/usr/share/doc/python2.4-xml/xml-howto.tex.gz
/usr/share/doc/python2.4-xml/xml-howto.txt.gz
/usr/share/vim/vim64/doc/howto.txt


Redirecionamentos


Antes de vermos os operadores de redirecionamento e os comandos, vamos a um pouco de teoria que pode ser necessário. O Linux tem três fluxos de dados, Entrada (INPUT), Saída (OUTPUT) e, Diagnósticos e Erros.

Por padrão, a entrada de dados é pelo teclado, e a saída é na tela. Normalmente erros também são mostrados na tela. Normalmente é utilizado alguns termos para identificar essas entradas e saídas padrões. São elas: 0 - Entrada de dados, representada por “stdin” (Standard Input); 1 - Saída de dados, representada por “stdout” (Standard Output); 2 - Saída de erros, representada por “stderr” (Standard Error).


Operadores e Comandos


> (maior): Direciona a saída do comando para um arquivo, substituindo o seu conteúdo, caso o arquivo já exista;

>> (maior-maior): Direciona a saída do comando para um arquivo, adicionando o texto ao final do arquivo, caso ele já exista;

< (menor): Passa o conteúdo do arquivo como argumento para o comando;

2> (dois-maior): Direciona as saídas de erro geradas pelo programa para um arquivo, substituindo seu conteúdo, caso o arquivo já exista;

2>> (dois-maior-maior): Direciona as saídas de erro geradas pelo programa para um arquivo, adicionando o texto ao final do arquivo, caso ele já exista;

2>&1 (dois-maior-e-um): Direciona as saídas de erro para a saída do comando, no caso para STDOUT;

&> (e-maior): Direciona todas as saídas (normal e de erro) para um arquivo, substituindo seu conteúdo, caso ele já exista; &» (e-maior-maior): Direciona todas as saídas (normal e de erro) para um arquivo, adicionando o texto ao final do arquivo, caso ele já exista;

| (barra vertical ou pipe): Utiliza a saída do primeiro comando como argumento do segundo comando; tee: mostra saída na tela e redireciona para um arquivo ou outra localização ao mesmo tempo;

<<: marca o fim de um bloco.

tee: Este comando permite que a saída seja exibida na tela e ao mesmo tempo redirecionada a um arquivo. Caso o arquivo não exista será criado um arquivo.

dd: O comando dd dos sistemas baseados em Linux e Unix, é um programa para copiar e converter arquivos de um local para outro, servindo até para clonar dispositivos ou áreas de discos fixos ou removíveis como CD(s), DVD(s), disquetes, HD(s), dispositivos USB entre outros. A sintaxe do comando é dd if=<origem> of=<destino>.

wc: A maioria dos arquivos de configuração no Unix é separada em linhas, temos este comando para contar as linhas de um arquivo. Este comando indica quantas linhas, palavras e caracteres tem um arquivo. Caso queira apenas ver a contagem de linhas use a flag -l, para contagens de palavras a flag -w e para a contagem de caracteres use a flag -c.

split: Usado para dividir um determinado arquivo em arquivos menores.

file: Informa o tipo do arquivo.

who: Determina quais usuários estão logados no sistema.

w: Mostra tempo que o sistema está ligado, média de carga do sistema, usuários logados.

ln: O comando ln permite criar links. Existem dois tipos de links suportados pelo Linux, os hard links e os links simbólicos. Os links simbólicos têm uma função parecida com os atalhos do Windows: eles apontam para um arquivo, mas se o arquivo é movido para outro diretório, o link fica quebrado. Os hard links por sua vez são semelhantes aos atalhos do OS/2 da IBM, eles são mais intimamente ligados ao arquivo e são alterados junto com ele. Se o arquivo muda de lugar, o link é automaticamente atualizado. Isto é possível porque nos sistemas de arquivos usados pelo Linux cada arquivo possui um código de identificação (chamado de inode), que nunca muda. O sistema sabe que o arquivo renomeado é o mesmo do atalho simplesmente procurando-o pelo inode ao invés do nome.

stat: Um inode é, na realidade, uma estrutura de dados que possui informações sobre um determinado arquivo ou diretório como, por exemplo, dono, grupo, tipo e permissão de acesso. Para sabermos essa e outras informações de um arquivo usamos o comando stat.

sort: Comando usado para organizar em ordem as linhas de um arquivo. Pode-se usar algumas flags para customizar a organização, como por exemplo, -f para ignorar caixa alta e caixa baixa, -n para classificação numerica e -r para ordem invertida.

uniq: Remove linhas duplicadas.


E era isso por hoje!

No próximo post sobre a série preparatória da certificação LPI 1 abordaremos mais um pouco de filtragem de comandos e administração da Shell. Eu fico por aqui, mas recomendo que estudem isso, pois mesmo que não prestem a prova, esse tipo de conhecimento pode fazer a diferença.

Bons estudos!
Subscribe to RSS Feed Follow me on Twitter!