Publicado em março 5, 2009
Confesso que desde que mudei meu SO de Windows para Linux, desenvolver ficou muito mais prazeroso e prático. Há muito tempo atrás, tinha um amigo que insistia nisso comigo, mas eu sempre acabava relutando e ficando com Windows. Os motivos eram muitos, mas o principal de todos era a comodidade.
Há cerca de 1 ano e meio, talvez um pouco mais, resolvi ceder a pressão e dar uma chance ao Pinguim, mas fiz isso usando dual boot. Por experiência própria, afirmo com convicção, que quem acaba optando por essa tática de transição, quase sempre acaba ficando com Windows, o negócio tem que ser na marra mesmo hehehe. O mesmo serve para máquinas virtuais, se você tiver como SO base o Windows e instalar em uma VM uma distribuição Linux, fatalmente você cairá no mesmo problema.
Não sou daqueles que ficam malhando o Windows/Microsoft a torto e a direito, acho que a dupla tem os seus méritos, que por sinal são muitos, mas tratando-se de liberdade, flexibilidade e segurança, fica muito difícil comparar um SO baseado em Unix, como o Linux e o Mac OS X, com o Windows. Sem contar que hoje em dia, algumas distribuições como o Ubuntu, por exemplo, estão quase tão fáceis de usar como o Windows.
Uma das coisas mais fantásticas dos sistemas operacionais baseados em Unix são sua linha de comando poderosíssima, pois através dela é possível fazer N operações com velocidade, flexibilidade, alcançe e combinando-as. A linha de comando de um SO baseado em Unix é, por exemplo, muito mais avançada que a linha de comando do Windows (MS-DOS), que sinceramente é muito fraca.
Se você é usuário Windows, não quer instalar o Linux em uma VM e não quer deixar o seu computador dual boot, então ainda existe uma alternativa derradeira: é o Cygwin. Cygwin é um programinha que você instala como outro qualquer no Windows e que te proporciona todo o poder da linha de comando, inclusive já o usei em uma das minhas várias tentativas de transição “windows->linux”.
Separei uma coleção de comandos úteis, que me ajudam bastante nas tarefas do meu dia-a-dia, seja como desenvolvedor ou também como usuário, se alguém quiser contribuir com essa listinha, está convidado :)
Vamos lá:
Permissão (de tudo) a partir de um diretório recursivamente (forçada)
| 1 | $ chmod -Rf 7777 /diretorio |
Mostra/controla as network interfaces (conexões wireless e com fio, por exemplo)
Alterar o owner e o grupo de usuário de um arquivo
| 1 | $ chown user:group arquivo.txt |
Criação de Link Simbólico (se você não sabe o que é, clique aqui, é muito útil!)
| 1 | $ ln -s /diretorio/que/sera/criado/o/link /diretorio/de/destino |
Remover todos os arquivos com determinada extensão a partir do diretório atual recursivamente
| 1 | $ find ./ -name ".svn" | xargs rm -Rf |
Alterar encoding de arquivo de ISO-8859-1 para UTF-8
| 1 | $ iconv -f ISO-8859-1 -t UTF-8 nome_arquivo_original.php > nome_arquivo_alterado.php |
Listar periféricos (hardware)
Listar periféricos USB
Verificar se determinada porta (8685) está aberta
| 1 | $ netstat -an | grep "8685" |
Redirecionar porta. Nesse caso redireciona da 80 para 7001, se a porta não estiver aberta, o comando abre
| 1 | $ redir --lport=80 --cport=7001 & |
Procurar por nome de arquivo a partir do diretório atual recursivamente
| 1 | $ find ./ -name nome_do_arquivo |
Procurar por diretório recursivamente a partir do atual
| 1 | $ find . -type d -name diretorio |
Procurar por conteúdo (texto) dentro do arquivo, recursivamente, a partir do diretorio especificado mostrando apenas o nome dos arquivos onde foram encontrados o texto buscado (case-insensitive)
| 1 | $ find /diretorio -exec grep -il "TEXTO" {} ; |
Procurar por conteúdo (texto) dentro de arquivos apenas com a extensão “.log” (case-insensitive), recursivamente, a partir do diretório especificado, mostrando o nome dos arquivos que foram encontrados o texto buscado
| 1 | $ find /directory -iname "*.log" -exec grep -il "TEXTO" {} ; |
Informar onde estão os arquivos binários de um programa
Incluir um caminho (path) no path do SO
| 1 | $ export PATH=$PATH:/opt/lampp/bin |
Listar os processos correntes do SO
Listar os processos correntes do SO filtrando por determinada string
| 1 | $ ps aux | grep "apache" |
Encerrar (cancela) um processo ou grupo de processo a partir do seu ID (pid), nesse caso “78452″
Copiar por SSH um arquivo de uma máquina remota para a máquina local
| 1 | $ scp user@192.168.1.100:/home/usuario_remoto/Desktop/file.txt /home/meu_usuario/Desktop/file.txt |
Mostrar as últimas linhas de um arquivo (atualizado dinamicamente conforme um novo conteúdo é inserido)
| 1 | $ tail -f nome_do_arquivo.log |
Lembrando que alguns dos comandos acima, para serem executados, necessitam de privilégios de um super-usuário, como o usuário root por exemplo.
Existem ainda uma infinidade de outros comandos úteis, mas que eu tenha lembrado, os que mais uso são esses. Os comandos mais básicos e simples, como: man, wget, ls, cd, cp, cat, rm, mv, etc.. não vou mostrar, pois não tem muito mistério, mas no Google é possível encontrar milhares de boas referências.
Hope this helps!
Se você gostou desse tópico, por favor considere deixar um comentário ou se inscreva no feed e tenha no futuro todos os tópicos entregues diretamente no seu agregador.
Comentários
6 Respostas para “Comandos úteis para Linux”
Deixe seu Comentário
Marcus,
Segue mais alguns comandos que são bastantes úteis no linux:
- Montando um arquivo ISO
$ mount myiso.iso /mnt/iso/ -t iso9660 -o ro,loop=/dev/loop0
- Mudando o editor padrão do linux, com isso na hora de ler um man, trocar quotas e etc.. você irá usar o seu editor predileto. No exemplo abaixo alterei para o pico, mas poderia ser qualquer outro, como: vim, vi e etc…
$ export EDITOR=pico
- Alterar a hora/data da BIOS utilizando a hora/data do linux
# hwclock –systohc
- Buscar arquivos grandes no linux. No caso abaixo o comando vai procurar arquivos maiores que 20MB (+20000k). Isso é bom quando se quer limpar arquivos grandes de log e etc…
$ find / -type f -size +20000k -exec ls -lh {} \; | awk ‘{ print $8 “: ” $5 }’
- Buscando um processo específico no linux. No exemplo abaixo está sendo procurado o processo “httpd”
$ ps aux | grep httpd
- Buscando redes wifi no linux, no caso abaixo assumimos que a interface wifi é a wlan0
# iwlist wlan0 scan
- Mostra/Controla conexoes WIFI, através deste comando você sabe em que AP vc está conectado.
# iwconfig
- Descompactando arquivos no formador RAR, continuando a descompactar mesmo que tenha algum problema no arquivo.
$ unrar x -kb file.rar
- Executando um comando remoto via SSH. No comando abaixo vamos executar um “ps aux” e depois um “ls -l”
$ ssh login@host “ps aux;ls -l”
- Listando os módulos carregados no kernel.
$ lsmod
- Listando portas abertas no linux
$ nmap localhost
- Listando conexoes em um determinado serviço no linux. No caso abaixo estou listando todas as conexões no serviço “sshd”
$ netstat -lpt | grep “sshd”
Depois se eu lembrar de mais eu posto aqui.
Abs
Seguem mais alguns:
- Listando arquivos de forma detalhada e mostrando os tamanhos dos arquivos de uma forma mais humana (-h).
$ ls -lha
- Mostrando o espaço ocupado/disponível em disco.
$ df -h
- Calculando o espaço ocupado de um diretório.
$ du -h /home/user
- Mostrando o que está montado no sistema.
$ mount
- Mostrando o gerenciamento de memória no sistema. ( -b,-k,-m,-g show output in bytes, KB, MB, or GB )
$ free -m
- Mostrando os processos em realtime, com atualização a cada 1s
$ top -d 1
- Download de arquivos no shell.
$ wget http://www.site.com/arquivo.zip
- Entrando em um site via shell.
$ links http://www.globo.com
- Montando unidades compartilhadas em redes microsoft
# smbmount //maquina/unidade /mnt -o username=queiroz,password=galaxy
Conforme eu for lembrando eu vou postando mais.
abs
Precisei zerar um HD, pois o mesmo estava com algo gravado no boot record e não saia de JEITO NENHUM, muitas pessoas passam por este problema quando tentam migrar do windows > linux ou linux > windows, então segue um comando que deixa o HD zero bala, vale lembrar, que ele reseta TUDO, deixa o HD como se tivesse vindo de fábrica, sem partições, sem boot record, sem nada.
# dd if=/dev/zero of=/dev/hda bs=1M
Boa noite pessoal.
Desculpe fazer uma pergunta, mas se alguém souber responder teremos mais um comando legal aqui nesta lista.
Estou procurando pelo seguinte.
Além de montar uma unidade de rede windows já ir passando outro parâmetro que copie arquivos da máquina Linux cliente para o servidor Windows de onde a unidade de rede foi montada.
Com isso será possível automatizar backups de Linux para Windows agendando na cron um script sh.
Vlw ai pessoal. Forte abraço.
Fernando,
Não tem a “receita de bolo” para o que você está procurando, mas é bem provável que fazendo um Script Shell você consiga algo próximo, para isso você vai ter que pesquisar e juntar uma série de comandos.
Sobre linha de comando do Windows, procure ver o Power Shell que já existe desde o XP.
http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx