terça-feira, 12 de fevereiro de 2013

Discos e Partições

4.1 Partições

São divisões existentes no disco rígido que marcam onde começa onde termina um sistema de arquivos. As partições nos permitem usar mais de um sistema operacional no mesmo computador (como o GNU/Linux, Windows e DOS), ou dividir o disco rígido em uma ou mais partes para ser usado por um único sistema operacional ou até mesmo por diferentes arquiteturas (32 e 64 bits).
 

4.2 Formatando Pen-drives/Disquetes

As subseções seguintes explicarão maneiras de formatar seu pen-drive, memória flash, e outras tecnologias (incluindo disquetes) para serem usados no GNU/Linux e DOS/Windows.

4.2.1 Formatando pen-drives para serem usados no Linux

Para formatar pen-drives para serem usados no GNU/Linux use o comando:
mkfs.ext2 [-c] [/dev/sde1]
Em alguns sistemas você deve usar mke2fs no lugar de mkfs.ext2. A opção -c faz com que o mkfs.ext2 procure por blocos danificados no pen-drive. Caso deseje formatar um disquete, especifique o dispositivo /dev/fd0 ao inves de /dev/sdb1.
Note que o nome de dispositivo que é conectado varia de acordo com o sistema e quantidade de discos rígidos que sua máquina possui portanto tenha ATENCÃO para não formatar o dispositivo incorreto (que pode ser justamente seu disco disco rígido principal). Para maior segurança, ao identificar o pen-drive, digite dmesg ao conectar o pen-drive para visualizar o dispositivo correto ou fique atento as mensagens do console que mostrará o dispositivo que foi associado ao pen-drive.
OBS: Este comando cria um sistema de arquivos ext2 no pen-drive e permite usar características como permissões de acesso e outras. Isto também faz com que o pen-drive NÃO possa ser lido pelo DOS/Windows.
Exemplo: mkfs.ext2 -c /dev/sde1
 

4.2.2 Formatando pen-drives compatíveis com o Windows

A formatação de pen-drives para serem usados no Windows é feita usando o comando mkfs.msdos que é geralmente incluído no pacote dosfstools. O mkfs.msdos permite tanto a criação de sistemas de arquivos FAT16 ou FAT32.
mkfs.msdos [opções] [dispositivo]
dispositivo
Pen-drive que será formatado. Normalmente /dev/sdb1 (dependendo do dispositivo detectado via comando dmesg).
opções
-F [num]
Especifica o tipo de FAT que será usado na formatação. Podem ser usados os valores 12 (para formatação usando FAT12, limitado a 12MB), 16 (para formatação usando FAT16, limitado a 2Gb) e 32 (para formatação FAT32, limitado a 128Gb).
-n [nome]
Atribui o [nome] de volume ao dispositivo.
-c
Faz uma pesquisa por bad blocks antes da criação do sistema de arquivos no dispositivo. Os setores defeituosos encontrados serão automaticamente marcados para não serem utilizadas.
Note que não se deve montar o pen-driv / disquete para formata-lo.
Segue abaixo exemplos de como formatar seu pen-drive mkfs.msdos:
  • mkfs.msdos /dev/sdc1 - Formata o pen-drive no terceiro dispositivo SCSI Genérico, como FAT32 e usando os valores padrões.
  • mkfs.msdos -F 16 /dev/sdc1 - Faz a mesma coisa que o acima, mas formata o pen-drive como FAT16.
  • mkfs.msdos -n teste -F 16 /dev/sdc1 - Formata o pen-drive no terceiro dispositivo SCSI genérico, como FAT16 e cria o nome de volume teste.

4.3 Pontos de Montagem

O GNU/Linux acessa as partições existente em seus discos rígidos e disquetes através de diretórios. Os diretórios que são usados para acessar (montar) partições são chamados de Pontos de Montagem. Para detalhes sobre montagem de partições, veja Montando (acessando) uma partição de disco.
No DOS cada letra de unidade (C:, D:, E:) identifica uma partição de disco, no GNU/Linux os pontos de montagem fazem parte da grande estrutura do sistema de arquivos raiz.
 

4.4 Identificação de discos e partições em sistemas Linux

No GNU/Linux, os dispositivos existentes em seu computador (como discos rígidos, pen-drives, flash, disquetes, tela, portas de impressora, modem, etc) são identificados por um arquivo referente a este dispositivo no diretório /dev.
A identificação de discos rígidos no GNU/Linux é feita da seguinte forma:
     /dev/sda1
     |    | ||
     |    | ||_Número que identifica o número da partição no disco rígido.
     |    | |
     |    | |_Letra que identifica o disco rígido (a=primeiro, b=segundo, etc...).
     |    |
     |    |_Sigla que identifica o tipo do disco rígido (sd=SATA/SCSI, sd=IDE, xt=MFM).
     |
     |_Diretório onde são armazenados os dispositivos existentes no sistema.
Abaixo algumas identificações de discos e partições em sistemas Linux:
  • /dev/fd0 - Primeira unidade de disquetes.
  • /dev/fd1 - Segunda unidade de disquetes.
  • /dev/sda - Primeiro disco rígido na primeira controladora SATA ou SCSI.
  • /dev/sda1 - Primeira partição do primeiro disco rígido SATA ou.
  • /dev/sdb - Segundo disco rígido na primeira controladora SATA ou SCSI.
  • /dev/sdb1 - Primeira partição do segundo disco rígido SATA ou SCSI.
  • /dev/sr0 - Primeiro CD-ROM SATA ou SCSI.
  • /dev/sr1 - Segundo CD-ROM SATA ou SCSI.
  • /dev/hda - Primeiro disco rígido na primeira controladora IDE do micro (primary master).
  • /dev/hda1 - Primeira partição do primeiro disco rígido IDE.
  • /dev/hdb - Segundo disco rígido na primeira controladora IDE do micro (primary slave).
  • /dev/hdb1 - Primeira partição do segundo disco rígido IDE.
  • /dev/xda - Primeiro disco rígido XT.
  • /dev/xdb - Segundo disco rígido XT.
As letras de identificação de discos rígidos podem ir além de sdb, por exemplo, caso utilize pen-drives, memória flash, as unidades serão detectadas como sdc, sdd e assim por diante.
É importante entender como os discos e partições são identificados no sistema, pois será necessário usar os parâmetros corretos para monta-los.

4.5 Montando (acessando) uma partição de disco

Você pode acessar uma partição de disco usando o comando mount.
mount [dispositivo] [ponto de montagem] [opções]
Onde:
dispositivo
Identificação da unidade de disco/partição que deseja acessar (como /dev/hda1 (disco rígido) ou /dev/fd0 (primeira unidade de disquetes).
ponto de montagem
Diretório de onde a unidade de disco/partição será acessado. O diretório deve estar vazio para montagem de um sistema de arquivo. Normalmente é usado o diretório /mnt para armazenamento de pontos de montagem temporários.
-t [tipo]
Tipo do sistema de arquivos usado pelo dispositivo. São aceitos os sistemas de arquivos:
  • ext2 - Para partições GNU/Linux usando o Extended File System versão 2 (a mais comum).
  • ext3 - Para partições GNU/Linux usando o Extended File System versão 3, com suporte a journaling.
  • ext4 - Para partições GNU/Linux usando o Extended File System versão 4, com suporte a journaling.
  • reiserfs - Para partições reiserfs, com suporte a journaling.
  • xfs - Para partições xfs, com suporte a journaling.
  • vfat - Para partições Windows 95 que utilizam nomes extensos de arquivos e diretórios.
  • msdos - Para partições DOS normais.
  • iso9660 - Para montar unidades de CD-ROM. É o padrão.
Na maioria das vezes, caso o sistema de arquivos não seja especificado, o mount utilizará a auto-detecção e montará a partição usando o sistema de arquivos correto. Para mais detalhes sobre opções usadas com cada sistema de arquivos, veja a página de manual mount.
-r
Caso for especificada, monta a partição somente para leitura.
-w
Caso for especificada, monta a partição como leitura/gravação. É o padrão.
Existem muitas outras opções que podem ser usadas com o comando mount, mas aqui procurei somente mostrar o básico para "montar" seus discos e partições no GNU/Linux. Caso você digitar mount sem parâmetros, serão mostrados os sistemas de arquivos atualmente montados no sistema. Esta mesma listagem pode ser vista em /etc/mtab. A remontagem de partição também é muito útil, especialmente após reparos nos sistema de arquivos do disco rígido. Veja alguns exemplos de remontagem abaixo.
É necessário permissões de root para montar partições.
Exemplo de Montagem:
  • Montar uma partição Windows (vfat) de /dev/sda1 em /mnt somente para leitura: mount /dev/sda1 /mnt -r -t vfat
  • Montar um pen-drive detectado em /dev/sdc1 em /mnt:
    mount /dev/sdc1 /mnt -t vfat
  • Montar uma partição DOS localizada em um segundo disco rígido /dev/hdb1 em /mnt:  
    mount /dev/hdb1 /mnt -t msdos.
  • Remontar a partição raíz como somente leitura: mount -o remount,ro /
  • Remontar a partição raíz como leitura/gravação (a opção -n é usada porque o mount não conseguirá atualizar o arquivo /etc/mtab devido ao sistema de arquivos / estar montado como somente leitura atualmente: mount -n -o remount,rw /.

4.5.1 fstab

O arquivo /etc/fstab permite que as partições do sistema sejam montadas facilmente especificando somente o dispositivo ou o ponto de montagem. Este arquivo contém parâmetros sobre as partições que são lidos pelo comando mount. Cada linha deste arquivo contém a partição que desejamos montar, o ponto de montagem, o sistema de arquivos usado pela partição e outras opções. fstab tem a seguinte forma:
     Sistema_de_arquivos Ponto_de_Montagem Tipo    Opções           dump ordem
     /dev/sda1           /                 ext3    defaults           0    1
     /dev/sda2           /boot             ext3    defaults           0    2
     /dev/sda3           /dos              msdos   defaults,noauto,rw 0    0
     /dev/hdg            /cdrom            iso9660 defaults,noauto    0    0
Onde:
Sistema de Arquivos
Partição que deseja montar.
Ponto de montagem
Diretório do GNU/Linux onde a partição montada será acessada.
Tipo
Tipo de sistema de arquivos usado na partição que será montada. Para partições GNU/Linux use ext3, reiserfs, xfs (de acordo com o tipo de partição selecionada durante a formatação), para partições DOS (sem nomes extensos de arquivos) use msdos, para partições Win 95 (com suporte a nomes extensos de arquivos) use vfat, para unidades de CD-ROM use iso9660.
Opções
Especifica as opções usadas com o sistema de arquivos. Abaixo, algumas opções de montagem para ext2/3/4 (a lista completa pode ser encontrada na página de manual do mount):
  • defaults - Utiliza valores padrões de montagem.
  • noauto - Não monta os sistemas de arquivos durante a inicialização (útil para CD-ROMS e disquetes).
  • ro - Monta como somente leitura.
  • user - Permite que usuários montem o sistema de arquivos (não recomendado por motivos de segurança).
  • sync é recomendado para uso com discos removíveis (disquetes, zip drives, nfs, etc) para que os dados sejam gravados imediatamente na unidade (caso não seja usada, você deve usar o comando sync, Seção 8.22 antes de retirar o disquete da unidade.
dump
Especifica a frequência de backup feita com o programa dump no sistema de arquivos. 0 desativa o backup.
Ordem
Define a ordem que os sistemas de arquivos serão verificados na inicialização do sistema. Se usar 0, o sistema de arquivos não é verificado. O sistema de arquivos raíz que deverá ser verificado primeiro é o raíz "/" .
Após configurar o /etc/fstab, basta digitar o comando mount /dev/hdg ou mount /cdrom para que a unidade de CD-ROM seja montada. Você deve ter notado que não é necessário especificar o sistema de arquivos da partição pois o mount verificará se ele já existe no /etc/fstab e caso existir, usará as opções especificadas neste arquivo. Para maiores detalhes veja as páginas de manual fstab e mount.

4.6 Desmontando uma partição de disco

Utilize o comando umount para desmontar um sistema de arquivos que foi montado com o mount. Você deve ter permissões de root para desmontar uma partição.
umount [dispositivo/ponto de montagem]
Você pode tanto usar umount /dev/sda1 como umount /mnt para desmontar um sistema de arquivos /dev/sda1 montado em /mnt.
Observação: O comando umount executa o sync automaticamente no momento da desmontagem, para garantir que todos os dados ainda em memória RAM sejam salvos.

Fonte: Foca GNU/Linux 

Comandos - Explicação

Comandos são ordens que passamos ao sistema operacional para executar uma determinada tarefa.
Cada comando tem uma função específica, devemos saber a função de cada comando e escolher o mais adequado para fazer o que desejamos, por exemplo:
  • ls - Mostra arquivos de diretórios
  • cd - Para mudar de diretório
Este guia tem uma lista de vários comandos organizados por categoria com a explicação sobre o seu funcionamento e as opções aceitas (incluindo alguns exemplos).
É sempre usado um espaço depois do comando para separá-lo de uma opção ou parâmetro que será passado para o processamento. Um comando pode receber opções e parâmetros:
opções
As opções são usadas para controlar como o comando será executado, por exemplo, para fazer uma listagem mostrando o dono, grupo, tamanho dos arquivos você deve digitar ls -l.
Opções podem ser passadas ao comando através de um "-" ou "--":
-
Opção identificada por uma letra. Podem ser usadas mais de uma opção com um único hífen. O comando ls -l -a é a mesma coisa de ls -la
--
Opção identificada por um nome. Também chamado de opção extensa. O comando ls --all é equivalente a ls -a.
Pode ser usado tanto "-" como "--", mas há casos em que somente "-" ou "--" esta disponível.
parâmetros
Um parâmetro identifica o caminho, origem, destino, entrada padrão ou saída padrão que será passada ao comando.
Se você digitar: ls /usr/share/doc/copyright, /usr/share/doc/copyright será o parâmetro passado ao comando ls, neste caso queremos que ele liste os arquivos do diretório /usr/share/doc/copyright.
É normal errar o nome de comandos, mas não se preocupe, quando isto acontecer o sistema mostrará a mensagem command not found (comando não encontrado) e voltará ao aviso de comando. As mensagens de erro não fazem nenhum mal ao seu sistema, somente dizem que algo deu errado para que você possa corrigir e entender o que aconteceu. No GNU/Linux, você tem a possibilidade de criar comandos personalizados usando outros comandos mais simples (isto será visto mais adiante). Os comandos se encaixam em duas categorias: Comandos Internos e Comandos Externos.
Por exemplo: "ls -la /usr/share/doc", ls é o comando, -la é a opção passada ao comando, e /usr/share/doc é o diretório passado como parâmetro ao comando ls.

2.5.1 Comandos Internos

São comandos que estão localizados dentro do interpretador de comandos (normalmente o Bash) e não no disco. Eles são carregados na memória RAM do computador junto com o interpretador de comandos.
Quando executa um comando, o interpretador de comandos verifica primeiro se ele é um Comando Interno caso não seja é verificado se é um Comando Externo.
Exemplos de comandos internos são: cd, exit, echo, bg, fg, source, help

2.6 Comandos Externos

São comandos que estão localizados no disco. Os comandos são procurados no disco usando o ordem do PATH e executados assim que encontrados.
 

2.7 Aviso de comando (Prompt)

Aviso de comando (ou Prompt), é a linha mostrada na tela para digitação de comandos que serão passados ao interpretador de comandos para sua execução.
A posição onde o comando será digitado é marcado um "traço" piscante na tela chamado de cursor. Tanto em shells texto como em gráficos é necessário o uso do cursor para sabermos onde iniciar a digitação de textos e nos orientarmos quanto a posição na tela.
O aviso de comando do usuário root é identificado por uma "#" (tralha), e o aviso de comando de usuários é identificado pelo símbolo "$". Isto é padrão em sistemas UNIX.
Você pode retornar comandos já digitados pressionando as teclas Seta para cima / Seta para baixo.
A tela pode ser rolada para baixo ou para cima segurando a tecla SHIFT e pressionando PGUP ou PGDOWN. Isto é útil para ver textos que rolaram rapidamente para cima.
Abaixo algumas dicas sobre a edição da linha de comandos (não é necessário se preocupar em decora-los):
  • Pressione a tecla Back Space ("<--") para apagar um caracter à esquerda do cursor.
  • Pressione a tecla Del para apagar o caracter acima do cursor.
  • Pressione CTRL+A para mover o cursor para o inicio da linha de comandos.
  • Pressione CTRL+E para mover o cursor para o fim da linha de comandos.
  • Pressione CTRL+U para apagar o que estiver à esquerda do cursor. O conteúdo apagado é copiado para uso com CTRL+y.
  • Pressione CTRL+K para apagar o que estiver à direita do cursor. O conteúdo apagado é copiado para uso com CTRL+y.
  • Pressione CTRL+L para limpar a tela e manter o texto que estiver sendo digitado na linha de comando (parecido com o comando clear).
  • Pressione CTRL+Y para colocar o texto que foi apagado na posição atual do cursor.


2.8 Interpretador de comandos

Também conhecido como "shell". É o programa responsável em interpretar as instruções enviadas pelo usuário e seus programas ao sistema operacional (o kernel). Ele que executa comandos lidos do dispositivo de entrada padrão (teclado) ou de um arquivo executável. É a principal ligação entre o usuário, os programas e o kernel. O GNU/Linux possui diversos tipos de interpretadores de comandos, entre eles posso destacar o bash, ash, csh, tcsh, sh, etc. Entre eles o mais usado é o bash. O interpretador de comandos do DOS, por exemplo, é o command.com.
Os comandos podem ser enviados de duas maneiras para o interpretador: interativa e não-interativa:
Interativa
Os comandos são digitados no aviso de comando e passados ao interpretador de comandos um a um. Neste modo, o computador depende do usuário para executar uma tarefa, ou próximo comando.
Não-interativa
São usados arquivos de comandos criados pelo usuário (scripts) para o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um e dependendo do término do comando, o script pode checar qual será o próximo comando que será executado e dar continuidade ao processamento.
Este sistema é útil quando temos que digitar por várias vezes seguidas um mesmo comando ou para compilar algum programa complexo.
O shell Bash possui ainda outra característica interessante: A completação dos nomes. Isto é feito pressionando-se a tecla TAB. Por exemplo, se digitar "ls tes" e pressionar <tab>, o Bash localizará todos os arquivos que iniciam com "tes" e completará o restante do nome. Caso a completação de nomes encontre mais do que uma expressão que satisfaça a pesquisa, ou nenhuma, é emitido um beep. Se você apertar novamente a tecla TAB imediatamente depois do beep, o interpretador de comandos irá listar as diversas possibilidades que satisfazem a pesquisa, para que você possa escolher a que lhe interessa. A completação de nomes funciona sem problemas para comandos internos.
Exemplo: ech (pressione TAB). ls /vm(pressione TAB)

2.9 Terminal Virtual (console)

Terminal (ou console) é o teclado e tela conectados em seu computador. O GNU/Linux faz uso de sua característica multi-usuária usando os "terminais virtuais". Um terminal virtual é uma segunda seção de trabalho completamente independente de outras, que pode ser acessada no computador local ou remotamente via telnet, rsh, rlogin, etc.
No GNU/Linux, em modo texto, você pode acessar outros terminais virtuais segurando a tecla ALT e pressionando F1 a F6. Cada tecla de função corresponde a um número de terminal do 1 ao 6 (o sétimo é usado por padrão pelo ambiente gráfico X). O GNU/Linux possui mais de 63 terminais virtuais, mas apenas 6 estão disponíveis inicialmente por motivos de economia de memória RAM .
Se estiver usando o modo gráfico, você deve segurar CTRL+ ALT enquanto pressiona uma tela de <F1> a <F6>. Para voltar ao modo gráfico, pressione CTRL+ALT+ <F7>.
Um exemplo prático: Se você estiver usando o sistema no Terminal 1 com o nome "joao" e desejar entrar como "root" para instalar algum programa, segure ALT enquanto pressiona <F2> para abrir o segundo terminal virtual e faça o login como "root". Será aberta uma nova seção para o usuário "root" e você poderá retornar a hora que quiser para o primeiro terminal pressionando ALT+<F1>.

2.10 Login

Login é a entrada no sistema quando você digita seu nome e senha.

2.11 Logout

Logout é a saída do sistema. A saída do sistema é feita pelos comandos logout, exit, CTRL+D, ou quando o sistema é reiniciado ou desligado.


2.12 Curingas

Curingas (ou referência global) é um recurso usado para especificar um ou mais arquivos ou diretórios do sistema de uma só vez. Este é um recurso permite que você faça a filtragem do que será listado, copiado, apagado, etc. São usados 4 tipos de curingas no GNU/Linux:
  • "*" - Faz referência a um nome completo/restante de um arquivo/diretório.
  • "?" - Faz referência a uma letra naquela posição.
  • [padrão] - Faz referência a uma faixa de caracteres de um arquivo/diretório. Padrão pode ser:
    • [a-z][0-9] - Faz referência a caracteres de a até z seguido de um caracter de 0 até 9.
    • [a,z][1,0] - Faz a referência aos caracteres a e z seguido de um caracter 1 ou 0 naquela posição.
    • [a-z,1,0] - Faz referência a intervalo de caracteres de a até z ou 1 ou 0 naquela posição.
    A procura de caracteres é "Case Sensitive" assim se você deseja que sejam localizados todos os caracteres alfabéticos você deve usar [a-zA-Z].
    Caso a expressão seja precedida por um ^, faz referência a qualquer caracter exceto o da expressão. Por exemplo [^abc] faz referência a qualquer caracter exceto a, b e c.
  • {padrões} - Expande e gera strings para pesquisa de padrões de um arquivo/diretório.
    • X{ab,01} - Faz referência a seqüencia de caracteres Xab ou X01
    • X{a-z,10} Faz referencia a seqüencia de caracteres Xa-z e X10.
O que diferencia este método de expansão dos demais é que a existência do arquivo/diretório é opcional para geração do resultado. Isto é útil para a criação de diretórios. Lembrando que os 4 tipos de curingas ("*", "?", "[]", "{}") podem ser usados juntos. Para entender melhor vamos a prática:
Vamos dizer que tenha 5 arquivo no diretório /usr/teste: teste1.txt, teste2.txt, teste3.txt, teste4.new, teste5.new.
Caso deseje listar todos os arquivos do diretório /usr/teste você pode usar o coringa "*" para especificar todos os arquivos do diretório:
cd /usr/teste e ls * ou ls /usr/teste/*.
Não tem muito sentido usar o comando ls com "*" porque todos os arquivos serão listados se o ls for usado sem nenhum Coringa.
Agora para listar todos os arquivos teste1.txt, teste2.txt, teste3.txt com excessão de teste4.new, teste5.new, podemos usar inicialmente 3 métodos:

  • Usando o comando ls *.txt que pega todos os arquivos que começam com qualquer nome e terminam com .txt.
  • Agora para listar somente teste4.new e teste5.new podemos usar os seguintes métodos:
    Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto de cada um. O que pretendi fazer aqui foi mostrar como especificar mais de um arquivo de uma só vez. O uso de curingas será útil ao copiar arquivos, apagar, mover, renomear, e nas mais diversas partes do sistema. Alias esta é uma característica do GNU/Linux: permitir que a mesma coisa possa ser feita com liberdade de várias maneiras diferentes.

  • Usando o comando ls teste?.txt, que pega todos os arquivos que começam com o nome teste, tenham qualquer caracter no lugar do coringa ? e terminem com .txt. Com o exemplo acima teste*.txt também faria a mesma coisa, mas se também tivéssemos um arquivo chamado teste10.txt este também seria listado.
  • Usando o comando ls teste[1-3].txt, que pega todos os arquivos que começam com o nome teste, tenham qualquer caracter entre o número 1-3 no lugar da 6a letra e terminem com .txt. Neste caso se obtém uma filtragem mais exata, pois o coringa ? especifica qualquer caracter naquela posição e [] especifica números, letras ou intervalo que será usado.
  • ls *.new que lista todos os arquivos que terminam com .new
  • ls teste?.new que lista todos os arquivos que começam com teste, contenham qualquer caracter na posição do coringa ? e terminem com .new.
  • ls teste[4,5].* que lista todos os arquivos que começam com teste contenham números de 4 e 5 naquela posição e terminem com qualquer extensão.



  • Fonte: Foca GNU/Linux  

    Diretórios

    2.3 Diretório

    Diretório é o local utilizado para armazenar conjuntos arquivos para melhor organização e localização. O diretório, como o arquivo, também é "Case Sensitive" (diretório /teste é completamente diferente do diretório /Teste).
    Não podem existir dois arquivos com o mesmo nome em um diretório, ou um sub-diretório com um mesmo nome de um arquivo em um mesmo diretório.
    Um diretório nos sistemas Linux/UNIX são especificados por uma "/" e não uma "\" como é feito no DOS. Para detalhes sobre como criar um diretório, veja o comando mkdir.

    2.3.1 Diretório Raíz

    Este é o diretório principal do sistema. Dentro dele estão todos os diretórios do sistema. O diretório Raíz é representado por uma "/", assim se você digitar o comando cd / você estará acessando este diretório.
    Nele estão localizados outros diretórios como o /bin, /sbin, /usr, /usr/local, /mnt, /tmp, /var, /home, etc. Estes são chamados de sub-diretórios pois estão dentro do diretório "/". A estrutura de diretórios e sub-diretórios pode ser identificada da seguinte maneira:
    • /
    • /bin
    • /sbin
    • /usr
    • /usr/local
    • /mnt
    • /tmp
    • /var
    • /home
    A estrutura de diretórios também é chamada de Árvore de Diretórios porque é parecida com uma árvore de cabeça para baixo. Cada diretório do sistema tem seus respectivos arquivos que são armazenados conforme regras definidas pela FHS (FileSystem Hierarchy Standard - Hierarquia Padrão do Sistema de Arquivos) versão 2.0, definindo que tipo de arquivo deve ser armazenado em cada diretório.

    2.3.2 Diretório atual

    É o diretório em que nos encontramos no momento. Você pode digitar pwd para verificar qual é seu diretório atual.
    O diretório atual também é identificado por um "." (ponto). O comando comando ls . pode ser usado para listar seus arquivos (é claro que isto é desnecessário porque se não digitar nenhum diretório, o comando ls listará o conteúdo do diretório atual).

    2.3.3 Diretório home

    Também chamado de diretório de usuário. Em sistemas GNU/Linux cada usuário (inclusive o root) possui seu próprio diretório onde poderá armazenar seus programas e arquivos pessoais.
    Este diretório está localizado em /home/[login], neste caso se o seu login for "joao" o seu diretório home será /home/joao. O diretório home também é identificado por um ~(til), você pode digitar tanto o comando ls /home/joao como ls ~ para listar os arquivos de seu diretório home.
    O diretório home do usuário root (na maioria das distribuições GNU/Linux) está localizado em /root.
    Dependendo de sua configuração e do número de usuários em seu sistema, o diretório de usuário pode ter a seguinte forma: /home/[1letra_do_nome]/[login], neste caso se o seu login for "joao" o seu diretório home será /home/j/joao.

    2.3.4 Diretório Superior

    O diretório superior (Upper Directory) é identificado por .. (2 pontos).
    Caso estiver no diretório /usr/local e quiser listar os arquivos do diretório /usr você pode digitar,
     ls .. Este recurso também pode ser usado para copiar, mover arquivos/diretórios, etc.

    2.3.5 Diretório Anterior

    O diretório anterior é identificado por "-". É útil para retornar ao último diretório usado.
    Se estive no diretório /usr/local e digitar cd /lib, você pode retornar facilmente para o diretório /usr/local usando cd -.

    2.3.6 Caminho na estrutura de diretórios

    São os diretórios que teremos que percorrer até chegar no arquivo ou diretório que que procuramos. Se desejar ver o arquivo /etc/hosts você tem duas opções:




  • Mudar o diretório padrão para /etc com o comando cd /etc e usar o comando cat hosts
  • As duas soluções acima permitem que você veja o arquivo GPL. A diferença entre as duas é a seguinte:
    • Na primeira, você muda o diretório padrão para /usr/doc/copyright (confira digitando pwd) e depois o comando cat GPL. Você pode ver os arquivos de /usr/doc/copyright com o comando "ls".
      /usr/doc/copyright é o caminho de diretório que devemos percorrer para chegar até o arquivo GPL.
    • Na segunda, é digitado o caminho completo para o "cat" localizar o arquivo GPL: cat /usr/doc/copyright/GPL. Neste caso, você continuará no diretório padrão (confira digitando pwd). Digitando ls, os arquivos do diretório atual serão listados.
    O caminho de diretórios é necessário para dizer ao sistema operacional onde encontrar um arquivo na "árvore" de diretórios.




  • Usar o comando "cat" especificando o caminho completo na estrutura de diretórios e o nome de arquivo: cat /etc/hosts.

    2.3.7 Exemplo de diretório

    Um exemplo de diretório é o seu diretório de usuário, todos seus arquivos essenciais devem ser colocadas neste diretório. Um diretório pode conter outro diretório, isto é útil quando temos muitos arquivos e queremos melhorar sua organização. Abaixo um exemplo de uma empresa que precisa controlar os arquivos de Pedidos que emite para as fábricas:
    • /pub/vendas - diretório principal de vendas 
    • /pub/vendas/mes01-1999 - diretório contendo vendas do mês 01/1999 /pub/vendas/mes02-2009 - diretório contendo vendas do mês 02/2009
    • /pub/vendas/mes01-2010 - diretório contendo vendas do mês 03/2010
    mes01-99, mes02-2009, mes01-2010 são diretórios usados para armazenar os arquivos de pedidos do mês e ano correspondente. Isto é essencial para organização, pois se todos os pedidos fossem colocados diretamente no diretório vendas, seria muito difícil encontrar o arquivo do cliente "João" do mês 01/2009.
    Você deve ter reparado que usei a palavra sub-diretório para mes01-1999, mes02-2009 e mes01-2010, porque que eles estão dentro do diretório vendas. Da mesma forma, vendas é um sub-diretório de pub.

    2.3.8 Estrutura básica de diretórios do Sistema Linux

    O sistema GNU/Linux possui a seguinte estrutura básica de diretórios organizados segundo o FHS (Filesystem Hierarchy Standard):
    /bin
    Contém arquivos programas do sistema que são usados com freqüência pelos usuários.
    /boot
    Contém arquivos necessários para a inicialização do sistema.
    /cdrom
    Ponto de montagem da unidade de CD-ROM.
    /media
    Ponto de montagem de dispositivos diversos do sistema (rede, pen-drives, CD-ROM em distribuições mais novas).
    /dev
    Contém arquivos usados para acessar dispositivos (periféricos) existentes no computador.
    /etc
    Arquivos de configuração de seu computador local.
    /floppy
    Ponto de montagem de unidade de disquetes
    /home
    Diretórios contendo os arquivos dos usuários.
    /lib
    Bibliotecas compartilhadas pelos programas do sistema e módulos do kernel.
    /lost+found
    Local para a gravação de arquivos/diretórios recuperados pelo utilitário fsck.ext2. Cada partição possui seu próprio diretório lost+found.
    /mnt
    Ponto de montagem temporário.
    /proc
    Sistema de arquivos do kernel. Este diretório não existe em seu disco rígido, ele é colocado lá pelo kernel e usado por diversos programas que fazem sua leitura, verificam configurações do sistema ou modificar o funcionamento de dispositivos do sistema através da alteração em seus arquivos.
    /sys
    Sistema de arquivos do kernel. Este diretório não existe em seu disco rígido, ele é colocado lá pelo kernel e usado por diversos programas que fazem sua leitura, verificam configurações do sistema ou modificar o funcionamento de dispositivos do sistema através da alteração em seus arquivos.
    /root
    Diretório do usuário root.
    /sbin
    Diretório de programas usados pelo superusuário (root) para administração e controle do funcionamento do sistema.
    /tmp
    Diretório para armazenamento de arquivos temporários criados por programas.
    /usr
    Contém maior parte de seus programas. Normalmente acessível somente como leitura.
    /var
    Contém maior parte dos arquivos que são gravados com freqüência pelos programas do sistema, e-mails, spool de impressora, cache, etc.
     Fonte: Foca GNU/Linux
  • Comandos

    TERMINAL GUAKE
    Visivel = F12
    FullScreen = F11
    Nova Aba = Shift + Ctrol + t
    Fecha Aba = Shift + Ctrol + w
    Navega Entre Aba = Ctrol + Page_Up ou Page_Down

    ENTRAR EM UM DIRETÓRIO
    # cd /diretorio

    SAIR DE UM DIRETORIO
    # cd ..
    # cd

    COMPACTAR ARQUIVOS TAR GZ
    tar zcvf arquivo.tar diretório_ser_compactado/*
        c= create
        z= comprime
        v= verbose
        f= file
       
    DESCOMPACTAR ARQUIVOS GZ
    tar zxvf nome_do_arquivo.tar.gz
        x= extract

    APAGAR ARQUIVOS OU PASTA
    rm -r nome_do_arquivo_ou_pasta
       -r = recursiva

    INSTALAR PACOTE *.deb
    dpkg -i pacote.deb
        -i = install


    APT-GET
        apt-get update - Adquire novas listas de pacotes.
        apt-get upgrade - Faz uma atualização.
        apt-get install - Instala novos pacotes
        apt-get remove - Remove um pacote.
        source - Faz o download de arquivos fonte.
        build-dep - Configura as dependências de compilação de pacotes fonte.
        dist-upgrade - Atualiza a distribuição.
        clean - Apaga arquivos baixados para instalação.
        autoclean - Apaga arquivos antigos baixados para instalação.
        check - Verifica se não há dependências quebradas.

    SSH
    Logar no SSH com usuário diferente.
    ssh 192.168.1.1 -l root   
        -l= login name

    VISUALIZAR PROCESSOS
    ps
        ps aux
        ps aux | less


    VISUALIZA LISTA DE EXECUÇÃO PROGRAMADA
    crontab
        crontab -l = visualiza

    TAMANHO DE ARQUIVOS
    du -sh *

    MONTANDO UM PEN DRIVE
    blkid = EXIBIR atributos de dispositivo de bloco.
    mkdir /mnt/pendrive   === criando pasta para montar o pen drive
    mount -t vfat /dev/sdb2 /mnt/pendrive/ -o umask=000

    ACESSO RDP WINDOWS
    rdesktop
        rdesktop ip_do_computador
        alias ts='rdesktop -5 -a 16 -g 1280x650' 192.168.1.91
        alias ts='rdesktop -5 -a 16 -g 1270x740'

    ALIAS
        /etc/profile = PARA TODOS OS USUÁRIOS
        ~/.bashrc  =  do usuário em questão.

    PERMISSÃO DE ACESSO WEB A UMA PASTA - DO APACHE
    chown -R www-data:www-data /var/www/zabbix/


    ADICIONAR USUÁRIO
    adduser "nome_de_usuário"

    TROCAR SENHA DE USUÁRIO
    passwd "nome_de_usuário"

    Exibe se uma porta esta ouvindo ou não.

    Informa os estado das suas conexões de rede, mostra as portas que estão abertas

    netstat -nputa exibe somente as portas, PID e Nome dos Processos
    netstat -na = Exibe a lista de IP de quem está conectado na maquina.
    netstat -nap = Exibe também o PID da conexão
    netstat --init -ac ou netstat -ac =  Exibe as conexões ativas em tempo real, não precisa dar o comando novamente para atualizar os resultados.

    Fonte:
    http://www.zago.eti.br/log.html#toc10


    Verificar Serviços
    Mostra o que está rodando e o que está parado.
    service --status-all

    segunda-feira, 11 de fevereiro de 2013

    Alterar o Hostname - CentOS


    # vi /etc/sysconfig/network 
    NETWORKING=yes
    HOSTNAME=aqui_colocamos_o_nome

    Configurando IP estático no CentOS


    Logado como root edite o arquivo:
    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    Troque o BOOTPROTO PARA static e coloque o ip e a mascara

    BOOTPROTO=static
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0

    Agora edite o arquivo abaixo para adicionar o gateway:
    vi /etc/sysconfig/network
    GATEWAY=192.168.1.1

    E para finalizar é necessario configurar o dns:
    vi /etc/resolv.conf

    Recomendo utilizar os dns´s abaixo que são do google dns public:
    nameserver 8.8.8.8
    nameserver 8.8.4.4

    Para finalizar de um restart

    Fonte: