curso de linux - tardocchi.files.wordpress.com · comandos bash . decrypt prof. carlos tardocchi...
TRANSCRIPT
DECRYPT Curso de Linux
Prof. Carlos Tardocchi
/bin
Comandos Bash
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.
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.
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
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"
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.
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
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
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
.
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
.
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 ) .
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.
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
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.
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:
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)
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
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
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.
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
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
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
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.
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”