24
DECRYPT Curso de Linux Prof. Carlos Tardocchi /bin Comandos Bash

Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

  • Upload
    dohanh

  • View
    231

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

DECRYPT Curso de Linux

Prof. Carlos Tardocchi

/bin

Comandos Bash

Page 2: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

1

ls list

Lista arquivos e conteúdo do diretório

Sintaxe ls <opções>... <lista de arquivos ou diretórios>...

Na linha de comando do sistema operacional Unix, o ls é um comando usado para listar arquivos e diretórios. Sua função é análoga ao comando dir do MS-DOS.

A maioria das distribuições de Linux, como por exemplo o Ubuntu, têm um comando dir semelhante ao ls, pois ambos fazem parte do pacote GNU Core Utilities.

Apesar do comando ls poder ser executado por qualquer usuario do computador, não será permitido a listagem de determinados diretórios os quais estar sem permissão de leitura de conteúdo.

Ex.: O conteúdo do diretório /root só poderá ser visualizado pelo super usuário.

O comando ls não só lista os arquivos e diretórios da pasta corrente, poderá listar diretórios e arquivos localizados em outras pastas. No exemplo a seguir o usuario, nesse momento, esta no diretório raiz / , e mandou listar o conteúdo da pasta grub localizada dentro de boot.

Ex: usuario@computador / $ ls /boot/grub/

Somente com o comando ls conseguimos visualizar os arquivos e pastas do diretório. Mas se eu quiser saber o tamanho do arquivo ou pasta? A data de criação? Como faço? Para isso é necessário informar algumas opções que são utilizado com o comando ls. Vamos ver algumas dessas opções abaixo.

Principais Opções

-a, --all exibe os pastas e arquivos ocultos

-A, --almost-all não mostra os diretórios implicitos . e ..

-d, --directory lista os nomes dos directorios em vez do seu conteudo

-l usa o formato lista longa (com mais detalhes)

-full usa o formato lista longa (com mais detalhes) e sem esconder

os diretórios começados por .

-t ordena por data

-r inverte a ordem

-h visualiza o tamanho do arquivo de uma forma mais humana

-lat Mostra os diretórios e arquivos longos, arquivo ocultos e na

ordem de criação do arquivo.

-i Exibe o número de índice (I-node) dos arquivos;

-m Lista os arquivos em linhas, separando cada item com uma

vírgula;

-S Organiza a lista de acordo com o tamanho do arquivo;

-X Organiza a listagem em ordem alfabética;

-u Organiza a listagem pela data do último acesso;

Exemplos : usuario@computador~$ ls –laht *.mp3 visualiza todos os arquivos do tipo mp3 numa visão longa, ocultos numa forma humana por ordem de data de criação.

Page 3: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

2

cd change directory

muda de diretório

Sintaxe

cd [diretório]

O comando “cd” serve para acessar e mudar de diretório corrente. Ele é utilizado para a navegação entre as pastas do computador.

O comando cd pode ser executado por qualquer usuario do computador, somente não será permitido acessar determinados diretórios que não possua a permissão de acesso.

Ex.: O diretório /root só poderá ser acessado pelo super usuário.

Com o comando cd , não necessita ir acessando por etapa cada sub diretório, até alcançar o diretório de destino, basta informar o caminho completo.

cd /var/cache/apt/arquives/

Exemplos:

$ cd /home/usuario ou cd ~ → muda para o diretório do usuário $ cd . → diretório atual $ cd .. → muda para o diretório anterior, $ cd / → muda para o diretório raiz, $ cd - → muda para o ultimo diretório acessado, $ cd ../.. → muda para dois diretório anteriores $ cd ~/teste → muda para o diretório teste localizado dentro do diretório do usuário atual.

Page 4: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

3

mkdir make directory

Lista arquivos e conteúdo do diretório

Sintaxe mkdir <opções> <destino> nome do diretorio

As opções mais utilizadas com esse comando:

-m : Permite a criação de um diretório já com as permissões desejadas;

-p : Permite criar uma árvore completa de diretórios em um único comando;

-v : Exibe mensagens para cada diretório criado;

O comando mkdir tem como função criar diretórios, para realizar o processo é necessário que o usuário tenha permissões de escrita no diretório onde o mesmo será criado. Para que possamos entender melhor, criar diretório é o mesmo que criar uma nova pasta, como acontece nos sistemas Windows, ou até mesmo no Linux, no ambiente gráfico, mas como aqui estamos tratando de linha de comando, vamos realizar o processo no terminal.

O comando mkdir poder ser executado por um usuário comum, entretanto , somente poderá criar uma pasta dentro de sua pasta pessoal.

exemplo:

mkdir -p /tmp/diretorio2/diretorio1/diretorio1

No exemplo acima, nenhum diretório existia, colocando o parâmetro “-p”, ele permite que eu crie todos os diretórios de uma única vez.

mkdir -m 777 /tmp/diretorio3

Uma opção bastante usada também é a opção -m junto com o mkdir onde é atribuida permissões ao arquivo, como por exemplo leitura, escrita, também especifica qual usuário ou grupo terá permissão sobre o arquivo.

Criação de diretório com nome composto:

$ mkdir ”curso de linux” ou

$ mkdir curso\ de\ linux

Page 5: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

4

rmdir remove directory

remove um ou mais diretórios vazios Comando , quando executado por um usuário comum , fica limitado a autorização da exclusão

dentro da pasta pessoal.

Sintaxe rmdir <opções> <localização do diretório>nome do diretorio

- Deleta o diretório, se estiver vazio

$ rmdir nome-do-diretorio

- Deleta todos os diretórios e sub diretórios vazios

$ rmdir -p nome-do-diretorio

- Apaga o diretorio se estiver vazio

$ rmdir "Diretorio com espacos"

Page 6: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

5

touch criação de arquivo de texto vazio

Sintaxe

$touch arquivo

O comando touch também modifica a data e hora de acesso e modificação de arquivos. Você pode modificar tanto a hora de acesso quanto a hora de modificação dos arquivos, ou os dois ao mesmo tempo.

Legenda: A - ano (é considerado a faixa de 1969-2068) M - mês D - dia h - Hora m - minutos s - segundos

Para modificarmos a data e hora de acesso e modificação de um arquivo basta fazermos o seguinte:

$ touch -t AAAAMMDDhhmm.ss arquivo Se o arquivo não existir ele será criado com a data e hora definidas. Se o arquivo já existir, ocorrerá apenas a alteração da data e da hora. Se quisermos modificar apenas a data e hora de acesso do arquivo temos que usar o comando touch com o parâmetro -a. Exemplo:

$ touch -t AAAAMMDDhhmm.ss -a arquivo E se quisermos modificar apenas a data e hora de modificação do arquivo, teremos que usar o comando touch com o parâmetro -m. Exemplo:

$ touch -t AAAAMMDDhhmm.ss -m arquivo

Exemplos de utilização do comando:

1. touch -t 200702182233.10 -m testando.txt 2. touch -t 202703102340.10 testando.txt 3. touch -t 199501010129.10 -a testando.txt

No exemplo 1 o arquivo testando.pdf terá sua data e hora de modificação alteradas para 18/Fev/2007 às 22:33:10. No exemplo 2 o arquivo testando.pdf terá sua data e hora de acesso e modificação alteradas para 10/Mar/2027 às 23:40:10. No exemplo 3 o arquivo testando.pdf terá sua data e hora de acesso alteradas para 01/Jan/1995 às 01:29:10. Obs.: Nos 3 exemplos, se o arquivo testando.txt não existir no diretório atual ele será criado.

Page 7: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

6

rm remove arquivos comuns

O comando rm no Linux é usado para deletar arquivos ou diretórios. Sintaxe: rm [options] filename

Opções:

-i : Pergunta antes de remover (muito recomendado quando usa " * " no filename); -v : Mostra os arquivos na medida que são removidos; -r : Usado para remover arquivos em sub-diretórios. Esta opção também pode ser usada para remover diretórios e sub-diretórios; com arquivos. -f : Remove os arquivos sem perguntar (não recomendado, principalmente quando usa " * " no filename);

Exemplos :

Para excluir diretórios com arquivos:

$ rm -r → Exclui diretórios com ou sem conteúdo

exemplo : rm -r laranja

$ rm -rf → Exclui forçado diretórios com ou sem conteúdo

exemplo : rm -rf laranja

Page 8: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

7

mv move

O comando mv no Linux é usado para mover ou renomear arquivos ou diretórios.

As opções mais utilizadas são:

-i - Modo interativo pede confirmação. -f - Usa modo forçado, substitui arquivos protegidos. Sintaxe:

Sintaxe : mv [opção] [arquivo ou diretório origem] [arquivo ou diretório destino]

Movendo arquivos e diretórios

Vamos mover o arquivo doc1 localizado na no desktop do usuário curso para dentro do diretório dir1

A. Acesse o desktop do usuário curso cd /home/curso/Desktop/

B. Digite :

$ mv /home/curso/Desktop/doc1 /home/curso/Desktop/dir1/doc1

Observe que o arquivo doc1 não aparece mais no diretório /home/curso/desktop.

Esse comando deve ser usado com extrema cautela. Pois se estivermos como root por exemplo, podemos mover acidentalmente um arquivo ou um grupo de arquivos essenciais para o sistema e prejudicar o funcionamento do mesmo.

Movendo o conteúdo de um diretório para outro diretório

Vamos mover todo o conteúdo do diretório /home/curso/exemplo2 para dentro de /home/curso/exemplo4

A. Crie o subdiretório exemplo4 dentro de /home/curso B. Entre no subdir criado. C. Digite :

$ mv /home/curso/exemplo2/* /home/curso/exemplo4/

Renomeando um arquivo ou diretório

Exemplos: mv teste teste1 Muda o nome do arquivo teste para teste1

Page 9: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

8

cp copy

Lista arquivos e conteúdo do diretório

Sintaxe cp <opções>... <lista de arquivos ou diretórios>... Copia arquivos.Sintaxe:

cp [ opções ] [ origem ] [destino]

onde:

• origem = Arquivo que será copiado. Podem ser especificados mais de um arquivo para ser copiado

• destino = O caminho ou nome de arquivo onde será copiado. Se o destino for um diretório, os arquivos

de origem serão copiados paradentro do diretório.

opções:

Modificam o comportamento do comando:

-f, --force Não confirma, substitui arquivos caso jáexistam.

-i, --interactive Confirma antes de substituir arquivosexistentes.

-u --update Copia somente se o arquivo de origem é mais novo que o arquivo de destino ou quando o

arquivo de destino não existe.

-r Copia arquivos e sub-diretórios, com exceção de arquivos especiais FIFO e

dispositivos.

-R, --recursive Copia arquivos e sub-diretórios, inclusive arquivos especiais FIFO e dispositivos.

-p, --preserve Preserva atributos do arquivo, se for possível.o comando cp copia arquivos da

ORIGEM para o DESTINO. Ambos origem e destino terão o mesmo conteúdo após a cópia.

Exemplos:

cp teste teste1 Copia o arquivo teste para teste1

cp teste /tmp Copia o arquivo teste para dentro do diretório /tmp

cp * /tmp Copia todos os arquivos do diretório atual para /tmp

cp /bin/* . Copia todos os arquivos do diretório /binpara odiretório atual.

cp -R /bin /tmp Copia o diretório /bin e todos os arquivos/sub-diretórios existentes para o

diretório /tmp

cp -R /bin/* /tmp Copia todos os arquivos do diretório /bin (exceto o próprio diretório /bin ) e todos os

arquivos/sub-diretórios existentes dentro delepara /tmp

cp -R /bin /tmp Copia todos os arquivos e o diretório /bin para /tmp

.

Page 10: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

9

ln link

O comando ln

Cria um novo link para arquivos e diretórios.

O link é o mecanismo usado para fazer referência a um arquivo ou diretório.

Sintaxe:

ln [ opções ] [ origem ] [link]

Onde:

• origem: Diretório ou arquivo de onde será feito o link .

• link: Nome do novo link que será criado.

• opções: Modificam o comportamento do comando:

-s Cria um link simbólico. Usado para criar ligações com oarquivo/diretório de destino.

-d Cria um hard link para diretórios. Somente o root podeusar esta opção.Existem 2 tipos de links:

simbólicos e rígidos

O link rígido faz referência ao mesmo i-node do arquivo original, desta forma ele será

perfeitamente idêntico, inclusive nas permissões de acesso, ao arquivo original. Ambos os links passam

a se referir ao mesmo arquivo, e não a cópias iguais. Não é possível fazer um link rígido para um diretório ou para

arquivos que estejam em partições diferentes.

O link simbólico cria um arquivo especial no disco (do tipo link) que temcomo conteúdo o

caminho para chegar até o arquivo alvo (isto pode serverificado pelo tamanho do arquivo do link).

A opção –s cria linkssimbólicos.Observações:

Se for usado o comando rm com um link, somente o link será removido.

Se for usado o comando cp com um link, o arquivo original será copiado ao invés do link.

Se for usado o comando mv com um link, a modificação será feita no link.

Se for usado um comando de visualização (como o cat), o arquivooriginal será visualizado.

Exemplos:

ln -s /dev/ttyS1 /dev/modem Cria o link simbólico /dev/modem para o arquivo /dev/ttyS1

ln -s /tmp ~/tmp Cria um link ~/tmp para o diretório /tmp

.

Page 11: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

10

Nano

sintaxe : $ pico ou nano [nomedoarquivo] .

Quando o arquivo estiver aberto no Nano, você verá uma pequena lista de exemplos de comando na parte inferior da janela do terminal. Veja na figura: Todas as combinações de teclas para Nano começam com a tecla CTRL. Para executar um comando você deve manter a tecla CTRL pressionada e clicar na segunda tecla para executar a ação. As combinações mais comuns para Nano são:

Os principais comandos são:

Ctrl + O Salva arquivo Ctrl + W Procura uma palavra no arquivo aberto ( veja que o menu se modifica e são apresentadas novas opções ) Ctrl + K Recorta a linha atual Ctrl + X: Sai do programa ( ele irá perguntar para salvar o arquivo caso alguma modificação tenha sido feita ) .

Page 12: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

11

Editor de texto - vi

"vi" é a sigla para "Visual Interface". O vi é um dos editores de textos mais utilizados no mundo linux e Unix. Cursor:

G - final do arquivo (maiúsculo) H - início da tela (maiúsculo) L - última linha da tela (maiúsculo)

Deletando texto:

x deleta um caracter dw deleta palavra Ex: 2dw - delete duas palavras Dd deleta linha corrente dG deleta até a última linha do arquivo ( G maiúsculo) d$ deleta até o fim da linha

Movendo texto:

Primeiro executar o comando deletar, depois executar o colar: P cola abaixo do cursor (minúsculo) P cola acima do cursor (maiúsculo)

Copiando texto:

Yw copia palavra corrente yy copia a linha corrente yG copia até a última linha do arquivo ( G maiúsculo) y$ copia até o fim da linha

Alterando o texto:

Comandos basicos de insercao de texto:

I Insere texto antes do cursor a Insere texto depois do cursor r Sobrescreve o caracter onde se encontra o cursor A Insere texto no final da linha onde se encontra o cursor o Adiciona linha abaixo da linha atual O Adiciona linha acima da linha atual ( O maiúsculo)

d remove (recorta) a linha atual. (minusculo) D remove o resto da linha a partir do cursor. (D maiúsculo) S remove o caractere sob o cursor e entra em modo de inserção.

: w salvar : w teste salva o texto num arquivo de nome teste : wq salva e fecha o VI. shift zz salva e sai fecha o VI. :q fecha o VI :q! fecha o VI ignorando qualquer alteração não salva. Ctrl x salva e sai fecha o VI.

Page 13: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

12

uname

O comando ln

Exibe informações sobre o sistema.

Sintaxe:

uname [ opção ]

opcao:

-a → exibe todas as opções;

-m → exibe o nome da plataforma

-n → exibe o nome da m'aquina

-s → exibe o nome do sistema operacional,

-v → Exibe a data de lancamento do sist. Oper.

-r → exibe a versao do sistema operacional.

Acompanhe os seguintes exemplos:

# uname -a

Linux server.nocbr.net 2.4.23-HN-1.3-P4 #1 SMP Mon Dec 8 13:58:54 EST 2003 i686 i686 i386 GNU/Linux

# uname -s

Linux

# uname -r

2.4.23-HN-1.3-P4

# uname -m

i686

# uname -n

server.nocbr.net

# uname -o

server.nocbr.net

Page 14: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

13

df

O comando df

O comando df mostra o espaço livre/ocupado de cada partição. Pode ser utilizado junto com várias

opções, se for utilizado sozinho, mostrará o espaço usado e disponível de todos os sistemas de arquivos atualmente montados.

Sintaxe:

df [ opção ]

Exemplo:

# df –a

Opções:

-a - inclui sistema de arquivos com 0 blocos

-h - mostra o espaço livre/ocupado em MB, KB, GB em vez de bloco.

-k - lista em Kbytes

-l - somente lista sistema de arquivos locais

-m - lista em Mbytes

-T - lista o tipo de sistema de arquivos de cada partição.

Page 15: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

14

ip

O comando ip

ip neigh show

ip addr show

ip route show

Bem mais intuitivo, não acha? Se ficou curioso em relação às saídas desses comandos, execute

eles aí no seu Linux e veja a diferença.

Nós podemos também simplesmente listar quais interfaces de rede estão presentes no sistema sem

nos preocupar se elas têm ou não um endereço IP associado. Este é um novo conceito trazido pelo

comando “ip”, ou seja, a separação do protocolo da camada de rede, como por exemplo o IPv4 e o IPv6,

da interface de rede. Exemplo:

1 root@linux:~# ip link show

2 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

3 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

4 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state

DOWN qlen 1000

5 link/ether 00:19:5b:69:5d:d7 brd ff:ff:ff:ff:ff:ff

Este comando só nos mostra quais interfaces de rede nós temos e não nos mostra informação de

protocolo da camada de rede. Outro conceito que morre com o comando “ip” é o de interface virtual, ou melhor,

“IP Aliasing”. Com o comando “ip” nós podemos atribuir vários endereços IP a uma mesma interface de rede.

Inclusive endereços em uma mesma rede IP. Exemplo:

1 root@linux:~# ip addr add 192.168.0.1/24 dev eth0

2 root@linux:~# ip addr add 172.16.22.1/16 dev eth0

3 root@linux:~# ip addr add 10.0.0.1/8 dev eth0

4 root@linux:~# ip addr add 10.0.0.2/8 dev eth0

Se fôssemos usar o comando ifconfig, nós teríamos uma interface de rede com endereço 192.168.0.1 e

teríamos que criar mais três interfaces virtuais, uma com o endereço 172.16.22.1, outra com o endereço

10.0.0.1 e por último uma interface com o endereço 10.0.0.2.

Veja como fica configurada uma interface de rede após a execução dos quatro comandos anteriores:

Page 16: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

15

1 root@linux:~# ip addr show dev eth0

2 1: eth0: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000

3 link/ether 00:19:5b:69:5d:d7 brd ff:ff:ff:ff:ff:ff

4 inet 192.168.0.1/24 scope global eth0

5 inet 172.16.22.1/16 scope global eth0

6 inet 10.0.0.1/8 scope global eth0

7 inet 10.0.0.2/8 scope global secondary eth0

Outra vantagem do comando “ip” é que é possível criar mais de uma tabela de rotas e definir

políticas para quais tabelas serão usadas. Dois exemplos de utilização dessa funcionalidade é quando

temos um roteador conectado a dois links de Internet. Devemos usar uma tabela de rotas para cada um

desses links. Desta forma nós evitamos que um pacote que entre em nossa rede pelo link 1, por exemplo,

não saia pelo link 2. Outra utilização é para fazermos “Load Balancing” de links. Com as mesmas duas

tabelas do exemplo de dois links, nós podemos definir uma terceira tabela de rotas que tem como rota

“default” os dois links, e esses com o mesmo peso.

Você já se perguntou quantas tabelas de rotas existem em um sistema operacional Linux?

Por padrão três, mas podemos criar muitas outras. Veja a execução destes três comandos:

01 root@linux:~# ip rule show

02 0: from all lookup local

03 32766: from all lookup main

04 32767: from all lookup default

05

06 root@linux:~# ip rule add table 5

07

08 root@linux:~# ip rule show

09 0: from all lookup local

10 32765: from all lookup 5

11 32766: from all lookup main

12 32767: from all lookup default

É assim que criamos uma nova tabela de rotas. Com o comando “ip route add table”número da tabela”. Quando nós executamos o comando “ip route show” ele nos mostra a tabela “main”, mas podemos dizer qual tabela queremos que seja mostrada da seguinte forma:

1 root@linux:~# ip route show table main

2 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.151 metric 1

3 192.168.120.0/21 dev wlan1 proto kernel scope link src 192.168.123.248 metric 2

4 172.16.0.0/16 dev eth0 proto kernel scope link src 172.16.22.1

5 169.254.0.0/16 dev eth0 scope link metric 1000

6 10.0.0.0/8 dev eth0 proto kernel scope link src 10.0.0.1

7 default via 192.168.0.1 dev eth0 proto static

Estas são somente algumas das vantagens e funcionalidades do comando “ip”. Existem muito mais coisas que podemos fazer com essa ferramenta. Alguns exemplos são:

Criação de interfaces do tipo túnel (ip tunnel)

Monitoramento do estado de uma interface (ip monitor)

Configuração do tipo de enfileiramento dos pacotes de uma interface (ip link)

Page 17: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

16

hostname

O comando hostname

Uma coisa e, talvez a mais importante é, não colocar o nome tendo relação com o serviço que ele

disponibiliza, ou seja, se um servidor de e-mail for criado, não colocar o nome dele de “mail-server”, isso

não é aconselhado. Existem softwares que ficam analisando a rede e que, sabendo o nome, podem buscar

por vulnerabilidades relacionadas ao serviço que o servidor oferece. Afinal, sabendo qual é o servidor,

ajuda na busca por vulnerabilidades.

O comando hostname é um comando que exibe o nome do servidor, esse nome pode ser apenas o

primeiro nome ou o nome.dominio (FQDN). FQDN é a sigla para Fully Qualified Domain Name, que na

realidade é o nome completo do servidor.

Eu já vi nomes de servidores dos mais variados gostos, nomes de planeta, nomes de animais, nomes

de personagens de quadrinhos e assim por diante e, acredite, eu acredito ser a melhor opção do que colocar

o nome do serviço no nome.

O comando hostname, tem poucas opções e para ser sincero, quase não são utilizadas, mas é bom

sabermos que existem, são elas:

-d : Exibe somente o domínio

-f : Exibe o nome do domínio completo (FQDN)

Por exemplo, para sabermos o nome do servidor que estamos trabalhando, basta digitar o comando com

a sintaxe abaixo:

[root@server ~]# hostname

server.qualquer.com.br

[root@server ~]#

Por exemplo, existem distribuições, que não mostram o FQDN por padrão e para isso, temos que utilizar

o parâmetro que exibe essa informação, conforme abaixo:

[root@server ~]# hostname -f

server.qualquer.com.br

[root@server ~]#

Para alterarmos o nome da máquina deveremos editar o arquivo :

[root@server ~]# vi /etc/hostname

Page 18: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

17

echo

O comando echo

Basicamente, a função do comando echo é mostrar mensagens na tela… uma espécie de papagaio

binário.. você escreve e e ele repete o que você escreveu!

Exemplo:

# echo “Hello World” Hello World Vejam que ele apenas repetiu o que foi digitado na saída padrão (tela). Mas podemos enviar essa mensagem para um arquivo… para isso usamos os operadores de redirecionamento > ou >>. A função desses operadores é justamente redirecionar o que deveria sair na tela para um arquivo… não deve ser confundida com a função do | (pipe) que é jogar a saída de um comando para outro! Exemplo do uso dos operadores de redirecionamento > e >> com o comando echo: Vamos criar uma lista de nomes e telefones que irão para um arquivo chamado cad_povo.txt:

# echo “nome-telefone” > cad_povo.txt

# echo “vana-98785764″ >> cad_povo.txt

# echo “nix-38977604″ >> cad_povo.txt

# echo “brida-95847265″ >> cad_povo.txt

# echo “kabel-81569035″ >> cad_povo.txt

Acima, enviamos a saída do comando echo para um arquivo chamado cad_povo.txt utilizando o operador de redirecionamento >; caso o arquivo não exista, será criado.

Se o arquivo já existir, fará com que o arquivo seja sobrescrito, isto é, irá apagar todo conteúdo do arquivo e irá inserir a linha nome-telefone.

Agora, nas demais linhas, usamos o operador >>, pois o arquivo cad_povo.txt já existe e só queremos acrescentar mais linhas no final do arquivo! Lembrando que, se o arquivo cad_povo.txt não existisse, esse operador também criaria o arquivo!

Conferindo como nosso arquivo ficou:

# cat cad_povo

nome-telefone

vana-98785764

nix-38977604

brida-95847265

kabel-81569035

Page 19: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

18

Busybox

Certamento a grande maioria não sabem que quando digitam um comando na console, por exemplo o comando "ls" para listar o conteúdo da pasta onde se encontram, na realidade se trata de uma função do BusyBox. O BusyBox é uma versão minimalista (mas muito potente) dos comandos tradicionais que existem para linux. Aliás os sistemas debian (e muitos outros) usam o BusyBox em vez dos comandos tradicionais.

Seguem os comandos que existem com o BusyBox.

addgroup, adduser, adjtimex, ar, arp, arping, ash, awk, basename, bbconfig, brctl, bunzip2, bzcat, bzip2,

cal, cat, catv, chat, chattr, chcon, chgrp, chmod, chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear,

cmp, comm, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd, deallocvt, delgroup, deluser,

devfsd, df, dhcprelay, diff, dirname, dmesg, dnsd, dos2unix, dpkg, dpkg-deb, du, dumpkmap, dumpleases,

echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake, expand, expr, fakeidentd, false, fbset, fdflush,

fdformat, fdisk, fetchmail, fgrep, find, findfs, fold, free, freeramdisk, fsck, fsck.minix, ftpget, ftpput, fuser,

getenforce, getopt, getsebool, getty, grep, gunzip, gzip, halt, hd, hdparm, head, hexdump, hostid,

hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifenslave, ifup, inetd, init, insmod, install, ip, ipaddr,

ipcalc, ipcrm, ipcs, iplink, iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, lash, last,

length, less, linux32, linux64, linuxrc, ln, load_policy, loadfont, loadkmap, logger, login, logname,

logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lzmacat, makedevs, matchpathcon, md5sum, mdev, mesg,

microcom, mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp, modprobe, more, mount, mountpoint,

msh, mt, mv, nameif, nc, netstat, nice, nmeter, nohup, nslookup, od, openvt, passwd, patch, pgrep, pidof,

ping, ping6, pipe_progress, pivot_root, pkill, poweroff, printenv, printf, ps, pscan, pwd, raidautorun, rdate,

readahead, readlink, readprofile, realpath, reboot, renice, reset, resize, restorecon, rm, rmdir, rmmod,

route, rpm, rpm2cpio, rtcwake, run-parts, runcon, runlevel, runsv, runsvdir, rx, script, sed, selinuxenabled,

sendmail, seq, sestatus, setarch, setconsole, setenforce, setfiles, setkeycodes, setlogcons, setsebool, setsid,

setuidgid, sha1sum, slattach, sleep, softlimit, sort, split, start-stop-daemon, stat, strings, stty, su, sulogin,

sum, sv, svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar, taskset, tcpsvd, tee,

telnet, telnetd, test, tftp, tftpd, time, top, touch, tr, traceroute, true, tty, ttysize, udhcpc, udhcpd, udpsvd,

umount, uname, uncompress, unexpand, uniq, unix2dos, unlzma, unzip, uptime, usleep, uudecode,

uuencode, vconfig, vi, vlock, watch, watchdog, wc, wget, which, who, whoami, xargs, yes, zcat, zcip$

E isto tudo só ocupa 1,5MB de espaço em vez dos 500MB dos comandos originais, e sem deixarem de

ser igualmente funcionais (os comandos do Debian como já vos disse são do busybox).

Portanto, para quem quer construir um sistema operativo Linux do zero, utiliza o BusyBox para

implementar estas funcionalidades no seu sistema operativo.

Page 20: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

19

Bzegrep

Bzfgrep

Bzgrep

Bzip2

Bzip2recover

Chgrp

Chmod

Chwon

Chvt

Cpio

Dash

Date

Dbus-cleanup-sockets

Dbus-daemon

Dbus-uuidgen

Dd

Dmesg

Page 21: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

20

Dnsdomainname

Domainname

Dumpkeys

Ed

Egrep

False

Fgconsole

Fgrep

Fuser

Fusermount

Grep

Gunzip

Gzexe

Init-checkconf

Initctl2dot

Kbd_mode

Kill

Less

Lessecho

Lessfile

Lesskey

Lesspipe

Loadkeys

Login

Lowntfs-3g

Lsmod

Mknod

Mktemp

More

Mount

Mountpoint

Page 22: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

21

Mt

Mt-gnu

Nc

Nc.openbsd

Netcat

Netstat

Nisdomainname

Ntfs-3g

Ntfs-3g-probe

Ntfs-3g-secaudit

Ntfs-3g-usermap

Open

Openvt

Pidof

Ping

Ping6

Plymounth

Plymounth-upstart-bridge

ps

pwd

rbash

readlink

rnano

run-parts

sed

setfont

setupcon

sh

sh.distrib

sleep

static-sh

Page 23: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

22

stty

su

sync

tailf

tar

tempfile

true

ulockmgr_server

umount

uncompress

Unicode_start

Vdir

Vmmouse_detect

Which

Ypdomainname

Zcat

Zcmp

Zdiff

Zegrep

Zfgrep

Zforce

Zgrep

Zless

Zmore

znew

O comando apropos faz uma consulta ao banco de dados procurando por partes de uma palavra.

Page 24: Curso de Linux - tardocchi.files.wordpress.com · Comandos Bash . Decrypt Prof. Carlos Tardocchi ... modificar tanto a hora de acesso quanto a hora de modificação dos arquivos,

Decrypt

Prof. Carlos Tardocchi [email protected]

23

Este comando tem como sua função procurar por programas/comandos através da sua descrição. É útil quando precisamos fazer algo mas não sabemos qual comando usar. Ele faz pesquisa nas páginas de manuais

existentes no sistema, e lista os comandos/programas que atendem a consulta. Para usar este comando apropos

digite a seguinte sintaxe:

apropos “comando/programa”

exemplo:

$ apropos “ls”

Digitando apropos ls, serão mostrados todos os comandos que tem a palavra ls em sua descrição.

Importante saber:

O apropos utiliza o banco de dados CATMAN

catman = tem a função de atualizar todos os manuais.

Uma forma equivalente ao apropos é o comando man juntamente com a opção -k

# man -k “palavra-chave”