Guia de sobrevivência em Linux
Autor: Fabio J. Walter | Publicado: 2014-03-07T01:27:00-03:00

Principais comandos para uso do Shell Compilado/Editado por Fábio J. Walter  Fonte: Guia Fóca Linux (http://www.guiafoca.org/), Viva o Linux (http://www.vivaolinux.com.br/) Distribuições Linux  Debian  Ubuntu  Linux Mint … Slackware  Suse Red Hat  CentOS Fedora …. Link: http://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg &nbsp; Comandos de acesso Comandos que você utilizará para realizar conexão e desconexão de um servidor linux.     exit  Terminar a sessão, ou seja, a shell (mais ajuda digitando man sh ou man csh)   logout  Deslogar, ou seja, terminar a sessão atual, mas apenas na C shell e na bash shell   passwd  Mudar a password do nosso utilizador: passwd USUARIO   ssh  Sessão segura, vem de secure shell, e permite-nos logar num servidor através do protocolo. Verificar os parâmetros: ssh –p PORTA USUARIO@IP &nbsp; Comandos de ajuda e documentação Atalhos que você utilizará muito e deverá decorar se quiser sobreviver utilizando Linux.     man  Acesso ao manual padrão dos comandos e softwares Linux. man ls   --help  Parâmetro padrão para todo comando ou programa listar suas opções. ssh --help &nbsp; Executando um programa Sempre que falarmos da execução de um programa no Linux, se ele já estiver nas variáveis de ambiente do sistema basta digitar seu nome. Exemplo: “ls”.  Caso contrário você terá de informar o caminho até o programa ./diretório/arquivoExecutavel Se estivermos falando de um script (bash extensão .sh) utilize o interpretador:  sh /diretório/arquivoScript.sh &nbsp; Comandos de Edição/visualização de Texto     vim ou vi  Editor mais comum e difundido dentre as distribuições Linux e na comunidade de usuários. Ele responde por comandos também, assim como o shell. Abrindo um arquivo: vi arquivo.txt Editando: depois de aberto o arquivo tecle “insert” para habilitar o modo de edição. Dica: Nunca use o teclado numérico, só use os números acima do teclado padrão. Salvar e Sair: tecle “ESC” para entrar no modo de comandos. Em seguida :wq! Sair sem salvar: tecle “ESC” para entrar no modo de comandos. Em seguida :q!    nano ou pico  Editor mais simples que o vi e/ou vim, e sempre que possível é mais prático para uso. Todos seus comandos responde a combinação de teclas CTRL + ?. No seu rodapé ficam os atalhos ^X para SAIR, CTRL + X   cat  Mostra o conteúdo de um Arquivo, como o comando type do MD-DOS, e é muito usado também para concatenar Arquivos, como por exemplo fazendo cat a.txt b.txt &gt; c.txt” para juntar o Arquivo a.txt e b.txt num único de nome c.txt Ler arquivo: cat arquivo.txt Copiar arquivo: cat arquivo.txt &gt;&gt; outroarquivo.txt   tail  Funciona como o cat só que mostra apenas as últimas linhas do arquivo (tail = cauda). Ler arquivo: tail arquivo.txt Aumentar o número de linhas exibidas: tail –n 100 arquivo.txt   head  O inverso do tail, este comando mostra as primeiras linhas do arquivo.   more  Mostra o conteúdo de um Arquivo, mas apenas uma “página da tela” de cada vez, ou mesmo output de outros comandos, como por exemplo ls | more. Listar arquivos na tela paginando a saída: ls |more   less  Funciona como o more mas com menos funções. &nbsp; Comandos de Gestão de Arquivos e Diretórios     cd  Mudar de diretório atual, como por exemplo cd diretório, cd .., cd /   chmod  Mudar a permissão de um Arquivo ou diretório: Abaixo um exemplo onde liberamos todas as permissões. chmod 777 arquivo chmod 777 –R diretório  Muito cuidado! Alterar a permissão de diretórios de programas ou do sistema operacional pode fazer com eles parem de executar!   chown  Mudar o dono ou grupo de um Arquivo ou diretório, vem de change owner. chown USUARIO.GRUPO nomeDoArquivo chown USUARIO.GRUPO –R nomeDoDiretorio   cp  Copia Arquivos, como o copy do MS-DOS   grep  Procura texto dentro dos arquivos, sendo um filtro muito útil, usado por exemplo junto com um cat. cat arquivo.log |grep –i fatal   ln  Cria um link simbólico. É diferente de um atalho como usamos no Windows é mais parecido com a unidade virtual que criamos M:\ ou R:\   ls  Lista o conteúdo de uma diretório, semelhante ao comando dir no MS-DOS Listar arquivos ocultos: ls –a Listar arquivos ocultos e verificar tamanhos: ls -las   mkdir  Cria uma diretório, vem de “make directory”. mkdir nomeDoDiretorio   mv  Move ou RENOMEIA arquivos. Para mover mv arquivo /novoCaminho/arquivo para RENOMEAR mv arquivo arquivo_novo_nome   pwd  Retorna o diretório atual. Para você saber onde está nos diretórios.   rm  Apaga arquivos, vem de remove, e é semelhante ao comando del no MS-DOS, é preciso ter cuidado com o comando rm * pois apaga tudo sem confirmação. Sempre especifique o arquivo que deseja deletar! Com muito cuidado, quando estiver começando a utilizar Linux de um “ls” para confirmar se o comando de delete depois afetará os arquivos certos. Lembre-se! Linux em modo texto não tem LIXEIRA! Apagar arquivo: rm nomeDoArquivo Apagar diretório: rm –rf nomeDiretorio (apaga tudo que esta dentro do diretório sem confirmação. MUITO CUIDADO! Siga a regra acima de dar um LS antes.)   wc  Conta linhas e carácteres em um arquivo texto;   tar  Compactador de arquivos. Suas combinações são capazes de compactar e descompactar a maioria dos formatos conhecidos de compactação no Linux (lembrando que RAR não é nativo do Linux). TAR.GZ, TAR.BZ2, .GZIP Compactar usando o GZIP: tar –czvf nome_arquivo.tar.gz arquivoPasta_origem Descompactar arquivo GZ: tar –zxvf nome_arquivo.tar.gz &nbsp; Comandos de rede e Transferência de Arquivos     ftp  Vem de file transfer protocol, e permite-nos, usando o protocolo de transferência de Arquivos para um arquivo FTP. Verifique os parâmetros com ftp --help   scp  Transfere arquivos entre computadores Linux que tenham o protocolo SSH habilitado. Muito importante para copiar arquivos entre computadores Linux. Verifique os parâmetros com scp –help   rsync  Sincroniza de forma rápida e flexível dados entre dois computadores   netstat  Verificar o estado da rede, porta ou ip.   ssh  Sessão segura, vem de secure shell, e permite-nos logar num servidor através do protocolo. Verificar os parâmetros: ssh –p PORTA USUARIO@IP   nmap  Poderoso port-scan, para visualizarmos portas abertas num dado host. Escanear portas em um servidor. Checar se o servidor esta com a porta do serviço ativo: nmap IPDAMAQUINA Exemplo: nmap localhost    ifconfig  Visualizar os ips da nossa máquina, entre outras funções relacionadas com ips. Identico ao ipconfig do Windows   ping  Pingar um determinado host, ou seja, enviar pacotes icmp para um determinado host e medir tempos de resposta, entre outras coisas.   wget  Ferramenta de download em modo texto. Por exemplo se você tem um arquivo em um servidor web e tem o link direto a ele pode usar o WGET para fazer o download diretamente no servidor Linux. wget http://servidor.com.br/arquivos/arquivo.txt &nbsp; Comandos de Controle de Processos     top  Lista os processos que mais usam CPU, útil para verificar que processos estão a provocar um uso excessivo de memória, e quanta percentagem de CPU cada um usa em dado momento. Tem a mesma função do gerenciador de tarefas do Windows (taskmgr.msc ou CTRL + ALT + DEL &gt; Gerenciador de tarefas)   kill  Mata um processo pelo número do seu PID (Process ID), como por exemplo kill -kill 100 ou kill -9 100 ou kill -9 %1.  &nbsp; Comandos de Informação de Estado (memória, processador, data hora, hd)     date  Exibe a data e hora.   df  Lista as partições do Linux e o tamanho do HD disponível e em uso. df -h   du   Exibe um resumo do uso do espaço em disco. du –shc nome_do_diretorio   history  Lista os últimos comandos digitados no shell.   uptime  Diz-nos há quanto tempo o sistema está funcional, quando foi ligado.   w  Mostra quem esta logado no shell.   free  Mostra dados sobre memória RAM do computador.   cat /proc/meminfo  Mostra dados sobre memória RAM do computador.   cat /proc/cpuinfo  Mostra dados sobre o processador do computador.   cat /etc/issue  Descobrir o nome da versão do Linux do servidor.   uname -a  Retorna a versão do Linux e a compilação i386 ou x64 Crontab O cron é um serviço de background que permite o agendamento da execução de um comando/programa para um determinado dia/mês/ano/hora. É muito usado em tarefas de arquivamento de logs, checagem da integridade do sistema e execução de programas/comandos em horários determinados. As tarefas são definidas no arquivo /etc/crontab e por arquivos individuais de usuários em /var/spool/cron/crontabs/[usuário] (criados através do programa crontab). Adicionalmente a distribuição Debian utiliza os arquivos no diretório /etc/cron.d como uma extensão para o /etc/crontab. Parâmetros do crontab     crontab –l usuario  Lista as tarefas agendadas para o usuário   crontab –e  Entra no modo de edição do crontab. Que poderá utilizar em alguns casos por padrão o editor “vi” ou “nano” em outros casos (veja referencias acima)   crontab –d crontab -r  Muito cuidado! Pois apagam todas as configurações feitas para o usuário.  Tópicos avançados Daqui para frente veremos conceitos mais abrangentes da arquitetura do Linux e de sua operação. Inicialização do linux Um dos principais conceitos e dos mais importantes para nós na inicialização do Linux é o RUNLEVEL. Que é modo de inicialização do Linux.  O RUNLEVEL é um valor numérico inteiro que vai de 1 à 5. O nível 1 é chamado de single user mode é um modo de recuperação, onde temos ativa apenas a conta de superusuário. Não é possível usar a rede nem rodar programas gráficos. Neste modo é possível alterar as configurações do sistema, alterar as senhas dos usuários, etc. Nos níveis 2 e 3 já temos o modo de operação normal do sistema modo texto. Nestes modos o sistema inicializa em modo texto e depois de logado o usuário pode abrir o modo gráfico se desejar. A diferença entre os dois é que no modo 2 (também considerado um modo de recuperação) não existe suporte a rede. Finalmente, no nível 5 temos a inicialização com login em modo gráfico, default na maioria das distribuições atualmente. O nível 4 geralmente fica vago. Na maioria das distribuições ele equivale ao modo 3, enquanto em outras, como no Slackware, equivale ao modo de login gráfico. O modo 6 é reservado à reinicialização do sistema. Todos os serviços e programas são parados e o sistema é reinicializado via software. O modo 6 difere do modo 0, onde o sistema fica simplesmente parado, esperando ser desligado. &nbsp; Distribuições tradicionais:  cat /etc/inittab Procure por este trecho: id:5:initdefault: Que indica que este computador tem RUNLEVEL definido para 5.  Versões mais modernas:  cat /etc/init/rc-sysinit.conf Procure o seguinte trecho. env DEFAULT_RUNLEVEL=2 E você verá qual o RUNLEVEL deste computador. Que esta definido para 2. &nbsp; Serviços do sistema operacional (configuração e utilização) Debian based     update-rc.d  Edita/cria as configurações de um serviço.   invoike-rc.d  Manipula um serviço (start, stop...) Utilitário que nos auxilia no processo é o rcconf. Red Hat based     chkconfig –add  Acesso ao manual padrão dos comandos e softwares Linux. man ls   chkconfig --level  Parâmetro padrão para todo comando ou programa listar suas opções. ssh --help   services   Manipula um serviço (start, stop...) Utilitário que nos auxilia no processo é o setup. &nbsp; Mais informações Segue a dica do melhor material em português para download: Guia Fóca Linux disponível em http://www.guiafoca.org/ material iniciante + intermediário