Mostrando postagens com marcador shell. Mostrar todas as postagens
Mostrando postagens com marcador shell. Mostrar todas as postagens

terça-feira, 21 de junho de 2016

Linux - Compactar arquivos e diretórios


Visualizar conteúdo do arquivo compactado

 # tar tf <arquivo.tar>



Compactar arquivos

 # tar cf <arquivo.tar> [lista de arquivos]

Você precisará informar os nomes dos arquivos que serão compactados através do comando tar. Eles devem ser indicados em sequência.


Compactar um diretório

 # tar cf <arquivo.tar> <nome do diretório>



Descompactar arquivo

 # tar xf <arquivo.tar>



Descompactar arquivo .tar.gz

 # tar xzvf <arquivo.tar>



Descompactar arquivo específico

 # tar xvf <arquivo.tar> <nome do arquivo>

O comando permite extrair um arquivo específico a partir de um arquivo compactado.


Opções mais comuns
-p: Mantêm as permissões do arquivo original;
-t: Lista o conteúdo do arquivo compactado;
-v: Lista detalhadamente os arquivos processados;
-z: Filtra o arquivo através do gzip.

_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.

sábado, 9 de abril de 2016

Linux - Comandos Básicos - Edição de texto


As diferentes versões do sistema operacional Linux vem com utilitários para edição de texto. Fiz uma lista abaixo com os três principais editores que são nativos nas principais distribuições. Você encontrará os comandos básicos para a visualização e edição de arquivos de texto.

vi

Para visualizar um arquivo de texto basta digitar o comando vi seguido do nome do arquivo, para o caso de você estar no diretório onde o arquivo está localizado. Do contrário será necessário informar a localização do mesmo antes do nome.

 
 # vi <nome do arquivo>


Para editar o arquivo é necessário teclar "INSERT". Após a edição você precisará salvar o arquivo teclando "ESC" e digitando ":w". Para sair do editor digite ":q!". Você também poderá salvar o arquivo e sair do editor teclando "ESC" e digitando um único comando ":wq!".


vim

O VIM é uma versão melhorada do VI.

 
 # vim <nome do arquivo>


Para editar o arquivo é necessário teclar "INSERT". Após a edição você precisará salvar o arquivo teclando "ESC" e digitando ":w". Para sair do editor digite ":q!". Você também poderá salvar o arquivo e sair do editor teclando "ESC" e digitando um único comando ":wq!".


nano

Assim como nos editores de texto anteriores para abrir o arquivo basta digitar o comando nano seguido do nome do arquivo.

 
 # nano <nome do arquivo>


Para salvar as alterações realizadas basta teclar CTRL + O. Para sair do editor tecle CTRL + X.


_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.

sábado, 2 de abril de 2016

Linux - Comandos Básicos - Verificar configuração de DNS


Visualizar nome do computador / estação de trabalho

 $ hostname



Visualizar nome de domínio

 $ domainname

O comando permite visualizar e alterar o nome de domínio NIS (Network Information Service).

Opções mais comuns
-d: Permite visualizar o nome de domínio DNS (= comando dnsdomainname)
-f: Permite visualizar o nome completo do host (fqdn)
-i: Permite visualizar o endereço IP associado ao nome de domínio


Realizar consulta básica de DNS

 $ dig [URL/FQDN]

ou

 $ nslookup [URL/FQDN]



Realizar consulta em um servidor específico

 $ dig @[nome do servidor] [URL/FQDN]

ou

 $ nslookup [URL/FQDN] [nome do servidor]

Os comandos dig e nslookup são utilizados para realizar consultas de nomes em servidores DNS. É possível efetuar consultas para registros de diferentes tipos (NS, MX, Ponteiro, SOA, etc).

_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.

quarta-feira, 23 de março de 2016

Linux - Comandos Básicos - Configuração de DNS (Client)


Definir hostname

 # hostnamectl set-hostname <nome do host>



Definir nome de domínio (Editar o arquivo hosts)

 # vim /etc/hosts

Para definir um domínio para o sistema é necessário alterar o arquivo hosts e adicionar uma linha com as informações de IP (Localhost), hostmane e domínio (<endereço IP> <hostname>.<nome de domínio> <hostname>). O comando utilizado acima está utilizando o editor de texto vim, presente no Linux.


Adicionar servidor de DNS (Editar o arquivo resolv.conf)

 # vim /etc/resolv.conf

Para configurar um servidor de DNS para ser utilizado pelo sistema é necessário editar o arquivo resolv.conf. Você pode utilizar o editor de texto vim para adicionar uma linha com o parâmetro nameserver seguido do endereço IP do servidor DNS.


_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.

sexta-feira, 11 de março de 2016

Linux - Configuração de rota estática persistente (CentOS)


1 - Edite o arquivo de configuração de rotas corresponde ao nome de identificação da placa de rede.
   sudo vi /etc/sysconfig/network-scripts/route-ethX

2 - Acrescente uma linha com as informações da rede de destino e do default-gateway
   <endereço IP da rede>/<máscara de rede no formato CIDR> via <endereço IP do gateway>

3 - Salve o arquivo

4 - Reinicie o serviço de rede para que as alterações sejam aplicadas.
   /etc/init.d/network restart


quinta-feira, 10 de março de 2016

Linux - Configuração de IP estático (CentOS)


1 - Edite o arquivo que corresponde ao nome de identificação da placa de rede em /etc/sysconfig/network-scripts/.
   sudo vi /etc/sysconfig/network-scripts/ifcfg-ethX

2 - Desabilite a opção de DHCP
   BOOTPROTO=no

3 - Acrescente as linhas indicadas abaixo com os endereços correspondentes a sua rede:
   ONBOOT=yes
   IPADDR=<endereçoIP>
   NETMASK=<máscara de rede>
   GATEWAY=<endereço IP do gateway>

4 - Salve o arquivo.

5 - Reinicie o serviço de rede para que as alterações sejam aplicadas.
 /etc/init.d/network restart


Exemplo:
  sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

sexta-feira, 10 de janeiro de 2014

Linux - Agendamento de tarefas (Crontab)


Criar / Editar um agendamento de tarefa (Abertura do arquivo crontab)

 # crontab -e



Listar tarefas agendadas (Lista o conteúdo do arquivo crontab)

 # crontab -l



Remover um agendamento de tarefa

 # crontab -r




Troubleshooting

Verificar status do serviço

 # service crond status



Realizar o restart do serviço

 # service crond restart


_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. A documentação tem como referência o próprio sistema operacional através de seus guias de ajuda e manuais e informações obtidas através do site GNU.org.

quarta-feira, 8 de janeiro de 2014

Linux - Configuração de rota estática persistente (Debian)


1 - Edite o arquivo /etc/network/interfaces

 sudo vi /etc/network/interfaces



2 - Acrescente uma linha com as informações da rede de destino e do default-gateway

 up route add-net <endereço IP da rede> netmask <máscara de rede> gw <endereço IP do gateway>



3 - Salve o arquivo

 :wq!




4 - Reinicie o serviço de rede para que as alterações sejam aplicadas.

  ifdown <interface de rede>
  ifup <interface de rede>


terça-feira, 7 de janeiro de 2014

Linux - Configuração de IP estático (Debian)


Distro: Debian/Ubuntu

1 - Edite o arquivo /etc/network/interfaces
  vi /etc/network/interfaces

2 - Edite a linha 'iface ethX inet dhcp' e altere a opção dhcp por static
  iface <interface de rede> inet static

3 - Acrescente as linhas indicadas abaixo com as informações de endereçamento
  address <Endereço IP do host>
  netmask <Máscara de rede>
  gateway <Endereço IP do gateway>

4 - Para ter efeito é necessário reiniciar a interface recém alterada.
  ifdown <interface de rede>
  ifup <interface de rede>


Exemplo:
  sudo vi /etc/network/interfaces

terça-feira, 10 de dezembro de 2013

Linux - Comandos Básicos - Verificação de Rede


Visualizar interface e endereçamento de rede

 # ifconfig



Visualizar tabela de roteamento

 # route -n

ou

 $ netstat -r



Visualizar tabela ARP

 # arp -a



Visualizar conexões tcp e udp

 $ netstat -atu



Visualizar conexões de rede em tempo real

 $ netstat -c



Visualizar estatísticas de rede

 $ netstat -s


Mais opções:
-a: Todas as conexões
-l:  Conexões em estado listening
-n: Não tenta resolver nomes
-t:  Conexões TCP
-u: Conexões UDP



Visualizar nome do computador / estação de trabalho

 $ hostname



Visualizar nome de domínio

 $ domainname

O comando permite visualizar e alterar o nome de domínio NIS (Network Information Service).

Opções mais comuns
-d: Permite visualizar o nome de domínio DNS (= comando dnsdomainname)
-f: Permite visualizar o nome completo do host (fqdn)
-i: Permite visualizar o endereço IP associado ao nome de domínio


Realizar testes de conectividade

 $ ping [endereço IP de destino | hostname]

Comando utilizado para realizar testes de conectividade com outros hosts na rede. Este envia pacotes para outros equipamentos e espera o retorno/resposta. Pode ser informado tanto o endereçamento IP quanto o nome do host.


 $ traceroute [endereço IP de destino | hostname]

Comando mostra o caminho/rota utilizada pelo pacote para alcançar o host de destino. Pode ser utilizado tanto endereçamento IP quanto o nome do host.



CONSULTAR REGISTROS DE NOMES (DNS)

Realizar consulta básica de DNS

 $ dig [endereço/fqdn]

ou

 $ nslookup [endereço/fqdn]



Realizar consulta em um servidor específico

 $ dig @[servidor] [endereço/fqdn]

ou

 $ nslookup [endereço/fqdn] [servidor]

Os comandos dig e nslookup são utilizados para realizar consultas de nomes em servidores DNS. É possível efetuar consultas para registros de diferentes tipos (NS, MX, Ponteiro, SOA, etc).

_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.

quinta-feira, 5 de dezembro de 2013

Linux - Comandos Básicos - Configuração de Rede


Ativar / Habilitar interface

 # ifconfig [interface] up



Desativar / Desabilitar interface

 # ifconfig [interface] down



Configurar / Alterar endereçamento de rede

 # ifconfig [interface] [endereço IP] netmask [máscara de rede]



Adicionar rota default

 # route add default gw [endereço IP do gateway]



Remover rota default

 # route del default gw [endereço IP do gateway]



Adicionar rota estática

 # route add -net [endereço da rede] netmask [máscara de rede] gw [endereço IP do gateway]

ou

 # route add -net [endereço da rede] netmask [máscara de rede] [interface de saída]

Para adicionar uma rota estática você deve indicar o endereço da rede de destino e informar o gateway utilizado para alcança-la. A outra opção é indicar a interface de rede de saída. O endereço da rede também pode ser configurado com a notação CIDR.


Remover rota estática

 # route del -net [endereço da rede] netmask [máscara de rede] gw [endereço IP do gateway]

ou

 # route del -net [endereço da rede] netmask [máscara de rede] [interface de saída]



Adicionar servidor de DNS

 # vim /etc/resolv.conf

Para configurar um servidor de DNS para ser utilizado pelo sistema é necessário editar o arquivo resolv.conf. Você pode utilizar o editor de texto vim, presente no Linux, e alterar o parâmetro nameserver indicando o endereço IP do servidor.



ACESSO REMOTO


 $ telnet [hostname | endereço]

Comando utilizado para estabelecer comunicação com um host remoto. O Telnet não provê proteção dos dados sendo considerado um protocolo inseguro. Por padrão, a porta TCP 23 é utilizada para acesso ao terminal virtual de um servidor porém é comum o uso desse comando para a realização de testes em portas específicas como HTTP, HTTPS, etc.


 $ ssh [hostname | endereço]

Comando utilizado para estabelecer comunicação com um host remoto. O SSH provê segurança para os dados trafegados através de mecanismos de criptografia.


 $ ssh [usuário]@[hostname | endereço]

Logar no dispositivo remoto utilizando outra conta de usuário.



TRANSFERÊNCIA DE ARQUIVO


 $ ftp [host de destino]

Comando utilizado para transferência de arquivos entre sistemas remotos. Após conectado ao servidor remoto você poderá utilizar comandos como o ls (listar conteúdo), cd (mudar de diretório), get (baixar conteúdo) e o put (upload de um conteúdo).


 $ scp [arquivo] [usuário]@[host de destino]:[/diretório]

Comando utilizado para transferência de arquivos entre sistemas remotos. Este comando protege os dados através de mecanismos de criptografia.

_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.

domingo, 3 de novembro de 2013

Linux - Comandos Básicos - Administração de Grupo de Usuários


Neste post estão relacionados os comandos básicos em Linux necessários para a administração de grupos de usuários. São comandos utilizados para criação e remoção de grupos, atualização de parâmetros e visualização de grupos.


Criar grupo de usuários

 # addgroup [nome do grupo]

Comando utilizado para criar um grupo de usuários no sistema. Todos os grupos criados ficam relacionados no arquivo /etc/group.


Remover grupo de usuários

 # delgroup [nome do grupo]

Comando utilizado para remover um grupo cadastrado no sistema. O grupo que tiver sido associado como o grupo principal (gid) de um usuário não poderá ser removido.


Modificar parâmetros do grupo

 # groupmod -n [nome novo do grupo] [nome atual do grupo]

O parâmetro -n permite alterar o nome de um grupo.


 # groupmod -g [novo ID] [nome do grupo]

O parâmetro -g permite alterar o ID de um grupo. O ID é representado por um valor numérico.


Visualizar grupos associados a um usuário

 # groups [nome do usuário]

Visualizar os grupos a qual um usuário pertence. Se nenhum parâmetro for informado o sistema retornará os grupos associados ao usuário atual.

_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.

sábado, 2 de novembro de 2013

Linux - Comandos Básicos - Administração de Usuários


Neste post estão relacionados os comandos básicos em Linux necessários para a administração de contas de usuários. São comandos utilizados para a criação e remoção de perfis, atualização de atributos, visualização de sessões ativas, acesso ao sistema como superusuário, entre outros.


Criar conta de usuário

 # useradd -m [nome do usuário]

Comando utilizado para criar contas de usuários no sistema. O usuário receberá um id e terá um diretório padrão dentro da pasta /home. Será solicitada uma senha inicial e atributos opcionais como nome completo, telefone, localização, etc. Os dados dos usuários ficam armazenados no arquivo /etc/passwd .


Remover conta de usuário

 # userdel [nome do usuário]

Comando utilizado para remover contas de usuários no sistema. A opção -r remove o diretório pessoal do usuário.


Definir / Alterar Senha de Usuário

 # passwd [nome do usuário]

Comando utilizado para definir uma senha a um novo usuário ou alterar a senha de um usuário existente. Se não for informado o id do usuário o sistema realizará essa ação para usuário atual.


Associar usuário a um grupo

 # usermod -g [nome do grupo] [nome do usuário]

ou

 # usermod -G [nome do grupo] [nome do usuário]

O comando usermod permite alterar parâmetros da conta de um usuário. Neste exemplo, utilizando os parâmetros -g e -G, é possível associar um usuário aos grupos existentes no sistema. O parâmetro -g altera o grupo principal (gid) do usuário. A opção -G associa o usuário a grupos secundários.


Remover usuário de um grupo

 # deluser [nome do usuário] [nome do grupo]

Comando utilizado para remover um usuário de um grupo. O comando removerá apenas se o grupo indicado for um grupo secundário.


Trocar de usuário (Sessão)

 $ su [id, chave ou nome do usuário]

Alterna entre usuários sem a necessidade de efetuar o logoff. Se nenhum parâmetro for informado após o comando o sistema fará a troca para o superusuário (root).


Executar comando com outra credencial

 $ sudo -u [nome do usuário] [comando para execução]

O comando sudo permite realizar ações utilizando os privilégios de outro usuário. A senha deste novo usuário será solicitada. O sudo é comumente utilizado para executar comandos temporários como superusuário do sistema (root). Para isso é necessário que o id do usuário esteja inserido no campo “User privilege specification” do arquivo /etc/sudoers.



COMANDOS DE VERIFICAÇÃO


Visualizar informações do usuário

 $ id [nome do usuário]

O comando mostra informações do usuário relacionadas a sua identificação (uid) e aos grupos a ele associados.


Visualizar grupos associados a um usuário

 # groups [nome do usuário]

Visualizar os grupos a qual um usuário pertence. Se nenhum parâmetro for informado o sistema retornará os grupos associados ao usuário atual.


Visualizar usuário atualmente conectado no sistema

 # logname

ou

 # who am i



Listar usuários atualmente conectados no sistema

 # users

ou

 # who


_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.

quarta-feira, 30 de outubro de 2013

Linux - Comandos Básicos - Verificação de Status do Sistema


Neste post estão relacionados os comandos básicos em Linux necessários para a verificação de status do sistema operacional. São comandos utilizados para visualização de processos, identificação de serviços, verificação do tempo de atividade do sistema, consumo de memória, entre outros.


IDENTIFICAÇÃO DO SISTEMA

Visualizar o nome do computador / estação de trabalho

 $ hostname


Verificar data e hora do sistema

 $ date


Verificar tempo de atividade do sistema

 $ uptime


Verificar a versão do Kernel Linux

 $ uname -a

ou

 $ cat /proc/version

ou

 $ cat /etc/os-release



Verificar informações do processador

 $ lscpu


Verificar arquitetura da máquina

 $ arch


Visualizar lista de periféricos instalados

 $ lspci


Visualizar tabela de partições do disco

 # sfdisk -l




DESEMPENHO / PERFORMANCE

Verificar utilização do Processador / CPU

 $ top

O comando top permite ver um relatório em tempo real do status dos processos no sistema. É possível verificar o consumo de CPU e memória, o tempo de execução, entre outros.

Comandos auxiliares:
Shift+M : ordenar a visualização de acordo com o percentual de memória utilizada.
F            : mostra opções para serem acrescentadas na visualização do relatório.

Verificar utilização de memória

 $ free

Comando mostra a quantidade de memória total, disponível e utilizada tanto na RAM quanto na Swap.

Verificar utilização de memória virtual

 $ vmstat


Verificar espaço em disco

 $ df

Comando mostra a quantidade de espaço disponível, o tipo de sistema de arquivos e as partições do disco.

Opções mais comuns
-a: Mostra todos os sistemas de arquivos disponíveis na máquina.
-h: Permite visualizar o tamanho dos arquivos de uma forma mais fácil de ler (valores convertidos em Kb, Mb, Gb)



PROCESSOS

Visualizar status dos processos

 $ ps

Mostra todos os processos que estão sendo executados na sessão/terminal do usuário atual.

Visualizar status dos processos por usuários

 $ ps -au [nome do usuário]


Opções mais comuns
-a: Mostra todos os processos, porém não mostra os processos chamados de líder de sessão (bash) e também não listará os processos não vinculados a um terminal (sessão de usuário).
-d: Listar todos os processos com exceção aos vinculados ao líder de sessão (bash)
-e: Visualização de todos os processos
-ef: Visualização de todos os processos de forma mais detalhada.
-u: Informa o nome do usuário que iniciou o processo.
-aux: Lista/Exibe todos os processos em execução no formado BSD. Informa o nome do usuário que iniciou o processo, o ID do processo, status, a hora inicial, etc.
--forest: Mostra a cadeia de pai e filho do processo.
-ef --forest: Podemos combinar as duas opções e obter uma maior número de detalhes.



SERVIÇOS

Verificar status dos serviços

 # service --status-all


Verificar status de um serviço específico

 # service [nome do serviço] status


_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.

sexta-feira, 13 de setembro de 2013

Linux - Comandos Básicos - Gerenciamento de Diretórios


Neste post estão listados os comandos básicos em Linux para o gerenciamento de pastas/diretórios do sistema de arquivos. São comandos utilizados para a criação, cópia, exclusão, entre outras atividades.

Para manipular arquivos e diretórios não é necessário estar na mesma pasta de trabalho onde estes itens estão localizados. No sistema Linux são aplicados os conceitos de caminho absoluto, que corresponde ao caminho completo para alcançar um diretório desde a raiz do sistema, e caminho relativo, que é o caminho para alcançar um diretório a partir do diretório de trabalho.

Criar diretório

  # mkdir [nome do diretório]

Comando utilizado para criação de um diretório. Não é condição obrigatória estar na pasta raiz para poder criar subdiretórios.

Opções  mais comuns:
-p    Permite criar pastas e subpastas através de um único comando
       Exemplo: mkdir -p [diretório1/subdiretório1/subdiretório2]
-v    Mostra uma mensagem para cada pasta criada


Copiar diretório

  # cp -r [diretório original] [diretório de destino]

Comando utilizado para copiar diretórios. O parâmetro -r fará uma cópia recursiva de todos os dados contidos no diretório.

Opções  mais comuns:
-i    Solicita confirmação antes de sobrescrever um arquivo, quando apropriado.
-p    Mantêm os atributos e as permissões de acesso do diretório original


Mover diretório

  # mv [diretório original] [diretório de destino]

Comando utilizado para mover diretórios. É possível mover dois ou mais diretórios de uma só vez. Para isso é necessário coloca-los em sequência separando-os por espaço. Esse comando também permite renomear diretórios bastando que o último argumento não seja o nome de um diretório ou o caminho de um diretório existente.


Excluir / Remover diretório

  # rmdir [nome do diretório]

Comando utilizado para excluir diretórios. Este comando remove apena diretórios vazios.


  # rm -r [nome do diretório]

Comando utilizado para excluir diretórios do sistema de arquivos. Esse comando excluirá arquivos
e subpastas de forma recursiva. As pastas serão removidas independente do seu conteúdo.

Opções mais comuns:
-f    Exclui arquivos e diretórios de forma compulsória
-i    Solicita confirmação para a exclusão de um arquivo
-v    Mostra todas as atividades de exclusão que foram realizadas


Renomear diretório

  # mv [nome atual do diretório] [novo nome do diretório]

Comando utilizado para renomear diretórios do sistema de arquivos.


Identificar diretório atual

  $ pwd

Comando utilizado para identificar o diretório a qual o usuário está localizado atualmente. O comando mostra todo o caminho desde a raiz do sistema.


Mudar de diretório

  $ cd [nome do diretório]

Comando utilizado para alterar/trocar de diretório. Para mudar do diretório atual para qualquer outro diretório no sistema de arquivos você precisará indicar o caminho (absoluto ou relativo) do diretório de destino. A tecla TAB auxilia na visualização do conteúdo da pasta no momento da execução do comando.

Opções mais comuns:
cd ..       Retorna para o diretório um nível acima.
cd -        Retorna para o último diretório acessado, independente da localização do diretório atual.
cd ou cd ~  Retorna para a pasta /home do usuário do sistema.


Listar / Visualizar conteúdo do diretório
Para visualizar o conteúdo de um diretório podem ser usados os comandos dir, ls ou vdir. Há uma diferença pequena entre eles que você perceberá ao longo do uso. A sintaxe é simples bastando indicar o nome da pasta após o comando. Lembrando que não é necessário estar dentro do diretório para poder listar seu conteúdo, deve ser levado em conta o conceito de caminho absoluto e caminho relativo.


  $ ls [opções] [nome do diretório]



  $ dir [opções] [nome do diretório]



  $ vdir [opções] [nome do diretório]


Se nenhum argumento for informado, será exibido o conteúdo do diretório atual.

Ao listar o conteúdo dos diretórios você notará inicialmente que não há diferença entre o que é arquivo e o que é subdiretório. A dica é olhar os atributos, pois o sistema classifica os diretórios com a letra inicial " d " e os arquivos em geral com um hífen.

Todos os comandos possuem opções que facilitarão a visualização dos arquivos e subpastas. Estes parâmetros podem ser combinados para trazer um melhor resultado. As opções indicadas abaixo possuem um uso mais habitual e são válidas para os três comandos.

-a     Permite visualizar todos os arquivos e subdiretórios. Esta opção inclui arquivos ocultos do sistema.
-F     Classifica os itens conforme o tipo identificando-os através de caracteres especiais. " * " para arquivos executáveis, " / " para diretório, etc.
-h     Permite visualizar o tamanho dos arquivos de uma forma mais fácil de ler (Kb, Mb, Gb)
-l     Permite visualizar arquivos e subdiretórios em forma de lista. Também são apresentados os atributos como permissão de acesso, proprietário, data, etc.
-S     Ordena os itens por tamanho
--color  Permite visualizar arquivos e subdiretórios separados por cores

_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.

quarta-feira, 10 de julho de 2013

Linux - Comandos Básicos - Gerenciamento de Arquivos


Neste post estão relacionados os comandos básicos em Linux necessários para o gerenciamento de arquivos no sistema. A lista conta com comandos para criação, cópia, remoção, visualização, entre outros. É importante entender que para trabalhar com arquivos não é necessário estar na mesma pasta ou diretório onde estes arquivos estão localizados. No sistema Linux são aplicados os conceitos de caminho absoluto, que é caminho completo para alcançar um arquivo desde a raiz do sistema, e caminho relativo, que é o caminho para alcançar um arquivo a partir do diretório de trabalho.


Criar arquivo

 $ touch [nome do arquivo]

Originalmente este comando modifica o timestamp de um arquivo. Se o arquivo não existir no sistema ele será criado, no entanto sem conteúdo (vazio). No Linux não há a necessidade de que um arquivo possua extensão. Para identificar de que tipo é o arquivo você pode utilizar o comando " file ".


Copiar arquivo

 # cp [arquivo_original] [arquivo_destino]

Comando utilizado para copiar arquivos. Caso você queira copiar o arquivo para um outro diretório basta indicar a pasta de destino. Vale lembrar que se você utilizar o comando indicando o nome de um arquivo existente na pasta de destino este será sobrescrito.

 # cp [arquivo_original] [diretório de destino]

Permite copiar o arquivo da pasta atual (diretório de trabalho) para pasta de destino. O nome do arquivo é preservado. Para realizar cópias entre diferentes pastas é necessário indicar o caminho do arquivo de origem e informar o caminho do arquivo de destino.

Opções mais comuns:
-i    Solicita confirmação antes de sobrescrever um arquivo
-p    Mantêm os atributos e as permissões de acesso do arquivo original
-u    Realiza a cópia apenas quando o arquivo de origem for mais atualizado que o arquivo de destino (sobrescrita)

Sintaxe: cp [opções] [arquivo_original] [arquivo_destino]


Mover arquivo

 # mv [arquivo_original] [diretório de destino]

Comando utilizado para mover arquivos entre diretórios. É possível mover arquivos e diretórios em conjunto colocando-os em sequência e separando-os por espaço. Esse comando também permite renomear um arquivo ou diretório bastando que você indique o novo nome para o arquivo/diretório no campo de destino.


Excluir / Remover arquivo

 # rm [nome do arquivo]

Comando utilizado para excluir arquivos. Para excluir arquivos em uma pasta diferente do diretório atual é necessário indicar o caminho da localização desse arquivo.

Opções  mais comuns
-i (interativo) Gera uma pergunta antes da remoção do arquivo
-r Executa a ação de forma recursiva
-v (Verbose) Mostra as ações tomadas após a execução do comando

Sintaxe: rm [opções] [nome do arquivo]


Renomear arquivo

 # mv [nome atual do arquivo] [novo nome do arquivo]

Comando utilizado para renomear arquivos. Este também pode ser utilizado para mover arquivos entre diretórios. (Vide Mover arquivo).


Identificar tipo de arquivo

 $ file [nome do arquivo]

O comando file é usado para identificação do tipo de um arquivo. Em sistemas Linux não há a “exigência" de que um arquivo esteja associado a uma extensão (.txt, .doc, .jpg) como ocorre no Windows.


Localizar arquivo

 # find [diretório] -name [nome do arquivo] -print

Comando utilizado para localizar arquivos no sistema. O comando fará uma busca recursiva analisando todos os arquivos e subdiretórios a partir da pasta indicada.

A opção -name indica que o arquivo procurado precisa atender ao que foi especificado no campo nome do arquivo e a opção -print permite mostrar na tela todas as ocorrências da busca. A indicação de um " . "  para representar o diretório significa que a busca será realizada a partir do diretório de trabalho. Se você indicar uma "./ " a busca será realizada a partir da raiz.

Existem várias opções de busca utilizando parâmetros como data, extensão, proprietário, permissão, etc. Para mais detalhes você pode consultar o manual desse comando digitando: man find

_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.