A primeira coisa que sempre vem em mente no uso de um sistema operacional é como lidar com os arquivos dentro dele... Nesta seção eu vou mostrar alguns comandos básicos para mexer com os arquivos.
cd - Navegando entre diretórios
ls - Listar arquivos
mkdir - Cria um diretório
rmdir - Remove um diretório vazio
cp - Cópia de arquivos e diretórios
mv - Move arquivos e diretórios
rm - Deleta arquivos e diretórios
ln - Linkando arquivos
cat - Exibe o conteúdo de um arquivo ou direciona-o para outro
file - Indicando tipo de arquivo
cd - Navegando entre diretórios
cd [nome_do_diretório]
Este comando acima mudará o diretório atual de onde o usuário está. Há também algumas abreviações de diretórios no Linux para a facilitação, estes são:
Por exemplo, se eu quero ir para o meu diretório home, faço o seguinte:
$ pwd
/usr/games
$ cd ~
$ pwd
/home/hugo
Ou seja, eu estava no diretório /usr/games, e com um simples cd para o diretório ~, fui para o meu diretório home (/home/hugo). Quando você deseja saber o caminho completo do diretório em que você está, utilize o comando pwd. Se você deseja ir para um diretório 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 diretório /usr/local/RealPlayer7/Codecs e quis ir para o diretório etc/rc.d que está na raiz. Note depois que eu usei o hífen e fui de volta para o último diretório em que eu estava.
ls - Listar arquivos
ls [opções] [arquivo/diretório]
Este comando lista os arquivos, nada mais que isso. Se você executar apenas o ls sozinho, ele vai mostrar todos os arquivos existentes no diretório atual. Há também as opções extras:
Exemplo de uma listagem detalhada:
$ ls -l
total 9916
drwxrwxr-x 5 hugo hugo 1302 Aug 16 10:15 CursoC_UFMG
-rw-r--r-- 1 hugo hugo 122631 Jul 12 08:20 Database.pdf
-rw-r--r-- 1 hugo hugo 2172065 Jul 12 08:20 MySQL.pdf
-rw-r--r-- 1 hugo hugo 2023315 Jul 12 08:20 PHP3.pdf
Podemos também usar no ls os wildcards, ou seja, caracteres que substituem outros. Exemplo: eu quero listar todos os arquivos que têm a extensão .txt, faço o seguinte:
O wildcard é o "*", que representa "tudo".txt. Existem outros wildcards, exemplo disso é o ponto de interrogação (?), 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 substituído por 3, 4, 5, 6 e 7.
mkdir - Cria um diretório
mkdir <nome_do_diretório>
Cria um diretório. Exemplo:
$ mkdir ~/paginas
Este comando criará o diretório paginas no seu diretório home.
rmdir - Remove um diretório vazio
rmdir <nome_do_diretorio>
Apaga um diretório que esteja vazio. Exemplo:
$ rmdir /tmp/lixo
Isto apagará o diretório /tmp/lixo apenas se ele estiver vazio. Para apagar um diretório com seu conteúdo, refira-se ao comando rm.
cp - Cópia de arquivos e diretórios
cp [opções] <arquivo_origem> <arquivo_destino>
O comando cp copia arquivos e diretórios. Como opções dele, podemos ver:
Exemplos:
Quero copiar brasil.txt para livro.txt, com a opção de modo interativo.
Como o arquivo livro.txt já existia, ele pergunta se quer sobrescrever, responda y(sim) ou n(não). Agora eu quero copiar o diretório /home/ftp com tudo dentro (até seus subdiretórios) para /home/ftp2, faço o seguinte:
$ cp -R /home/ftp /home/ftp2
mv - Move arquivos e diretórios
mv <arquivo_origem> <arquivo_destino>
Este comando simplesmente move algum arquivo para outro lugar. Ele também é usado para renomear um arquivo. Por exemplo, se eu quero renomear o industria.txt para fabrica.txt, eu faço o seguinte:
$ mv industria.txt fabrica.txt
Se eu quiser mover o industria.txt para /home/usuario com o mesmo nome, faço:
$ mv industria.txt /home/usuario
rm - Deleta arquivos e diretórios
rm [opções] <arquivo>
Este comando apaga definitivamente o arquivo ou diretório. Exemplo:
$ rm arquivo.bin
Para apagar um diretório com todo seu conteúdo, usa-se a opção -r, assim:
$ rm -r /tmp/lixo
ln - Linkando arquivos
ln -s <arquivo_origem> <link simbólico>
Este comando é usado para gerar links simbólicos, ou seja, que se comportam como um arquivo ou diretório, mas são apenas redirecionadores que mandam seu comando para outro arquivo ou diretório, 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 diretório /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, não há diferença.
cat - Exibe o conteúdo de um arquivo ou direciona-o para outro
cat <arquivo>
Este comando existe para mostrar o conteúdo de um arquivo, ou para fazer a cópia deste arquivo, ou uma junção. Vejamos um exemplo, se eu quiser mostrar o conteúdo de /home/usuario/contato, eu digito:
Este comando pode também servir de direcionador para outro arquivo. Indicadores são usados para isso:
Indicador ">" - faz uma cópia, 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 diretório indicado pelo usuário conforme os padrões do sistema operacional. Há varios tipos de retorno, vamos aqui ver alguns mais importantes:
ASCII text C Program source
directory ELF-Executable
data Bourn-again shell-script
Quando um programa é executado no sistema, ele recebe um número de identificação, o chamado PID. Este comando lista esses processos executados, e apresenta o PID. Além do PID, ele também mostra o comando executado (CMD) e também o STAT (status atual do processo executado, veja nota abaixo), além de outros.
O status do processo é identificado por letras, aqui segue uma tabela com as definições de cada letra:
Agora um exemplo para este comando:
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1120 52 ? S Dec25 0:05 init
root 2 0.0 0.0 0 0 ? SW Dec25 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Dec25 0:00 [kupdate]
root 4 0.0 0.0 0 0 ? SW Dec25 0:00 [kpiod]
root 1004 0.0 0.0 10820 48 ? SN Dec25 0:00 [mysqld]
root 1007 0.0 0.0 2852 0 ? SW Dec25 0:00 [smbd]
hugo 1074 0.0 0.0 1736 0 tty1 SW Dec25 0:00 [bash]
hugo 1263 0.0 0.0 1632 0 tty1 SW Dec25 0:00 [startx]
hugo 1271 0.0 0.0 2304 0 tty1 SW Dec25 0:00 [xinit]
hugo 1275 0.0 2.4 4312 1360 tty1 S Dec25 0:16 wmaker
hugo 2461 0.0 0.0 1636 0 tty1 SW 07:09 0:00 [netscape]
hugo 9618 0.9 4.9 5024 2688 pts/1 S 09:56 0:06 vim d03.html
hugo 12819 6.7 6.9 5580 3796 ? S 10:03 0:13 mpg123 King Diamond - Help.mp3
Este parâmetro (aux) fez o ps listar todas as informações sobre todos os processos executados.
kill - Matando um processo
kill [-SINAL] <PID>
O comando kill é muito conhecido (principalmente pelos usuários 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 então executar o kill neste PID. Vamos killar o Netscape:
E o processo do Netscape foi morto! Vivas! O sinal -9 significa para forçar 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ê não precisa saber o PID do processo, e sim o nome. A desvantagem é que se tiver dois processos com o mesmo nome, os dois são finalizados. Seguindo o exemplo do comando kill:
Com este comando, é possível você ver quais usuários estão atualmente logados no seu sistema, além de informações como "O que ele está fazendo", "aonde está fazendo", "desde quando está logado", etc. Vejamos um exemplo aqui da minha máquina:
[hugo@songoku hugo]$ w
10:37am up 13:45, 4 users, load average: 0.85, 0.70, 0.71
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
hugo tty1 - Mon 8pm 25.00s 34:16 0.09s -bash
root tty2 - 10:37am 5.00s 0.27s 0.14s top
hugo tty3 - 10:37am 11.00s 0.25s 0.13s vi cmpci.c
jim tty4 - 10:37am 22.00s 0.23s 0.12s BitchX
Comandos de pacotes (instalação/desinstalação/consulta)
O que são pacotes?
No Linux, geralmente os aplicativos vêem em forma de código-fonte, então o usuário tem de baixar e compilar. Os pacotes servem justamente para facilitar o trabalho do usuário, dando a ele um arquivo empacotado com o código já compilado. Existem diversos gerenciadores de pacotes que iremos aprender a usar o básico deles aqui. Tem o RPM (RedHat Package Manager), que é usado por várias distribuições como o Conectiva Linux, Red Hat, SuSE e Mandrake. Também tem o DEB (Debian Packages), muito bom também e usado pela distribuição Debian e Corel Linux (que é baseada no Debian por isso). E temos também o pacoteamento do Slackware (TGZ), que não é tão poderoso como os anteriores, mas quebra galhos também.
Além de empacotar o código-fonte compilado, os gerenciadores de pacotes também armazenam as informações de instalação em um banco de dados, para depois o usuário ter informações sobre a instalação, e para desinstalar o pacote do sistema. E não há apenas pacotes com código-fonte compilado, também há pacotes que contém o código-fonte sem compilar, mas empacotado.
Utilizando o PKGTOOL (Slackware)
Nas distribuições Slackware, é bem simples o gerenciamento de pacotes dele. Os pacotes têm extensão .tgz (diferente de .tar.gz), e além de conter os arquivos, contém scripts de pós-descompactação também. Existe uma interface muito amigável para o gerenciamento dos pacotes .tgz, e se chama pkgtool. Tente executar o pkgtool no console e ver no que dá.
Mas também existem os comandos individuais:
Utilizando o RPM
Para instalar um pacote, usa-se a opção -i:
# rpm -i pacote.rpm
Você também pode utilizar as opções -v e -h combinadas com a -i para uma mostragem mais agradável. Se você já tem o pacote.rpm e deseja atualizar para uma versão mais recente da mesma, você utiliza a opção -U ao invés 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 opção -e, assim:
# rpm -e pacote
Caso este pacote gere dependências com outros pacotes, e mesmo assim você queira removê-lo, você pode utilizar a opção --force, que como o nome diz, força a remoção do mesmo:
# rpm -e pacote --force
Agora uma característica muito importante também para o usuário é 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 opção -q (query) é a opção 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 informações sobre um pacote? Então usa-se a opção -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 : Aplicações/Internet Source RPM: BitchX-75p3-8cl.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 várias características 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 dependência com um certo pacote, utilizamos a opção -R:
$ rpm -qR pacote
E para verificar a qual pacote um certo arquivo pertence, utilize a opção -f, assim:
$ rpm -qf /diretorio/arquivo
Ou o contrário, se você quiser listar todos os arquivos pertencentes à um pacote, faça assim:
Já que aqui são comandos, acho interessante falar um pouco sobre o fsck. Que é uma ferramente, podemos dizer, "igual" ao Scandisk do Windows.
No começo tive a mesma dúvida, até correr atrás para saber como funcionava, e acredito que essa dúvida não é só minha.
No GNU/Linux, quem faz a desfragmentação e a correção de erros? Tem alguma ferramente parecida com as do Windows?
No GNU/Linux, a desfragmentação não é necessária ser feita pelo usuário, visto que ele faz isso automaticamente.
Já o fsck, é como se fosse um scandisk do Windows, só que para o GNU/Linux, também é automático, depois de quantidade de vezes reiniciado o sistema, ou mesmo passar um certo tempo sem "passar" o fsck ele passa automaticamente no próximo boot[1].
Para fazer alterações nessas opções você tera que utilizar o tune2fs.
[1] O fsck pode ser executado no Terminal ou Konsole, sendo assim ele irá funcionar como o "chkdsk" (scandisk) no Windows.
Bem, acho que é só, não me lembro qual foi o sítio que li isso na internet, foi um tempinho atrás. Mas acredito que isso vai ser útil para outras pessoas, como foi para mim.
ótimo tópico...um exemplo do pra que serve essa área, ao contrario dos outros q soh ficam gerando brigas sobre qual SO é melhor ou qual tem mais vantagens
boa mash
Intel Core 2 Duo E4500 @ 2.2Ghz || GIGABYTE GA945GZM-S2 || 2GB DDR2 667 KINGSTON || EVGA 8800GTX 768MB|| LG L1740PQ || HD 250GB SAMSUNG SATA 2 || HD 120GB SEAGATE SATA2 || FONTE SEVENTEAM 550EAG || PLANTRONICS GAMECON || MX300 LENDARIO || GABINETE SOLID SOLDIER ||
FLICKR
"Não é que o Linux não seja amigável, ele seleciona suas amizades."
Já que aqui são comandos, acho interessante falar um pouco sobre o fsck. Que é uma ferramente, podemos dizer, "igual" ao Scandisk do Windows.
No começo tive a mesma dúvida, até correr atrás para saber como funcionava, e acredito que essa dúvida não é só minha.
No GNU/Linux, quem faz a desfragmentação e a correção de erros? Tem alguma ferramente parecida com as do Windows?
No GNU/Linux, a desfragmentação não é necessária ser feita pelo usuário, visto que ele faz isso automaticamente.
Já o fsck, é como se fosse um scandisk do Windows, só que para o GNU/Linux, também é automático, depois de quantidade de vezes reiniciado o sistema, ou mesmo passar um certo tempo sem "passar" o fsck ele passa automaticamente no próximo boot[1].
Para fazer alterações nessas opções você tera que utilizar o tune2fs.
[1] O fsck pode ser executado no Terminal ou Konsole, sendo assim ele irá funcionar como o "chkdsk" (scandisk) no Windows.
Bem, acho que é só, não me lembro qual foi o sítio que li isso na internet, foi um tempinho atrás. Mas acredito que isso vai ser útil para outras pessoas, como foi para mim.
Abraços.
Devil, mto bom, estava procurando isso agora mesmo!!!
Seguinte, é possível eu bootar pelo Ubuntu por liveCD e rodar o fsck no meu disco local?
Postado originalmente por cyber du mau :D
rapá.. esse topico deve te dado trabalho...
asdiuahashusaihasiuasduah
parabéns
Cara, vou te falar, dava mais trabalho procurar toda vez na net "aquele comando" do que montar o tópico.
Tá certo, deu um trabalhim, mas agora facilita mto e tem uma referência e acho que vai ajudar não só eu como mta gente que tá começando no linux.
Postado originalmente por Armored_Spiderman
ótimo tópico...um exemplo do pra que serve essa área, ao contrario dos outros q soh ficam gerando brigas sobre qual SO é melhor ou qual tem mais vantagens
boa mash
Pois é Armored, aqui não é o lugar de brigas e discussões de qual o melhor e sim um lugar pra concentrar informações sobre nosso querido Linux
Té!
P.S. Galera, achando comandos na internet, postem aqui, assim com o tempo podemos montar um manual rápido de referência.
PS.2 Galera, outra, vou pinar o tópico ok? Acho que fica mais fácil encontrá-lo para futuras consultas
Seguinte, é possível eu bootar pelo Ubuntu por liveCD e rodar o fsck no meu disco local?
Se não me engano (to meio afastado de Linux no último mês, mas em Fevereiro volto com força total), SIM, MAS é bom lembrar que as partições devem estar DESMONTADAS...
Se não me engano (to meio afastado de Linux no último mês, mas em Fevereiro volto com força total), SIM, MAS é bom lembrar que as partições devem estar DESMONTADAS...
Se eu estiver errado, corrijam-me, por favor...
Pq desmontada blackbrain? Existe algum problema em fazer isso com elas montadas?
Adorei o tópico, parabéns ^^
É bem explicativo e objetivo.
Abraços
Por que hoje em dia todo mundo diz ser Louco? Eles não sabem a excência da Loucura. O significado do "Louco" está dentro de cada um que é capaz de ser apenas "Ele mesmo" !
No meu trabalho estamos colocando o linux em uma máquina antiga, ele está funcionando legal, só que o movimento do ponteiro do mouse é lento, como se o processamento fosse lento, o que eu tenho certeza que não é, pois os programas abrem rápido. Será que poderiam me indicar algum comando ou uma configuração do mouse que solucione este problema?
Obrigado.
ql o windows manager q vc tá utilizando? Talvez vc esteja usando algum manager pesado, o que pode causar isso.
Se estiver usando ubuntu, recomendo utilizar o Metacity mesmo, que é o padrão dele...qualquer coisa além disso poderá distorcer sua tela. E qual a VGA desse pc? Talvez instalando os drivers da nvidia, fica melhor.
Estranho... fui usar esse fsck e apareceu essa mensagem:
Código:
[root@localhost bruno]# /sbin/fs
fsck fsck.ext2 fsck.msdos fstab-decode
fsck.cramfs fsck.ext3 fsck.vfat
[root@localhost bruno]# /sbin/fsck
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
/dev/sda2 is mounted.
WARNING!!! Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.
Do you really want to continue (y/n)? no
check aborted.
Escolhi N por medo de prejudicar o sistema
Usuário linux.Slackware 13.37
Quando todos não acreditam em você, o sabor da vitória é ainda melhor.
Campanha de exclusão digital: Devolvam a internet aos Nerds, bando de noobs!
Estranho... fui usar esse fsck e apareceu essa mensagem:
Código:
[root@localhost bruno]# /sbin/fs
fsck fsck.ext2 fsck.msdos fstab-decode
fsck.cramfs fsck.ext3 fsck.vfat
[root@localhost bruno]# /sbin/fsck
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
/dev/sda2 is mounted.
WARNING!!! Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.
Do you really want to continue (y/n)? no
check aborted.
Escolhi N por medo de prejudicar o sistema
isso é normal, voce tem q usar o fsck sem montar a particao, o modo mais facil é usando live cd
Eu também vou contribuir com a explicação de um comando.
Caso eu cometa algum erro por favor me falem.
O comando mount
Este comando serve para montar na árvore de diretorios do linux dispositivos removiveis e/ou outras partições do hd.
Atualmente ele conta com um grande suporte de sistemas de arquivos. Por exemplo:
Os dispositivos que você pode montar são encontrados no " /dev " .
Para facilitar eu vou mostrar um exemplo de montagem de um pendrive. Embora hoje muitas distro já fezem isso automaticamente assim que você pluga o pendrive, é sempre bom conhecer o seu funcionamento.
Aqui no meu Fedora (e provavelmente em muitas outras distros) o pendrive é reconhecido como /dev/sdb. Caso mais de um esteja conectado irão surgindo novos sdbs por exemplo.
sdb1; sdb2; etc...
Vamos começar (lembrando que para usar o mount você deve estar como root)
Nesta etapa eu iniciei o comando mount.
O parametro -t indica o tipo de arquivo que vou montar (fat32 que no linux é vfat) /dev/sdb é o pendrive /mnt/pendrive é o diretório onde será montado o pendrive. (o diterorio deve estar vazio) -o uid=usuario dá permissão a um usuario comum de escrever neste diretorio. Pois caso contrario somente o root poderia faze-lo
Código:
mount -t vfat /dev/sdb /mnt/pendrive -o uid=bruno
Para desmontar use o umont
Código:
umount /mnt/pendrive
*Outros usos do mount:
Montar um cd:
Código:
mount -t iso9660 /dev/cdrom /mnt/cdrom
Montar uma partição ntfs:
Código:
mount -t ntfs /dev/sda1 /mnt/windows
Espero ter contribuido.
Usuário linux.Slackware 13.37
Quando todos não acreditam em você, o sabor da vitória é ainda melhor.
Campanha de exclusão digital: Devolvam a internet aos Nerds, bando de noobs!
Hehe valeu. Eu estava achando estranho eu ter que desmontar o sistema de arquivo do linux para poder usar esse comando.
O sistema roda o fsck sozinho na partição raiz(na inicialização) depois de um certo tempo ou de um certo n° de montagens. Só não lembro o tempo o quantas montagens são.......
Marcadores