Você está na página 1de 11

Comandos para manipulao de arquivos

A primeira coisa que sempre vem em mente no uso de um sistema operacional como lidar com os arquivos dentro dele... Nesta seo eu vou mostrar alguns comandos bsicos para mexer com os arquivos.

cd - Navegando entre diretrios ls - Listar arquivos mkdir - Cria um diretrio rmdir - Remove um diretrio vazio cp - Cpia de arquivos e diretrios mv - Move arquivos e diretrios rm - Deleta arquivos e diretrios ln - Linkando arquivos cat - Exibe o contedo de um arquivo ou direciona-o para outro file - Indicando tipo de arquivo

cd - Navegando entre diretrios


cd [nome_do_diretrio]

Este comando acima mudar o diretrio atual de onde o usurio est. H tambm algumas abreviaes de diretrios no Linux para a facilitao, estes so: Abreviao . (ponto) ~ (til) / (barra) - (hfen) Significado Diretrio atual Diretrio HOME do usurio Diretrio Raiz ltimo diretrio

.. (dois pontos) Diretrio anterior

Por exemplo, se eu quero ir para o meu diretrio home, fao o seguinte:


$ pwd /usr/games $ cd ~ $ pwd /home/hugo

Ou seja, eu estava no diretrio /usr/games, e com um simples cd para o diretrio ~, fui para o meu diretrio home (/home/hugo). Quando voc deseja saber o caminho completo do diretrio em que voc est, utilize o comando pwd. Se voc deseja ir para um diretrio que est na raiz diretamente, voc usa o / antes, exemplo:
$ pwd /usr/local/RealPlayer7/Codecs

$ cd /etc/rc.d $ pwd /etc/rc.d $ cd $ pwd /usr/local/RealPlayer7/Codecs

Eu estava no diretrio /usr/local/RealPlayer7/Codecs e quis ir para o diretrio etc/rc.d que est na raiz. Note depois que eu usei o hfen e fui de volta para o ltimo diretrio em que eu estava.

ls - Listar arquivos
ls [opes] [arquivo/diretrio]

Este comando lista os arquivos, nada mais que isso. Se voc executar apenas o ls sozinho, ele vai mostrar todos os arquivos existentes no diretrio atual. H tambm as opes extras: Parmetro Significado -l -a -h -R Lista os arquivos em formato detalhado. Lista os arquivos ocultos (que comeam com um .) Exibe o tamanho num formato legvel (combine com -l) Lista tambm os subdiretrios encontrados

Exemplo de uma listagem detalhada:


$ ls -l total 9916 drwxrwxr-x -rw-r--r--rw-r--r--rw-r--r--

5 1 1 1

hugo hugo hugo hugo

hugo 1302 Aug hugo 122631 Jul hugo 2172065 Jul hugo 2023315 Jul

16 12 12 12

10:15 08:20 08:20 08:20

CursoC_UFMG Database.pdf MySQL.pdf PHP3.pdf

Podemos tambm usar no ls os wildcards, ou seja, caracteres que substituem outros. Exemplo: eu quero listar todos os arquivos que tm a extenso .txt, fao o seguinte:
$ ls *.txt debian-install.txt seguranca.txt ipfw.txt sis.txt manualito.txt mouse.txt named.txt placa_de_video.txt plip.txt rede.txt

O wildcard o "*", que representa "tudo".txt. Existem outros wildcards, exemplo disso o ponto de interrogao (?), que substitui apenas 1 caractere, exemplo:
$ ls manual?.txt manual1.txt manual2.txt manual3.txt manualx.txt manualP.txt

Existe outro wildcard, que envolve os colchetes. Por exemplo:


$ ls manual[3-7].txt manual3.txt manual4.txt manual6.txt manual7.txt

Lista todos os arquivos que tiverem como manual?.txt, onde o ? pode ser substitudo por 3, 4, 5, 6 e 7.

mkdir - Cria um diretrio


mkdir <nome_do_diretrio>

Cria um diretrio. Exemplo:


$ mkdir ~/paginas

Este comando criar o diretrio paginas no seu diretrio home.

rmdir - Remove um diretrio vazio


rmdir <nome_do_diretorio>

Apaga um diretrio que esteja vazio. Exemplo:


$ rmdir /tmp/lixo

Isto apagar o diretrio /tmp/lixo apenas se ele estiver vazio. Para apagar um diretrio com seu contedo, refira-se ao comando rm.

cp - Cpia de arquivos e diretrios


cp [opes] <arquivo_origem> <arquivo_destino>

O comando cp copia arquivos e diretrios. Como opes dele, podemos ver: Parmetro Significado -i -v -R Exemplos: Quero copiar brasil.txt para livro.txt, com a opo de modo interativo.
$ cp -i brasil.txt livro.txt cp: sobrescrever `livro.txt'?

Modo interativo Mostra o que est sendo copiado Copia recursivamente (diretrios e subdiretrios)

Como o arquivo livro.txt j existia, ele pergunta se quer sobrescrever, responda y(sim) ou n(no). Agora eu quero copiar o diretrio /home/ftp com tudo dentro (at seus subdiretrios) para /home/ftp2, fao o seguinte:
$ cp -R /home/ftp /home/ftp2

mv - Move arquivos e diretrios


mv <arquivo_origem> <arquivo_destino>

Este comando simplesmente move algum arquivo para outro lugar. Ele tambm usado para renomear um arquivo. Por exemplo, se eu quero renomear o industria.txt para fabrica.txt, eu fao o seguinte:
$ mv industria.txt fabrica.txt

Se eu quiser mover o industria.txt para /home/usuario com o mesmo nome, fao:


$ mv industria.txt /home/usuario

rm - Deleta arquivos e diretrios


rm [opes] <arquivo>

Este comando apaga definitivamente o arquivo ou diretrio. Exemplo:


$ rm arquivo.bin

Para apagar um diretrio com todo seu contedo, usa-se a opo -r, assim:
$ rm -r /tmp/lixo

ln - Linkando arquivos
ln -s <arquivo_origem> <link simblico>

Este comando usado para gerar links simblicos, ou seja, que se comportam como um arquivo ou diretrio, mas so apenas redirecionadores que mandam seu comando para outro arquivo ou diretrio, por exemplo:
$ ln -s /manual /home/linux-manual

Este comando criar o link /home/linux-manual, se voc der um ls -l voc ver que o diretrio /home/linux-manual est apontando para /manual. Se voc ir para o /home/linux-manual, voc na verdade estar no /manual, mas como um link, no h diferena.

cat - Exibe o contedo de um arquivo ou direciona-o para outro


cat <arquivo>

Este comando existe para mostrar o contedo de um arquivo, ou para fazer a cpia deste arquivo, ou uma juno. Vejamos um exemplo, se eu quiser mostrar o contedo de /home/usuario/contato, eu digito:
$ cat /home/hugo/contato

Aparecer o contedo do arquivo contato:


Hugo Cisneiros hugo_arroba_devin_ponto_com_ponto_br http://tlm.conectiva.com.br

Este comando pode tambm servir de direcionador para outro arquivo. Indicadores so usados para isso:
Indicador ">" - faz uma cpia, exemplo: $ cat contato1 > contato2 Indicador ">>" - Acrescenta um arquivo ao outro, exemplo: cat contato1 >> contato2

O cat pode fazer coisas que nem voc imagina, como tocar sons. Para fazer isso simples, ele direciona o arquivo som para o dispositivo de udio (que no linux representado por um arquivo), exemplo:
cat som-dumau.au > /dev/audio

file - Indicando tipo de arquivo


file <arquivo>

Este comando identifica o tipo de arquivo ou diretrio indicado pelo usurio conforme os padres do sistema operacional. H varios tipos de retorno, vamos aqui ver alguns mais importantes:
ASCII text directory data C Program source ELF-Executable Bourn-again shell-script

Apenas um exemplo deste comando:


$ file linux.txt ASCII Text

Comandos sobre processos do sistema


ps - Listando processos kill - Matando um processo

killall - Matando processos pelo nome w - Lista os usurios logados

ps - Listando processos
ps [opes]

Quando um programa executado no sistema, ele recebe um nmero de identificao, o chamado PID. Este comando lista esses processos executados, e apresenta o PID. Alm do PID, ele tambm mostra o comando executado (CMD) e tambm o STAT (status atual do processo executado, veja nota abaixo), alm de outros. O status do processo identificado por letras, aqui segue uma tabela com as definies de cada letra: Letra Definio 0 S R I Z T W No existente Descansando, fora de funcionamento (Sleeping) Rodando (Running) Intermediando (Intermediate) Terminando (Zumbi) Parado (Stopped) Esperando (Waiting)

Agora um exemplo para este comando:


$ ps aux USER PID %CPU %MEM VSZ RSS TTY root 1 0.0 0.0 1120 52 ? root 2 0.0 0.0 0 0 ? [kflushd] root 3 0.0 0.0 0 0 ? [kupdate] root 4 0.0 0.0 0 0 ? root 1004 0.0 0.0 10820 48 ? root 1007 0.0 0.0 2852 0 ? hugo 1074 0.0 0.0 1736 0 tty1 hugo 1263 0.0 0.0 1632 0 tty1 hugo 1271 0.0 0.0 2304 0 tty1 hugo 1275 0.0 2.4 4312 1360 tty1 hugo 2461 0.0 0.0 1636 0 tty1 [netscape] hugo 9618 0.9 4.9 5024 2688 pts/1 d03.html hugo 12819 6.7 6.9 5580 3796 ? King Diamond - Help.mp3 STAT START S Dec25 SW Dec25 SW SW SN SW SW SW SW S SW S S Dec25 Dec25 Dec25 Dec25 Dec25 Dec25 Dec25 Dec25 07:09 09:56 10:03 TIME COMMAND 0:05 init 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:16 0:00 [kpiod] [mysqld] [smbd] [bash] [startx] [xinit] wmaker

0:06 vim 0:13 mpg123

Este parmetro (aux) fez o ps listar todas as informaes sobre todos os processos executados.

kill - Matando um processo


kill [-SINAL] <PID>

O comando kill muito conhecido (principalmente pelos usurios do Netscape :)), ele serve para matar um processo que est rodando. Matar? Terminar este processo, finalizar natoralmente! Para matar um processo, temos de saber o PID dele (veja o comando ps), e ento executar o kill neste PID. Vamos killar o Netscape:
$ ps aux | grep netscape hugo 2461 0.0 0.0 [netscape] $ kill -9 2461 1636 0 tty1 SW 07:09 0:00

E o processo do Netscape foi morto! Vivas! O sinal -9 significa para forar e matar natoralmente mesmo. Uma lista de sinais pode ser encontrada com o comando:
man 7 signal

killall - Matando processos pelo nome


killall [-SINAL] <comando>

Faz a mesma coisa que o kill, s que a vantagem aqui que voc no precisa saber o PID do processo, e sim o nome. A desvantagem que se tiver dois processos com o mesmo nome, os dois so finalizados. Seguindo o exemplo do comando kill:
$ ps aux | grep netscape hugo 2461 0.0 0.0 [netscape] $ killall -9 netscape 1636 0 tty1 SW 07:09 0:00

w - Listas os usurios logados


w

Com este comando, possvel voc ver quais usurios esto atualmente logados no seu sistema, alm de informaes como "O que ele est fazendo", "aonde est fazendo", "desde quando est logado", etc. Vejamos um exemplo aqui da minha mquina:
[hugo@songoku hugo]$ w 10:37am up 13:45, 4 users, USER TTY FROM hugo tty1 root tty2 hugo tty3 cmpci.c jim tty4 load average: 0.85, 0.70, 0.71 LOGIN@ IDLE JCPU PCPU Mon 8pm 25.00s 34:16 0.09s 10:37am 5.00s 0.27s 0.14s 10:37am 11.00s 0.25s 0.13s 10:37am 22.00s 0.23s 0.12s

WHAT -bash top vi BitchX

Comandos de pacotes (instalao/desinstalao/consulta)


O que so pacotes? No Linux, geralmente os aplicativos vem em forma de cdigo-fonte, ento o usurio tem de baixar e compilar. Os pacotes servem justamente para facilitar o trabalho do usurio, dando a ele um arquivo empacotado com o cdigo j compilado. Existem diversos gerenciadores de pacotes que iremos aprender a usar o bsico deles aqui. Tem o RPM (RedHat Package Manager), que usado por vrias distribuies como o Conectiva Linux, Red Hat, SuSE e Mandrake. Tambm tem o DEB (Debian Packages), muito bom tambm e usado pela distribuio Debian e Corel Linux (que baseada no Debian por isso). E temos tambm o pacoteamento do Slackware (TGZ), que no to poderoso como os anteriores, mas quebra galhos tambm. Alm de empacotar o cdigo-fonte compilado, os gerenciadores de pacotes tambm armazenam as informaes de instalao em um banco de dados, para depois o usurio ter informaes sobre a instalao, e para desinstalar o pacote do sistema. E no h apenas pacotes com cdigo-fonte compilado, tambm h pacotes que contm o cdigo-fonte sem compilar, mas empacotado. Utilizando o PKGTOOL (Slackware) Nas distribuies Slackware, bem simples o gerenciamento de pacotes dele. Os pacotes tm extenso .tgz (diferente de .tar.gz), e alm de conter os arquivos, contm scripts de ps-descompactao tambm. Existe uma interface muito amigvel para o gerenciamento dos pacotes .tgz, e se chama pkgtool. Tente executar o pkgtool no console e ver no que d. Mas tambm existem os comandos individuais: Comando removepkg X makepkg O que faz Desinstala o pacote X Cria um pacote

installpkg X.tgz Instala o pacote X.tgz

Utilizando o RPM Para instalar um pacote, usa-se a opo -i:


# rpm -i pacote.rpm

Voc tambm pode utilizar as opes -v e -h combinadas com a -i para uma mostragem mais agradvel. Se voc j tem o pacote.rpm e deseja atualizar para uma verso mais recente da mesma, voc utiliza a opo -U ao invs da -i, exemplo:
# rpm -Uvh pacote-atualizacao.rpm

Isso ir atualizar os arquivos do pacote. Se voc quer retirar o pacote do seu sistema, voc utiliza a opo -e, assim:
# rpm -e pacote

Caso este pacote gere dependncias com outros pacotes, e mesmo assim voc queira remov-lo, voc pode utilizar a opo --force, que como o nome diz, fora a remoo do mesmo:
# rpm -e pacote --force

Agora uma caracterstica muito importante tambm para o usurio a capacidade de consulta que o RPM traz. Por exemplo, se voc quer listar todos os pacotes instalados no sistema, voc utiliza o comando:
$ rpm -qa

Isto ir gerar a listagem dos pacotes. Veja que a opo -q (query) a opo de consulta, e seguida de outra letra ela faz tarefas. Combinando o comando anterior com o comando grep, podemos ver se um certo pacote est instalado no sistema:
$ rpm -qa | grep BitchX BitchX-75p3-8cl

E se voc quer saber informaes sobre um pacote? Ento usa-se a opo -i. Vejamos um exemplo:
$ rpm -qi BitchX Name : BitchX Relocations: (not relocateable) Version : 75p3 Vendor: conectiva Release : 8cl Build Date: qua 16 fev 2000 01:28:59 BRST Install date: dom 10 set 2000 19:33:23 BRT Build Host: mapinguari.conectiva.com.br Group : Aplicaes/Internet Source RPM: BitchX-75p38cl.src.rpm Size : 2812352 License: GPL URL : http://www.bitchx.org Summary : Cliente IRC para o console do Linux Description : O BitchX um cliente de IRC com suporte a cores para o console do Linux. Ele incorpora vrias caractersticas que normalmente requereriam um script, e a sua interface mais colorida, e simples de trabalhar que a do ircII :)

Se quisermos ver quais pacotes fazem dependncia com um certo pacote, utilizamos a opo -R:
$ rpm -qR pacote

E para verificar a qual pacote um certo arquivo pertence, utilize a opo -f, assim:
$ rpm -qf /diretorio/arquivo

Ou o contrrio, se voc quiser listar todos os arquivos pertencentes um pacote, faa assim:
$ rpm -ql pacote

Outros tipos de comandos


Descompactar arquivos Extenso .tar.gz Extenso .tar Extenso .gz Extenso .bz2 Extenso .zip tar zxpvf arquivo.tar.gz tar xpvf arquivo.tar gunzip arquivo.gz bunzip2 arquivo.bz2 unzip arquivo.zip

Extenso .tar.bz2 bunzip2 arquivo.tar.bz2 ; tar xpvf arquivo.tar

Compactar arquivos Empacotar um diretrio em .tar Compacta um arquivo para .gz Compacta um arquivo para .bz2 Espao em disco df -h Mostra o espao em disco das parties montadas tar cvf diretorio/ gzip arquivo bzip2 arquivo

Empacotar um diretrio em .tar.gz tar zcvf diretorio/

du -hs Mostra o espao ocupado pelo diretrio atual

Informaes do sistema date cal uptime Mostra a data e hora atual Mostra um calendrio Mostra quanto tempo seu sistema est rodando

free top

Exibe a memria livre, a usada, e os buffers da memria RAM Mostra os processos que mais gastam memria

uname -a Mostra informaes de verso do kernel Programas (console) vi Editor de texto

pico Editor de texto pine Leitor de E-Mail mutt Leitor de E-Mail lynx Navegador Web links Navegador Web