Mostrando entradas con la etiqueta terminal. Mostrar todas las entradas
Mostrando entradas con la etiqueta terminal. Mostrar todas las entradas

viernes, 20 de junio de 2014

Reproducir archivos mp3 en la consola de comandos

Muchos pensarán que ejecutar tareas vía terminal cuando existen aplicaciones gráficas que minimizan la dificultad y facilitan la experiencia es propio de frikis o fundamentalistas de la programación. Sea cual sea su caso, saber como resolver determinadas operaciones a través de la consola de comandos solo puede resultar positivo y a ningún usuario le sobra conocer estas cosas. Hoy vamos a explicar como reproducir archivos de música en formato mp3 por terminal con el comando mpg123.

Lo primero, por supuesto, es instalarlo de la manera tradicional, con apt-get o aptitude.

sudo apt-get install mpg123

Una vez instalado, pasamos a posicionarnos en la carpeta donde estén los archivos a reproducir, que es más cómodo. Cuando estemos allí las opciones son varias. Hablemos de ellas.

mpg123 [nombre_de_archivo]

Si tecleamos la orden de esta manera el archivo mp3 comenzará a ejecutarse mientras que se nos muestran sus metadatos (el autor, el nombre del disco, el año y todas esas cosas...) en el terminal.


Es así de simple, pero conviene comentar algunos aspectos, como que el terminal quedará inutilizable hasta el fin de la reproducción, con lo que habría que abrir otro si queremos seguir metiendo órdenes por teclado. Cuanto termina la canción recuperamos la facultad de teclear comandos aunque los impacientes pueden pulsar Ctrl + C y finalizar abruptamente la reproducción cuando lo deseen, restableciendo así la línea de comandos.

Si no queremos visualizar los metadatos haremos lo siguiente:

mpg123 -q [nombre_de_archivo]

Por lo demás, el archivo se reproducirá de la misma manera.

Conviene destacar que GNU/Linux considera el espacio en blanco como un carácter más, pero lo trata de manera diferente según el caso. Si tenemos un archivo en cuyo nombre hay espacios en blanco (como en el ejemplo de la imagen de arriba, que es 07-El Scorcho.mp3) hay que encerrarlo entre comillas, y siempre incluir la extensión, si la tiene. Ni que decir tiene que hagamos lo mismo para movernos entre directorios. Para simplificar podemos copiar y pegar utilizando los atajos de teclado.

Si queremos liberar la consola de comandos y seguir usándola mientras el archivo de sonido se reproduce en segundo plano esto es lo que haremos:

mpg123 -q [nombre_de_archivo] &

En pantalla veremos algo como esto:



El archivo se reproduce pero deja libre la línea de comandos, no sin antes proporcionarnos un dato clave: el número de proceso de la operación. En esta ocasión, para detener la reproducción hay que recurrir al comando kill de esta manera:

kill -9 6214

Hemos hecho uso del comando kill con su opción -9 para matar el proceso, siendo este el nº 6214. No hace falta decir que hay que precederlo de sudo en caso de no ser administrador, ¿verdad? Como con cualquier comando que requiera derechos de súper usuario.

Si lo que queremos es reproducir un directorio entero, nos posicionamos en él y tecleamos:

mpg123 *.mp3

Los arquivos irán sonando uno tras otro en orden alfabético. Si queremos cambiar de canción pulsamos Ctrl + C, pasaremos a la siguiente y así hasta finalizar la lista. Si queremos detener la reproducción del todo pulsamos Ctrl + C dos veces seguidas. Añadiendo el modificador -q nos quitamos los metadatos de encima.

Si al reproducir un conjunto de archivos el modificador que empleamos es & para detenerla usaremos el comando top. Con esta orden se monitorizan los procesos activos en tiempo real, de modo que, tras teclearlo y pulsar enter, solo hay que buscar en la última columna de la lista el nombre del proceso mpg123 (si no lo vemos a la primera esperamos a que se actualice) y quedarnos con el número de proceso que aparece en la columna de la izquierda. Salimos pulsando la tecla q y, seguidamente, matamos el proceso con kill -9 como ya hemos explicado.

Si queremos hacer una de esas cómodas listas de reproducción, tomen nota:

ls *.mp3 > [nombre_de_lista.m3u]

Esto les generará un archivo de texto con el nombre de que hayan escrito; su contenido será la lista de archivos que hayan designado en cada caso.


Para ejecutarla tendrán que teclear (mismas condiciones para los modificadores -q y &):

mpg123 -@ [nombre_de_lista.m3u] -q &

Y a disfrutar :-)

Para ilustrar el post vamos con la banda que aparece nombrada en las capturas de pantalla, los norteamericanos Weezer y su divertido tema "Buddy Holly".


lunes, 20 de mayo de 2013

Imprimir desde el terminal

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Los entornos gráficos nos han acostumbrado a que todo sea tremendamente fácil, pero los inicios de cualquier sistema operativo nunca han sido un camino de rosas para quienes han intentado aprender sus entresijos. Habrá quien diga que volver a manejarse (casi) exclusivamente por comandos de teclado es un atraso y un retorno a la prehistoria informática, y desde la perspectiva del usuario doméstico quizá no le falte razón. Pero si queremos profundizar en los fundamentos de un SO no nos queda otra que machacarnos el modo texto y sacarle todo el jugo que sus programadores se han dignado darle. Y esto sirve también para cuando queramos imprimir.

Porque podemos imprimir el contenido de un fichero desde el terminal de GNU/Linux, para lo que disponemos del comando lp, cuyas opciones paso a describir. Huelga decir que para que lo que a continuación viene es preciso disponer de una impresora correctamente conectada y reconocida por el sistema. Vamos a suponer que disponemos de una Epson Stylus SX130 y que queremos imprimir el archivo listado.txt.

paco@paco-pc:~$ lp listado.txt
El comando lp es un comando básico para imprimir el archivo de texto que nosotros designemos, en este caso listado.txt. No hace falta nada más si solo tenemos una impresora configurada.

paco@paco-pc:~$ lp Epson-Stylus-SX130 listado.txt
Aquí hemos elegido una impresora concreta de las varias que eventualmente puedan estar disponibles.

paco@paco-pc:~$ lpstat -p -d
El comando lpstat es para conocer los nombres de las impresoras disponibles y así poder utilizar el comando anterior.

paco@paco-pc:~$ lp -n 2 listado.txt
Con la opción -n podemos imprimir dos o más copias de listado.txt. Sustitúyase el 2 por el nº de copias que cada usuario requiera.

paco@paco-pc:~$ lp -P 1,3,6-10 listado.txt
La opción -P nos da la oportunidad de imprimir páginas salteadas, en este caso las páginas 1, 3, 6, 7, 8, 9 y 10 de listado.txt.

paco@paco-pc:~$ lp -o media=letter listado.txt
La opción -o nos da la posibilidad de elegir el formato de impresión, en este caso letter. Los formatos disponibles son:
  • Letter – US Letter (8.5×11 pulgadas, o 216x279mm)
  • Legal – US Legal (8.5×14 pulgadas, o 216x356mm)
  • A4 – ISO A4 (8.27×11.69 pulgadas, o 210x297mm)
  • COM10 – US #10 Envelope (9.5×4.125 pulgadas, o 241x105mm)
  • DL – ISO DL Envelope (8.66×4.33 pulgadas, o 220x110mm)
  • Transparency – Se usa para imprimir sobre ojas de acetato
  • Upper – Para usar la bandeja superior de papel de la impresora
  • Lower – Para usar la bandeja inferior de papel de la impresora
  • MultiPurpose – Para usar la bandeja multiproposito de la impresora
  • LargeCapacity – Para usar la bandeja de gran capacidad de la impresora

paco@paco-pc:~$ lp -o media=Custom.ANCHOxLARGOmm listado.txt
Con la misma opción podemos escoger un formato personalizado.

paco@paco-pc:~$ lp -o lansdcape listado.txt
Y también imprimir en horizontal o landscape (impresión girada 90º). Las orientaciones especiales se realizan de la siguiente forma:
  • lp -o orientation-requested=3 (0 grados)
  • lp -o orientation-requested=4 (90 grados)
  • lp -o orientation-requested=5 (270 grados)
  • lp -o orientation-requested=6 (180 grados)

paco@paco-pc:~$ lpq
Con lpq podemos ver la cola de impresión mientras existan trabajos pendientes.

paco@paco-pc:~$ lprm numero_de_trabajo
Con lprm podemos cancelar un trabajo de impresión a través de su número de trabajo, el cual obtenemos con lpq.

domingo, 19 de mayo de 2013

Atajos de teclado para el terminal

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Existen combinaciones de teclas para desplazarse con rapidez por la terminal de comandos que son de gran utilidad. Entiendo que toda ayuda es de agradecer si con ello aprendemos a desenvolvernos con más eficacia en un entorno exclusivo de texto, así que tomemos nota de los siguientes atajos de teclado.

Ctrl + a
Envía el cursor al principio de la línea de comandos.

Ctrl + e
Envía el cursor al final de la línea de comandos.

Ctrl + c
Para matar un proceso.

Ctrl + u
Elimina la línea donde se encuentre el cursor.

Ctrl + w
Elimina la palabra delante del cursor.

Ctrl + l
Limpia la pantalla del terminal.

Ctrl + Alt + F1 (o F2)
Para cambiar de modo gráfico a modo texto (terminal a toda pantalla).

Alt + f
Mueve el cursor una palabra hacia adelante.

Alt + b
Mueve el cursor una palabra hacia atrás.

Shift + Ctrl + c
Para copiar al portapapeles

Shift + Ctrl + v
Para pegar desde el portapapeles

sábado, 18 de mayo de 2013

Guake o la terminal siempre a mano

Espero que estemos empezando a sentirnos a gusto con el terminal de comandos. Como cualquier ayuda es poca esta breve entrada tiene como protagonista a Guake. ¿Y ésto qué es? Pues una utilidad que nos permitirá disponer de nuestro terminal en todo momento, superpuesta a la ventana del programa que estemos manejando. Se le invoca u oculta con solo pulsar una tecla y para instalarlo solo hay que teclear lo siguiente:

paco@paco-pc:~$ sudo aptitude install guake

Al ejecutarlo por primera vez lo tendremos disponible con solo pulsar F12, y lo ocultaremos con la misma tecla, pudiendo repetir la operación cuantas veces queramos mientras dure la sesión. Permite, además, tener varias terminales abiertas a la vez si pinchamos en el botón que tiene abajo a la derecha. Su aspecto, tamaño, grado de transparencia, color y demás se pueden configurar. En Debian Wheezy nos aparecerá en el menú Aplicaciones > Herramientas del sistema.

Vía 120Linux.com.


martes, 26 de marzo de 2013

Obtener información de nuestro hardware a través del terminal

Ando ocupadillo estos días, y la proximidad de la semana santa no augura que el post que tenía pensado colgar sobre la instalación de una distribución GNU/Linux vaya a salir pronto. Así que de momento me contentaré con esta entrada donde hablo de como obtener información acerca de nuestro equipo a través de la terminal. Es el comando Hardware Lister, que en terminal es lshw, delante del cual hay que escribir el sudo que nos identifica como superusuario:


sudo lshw

Con este comando obtendremos un enorme listado de características e información de nuestro ordenador como tipo de procesador, tarjeta de red, tarjeta de vídeo, disco duro, etc.

Con la opción  -class cpu nos ceñirenos únicamente a la CPU:


sudo lshw -class cpu

Al pulsar intro obtenemos algo como esto:


*-cpu:0                 
       descripción: CPU
       producto: Pentium(R) Dual-Core  CPU      E5200  @ 2.50GHz
       fabricante: Intel Corp.
       id físico: 4
       información del bus: cpu@0
       versión: 6.7.6
       serie: 0001-0676-0000-0000-0000-0000
       ranura: CPUSocket
       tamaño: 1203MHz
       capacidad: 2500MHz
       anchura: 64 bits
       reloj: 200MHz
       capacidades: boot fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe x86-64 constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dtherm cpufreq
       configuración: id=1
     *-logicalcpu:0
          descripción: CPU lógica
          id físico: 1.1
          anchura: 64 bits
          capacidades: logical
     *-logicalcpu:1
          descripción: CPU lógica
          id físico: 1.2
          anchura: 64 bits
          capacidades: logical
  *-cpu:1
       id físico: 1
       información del bus: cpu@1
       versión: 6.7.6
       serie: 0001-0676-0000-0000-0000-0000
       tamaño: 1203MHz
       capacidad: 1203MHz
       capacidades: ht cpufreq
       configuración: id=1
     *-logicalcpu:0
          descripción: CPU lógica
          id físico: 1.1
          capacidades: logical
     *-logicalcpu:1
          descripción: CPU lógica
          id físico: 1.2
          capacidades: logical

Escribiendo sudo lshw a secas el resultado es mucho más extenso y descriptivo. Si queremos enviar toda esa información a un archivo para visionarla más tranquilamente, teclearemos esto:

sudo lshw >> /home/paco/Documentos/lshw.txt

Y se nos creará el archivo de texto lshw.txt en la ubicación /home/paco/Documentos que podremos abrir con un editor cualquiera. En caso de no tener instalado lshw habrá que instalarlo mediante la herramienta apt-get:

sudo apt-get install lshw

Hay otras maneras de conseguir información sobre nuestro hardware. Una de ellas es el comando dmidecode, cuyas opciones podemos cotejar tecleando dmidecode --help. Otra forma es listar el fichero cpuinfo alojado en el directorio /proc con el comando cat:

cat /proc/cpuinfo

Todo esto es útil porque no pocas veces nos van a preguntar en un foro por la configuración de nuestro equipo. Podemos anotar los resultados, o directamente imprimirlos y subrayar lo más importante para tenerlo siempre presente.

viernes, 8 de marzo de 2013

Ejemplo de la utilidad de introducir comandos por terminal

Se que dominar el terminal shell es uno de los aspectos de los sistemas Linux que más echan para atrás a los nuevos usuarios, así que en esta breve entrada voy a explicar un ejemplo práctico de cómo un comando por teclado puede solucionar lo que el entorno gráfico no es capaz de resolver.

Supongamos que hemos descargado el archivo manualdecocina.zip, el cual está en un formato de compresión muy usual. Imaginemos que dentro de ese archivo comprimido hay, entre otros, un archivo llamado "Manual de cocina española.pdf". Para descomprimirlo nos vamos al Nautilus, el explorador de archivos de Ubuntu, hacemos doble clic en el archivo manualdecocina.zip y nos abre Fille Roller, el gestor de archivadores por defecto para GNOME, el cual nos muestra el contenido. Pinchamos en la opción "Extraer" y, ah, nos aparece una pantalla con el siguiente error:

Ha ocurrido un error mientras se extraían los archivos.

caution: filename not matched: Manual de cocina espa\?\?ola.pdf

¿Cuál es el problema? Pues que File Roller no reconoce en carácter ñ. Así que no puede extraer "Manual de cocina española.pdf" del .zip porque el archivo contiene la letra ñ en su nombre. La, nunca mejor dicho, puñetera letra ñ.

¿Como solucionamos el problema? Abrimos una Terminal en el menú Accesorios > Terminal y, una vez allí, nos posicionamos en el directorio donde hayamos descargado manualdecocina.zip que, perfectamente, puede ser Descargas.

cd Descargas

Luego ejecutamos el comando unzip:

unzip manualdecocina.zip

Y el archivo "Manual de cocina española.pdf" se descomprime sin problemas.

Puede ocurrir que no tengamos instalada la utilidad unzip. En tal caso la tendríamos que instalar de la siguiente forma:

sudo apt-get install unzip

Y, a continuación, repetir el paso anterior.

Hemos visto maneras y términos que nos sonarán a chino pero no era el propósito de esta entrada profundizar en ellos. Esto ha sido únicamente una forma de demostrar cómo la línea de comandos puede a veces solucionar de manera rápida y sencilla un problema planteado desde el entorno gráfico, más amigable y vistoso pero, en ocasiones, ineficaz. Es solo un ejemplo de los muchos que podríamos poner, pero nos queda mucho camino por recorrer para eso en este blog.

Hemos hablado de compresión de archivos. No es de compresión, sino de presión de lo que hablaban Queen en este clásico que aquí interpretan sin David Bowie, pero con Freddy Mercury en plena forma.



miércoles, 6 de marzo de 2013

Terminología básica que ayuda a no sentirse un tonto en un foro de Linux

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Ya hemos visto que, dado que el ordenador es nuestra herramienta principal, conocer al menos de oídas algunas expresiones nos puede ayudar a entender explicaciones futuras, o incluso a resolver problemas. Antes de entrar a decidir qué distribución Linux elegir también estimo necesario tener claros algunos términos que le son más propios. Nos ayudará a comprender de que hablan esos listillos que pululan por la red, impartiendo lecciones a diestro y siniestro, creyendo que se les entiende todo pero que, en mucho casos, solo contribuyen a que la confusión inicial se incremente e incluso ahuyente cualquier atisbo de curiosidad que uno pudiera sentir sobre Linux. Y lo digo por propia experiencia, lo foros de ayuda están atiborrados de gente así. Conociendo lo que viene a continuación usted podrá transitar por esos foros con algo más de seguridad.

LiveCD
Es una distribución (esto ya sabemos lo que es, ¿verdad?) almacenada en un CD o un DVD, ejecutable desde ese medio sin necesidad de instalar ni modificar nada en su equipo. Así, se puede trastear y navegar y probar cuanto haga falta (a una menor velocidad; recordemos que el acceso a las unidades de CD/DVD es más lento que a un disco duro) para, en caso de gustar y no encontrar conflicto alguno de hardware, optar por instalarla directamente. O si no, volver a probarla en otro momento. Para esto último basta con salir y apagar o reiniciar el equipo y extraer el disco del lector. Las cosas en su ordenador volverán a estar igual que antes, sin riesgo alguno para la integridad de sus archivos. Hay que destacar que se puede trasladar un LiveCD a un pendrive; determinándolo como unidad de arranque en el menú del BIOS del PC (al cual accedemos pulsando F11 en cuanto empieza el proceso de arranque) el ordenador inicializará el SO que encuentre en dicho pendrive para que, eso mismo, podamos trastear y explorar cuanto nos venga en gana. En resumen, una gran opción si queremos ojear de primera mano de qué va esto de los sistemas Linux sin compromiso ni riesgo alguno.

X-Window System
Es un software que proporciona una interfaz gráfica a los sistemas UNIX, como es el caso de Linux.

GDM (GNOME Display Manager)
Es un gestor de acceso al X-Window System basado en GNOME, materializado en una pantalla que le pedirá al usuario su nombre y contraseña (introducidos durante el proceso de instalación si así lo ha dispuesto) cada vez que quiera iniciar una sesión.

GNOME
Entorno de escritorio para sistemas tipo UNIX, usado para Ubuntu entre otras distribuciones. Me van a perdonar si hago mucho hincapié en Ubuntu y derivados pero es la distribución que manejo desde el principio y la que mas conozco.

Entorno de escritorio
Conjunto de características gráficas que definen el aspecto de un sistema operativo tipo Windows o Mac: colores, forma, disposición y apariencia de las ventanas y menús, tipografías y efectos varios (fundidos, desplazamientos, apariencia 3D, cortinillas...) y, en fin, esas cositas que hacen chulo y atractivo un SO. Es posible instalar diferentes entornos de escritorio para una sola distribución y después elegir la que más nos guste.

Unity
Entorno de escritorio implementado para Ubuntu en sustitución de GNOME y que no ha parado de cosechar críticas desde su aparición por los elevados recursos que consume. Por suerte, la opción de seguir usando GNOME sigue estando ahí.

Cinnamon
Entorno de escritorio propio de la distribución Linux Mint y que también se puede instalar en otras distros. En mi Ubuntu sustituí Unity por Cinnamon y todo fueron mejoras.

KDM
Es un gestor de escritorio para sistemas tipo UNIX, basado en KDE.

KDE
Entorno de escritorio para sistemas tipo UNIX, el más implantado en Linux junto con GNOME, usado en la distribución Kubuntu entre otras.

Xfce
Entorno de escritorio para sistemas tipo UNIX más ligero y pensado para máquinas menos potentes y usado en, por ejemplo, la distribución Xubuntu.

LXDE (Lightweight X11 Display Environment, Entorno de escritorio X11 ligero)
Entorno de escritorio para sistemas tipo UNIX aún más ligero, pensado para máquinas poco potentes, antiguas y netbooks, conocido por estar presente en la distribución Lubuntu.

Grub
Software que habilita un menú que le permite un arranque dual, esto es, elegir sistema operativo con que arrancar el ordenador en caso de que haya instalado una distro Linux teniendo ya Windows preinstalado. Muy útil para quien quiera empezar a valorar alternativas a SO de Microsoft.

Shell
Es el intérprete de comandos (órdenes, instrucciones), un interfaz (medio gráfico a través del cual el usuario se comunica con su ordenador) que nos permite introducirlos para generar una respuesta por parte del ordenador. Quienes se acuerden de MS-DOS sabrán que se entraba directamente a la shell al carecer este sistema de entorno gráfico. Es, en suma, cualquier intérprete que un usuario emplee para escribir comandos. En Linux hay diferentes tipos de shell en función de la sintaxis de redacción de los comandos, como bash, ash, csh o tsch.

Bash
Es un tipo de shell, la más común en sistemas Linux. Un software que interpreta los comandos desde la ventana shell. ¿Una equivalencia a modo de ejemplo? Shell es a los coches lo que Bash es a Seat, ash a Renault o csh a Peugeot.

Terminal o consola
Herramienta presente en el entorno gráfico de todas las distribuciones mediante la cual se nos da acceso a la ventana de shell.

Init
En sistemas UNIX, es el primer proceso en ejecución tras la carga del kernel, y que a su vez genera todos los demás procesos.

Kernel
Es el software principal que conforma un sistema operativo. Es el núcleo del sistema, el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o, en forma básica, el encargado de gestionar recursos a través de servicios de llamada al sistema (confieso que aún no se muy bien qué significa esto último).

Compiz
Gestor de ventanas para el X-Window System que proporciona una serie de efectos de visualización dentro del entorno de escritorio.

Repositorio
Los repositorios son contenedores de software del que se nutren las distribuciones GNU/Linux y están alojados en un servidor. De ahí uno se baja cualquier programa que en ellos se encuentre almacenado, y hay repositorios oficiales, la mayoría, y otros que no lo son. Desde el escritorio de Ubuntu, por ejemplo, se accede a ellos a través de una utilidad llamada Synaptic.

Superusuario o usuario root
Los sistemas basados en UNIX están concebidos para ser multiusuario y multitarea, por lo que existen restricciones de acceso a según qué usuarios, a según qué partes del sistema y para según que procesos. Para tener pleno acceso y control a cualquier punto del sistema hay que entrar en modo superusuario o modo root, eso sí, siendo consciente de que una gamba metida como root puede echar abajo todo el cotarro. De ahí que en Ubuntu venga deshabilitado por defecto y que para hacerlo efectivo haya que introducir el comando sudo delante de cada comando que uno quiera emplear, lo que puede resultar bastante coñazo.

Máquina virtual
Programa que le permite instalar otro sistema operativo dentro del que ya tiene instalado (el más común es VirtualBox) y que funciona como una aplicación más. Por ejemplo, puede instalar Windows virtualizado dentro de su distribución GNU/Linux favorita en esos molestos casos en que un periférico concreto (impresora, escáner, webcam...) sea indetectable por carecer de drivers para Linux, pero sí los tenga para Windows. Por supuesto, desde ese Windows virtualizado puede usted instalar Office, Photoshop o lo que le venga en gana. También funciona a la inversa, Windows como sistema anfitrión y un Linux virtualizado.

Por supuesto, Wikipedia y otras páginas están a su entera disposición para ampliar lo que yo les vengo contando.

Y con esto creo que ya pueden ir haciéndose una idea de lo que vendrá mas adelante. Bueno, en realidad no, el aprendizaje será lento, tanto como las imágenes en slow motion del siguiente vídeo: