Como ouvir mp3 no terminal com o mpg123

O mpg123, é o ideal para quem deseja um player mp3 leve e rápido, pra tocar suas músicas com baixíssimo consumo dos recursos da sua máquina.
Por ser em modo texto e muito simples, é ótimo para quem deseja ouvir músicas ou podcasts, poupando o processador da máquina.
Se você está trabalhando em um PC antigo ou com recursos limitados, vale a pena conhecer este apĺicativo.
mpg123 mp3 player

Download e instalação do mpg123

Por ser leve e ter um código muito enxuto e estável, o programinha roda em qualquer máquina acima de um 486.
Quem usa o Windows, pode fazer o download do programa, no site oficial: http://mpg123.org/download/win32/.
Feito o download, descompacte e execute o mpg123 que se encontra na pasta /bin.
Quem usa o Debian ou uma distro derivada (Ubuntu), pode fazer o download e a instalação com o comando:

sudo apt-get install mpg123

No Redhat ou no SuSE, use o comando yum:

yum install mpg123

Também recomendo baixar o código fonte e compilar o mpg123 — ao contrário do que possa parecer, não é complicado e você pode ter um aplicativo mais enxuto e eficiente pro seu sistema.

Como usar o mpg123

O comando mpg123 é muito simples, mas admite resolver situações das mais complexas, dada a flexibilidade com que ele pode ser usado. A melhor forma de mostrar isto é através de exemplos.
Para reproduzir uma música em mp3, use o comando desta forma:

mpg123 nome_da_musica.mp3

execução de arquivo de áudio mp3 com o o mpg123
Clique para ampliar

Se quiser tocar todas as músicas contidas em uma pasta, use esta sintaxe:

mpg123 Música/*

Você pode acrescentar a opção --loop n para repetir n vezes uma determinada reprodução:

mpg123 --loop 3 Música/* 

No exemplo acima, o player irá repetir a lista de músicas contidas no diretório Música 3 vezes. Se você usar o valor 0, o player irá repetir infinitamente.

Como misturar músicas com o mpg123

Uma das funções mais importantes em um player, para mim, é a de embaralhar as músicas. Posso ouvir um álbum mais de 2 vezes… mas nunca com as faixas tocadas na mesma ordem.
O mpg123, traz duas opções para seus usuários:
A função --shuffle ou -z, embaralha as músicas da sua seleção e cria uma nova lista para ser reproduzida.
Pode ser usada assim:

mpg123 -z Música/

A função --random ou -Z, reproduz todas as músicas que você pediu indefinidamente (até que o programa seja interrompido) de forma aleatória. Com esta opção, é possível que algumas nunca sejam tocadas e outras se repitam. É ótimo para ser usado em estabelecimentos comerciais, quando você pode disponibilizar um computador “obsoleto” só para reproduzir músicas.
O comando funciona assim:

mpg123 -Z Música/

Como usar teclas de controle da reprodução do mpg123

As teclas de controle da reprodução do mpg123 são as seguintes:

  • s ou a barra de espaço – para pausar ou dar continuidade à reprodução atual;
  • f – para pular para próxima música (forward);
  • b – para voltar ao início da música atual (begin);
  • , – (vírgula) para rebobinar
  • . – (ponto) para rodar mais rápido (fast forward);
  • – – para diminuir o volume;
  • + – para aumentar o volume;
  • h – para ver o menu de ajuda com todos os outros comandos possíveis (são muitos). Tecle h de novo para sair do menu de ajuda;
  • q – para sair do programa.

Para ativar as teclas de controle, use a opção -C:

mpg123 -C Música/*

Como executar o mpg123 no modo recursivo

É comum as pessoas criarem um diretório para cada artista e, dentro de cada diretório, um subdiretório para cada álbum – e há álbuns que se subdividem em mais de 2 subdiretórios.
O mpg123, apesar de ter muitos recursos avançados, não tem a opção de recursividade – que lhe permitiria entrar em todos os subdiretórios atrás de arquivos mp3.
Isto não é problema!
Veja como usar o comando find para criar uma lista de todas as músicas existentes no diretório Música/ e em todos os seus subdiretórios:

find Música/ -iname *.mp3 > lista.m3u

Esta declaração faz o seguinte:

  • pesquisa dentro de todos os subdiretórios de Música/, por arquivos que tenham a extensão .mp3;
  • o iname é usado para tornar a pesquisa insensível à caixa das palavras. Desta forma, a pesquisa irá capturar tanto os mp3 quanto os MP3.

Você pode ver o conteúdo da lista assim:

cat lista.m3u

Está tudo lá?! Então ouça suas músicas assim:

mpg123 --list lista.m3u

Se quiser misturar tudo:

mpg123 -z --list lista.m3u

Você pode também fazer tudo isto com apenas uma linha de comando:

find Música/ -iname *.mp3 > lista.m3u | mpg123 -z --list lista.m3u
equalizer - equalizador
Clique, para saber como usar o mpg123 com equalização.
SAIBA MAIS

Os arquivos criados com o comando find como o lista.m3u podem ser lido por outros players, presentes no seu sistema.
Se você quiser saber mais sobre como usar o comando find, leia este artigo.

Usuários com poucos recursos

O mpg123 pode rodar tranquilamente em um 486 – o mantenedor recomenda, no mínimo um Intel 80486DX4 ou um Pentium. Ainda assim, é sabido que a decodificação de áudio é um tanto voraz.
Se estiver com muito pouco recurso de sistema, pode desligar o estéreo:

mpg123 -m nome_da_musica.mp3

Isto vai reduzir a carga sobre a sua CPU, com algum sacrifício na qualidade da reprodução das suas músicas.

Executando mpg123 no servidor

Servidores podem ter muito tempo ocioso, intercalado com picos de atividades – grande número de autenticação de usuários, aumento nas requisições aos bancos de dados etc. O que pode causar paradas na execução da sua música.
Sabemos que a função do servidor, neste caso, não é tocar música pros seus ouvidos, mas você pode evitar interrupções com o aumento do buffer. Neste exemplo, o buffer é definido em 1000 Kb (ou seja, 1 Mb):

mpg123 -b 1000 Música/*

Um buffer deste tamanho, garante a reprodução de pelo menos 6 segundos de áudio, o que costuma ser suficiente.

SAIBA MAIS:

Palavras finais

Enfim, há várias outras opções que podem ser usadas, além das que eu descrevi – consulte a página do manual do programa para conhecê-las. Aqui, eu me limitei às minhas preferidas.
O mpg123, surgido em Junho de 1999, era distribuído sob uma licença não-comercial e com o código fonte. Ainda assim, era software proprietário. Este fato deu impulso ao surgimento de um “clone” 100% livre, chamado mpg321, distribuído sob a licença LGPL.
A partir de 2006, já com um novo mantenedor, uma versão nova do mpg123 foi lançada e distribuída sob a licença GNU LGPL 2.1 – o que já permite a outros desenvolvedores contribuírem livremente para a sua melhoria ou, simplesmente, incorporar seu código a outros projetos.
O mpg321 continua a existir, enquanto projeto paralelo e completamente independente e, com toda certeza, de grande qualidade. Vale a pena conhecê-lo também!
Se você tiver mais alguns exemplos de uso, sinta-se à vontade para postar nos comentários e, se achou o artigo útil, por favor compartilhe com os seus amigos.
Divirta-se!

Copie arquivos com o rsync

Vou mostrar, com alguns exemplos práticos, como o uso do rsync pode ajudar a manter o conteúdo de 2 diretórios (pastas) separados sincronizado – mesmo que estejam em computadores diferentes.
Comando rsync copia arquivos
O comando rsync faz transferências de arquivos entre máquinas, de maneira simplificada e automática e… você nem precisa ter privilégios administrativos para isto.

Alguns dos recursos do Rsync

  • é eficiente para copiar e sincronizar arquivos entre computadores remotos
  • comparado com outros programas, é mais rápido do que o scp – o rsync usa um protocolo que lhe permite atualizar apenas os arquivos que sofreram mudanças
  • consome menos banda, uma vez que só trabalha em cima das atualizações necessárias e usa compressão para transferir dados

Instalação do rsync

Até onde sei, o comando vem instalado por padrão nas várias distro Linux.
Usuários Windows podem fazer o download do rsync aqui.
Usuários do Redhat ou do SuSE, podem instalar o rsync com o seguinte comando:

sudo yum install rsync

Usuários Debian e Ubuntu, podem usar o apt-get:

sudo apt-get install rsync

Sintaxe do comando rsync

Basicamente, você vai rodar o rsync com algumas opções, indicar a origem e o destino da sincronização:

rsync options #origem #destino

Daqui pra frente veremos outros exemplos práticos com o comando rsync.

Como sincronizar dois diretórios locais com o rsync

Vamos usar estes dois como exemplo:

  • /home/Documentos, como origem e
  • /home/backup/Documentos, como destino.

Vou mostrar como copiar a sincronizar recursivamente os diretórios:

rsync -vhr /home/Documentos /home/backup

o comando vai criar, se não houver, uma pasta chamada /home/backup/Documentos e copiar para dentro dela todo o conteúdo da outra pasta. Ao final do processo deverá retornar um relatório semelhante a este:

sent 707.32M bytes  received 2.35K bytes  2.92M bytes/sec
total size is 827.60M  speedup is 1.17

Ao repetir o comando, o rsync irá comparar os arquivos em busca de diferenças, por que ele só irá atualizar os arquivos que foram modificados.

OPÇÕES COMUNS DO RSYNC
  • -v — ativa a verbosidade do comando, pra você poder acompanhar o que está acontecendo durante sua execução;
  • -r — ativa a recursividade, ou seja, copia subdiretórios também;
  • -h — human readable exibe as informações da execução do comando em um formato mais legível, convertendo valores de bytes para mega ou gigabytes onde for necessário para reduzir os tamanhos dos números e tornar o texto mais fácil de ler;
  • -z — comprime os dados, antes de transferir;
  • -a — liga o modo archive que permite a cópia recursiva de arquivos, preservando links simbólicos, permissões de arquivos e timestamps.

Como copiar e sincronizar um arquivo local via rsync

Neste exemplo, vamos sincronizar um único arquivo, em um computador local, entre dois diretórios diferentes:

rsync -zvh Docs/mysql_storage.html /backup/Docs/mysql_storage.html

obtendo como resultado:

mysql_storage.html
sent 1.68K bytes  received 31 bytes  3.43K bytes/sec
total size is 3.38K  speedup is 1.97

Como sincronizar um diretório local com um remoto via SSH

Chegamos a um dos pontos fortes do rsync.
No exemplo que segue, vou copiar os arquivos do diretório /home, no servidor remoto remoto.com.br para um diretório local /backup. O nome de usuário, no exemplo, é justincase:

rsync -avz -e ssh justincase@remoto.com.br:/home /backup

Faça o teste com os seus próprios valores e veja se funciona.

O aplicativo parou de responder? Use xkill para matar.

Relacionado ao comando kill, o xkill é usado no ambiente gráfico para matar janelas ou aplicativos que não estejam mais respondendo.
Pelos mesmos motivos expostos aqui, não deve ser usado o tempo todo. Você pode perder informações e tornar a sua sessão instável, ao abusar do uso deste método para terminar programas.

POSTS RELACIONADOS

Como fechar programas no ambiente gráfico do Linux

Quando um programa para de responder, no ambiente gráfico, você ainda tem opções para evitar a perda dos dados que estavam sob o trato do aplicativo.
Se o mouse ainda não parou de responder, tente fechar o aplicativo pelo próprio menu do sistema:

  • clique com o botão direito do mouse sobre a aba referente à janela do programa (na barra de tarefas);
  • selecione a opção Fechar F4;
  • confirme que você deseja terminar o programa
  • Aviso do sistema para fechar programa que parou de responder
    Clique para ampliar.

Só para constar: este é o jeito certo de fechar aplicativos que pararam de responder. Aguarde, pacientemente, enquanto o sistema fecha a janela do aplicativo.
Se isto não deu certo, use o xkill

Como usar o xkill para fechar aplicativos

Desenvolvido por Jim Fulton e pela programadora Dana Chee, o xkill, permite fechar arbitrariamente a conexão de um programa com o servidor X.
Se o xkill não for encontrado no menu do sistema, você pode iniciá-lo a partir de um terminal:

xkill

ao iniciar, o xkill transforma o cursor do mouse em uma “caveirinha“. Ao clicar dentro de qualquer janela, a caveirinha vai “tentar matar” o aplicativo que estiver rodando ali.
Se você se arrepender, aperte a tecla ESC no seu teclado para cancelar o “assassinato”.

Usar o xkill é recomendável?

Não. Não é.
Use-o apenas como último recurso.
Entre os resultados indesejados, você pode tornar o seu sistema instável e perder os dados que estavam dentro do aplicativo fechado.
Além disto, o xkill não garante o fechamento do aplicativo — a única coisa que ele se propõe é fechar sua conexão com o gerenciador gráfico de janelas.
Embora a maioria dos aplicativos costume abortar quando a sua conexão com o X é fechada, alguns podem optar por continuar rodando, em background.

LEITURA SUGERIDA

Como matar programas no Linux

Da série de comandos tradicionais do universo Linux e Unix, o comando kill permite interromper processos arbitrariamente.
Uma definição simplificada de processo é de que se trata de um programa ou uma tarefa em execução
É um sistema UNIX! Eu conheço isto! Kill
Ao iniciar, cada processo recebe uma identificação numérica única, atribuída pelo sistema — chama-se PID, Process IDentification.
Para “matar” um programa em execução, você precisa saber o PID dele (no final do artigo, vou mostrar como matar um processo sem saber seu PID).

POSTS RELACIONADOS

A sintaxe do comando kill

Apesar do nome, o comando kill serve para muito mais do que apenas matar processos.
Sua função é enviar sinais para processos e alguns destes não tem absolutamente qualquer coisa a ver com “morte”.
Sua execução segue, portanto, a seguinte forma:


kill -s SINAL PID

Nos exemplos, abaixo, vou mostrar outras formas de usar o comando.

Como encontrar o PID de um processo específico

O comando ps aux pode mostrar uma lista bem extensa de processos em execução, o que pode dificultar a busca.
É aqui que entra o comando grep, um velho conhecido da gente.
Para exemplificar, vou rodar o ftp em background (&) e determinar o seu PID com o grep em conjunto com o ps:


ftp &

[1] 2983

ps aux | grep ftp

proftpd   1242  0.0  0.1  11996  2172 ?        Ss   10:01   0:00 proftpd: (accepting connections)              
1000      2983  0.0  0.0   5212  1012 pts/5    T    11:51   0:00 ftp
1000      2985  0.0  0.0   4724   836 pts/5    S+   11:51   0:00 grep --color=auto ftp
[1]+  Parado                  ftp

Neste exemplo, o programa ftp tem o PID 2983. No seu sistema o PID será diferente. Verifique.

O comando kill, em exemplos

Uma vez que você já sabe como determinar o PID dos processos, já pode entender como usar esta informação em conjunto com o kill.
Há dois sinais básicos para indicar que se deseja interromper a execução de um processo:

  • SIGTERM(15) — que requisita educadamente a interrupção de um processo. Cabe a este aceitar ou ignorar o sinal. Se aceitar, ele finaliza sua própria execução, graciosamente e gravando o que precisa ser gravado. Há um sinal semelhante a ele, chamado SIGINT. Cada sinal atende por um número. O do SIGTERM é 15.
  • SIGKILL(9) — envia uma requisição ao processo para que este seja terminado imediatamente. Ele não pode ser ignorado e é sequer analisado pelo processo, que é interrompido incontinenti. O número deste sinal é 9.

Vamos ver como aplicá-los:
Podemos enviar um SIGTERM ao processo 2983, de 4 formas diferentes:


kill 2983
kill -s TERM 2983
kill -TERM 2983

ou indicando o número do sinal:


kill -15 2983

Para enviar um SIGKILL, use uma destas 3 opções:


kill -9 2983
kill -s KILL 2983
kill -KILL 2983

Espero ter deixado claro, como terminar um processo via terminal, no Linux. O ambiente gráfico tem um comando similar, chamado xkill, do qual falaremos em outro artigo.

POSTS RELACIONADOS

Como finalizar um programa sem conhecer o seu PID

Há casos em que um processo abre vários outros processos – em que um programa abre várias outras instâncias de si mesmo. Quando o usuário dá um ps no sistema, vê uma quantidade muito grande de PIDs para fechar.
Veja a figura, abaixo, onde se pode ver uma certa quantidade de processos do chromium-browser abertos.
comando ps aux linux
É possível fechá-los todos com o killall. Veja como:


killall chromium-browser

Você pode repassar o número de um sinal para o comando, assim:


killall -9 chromium-browser

Fácil, não é?

5 exemplos do comando shutdown no Linux

O comando shutdown, pra ser curto, desliga o seu sistema. Mas ele pode fazer isto de maneiras “diferenciadas”, se você conhecer algumas de suas opções.
Uma das minhas formas preferidas de usar o comando shutdown é a que permite programar o desligamento ou o reboot do meu sistema.
Em alguns casos, um administrador precisa programar um reinício — na maioria das vezes para aplicar certos updates no sistema. É coisa rara. Poucas atualizações no Linux precisam que a máquina seja reiniciada. Na maioria das vezes, apenas o serviço ou o daemon a que ela se refere é que precisa ser reiniciado.
Na maioria dos casos, as pessoas desejam programar o desligamento, por que vão sair e não querem deixar a máquina ligada durante sua ausência – mas também não querem interromper um download ou alguma outra tarefa que esteja sendo executada. A solução para isto é programar o shutdown para ser executado alguns minutos após o término previsto da tarefa em questão.

O que acontece ao executar o comando shutdown

Ao rodar o comando shutdown, o sistema é desligado de forma segura e todos os usuários (no terminal) são avisados. Além disso, poucos minutos antes de desligar, o sistema não recebe mais conexões novas.
Sim. Você precisa ter privilégios administrativos para desligar um servidor. Ainda mais, se quiser fazer isto remotamente.

Exemplos de uso do comando shutdown no Linux

Veja como reiniciar a máquina, com o comando shutdown:

sudo shutdown -r now

ou para desligar, mesmo:

sudo shutdown -h now

Você pode apenas avisar os usuários que o sistema será desligado e impedir novas autenticações no sistema, com a opção code>-k:

sudo shutdown -k now

Com o uso de -k o sistema não será desligado de verdade.
Se você quiser, pode programar o desligamento ou reinício do sistema. No exemplo, a seguir, vou programar a máquina para desligar em 30 minutos:

sudo shutdown -h 30

Esta é a mensagem que outros usuários irão receber em seus terminais:

Espalhar mensagem de justincase@JustInCase-Solaris-8
	(/dev/pts/5) em 1:04 ...

The system is going down for halt in 30 minutes!

Neste caso, o shutdown pode ser cancelado com o pressionamento das teclas Ctrl + C.
Um outro usuário, com privilégios administrativos, também pode cancelar o processo, de seu terminal, com o seguinte comando:

sudo shutdown -c

Para enviar uma mensagem aos usuários afetados pelo desligamento, use o comando desta forma:

sudo shutdown -r 30 "O sistema será reiniciado para aplicação de atualizações. Aproveite pra tomar um café."

Este seria o resultado de tal comando:

Espalhar mensagem de justincase@JustInCase-Solaris-8
	(/dev/pts/5) em 1:13 ...

The system is going down for reboot in 30 minutes!
O sistema será reiniciado para aplicação de atualizações. Aproveite pra tomar um café.

Use o shutdown para fazer duelos

Quando o chefe não estiver por perto, a brincadeira consiste em acessar a máquina do outro colega (via telnet ou SSH) e aplicar-lhe um shutdown antes que ele(a) o faça com você. Quem for mais rápido, vence.
Divirta-se!