domingo, 8 de janeiro de 2012

LPIC 1 - Comandos - Comandos para manipular arquivos


     pwd: Mostra-nos o caminho por inteiro da directoria em que nos encontramos em dado momento, ou seja a pathname
        giovani@Saga:~$ pwd
        /etc/mysql/conf.d


     cd: Serve para navegar entre os diretórios. Ao abrir o terminal, você começa dentro do seu diretório home (como "/home/giovani"). Para acessar um diretório específico, especifique-o como parâmetro, como em "cd /etc". Para subir um diretório use "cd .." e, para voltar ao home, digite simplesmente "cd", sem parâmetro algum.
       cd ou cd ~    => Simplesmente sem opções você irá para o diretório homedir do seu usuário;
       cd ..              => Sobe um nível de diretório;
       cd ../../           => Sobe dois níveis de diretório;
       cd -                => Vai para o diretório anterior (se você estava dentro do /var/www por exemplo e depois digitou "cd /etc/cron.d/". Se você digitar na console "cd -" voltará para o /var/www. Nesse sentido que me refiro de voltar ao diretório anterior);
       cd /etc/squid3  => Acessa o diretório /etc/squid3.


     ls: Serve para listar os arquivos e diretórios dentro da pasta atual. Na maioria das distribuições, a listagem aparece colorida, permitindo diferenciar as pastas e os diferentes tipos de arquivos. As pastas aparecem em azul, os links em azul claro, os arquivos compactados em vermelho, as imagens em rosa, os executáveis em verde e os arquivos de texto e outros formatos em preto.

       ls -l       => Usa o formato de lista longa (detalhada)
                  -rw-r--r-- 1 www-data www-data  738 2012-01-08 15:02 aula1.php
       ls -a      => --all não ignora entradas iniciadas com  " . " (Arquivos ocultos)
                  -rw-r--r-- 1 www-data www-data  738 2012-01-08 15:02 .aula3.php
       ls -1      => Lista um arquivo por linha
                  aula1.php
                  aula2.php
                  aula3.php
                  aula4.php
                  aula5.php
       ls -lrt    => Lista arquivos/diretórios por ondem de alteração do mais antigo ao mais novo
                 drwxr-xr-x 5 www-data www-data 4096 2011-12-05 11:34 exemplo1
                 drwxr-xr-x 4 www-data www-data 4096 2011-12-05 11:42 exemplo3
                 drwxr-xr-x 5 www-data www-data 4096 2011-12-05 11:43 exemplo5
                 drwxr-xr-x 5 www-data www-data 4096 2011-12-05 11:44 exemplo6
                 drwxr-xr-x 2 www-data www-data 4096 2011-12-05 11:53 exemplo8
                 drwxr-xr-x 2 www-data www-data 4096 2011-12-05 11:53 exemplo10
                 drwxr-xr-x 4 www-data www-data 4096 2011-12-05 11:54 exemplo7
                 -rw-r--r-- 1 www-data www-data  738 2012-01-08 15:02 aula4.php
                 -rw-r--r-- 1 www-data www-data  738 2012-01-08 15:02 aula3.php
                 -rw-r--r-- 1 www-data www-data  738 2012-01-08 15:02 aula2.php
                 -rw-r--r-- 1 www-data www-data  738 2012-01-08 15:02 aula1.php
       ls /var/www/Aulas/drag_drop/  => Lista o conteúdo do diretório /var/www/Aulas/drag_drop/.



     mkdir: Serve para criar novos diretórios, como em "mkdir /tmp/exercicio1/arquivos". 
        mkdir -p /tmp/exercicio1/arquivos/novos/lpic1/    => Cria pastas recursivamente, criando se necessário todas as pastas até chegar a que você pediu. Mesmo que a pasta "novos" não exista, ela será criada.


     rmdir: Remove um diretório vazio.

       rmdir /tmp/dir_vazio


     cp: Cópia de arquivos e diretórios.
        cp -a, --archive             => O mesmo que -dR --preserve=all. Copia permissões/atributos,  arquivos/diretórios recursivamente e não segue os links simbólicos.
        cp ~/aula/ /tmp/aula1/   => Copia o diretório /home/giovani/aula para /tmp/aula1 (note que esta renomeando o diretório no destino).
        cp -i                                  => Pergunta antes de sobrescrever (desativa uma eventual opção -n)


     mv: Move ou renomeia arquivos e diretórios
       mv -f, --force             => Não exige confirmação antes de sobrescrever.
       mv -i, --interactive   => Exige confirmação antes de sobrescrever.
       mv /etc/squid3 /etc/squid3.bkp => Renomeia o diretório /etc/squid3 para /etc/squid3.bkp.


     rm: Remove arquivos e diretórios

       rm -r     => Por padrão, rm não remove diretórios (recursivamente). Use a opção --recursive (-r ou -R) para remover também cada diretório listado, junto com todo seu conteúdo.
       rm -f     => Ignora arquivos inexistentes, nunca questionar.
       rm -i     => Questiona antes de cada remoção.

       rm -- ./-arquivo2.conf    => Para remover um arquivo cujo nome começa com "-" (por  exemplo, "-foo"), use um dos seguintes comandos:



     find: O find também permite localizar arquivos, mas funciona da forma tradicional, realmente vasculhando os diretórios em busca dos arquivos, ao invés de usar uma base de dados, como o "locate". Embora seja lento ao procurar em diretórios com muitos arquivos e subdiretórios, o find é eficiente se você souber previamente onde procurar. Por exemplo, o diretório "/etc" concentra as configurações do sistema. Se você estiver procurando pelo arquivo "smb.conf" (onde é armazenada a configuração do Samba), você poderia ir direto à fonte, usando o comando "find /etc -name smb.conf".
       find . -type f -exec rm {} \;       => Procura no diretório atual (e nos sub-níveis a partir dele) por "arquivos" (-type -f) e apaga.
      find . -type f -iname "*.mail*" -daystart -mtime +90 -exec rm {} \;    => Procura no diretório atual e sub-níveis por arquivos que contenha ".mail" no nome e que sejam mais antigos que 90 dias e apaga. Você pode usar -90 (que são os mais novos que 90 dias).

      name - busca por nome
      type - busca por tipo
      size - busca pelo tamanho do arquivo
      mtime - busca por data de modificação


     locate: Este é um dos comandos mais úteis na minha opinião; ele permite encontrar arquivos de forma instantânea. Assim como mecanismos de busca, como o Google, o locate não sai procurando em todo o HD até achar o arquivo que pediu. Ele procura apenas dentro de uma base de dados, que contém os nomes de todos os arquivos. Esta base é gerada ao rodar o comando "updatedb", sua cara metade.

     A vantagem de usar a base de dados é que as buscas são instantâneas, a desvantagem é que você precisa rodar o updatedb (como root) de vez em quando, a fim de incluir as últimas modificações. Para procurar um arquivo, simplesmente use "locate arquivo".


     Se você está procurando por um programa, experimente o comando "which", uma variante do locate que mostra apenas executáveis.


     ln: Cria links entre arquivos.
       ln        => Cria hard link entre arquivos.
           ln /tmp/aula5.txt /tmp/aula6.txt
           Alterando o conteúdo de aula5.txt será alterado também o conteúdo de aula6.txt.
           Apagando o aula5.txt, você segue usando normalmente o aula6.txt
       ln -s    => Cria um link simbólico.
           ln -s /tmp/aula10.txt /tmp/aula11.txt
           Alterando o conteúdo de aula10.txt será alterado também o conteúdo de aula11.txt. Porque estamos falando do mesmo arquivo escrito na mesma área do HD.
           Apagando o arquivo aula10.txt, você não consegue acessar mais o aula11.txt
       ln -sf   => Força a criação de um link simbólico.


     cat: Serve para concatenar arquivos. Porém muito utilizado para ver o conteúdo de arquivo.
       cat /tmp/aula1.txt         => Faz com que visualize na tela o conteúdo do arquivo aula1.txt
       cat /tmp/aula1.txt /tmp/aula2.txt > /tmp/aula1-2.txt     => Junta o arquivo aula1.txt e aula2.txt em um único arquivo aula1-2.txt

       cat -n /etc/resolv.conf    => Numera todas as linhas de saída do arquivo /etc/resolv.conf





     head: Este é um dos primos do "cat", ele permite ver apenas as primeiras linhas do arquivo, ao invés de exibir a coisa inteira.


       head /etc/X11/xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 285.05.09  (buildmeister@swio-display-x86-rhel47-02.nvidia.com)  Fri Sep 23 17:55:57 PDT 2011


# commented out by update-manager, HAL is now used and auto-detects devices
# Keyboard settings are now read from /etc/default/console-setup
#Section "InputDevice"
#    # generated from default
#    Identifier     "Mouse0"
#    Driver         "mouse"
#    Option         "Protocol" "auto"



      head -n35 /etc/X11/xorg.conf      => Mostras as primeiras 35 linhas do arquivo xorg.conf




     tail: Outro parente distante é o tail (cauda), que mostra as últimas linhas do arquivo. O uso é o mesmo, basta indicar o número de linhas que devem ser mostradas e o nome do arquivo, como "tail -12 meu_longo_texto.txt".

       tail /etc/X11/xorg.conf
Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

      Você pode especificar um número de linhas a serem exibidas do "final" do arquivo. Com a opção "-n":
      tail -n35 /etc/X11/xorg.conf             => Mostras as últimas 35 linhas do arquivo xorg.conf
      tail -f /var/log/squid3/access.log    => Exibe as últimas linhas do arquivo access.log em tempo de execução. Porém se o arquivo for rotacionado (pelo logrotate porexemplo) você "não irá" acompanhar mais a saída de log, irá ter que cancelar o comando e digitar novamente.
     tail -F /var/log/squid3/access.log    => Exibe as últimas linhas do arquivo access.log em tempo de execução. Se o arquivo for rotacionado (pelo logrotate porexemplo) você "irá" continuar acompanhando a saída de log, não precisando cancelar e digitar novamente.


     Este comando é muito usado por administradores de sistemas para acompanhar os arquivos de log de seus servidores. Como as novas entradas destes arquivos vão sendo inseridas no final do arquivo, o tail permite verificar rapidamente apenas as novas inclusões, sem precisar perder tempo abrindo o arquivo inteiro.



     more, less: Less é um programa semelhante ao More, mas que permite movimento para trás no arquivo assim como o movimento para a frente. Além disso, less não tem que ler a entrada inteira do arquivo antes de começar, assim com arquivos de entrada grandes ele inicia mais rápido do que editores de texto como "vi". Less usa termcap (ou terminfo em alguns sistemas), para que ele possa ser executado em um variedade de terminais. 
       less ou more /etc/X11/xorg.conf    => Pagina o arquivo xorg.conf.

     file: Indica o tipo de arquivo

       file /bin/ls    => Exibe o tipo de arquivo (shell script, binário, php)
       /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

       file /etc/resolv.conf 
       /etc/resolv.conf: ASCII text

       file /var/www/Aulas/drag_drop/exemplo1/demo.html 
       /var/www/Aulas/drag_drop/exemplo1/demo.html: HTML document text





     touch: Muda timestamps.


       ls -l arquivo2.txt (apenas para verificar a data/hora do arquivo, antes de executar o touch)
       -rw-rw-r-- 1 giovani giovani 35 2012-01-08 16:57 arquivo2.txt


       touch arquivo2.txt

       ls -l arquivo2.txt (apenas para verificar a data/hora do arquivo, após de executar o touch)
       -rw-rw-r-- 1 giovani giovani 35 2012-01-08 17:00 arquivo2.txt



       Com o comando "stat" você consegue verificar muito mais detalhes sobre um determinado arquivo e/ou diretório
       stat arquivo2.txt    (Veja Abaixo algumas informações importantes)

  File: "arquivo2.txt"
  Size: 35         Blocks: 8          IO Block: 4096   arquivo comum
Device: 806h/2054d Inode: 658111      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ giovani)   Gid: ( 1000/ giovani)
Access: 2012-01-08 17:00:45.768045578 -0200
Modify: 2012-01-08 17:00:45.768045578 -0200
Change: 2012-01-08 17:00:45.768045578 -0200

Nenhum comentário:

Postar um comentário