jueves, 12 de marzo de 2015

20 curiosidades geeks para terminales Linux

https://openwebinars.net/20-comandos-linux-imprescindibles-para-sysadmin/

Más de 20 curiosidades geeks para terminales GNU/Linux, entre las que se encuentran juegos, comandos, herramientas, huevos de pascua o animaciones ASCII.
Son muchos los administradores de sistemas, BOFHs (y usuarios en general) que utilizan a diario las terminales o consolas de servidores o sistemas GNU/Linux para trabajar, programar o realizar tareas varias.
En este artículo vamos a dar un repaso a 20 curiosidades geeks que se pueden realizar desde una terminal del sistema (en su mayoría, bastante inútiles y poco productivas), pero no por ello menos divertidas.

1. ASCII Portal

Probablemente conozcas Portal, el famoso juego de Valve, mod de Half life que tanto revolucionó el panorama de los puzzles de plataformas por allá el año 2007.
Lo que quizás no sabías es que hay una versión, realizada por Joe Larson, llamada ASCII Portal. En ella podrás jugar a una versión con carácteres ASCII desde una terminal Linux o Windows.
URL | ASCII Portal
Review | ASCIIPortal de Joe Larson

2. sl (Steam Locomotive)

El comando sl (Steam Locomotive) es un ingenioso comando dirigido a usuarios que acostumbran escribir mal y en lugar de escribir ls (listar archivos), escriben sl (¡sí! ¡condicionamiento operante!).
Además, podemos hacer un pequeño script, en el que reproduzcamos un sonido (Train.wav, por ejemplo) para hacer aún más real nuestra broma:
#!/bin/sh
/usr/bin/aplay -N -q ~/Train.wav &
sl
Así, al ejecutar el comando train, reproducirá también el sonido Train.wav, ubicado en la ruta del home de nuestro usuario.
Además, existen algunos parámetros especiales que harán algunas modificaciones, como por ejemplo sl -l, que muestra un tren más pequeñito o sl -a, en el cuál ha ocurrido un accidente y veremos algunas personas pidiendo ayuda por la ventanilla.
Install | sudo apt-get install sl

3. Star Wars ASCII Edition (vía telnet)

¿Te apetece ver el Episodio IV de Star Wars en edición especial ASCII? Nada más fácil. Sólo necesitarás conectarte vía telnet a la siguiente dirección:
telnet towel.blinkenlights.nl Debes saber también, que si eres capaz de conectar vía IPv6, la película tiene escenas extra y soporte a color.
EXTRA: Además, si conectas al puerto 666 (simplemente, añade un espacio y 666 al final de la línea de telnet) obtendrás una frase BOFH al azar.
URL | BlinkenLights

4. sudo Insults

Existe una característica desconocida, que es la de hacer agresivo al sudo (comando para ejecutar como otro usuario). Para ello, basta con editar el archivo /etc/sudoers, y al final de la linea Defaults añadir insults, de modo que quede algo como esto:
Defaults env_reset, insults Así, cuando nos equivoquemos en el password al intentar cambiar de usuario con sudo, el sistema nos mostrará unos bonitos insultos aleatorios.
URL | sudo insults

5. Grub Tune

La mayoría de los usuarios de Linux, utilizan Grub como gestor de arranque, que no es más que el cargador que aparece al arrancar el equipo para elegir sistema operativo.
Podemos activar una característica simpática del Grub llamada GRUB_TUNE, que hará sonar mediante el altavoz (PC Speaker) de nuestro PC, una pequeña melodía al arrancar, como el sonido de Super Mario o la Marcha Imperial de Star Wars.
echo "GRUB_INIT_TUNE=\"480 440 4 440 4 440 4 349 3 523 1 440 4 349 3 523 1 440 8 659 4 659 4 659 4 698 3 523 1 415 4 349 3 523 1 440 8\"" | sudo tee -a /etc/default/grub > /dev/null && sudo update-grub More tunes | tunes.h

6. ASCIIQuarium

¿Seguimos echando de menos las curiosidades de texto? Volvamos a ellas. Existe un programa llamado asciiquarium que nos mostrará el clásico salvapantallas del acuario... pero en versión ASCII. Con varias especies de peces, barcos, tiburones, un castillo y hasta el Monstruo del Lago Ness.
Se trata de una aplicación perl, por lo que necesitaremos tenerlo instalado, junto a algunas librerías como libcurses-perl o el módulo CPAN Term-Animation-2.6.
También existe otra aplicación llamada asciijump, que no es más que un simulador de esquí en ASCII.
URL | ASCIIQuarium
Install | sudo apt-get install asciijump

7. psDoom

Vale, de acuerdo. Esta aplicación no tiene nada que ver con las demás aplicaciones de terminales. Pero es tan buena, que no podía dejarla fuera de la lista. Se trata de psDoom, una variante del clásico ps de Linux (gestor de procesos) que te permite matar los diferentes procesos de Linux desde el clásico Doom.
Cada proceso es un enemigo, que muestra su PID en la parte superior (junto al nombre del comando) como si fuera un Shinigami de Death Note.
URL | psDoom
Review | Matando procesos con psDoom

8. Películas o series en ASCII

¿Nos quedamos con ganas de ver más películas (o series) en ASCII? Existe un reproductor llamado mplayer que puede ser utilizado junto a una librería bautizada (con un curioso sentido del humor) como libcaca0.
mplayer -vo caca video.avi Si tenemos los dos componentes citados instalados en nuestro sistema, podremos reproducir cualquier archivo de vídeo, resultando algo como lo siguiente:
Opening de un capítulo de la serie Doctor Who, con la TARDIS viajando por el vórtice.
Existe también un software llamado hasciicam, que permite hacer la misma operación, pero con una webcam y nosotros mismos.
URL | MPlayer
URL | libcaca

9. RSpec Nyan Cat

Todos hemos oído hablar a estas alturas del famoso meme Nyan cat. En caso contrario (cosa bastante increíble) ponte al día con el enlace anterior.
RSpec Nyan Cat Formatter es un sistema creado por Matt Sears que permite hacer uso de RSpec (relacionado con la ingeniería del software, más concretamente, con BDD) y modificarlo para que nos muestre el progreso de las pruebas al estilo de nuestro querido Nyan cat:
URL | Nyan Cat RSpec Formatter

10. Fortune

Otro gran veterano en nuestras terminales es el Fortune (las clásicas galletas de la fortuna, con un mensaje en su interior). Al instalarlo y ejecutarlo, nos va mostrando una frase al azar, de la amplia base de datos que posee (generalmente, ubicada en /usr/share/games/fortunes).
Con un apt-cache search ^fortune podrás echar un ojo a todas las extensiones de fortune que existen (la mayoría en inglés), e instalarlas en tu sistema.
Incluso nosotros mismos podemos crear archivos de fortune con nuestras propias citas, simplemente creando un archivo con citas (separadas por %) y organizandolas luego con strfile. Tienes más información en creating fortune files.
Install | sudo apt-get install fortune (o fortune-mod)

11. Juegos en red

Si en tu trabajo nunca ocurre nada y te pasas tardes y tardes aburrido delante de una terminal, ahora podrás ponerte de acuerdo con otros administradores y echar unas partidas a estos juegos multijugador vía terminal.
El primero de ellos es 0verkill, un juego de plataformas, con el cuál podrás establecer un servidor (ejecuta ./server para iniciarlo) y conectando a él con el cliente ./0verkill en el puerto 6666.
Si somos más conservadores, también podremos echarnos unas partidas al netris en red, el clásico tetris, también vía terminal. Basta con ejecutar un netris -w (que esperará una conexión) y un netris -c IP (que conectará al otro jugador que esté en espera).
URL | 0verkill
URL | Netris

12. Huevos de pascua

Existen muchísimos huevos de pascua (Easter Eggs) escondidos en comandos, programas y aplicaciones. Sin embargo, uno muy conocido es el de las vacas de Linux (o los poderes de super vaca).
Para ello, utilizaremos los gestores de paquetes apt-get y aptitude. Utilizando el primero con el parámetro moo veremos un pequeño guiño. Con aptitude ocurre algo muy similar, que se puede ir ampliando incluyendo uves como parámetros:
Clara referencia al clásico eslogan de Microsoft: «Where do you want to go today?».
Otro huevo de pascua, es la referencia a La guía del autopista galáctico de Douglas Adams, al abrir el editor vim y escribir :help 42.
Por último, una tercera curiosidad es la del calendario cal de Unix. Si escribimos cal 9 2012 nos mostrará el calendario del mes de septiembre del año 2012. Sin embargo, si lo hacemos del mismo mes pero del año 1752, nos mostrará este curioso e incompleto calendario:
La explicación es que el 2 de septiembre de 1752 fue cuando Gran Bretaña hizo los cambios respecto al calendario gregoriano (en el man de Solaris se dice que es una compensación de ajustes bisiestos).

13. Cowsay

Otro divertido e inútil comando es cowsay (la vaca dice), que podemos utilizar en nuestra terminal para hacer que una vaca diga un comentario. Incluso podemos redireccionarla (mediante pipes) para que la salida de un comando sea lo que dice la vaca.
Un claro y genuino cowinception (o vacorigen)
Además, en la ruta /usr/share/cowsay/cows/ se suelen guardar otros animales representables, como por ejemplo cowsay -f dragon (un dragón) o cowsay -f tux (el pingüino de Linux), entre muchos otros. Existe incluso un xcowsay (versión gráfica) y un Cowsay para Android.
Install | sudo apt-get install cowsay

14. Juegos de mazmorras (Rogue-like)

Los llamados juegos Rogue-like (juegos parecidos a Rogue), son una especie de juegos de rol, basados en mapas de mazmorras o mundos virtuales, en los que el personaje tiene que ir avanzando niveles, coleccionando objetos y realizando acciones.
Uno de los principales que mencionaré es DoomRL, un clon del clásico Doom, al estilo de este tipo de juegos. La última versión incluso incorpora gráficos y puede jugarse al estilo 2D.
Sin embargo, existen cantidad de juegos de este tipo. Por ejemplo, tenemos nethack, crawl (más sencillo), angband (basado en J.R. Tolkien), Dwarf Fortress o, saliendo por completo del género, dopewars, un simulador de peleas de mafias, también en terminal.
URL | Más juegos Roguelike en Briareoh

15. Oneko

Seguimos navegando por el pasado. Nuevamente, nos permitimos la licencia de saltarnos el género de terminal, abusando de la nostalgia. Hace mucho tiempo se pusieron de moda unos simpáticos personajes que correteaban por tu pantalla, persiguiendo el ratón o simplemente revoloteando a su antojo. Se llamaban Screenmates.
Uno de los más famosos era neko, un gatito que perseguía al ratón y se dormía con él si lo conseguía. Oneko es un port para Linux que lo trae a nuestra pantalla del pingüino.
URL | Web Neko
Install | sudo apt-get install oneko

16. Bombas fork

Un fork (bifurcación), en contexto de sistemas operativos es una especie de «clonación» de un proceso, en la cuál se copia a si mismo y se genera como proceso hijo, resultando dos procesos diferentes (padre e hijo).
Imaginemos ahora que cada proceso de esos hace un fork, y a su vez, cada uno de los resultantes hace otro fork, y así consecutivamente. Eso es lo que se llama una bomba fork, y puede realizarse escribiendo este simple comando:
:(){ :|:& };: Como se comprenderá, esta acción es infinita (salvo que el sistema marque un límite de forks a realizar), por lo que terminará colapsando el sistema y bloqueándolo por completo, nada más introducir ese comando. Existen bombas forks para muchos otros sistemas o dispositivos, como por ejemplo, Windows.
NOTA: Cuidado. Este comando es peligroso y puede (de hecho, probablemente lo haga) bloquear tu sistema.

17. BSDGames (Colección de juegos)

Los BSDGames son una colección de juegos clásicos y muy simples, incluidos en las distribuciones BSD. En este paquete se incluyen algunos muy interesantes:
  • adventure: Aventuras conversacionales basadas 100% en texto.
  • battlestar: Otra aventura conversacional.
  • gomoku: El clásico juego del 5 en raya.
  • hangman: El ahorcado. Versión stickman ASCII.
  • monop: Adaptación del tradicional Monopoly.
  • phantasia: Rol en tu terminal de texto.
  • robots: Todo un clásico (en gnome se incluye una versión)
  • snake: Una pequeña variación del clásico de la serpiente.
  • tetris-bsd: El clásico tetris.
  • hunt: Un pequeño juego multijugador.
Y si te gustan los clásicos, siempre puedes probar otros minijuegos sin relación a bsdgames, como por ejemplo, nettoe (3 en raya con soporte en red), pacman4console (el típico pacman), tint (otro clon de tetris) o bastet (el tetris cabrón), ninvaders (el space invaders) o matanza (similar al asteroids).
URL | BSDGames

18. CMatrix (Salvapantallas ASCII)

Seguramente recuerdas la terminal de Neo cuando empezaban a aparecer esas letras de colores verde cayendo en la terminal de texto. Existe una aplicación llamada cmatrix que nos permite visualizar este mismo efecto, como si fuera un salvapantallas para nuestra terminal.
Además, puedes especificar ciertos parámetros como cmatrix -b para utilizar negritas aleatorias o cmatrix -l que utiliza la tipografía original que se utilizaba en la película de Matrix (con carácteres orientales, por ejemplo).
URL | CMatrix

19. Toilet

Otra herramienta interesante de los creadores de la anteriormente mencionada librería libcaca, es el comando toilet (que viene a reemplazar el antiguo figlet) permitiendo generar textos ASCII con diferentes estilos y con la posibilidad de aplicar filtros predefinidos.
En la ruta /usr/share/figlet podrás encontrar los formatos de fuentes existentes en tu sistema y con el parámetro toilet --filter list podrás ver los filtros presentes que puedes aplicar a tus textos.
URL | Toilet

20. ASCIISector

Por último, tenemos ASCII Sector, un impresionante juego con gráficos ASCII, que nos traslada a un mundo de exploración, combate y comercio disperso por el gigantesco espacio. Puedes ir completando las diferentes misiones existentes, consiguiendo más dinero y actualizaciones para mejorar tu nave.
Además, en su propia página tiene un sistema de scripting para que los jugadores puedan crearse sus propias misiones para jugar contra otros jugadores.
URL | ASCIISector
¿Conoces algún comando o programa similar que no esté en la lista y merezca la pena reseñar? ¡Indícalo en los comentarios y cuéntanos de que se trata!
EXTRA: El artículo ha terminado en portada de menéame, y algunos usuarios nos van dejando ciertas curiosidades extra que no estaban en la lista. Voy añadiendo algunas:

Nyan telnet cat

Un simpático Nyan cat vía telnet, simplemente conectando a la siguiente máquina:
telnet miku.acm.uiuc.edu Curiosidad aportada por KernelPanic.

MUD multijugador en español

Otra curiosidad es la posibilidad de jugar a Reinos de leyendas, un juego de rol multijugador en español, conectando también vía telnet:
telnet rlmud.org 5001 Curiosidad aportada por eddard.

Otros

  • moon-buggy: El clásico de plataformas, en el que hay que ir saltando obstáculos, ahora en versión ASCII. Gracias a Rodd.
  • aalib: Librería de gráficos GFX ASCII. Puedes probar con el comando bb. Gracias a Tk421 y LordDeath.
  • figlet: Con figlet o banner podrás hacer textos ASCII, como en el mencionado toilet. Gracias a DamiaSoler.
  • tomenet: Otro juego multijugador de mazmorras basado en J.R.Tolkien, online y a tiempo real. Gracias a Poya.

10 comandos interesantes para Linux

http://www.emezeta.com/articulos/10-comandos-interesantes-para-linux

Recopilación de 10 comandos útiles e interesantes para nuestra distribución favorita de GNU/Linux y que quizás no conocías.
Los administradores de sistemas y usuarios avanzados siempre echan mano de su querida línea de comandos o terminal para realizar tareas de una forma más rápida y eficiente. Sin embargo, aún muchos son reacios a utilizarla porque creen que es algo demasiado complejo.
A continuación, vamos a dar un repaso a una serie de comandos destinados a ejecutarse desde una terminal (incluso remotamente, sin necesidad de disponer de una interfaz gráfica), realizando ciertas tareas en muy poco tiempo y apenas algo de esfuerzo. La mayoría de estos comandos son programas que se pueden instalar facilmente mediante apt-get install (o el gestor de paquetes de tu distribución).

1. Controlar el ancho de banda del sistema

Es posible que queramos monitorizar el consumo de la conexión a Internet por parte del equipo en el que estamos, conociendo así el ancho de banda consumido. Esto se puede realizar de forma muy sencilla mediante el comando bmon (Bandwidth Monitor).
Este comando nos mostrará un sencillo panel con las diferentes tarjetas de red del sistema y el consumo de Internet que están realizando (RX = recibido = descarga, TX = transmitido = subida):
Pulsando g también podemos ver una pequeña «pseudo-gráfica» que representa la evolución del ancho de banda utilizado conforme pasa el tiempo, o pulsando d una tabla de estadísticas más detalladas.
Si esto nos parece poco aproximado, podemos utilizar nethogs, un comando que nos informará del consumo de ancho de banda por proceso o aplicación, muy útil para saber que programa está enviando o recibiendo información:
Por último, si en lugar de monitorizar, lo que queremos es restringir el ancho de banda para limitar el uso de Internet por parte de un equipo en la red, podemos hacer uso de wondershaper, que nos permitirá limitar el ancho de banda:
sudo wondershaper eth0 1024 512 El ejemplo anterior limita la conexión a 1024kbps de bajada y 512kbps de subida.
Bonus: Si te interesa conocer algunos trucos para conseguir exprimir tu conexión a Internet al máximo, echa un vistazo al artículo Internet más rápido.

3. «Refuerzo negativo» para disléxicos

Con un simple apt-get install sl (o nuestro gestor de paquetes correspondiente) tendremos instalado este «refuerzo para disléxicos».
Steam Locomotive (sl) es un comando ideado para ser ejecutado cuando el usuario escribe mal el comando ls (listar ficheros), y mostrarnos un lento tren a modo de castigo para que no se vuelva a repetir otra vez.
Bonus: Si te interesan más curiosidades como esta (algunas completamente inútiles), puedes echar un ojo al artículo 20 curiosidades geeks para terminales Linux. ¡También cuento como ponerle sonido al tren para hacerlo más irritante!

4. Buscar archivos duplicados

Cuando tenemos gran cantidad de archivos almacenados en nuestros discos, otro problema clásico es el de tener archivos duplicados (imágenes, videos, mp3...). Este sencillo comando permite buscar y mostrarnos los archivos duplicados detectados en la ruta especificada:
También existe findimagedupes, que realiza una búsqueda de imágenes duplicadas de forma visual.
Bonus: Para Windows, la mejor alternativa a fdupes es DoubleKiller, mientras que para búsquedas visuales de imágenes duplicadas, la mejor opción es VisiPics. Puedes encontrar ambos en 12 programas gratuitos para eliminar ficheros duplicados.

5. Navegar desde una terminal de texto

Si estamos conectados desde una terminal de texto (sin interfaz gráfico) o de forma remota vía SSH (por ejemplo) nos puede interesar consultar alguna página o buscar determinado sitio web. Para ello podemos utilizar los navegadores de modo texto:

Lynx

Lynx es quizás mi preferido debido a su potencia y gran cantidad de parámetros personalizables. No sólo es un excelente navegador de modo texto, sino que además permite la utilización del parámetro --dump o --source para obtener texto o código HTML para su posterior procesamiento, por ejemplo:
eog `lynx --dump xkcd.com | egrep imgs.xkcd` La línea anterior, obtiene el texto de la web de XKCD y extrae con egrep la imagen de su última tira, la cuál la muestra con el visor de imágenes eog.

w3m

Por otro lado, también tenemos a nuestra disposición w3m, un navegador más sencillo, pero igualmente interesante que nos puede servir de alternativa a Lynx:

Elinks

Si ninguno de estos dos navegadores nos agrada, también podemos utilizar elinks, un navegador de texto un poco más sencillo, con menús desplegables que nos permiten seleccionar diferentes opciones de una forma más cómoda, sin recordar los atajos o teclas necesarias para realizar ciertas tareas:

6. Conversión de formatos de archivos multimedia

Una de las soluciones más completas para la conversión de formatos de audio o video es ffmpeg. Mediante este comando podemos realizar multitud de tareas como conversión de MP4 a XViD, MP3 a OGG, extraer sonido de un video a MP3, convertir un video en un GIF animado, o incluso capturar nuestra actividad en pantalla en video (screencast).
Eso sí, la sintaxis del programa da para 2 ó 3 artículos más (o varios tomos), por lo que comentaré sólo uno de sus posibles usos: convertir de .flv a .avi (XViD)
ffmpeg -i video.flv -c:v mpeg4 -vtag xvid video.avi Existen algunas interfaces gráficas para ffmpeg como WinFF o Avanti, si no quieres complicarte con parámetros y opciones.

7. Montar una cuenta SSH remota como carpeta local

Es posible montar la carpeta remota de una cuenta SSH como una carpeta local de nuestro sistema, permitiéndonos un acceso más rápido, fácil y cómodo. Para ello, basta con escribir:
sshfs user@www.dominio.com:/home/user /mnt/carpeta Donde user es el nombre del usuario de la cuenta SSH, www.dominio.com es la IP o dominio a conectar, /home/user la carpeta remota y /mnt/carpeta la carpeta local donde será montada.
Además, existe SSHFS Manager, un entorno gráfico para sshfs que nos permitirá hacer esto mismo desde un entorno Windows.
También puedes utilizar el comando scp (cp vía ssh) para realizar copias de archivos a través de SSH como te indico en el siguiente manual básico: 10 comandos para trabajar en GNU/Linux.

8. Realizar modificaciones en varios archivos

Imagina el siguiente escenario: 300 archivos con textos a modificar. ¿Cómo lo hacemos? ¿Abrimos y modificamos cada archivo uno por uno? ¿Creamos un script que recorra todos los archivos y vaya modificando los textos? No. Más fácil y rápido:
sed -i 's/paco/Francisco/g' *.txt Este pequeño ejemplo, reemplaza el texto «paco» por «Francisco» en todos los archivos con extensión txt. ¿Fácil y rápido, no?
En editores de texto basados en terminal hablo de sed, vim, mcedit y otros editores que pueden resultarte útiles y que permiten reemplazar texto utilizando expresiones regulares. Awk es otro magnífico lenguaje muy potente para manipulación de texto.

9. Desproteger archivos PDF

Es posible que más de una vez te hayas encontrado con archivos PDF que se encuentran protegidos y no permiten imprimir, editar o incluso copiar su contenido. Podemos utilizar qpdf para desproteger estos archivos y generar un nuevo archivo PDF sin protección:
qpdf --decrypt protected.pdf unprotected.pdf Obviamente, si el archivo PDF está protegido con un password, habrá que especificarlo con el parámetro --password, o utilizar algún comando como pdfcrack para intentar reventarlo.
Bonus: ¿Interesado en más operaciones similares? Echa un vistazo a 10 operaciones útiles con archivos PDF: Separar páginas, añadir marca de agua, rotar páginas, etc...

10. Descargar archivos directamente (con resume)

¿Que necesidad hay de abrir un navegador si sabemos exactamente la URL del archivo a descargar? Ninguna. Por eso lo mejor es utilizar el comando wget y descargarlo directamente.
Además, si utilizas el parámetro -c puedes activar el soporte para continuar descargas interrumpidas, y en el caso de haber descargado una parcialmente, no se elimina el archivo descargado, permitiendo continuar por donde iba, como se puede ver en la siguiente imagen:
Bonus: En Windows, existe una versión con interfaz llamada wackget, que hace las veces de gestor de descarga minimalista, y que puedes encontrar en el artículo 20 programas para hacer Windows más cómodo.

jueves, 26 de febrero de 2015

jueves, 19 de febrero de 2015

Resetear password de root en PostgreSQL

El archivo de configuración pg_hba.conf (hba: host-based authentication) mantiene la configuración de autenticación de los clientes por host al servidor postgresql. La ubicación del archivo puede depender del sistema operativo e inclusive de la versión de postgresql.
En un sistema ubuntu 9.04 y con la versión 8.4 de postgres se puede encontrar en:
/etc/postgresql/8.4/main/pg_hba.conf
Si no, es posible buscarlo con:
# locate pg_hba.conf
Cada registro del archivo tiene uno de los siguiente 7 formatos posibles:
local      database  user  auth-method  [auth-options]
host       database  user  CIDR-address  auth-method  [auth-options]
hostssl    database  user  CIDR-address  auth-method  [auth-options]
hostnossl  database  user  CIDR-address  auth-method  [auth-options]
host       database  user  IP-address  IP-mask  auth-method  [auth-options]
hostssl    database  user  IP-address  IP-mask  auth-method  [auth-options]
hostnossl  database  user  IP-address  IP-mask  auth-method  [auth-options]
Si quisiéramos cambiar la password de superusuario (“postgres” por default) por que nos la olvidamos, la posibilidad de solucionarlo es aprovechar la funcionalidad de este archivo de configuración y más precisamente del campo “auth-method”, seteando al mismo como método “trust” (en español, “método de confianza”), el cual da vía libre de autenticación a los clientes que matcheen con el registro.
Una posibilidad entonces para acceder a la base de datos by-passeando la autentificación es editar la regla que nos matchea y cambiar el método de “md5” a “trust”. Otra posibilidad es agregar una nueva regla, lo que quizás sea más seguro porque podemos definir muy precisamente la dirección ip del host, base de datos y usuario de libre acceso.
Por ejemplo podemos agregar la siguiente regla:
host template1 postgres 127.0.0.1 255.255.255.0 trust
Con la línea anterior, al iniciar una conexión a la base de datos template1, con usuario postgres y desde el host local, va a autorizar la misma sin necesidad de ingresar la password.
NOTA: al agregar la línea en el archivo hay que tener en cuenta que postgres matchea con el primer registro que se adecúe  a los datos de la conexión y no continua chequeando los siguientes líneas.
  • Reiniciamos el servicio.
# /etc/init.d/postgresql-8.4 restart
  • Ahora, ya recargada la configuración y libre el paso para conectarnos a la base de datos, conectamos y cambiamos la password.
 $ psql -U postgres -h 127.0.0.1 template1
#template1> ALTER USER postgres with password 'ElNuevoPassword';
#template1>
  • En este punto ya está reseteada la contraseña del usuario, pero queda por volver atrás los cambios para que vuelva a requerirla, para lo que entonces, si habíamos agregado una nueva línea en el pg_hba.conf habría que eliminarla (o comentarla con #) o si solo editamos el método de autenticación de “md5” a “trust” en alguna linea habría que volverlo a “md5”. Por último reiniciamos nuevamente.
# /etc/init.d/postgresql-8.4 restart.
Y si nos conectamos ahora nuevamente con psql debería pedirlos la password.
$ psql -U postgres -h 127.0.0.1 template1
Contraseña para usuario postgres:
#template1>
#template1> \q

martes, 11 de noviembre de 2014

CAMBIAR ENCODING DE UTF-8 A LATIN1 EN POSTGRESQL

CAMBIAR ENCODING DE UTF-8 A LATIN1 EN POSTGRESQL 

fuente:  http://ingdesistemasvzla.blogspot.com/2011/02/cambiar-encoding-de-utf-8-latin1-en.html

El cambio es muy simple, primero ingresamos al terminal toot linux y ejecutamos

su – postgres
Ya estamos como usuario postgres
Entramos al Postgresql ejecutando
psql template1 postgres

Ahora veamos cual es la codificación actual de las base de datos que tenemos un nuestro servidor digitando lo siguiente:
\l
Debe salir algo similar a lo siguiente:
template1=# \l
Listado de base de datos
Nombre   |  Dueño   | Codificación
———–+———-+————–
PRUEBA  | postgres | UTF8
postgres    | postgres | UTF8
template0 | postgres | UTF8
template1  | postgres | UTF8
(4 filas)
Ahora vamos a cambiar el encoder a la Base de Datos PRUEBA, para lo cual vamos a digitar lo siguiente:
update pg_database set encoding=8 where datname='PRUEBA';
Ahora volvemos a listar las Base de Datos digitando: \l   y debe aparecer algo similar a:
Listado de base de datos
Nombre   |  Dueño   | Codificación
———–+———-+————–
PRUEBA  | postgres | LATIN1
postgres    | postgres | UTF8
template0 | postgres | UTF8
template1  | postgres | UTF8
(4 filas)
Con eso  ya tenemos la Base de Datos en LATIN1, ahora, ustedes se preguntarán porque 8 en encoding? les pongo la tabla con el No. de encoding. 
Para que coloquen el valor que les convengan ejemplo si quieren pasar a LATIN9 sería
update pg_database set encoding=16 where datname='PRUEBA';

miércoles, 5 de noviembre de 2014

Comandos de Linux


Información del sistema

  1. arch: mostrar la arquitectura de la máquina (1).
  2. uname -m: mostrar la arquitectura de la máquina (2).
  3. uname -r: mostrar la versión del kernel usado.
  4. dmidecode -q: mostrar los componentes (hardware) del sistema.
  5. hdparm -i /dev/hda: mostrar las características de un disco duro.
  6. hdparm -tT /dev/sda: realizar prueba de lectura en un disco duro.
  7. cat /proc/cpuinfo: mostrar información de la CPU.
  8. cat /proc/interrupts: mostrar las interrupciones.
  9. cat /proc/meminfo: verificar el uso de memoria.
  10. cat /proc/swaps: mostrar ficheros swap.
  11. cat /proc/version: mostrar la versión del kernel.
  12. cat /proc/net/dev: mostrar adaptadores de red y estadísticas.
  13. cat /proc/mounts: mostrar el sistema de ficheros montado.
  14. lspci -tv: mostrar los dispositivos PCI.
  15. lsusb -tv: mostrar los dispositivos USB.
  16. date: mostrar la fecha del sistema.
  17. cal 2011: mostrar el almanaque de 2011.
  18. cal 07 2011: mostrar el almanaque para el mes julio de 2011.
  19. date 041217002011.00: colocar (declarar, ajustar) fecha y hora.
  20. clock -w: guardar los cambios de fecha en la BIOS.

Apagar (Reiniciar Sistema o Cerrar Sesión)

  1. shutdown -h now: apagar el sistema (1).
  2. init 0: apagar el sistema (2).
  3. telinit 0: apagar el sistema (3).
  4. halt: apagar el sistema (4).
  5. shutdown -h hours:minutes &: apagado planificado del sistema.
  6. shutdown -c: cancelar un apagado planificado del sistema.
  7. shutdown -r now: reiniciar (1).
  8. reboot: reiniciar (2).
  9. logout: cerrar sesión.

Archivos y Directorios

  1. cd /home: entrar en el directorio “home”.
  2. cd ..: retroceder un nivel.
  3. cd ../..: retroceder 2 niveles.
  4. cd: ir al directorio raíz.
  5. cd ~user1: ir al directorio user1.
  6. cd -: ir (regresar) al directorio anterior.
  7. pwd: mostrar el camino del directorio de trabajo.
  8. ls: ver los ficheros de un directorio.
  9. ls -F: ver los ficheros de un directorio.
  10. ls -l: mostrar los detalles de ficheros y carpetas de un directorio.
  11. ls -a: mostrar los ficheros ocultos.
  12. ls *[0-9]*: mostrar los ficheros y carpetas que contienen números.
  13. tree: mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.(1)
  14. lstree: mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.(2)
  15. mkdir dir1: crear una carpeta o directorio con nombre ‘dir1′.
  16. mkdir dir1 dir2: crear dos carpetas o directorios simultáneamente (Crear dos directorios a la vez).
  17. mkdir -p /tmp/dir1/dir2: crear un árbol de directorios.
  18. rm -f file1: borrar el fichero llamado ‘file1′.
  19. rmdir dir1: borrar la carpeta llamada ‘dir1′.
  20. rm -rf dir1: eliminar una carpeta llamada ‘dir1′ con su contenido de forma recursiva. (Si lo borro recursivo estoy diciendo que es con su contenido).
  21. rm -rf dir1 dir2: borrar dos carpetas (directorios) con su contenido de forma recursiva.
  22. mv dir1 new_dir: renombrar o mover un fichero o carpeta (directorio).
  23. cp file1: copiar un fichero.
  24. cp file1 file2: copiar dos ficheros al unísono.
  25. cp dir /* .: copiar todos los ficheros de un directorio dentro del directorio de trabajo actual.
  26. cp -a /tmp/dir1 .: copiar un directorio dentro del directorio actual de trabajo.
  27. cp -a dir1: copiar un directorio.
  28. cp -a dir1 dir2: copiar dos directorio al unísono.
  29. ln -s file1 lnk1: crear un enlace simbólico al fichero o directorio.
  30. ln file1 lnk1: crear un enlace físico al fichero o directorio.
  31. touch -t 0712250000 file1: modificar el tiempo real (tiempo de creación) de un fichero o directorio.
  32. file file1: salida (volcado en pantalla) del tipo mime de un fichero texto.
  33. iconv -l: listas de cifrados conocidos.
  34. iconv -f fromEncoding -t toEncoding inputFile > outputFile: crea una nueva forma del fichero de entrada asumiendo que está codificado en fromEncoding y convirtiéndolo a ToEncoding.
  35. find . -maxdepth 1 -name *.jpg -print -exec convert ”{}” -resize 80×60 “thumbs/{}” \;: agrupar ficheros redimensionados en el directorio actual y enviarlos a directorios en vistas de miniaturas (requiere convertir desde ImagemagicK).

Encontrar archivos

  1. find / -name file1: buscar fichero y directorio a partir de la raíz del sistema.
  2. find / -user user1: buscar ficheros y directorios pertenecientes al usuario ‘user1′.
  3. find /home/user1 -name \*.bin: buscar ficheros con extensión ‘. bin’ dentro del directorio ‘/ home/user1′.
  4. find /usr/bin -type f -atime +100: buscar ficheros binarios no usados en los últimos 100 días.
  5. find /usr/bin -type f -mtime -10: buscar ficheros creados o cambiados dentro de los últimos 10 días.
  6. find / -name \*.rpm -exec chmod 755 ‘{}’ \;: buscar ficheros con extensión ‘.rpm’ y modificar permisos.
  7. find / -xdev -name \*.rpm: Buscar ficheros con extensión ‘.rpm’ ignorando los dispositivos removibles como cdrom, pen-drive, etc.…
  8. locate \*.ps: encuentra ficheros con extensión ‘.ps’ ejecutados primeramente con el command ‘updatedb’.
  9. whereis halt: mostrar la ubicación de un fichero binario, de ayuda o fuente. En este caso pregunta dónde está el comando ‘halt’.
  10. which halt: mostrar la senda completa (el camino completo) a un binario / ejecutable.

Montando un sistema de ficheros

  1. mount /dev/hda2 /mnt/hda2: montar un disco llamado hda2. Verifique primero la existencia del directorio ‘/ mnt/hda2′; si no está, debe crearlo.
  2. umount /dev/hda2: desmontar un disco llamado hda2. Salir primero desde el punto ‘/ mnt/hda2.
  3. fuser -km /mnt/hda2: forzar el desmontaje cuando el dispositivo está ocupado.
  4. umount -n /mnt/hda2: correr el desmontaje sin leer el fichero /etc/mtab. Útil cuando el fichero es de solo lectura o el disco duro está lleno.
  5. mount /dev/fd0 /mnt/floppy: montar un disco flexible (floppy).
  6. mount /dev/cdrom /mnt/cdrom: montar un cdrom / dvdrom.
  7. mount /dev/hdc /mnt/cdrecorder: montar un cd regrabable o un dvdrom.
  8. mount /dev/hdb /mnt/cdrecorder: montar un cd regrabable / dvdrom (un dvd).
  9. mount -o loop file.iso /mnt/cdrom: montar un fichero o una imagen iso.
  10. mount -t vfat /dev/hda5 /mnt/hda5: montar un sistema de ficheros FAT32.
  11. mount /dev/sda1 /mnt/usbdisk: montar un usb pen-drive o una memoria (sin especificar el tipo de sistema de ficheros).

Espacio de Disco

  1. df -h: mostrar una lista de las particiones montadas.
  2. ls -lSr |more: mostrar el tamaño de los ficheros y directorios ordenados por tamaño.
  3. du -sh dir1: Estimar el espacio usado por el directorio ‘dir1′.
  4. du -sk * | sort -rn: mostrar el tamaño de los ficheros y directorios ordenados por tamaño.
  5. rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n: mostrar el espacio usado por los paquetes rpm instalados organizados por tamaño (Fedora, Redhat y otros).
  6. dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n: mostrar el espacio usado por los paquetes instalados, organizados por tamaño (Ubuntu, Debian y otros).

Usuarios y Grupos

  1. groupadd nombre_del_grupo: crear un nuevo grupo.
  2. groupdel nombre_del_grupo: borrar un grupo.
  3. groupmod -n nuevo_nombre_del_grupo viejo_nombre_del_grupo: renombrar un grupo.
  4. useradd -c “Name Surname ” -g admin -d /home/user1 -s /bin/bash user1: Crear un nuevo usuario perteneciente al grupo “admin”.
  5. useradd user1: crear un nuevo usuario.
  6. userdel -r user1: borrar un usuario (‘-r’ elimina el directorio Home).
  7. usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1: cambiar los atributos del usuario.
  8. passwd: cambiar contraseña.
  9. passwd user1: cambiar la contraseña de un usuario (solamente por root).
  10. chage -E 2011-12-31 user1: colocar un plazo para la contraseña del usuario. En este caso dice que la clave expira el 31 de diciembre de 2011.
  11. pwck: chequear la sintaxis correcta el formato de fichero de ‘/etc/passwd’ y la existencia de usuarios.
  12. grpck: chequear la sintaxis correcta y el formato del fichero ‘/etc/group’ y la existencia de grupos.
  13. newgrp group_name: registra a un nuevo grupo para cambiar el grupo predeterminado de los ficheros creados recientemente.

Permisos en Ficheros (Usa ”+” para colocar permisos y ”-” para eliminar)

  1. ls -lh: Mostrar permisos.
  2. ls /tmp | pr -T5 -W$COLUMNS: dividir la terminal en 5 columnas.
  3. chmod ugo+rwx directory1: colocar permisos de lectura ®, escritura (w) y ejecución(x) al propietario (u), al grupo (g) y a otros (o) sobre el directorio ‘directory1′.
  4. chmod go-rwx directory1: quitar permiso de lectura ®, escritura (w) y (x) ejecución al grupo (g) y otros (o) sobre el directorio ‘directory1′.
  5. chown user1 file1: cambiar el dueño de un fichero.
  6. chown -R user1 directory1: cambiar el propietario de un directorio y de todos los ficheros y directorios contenidos dentro.
  7. chgrp group1 file1: cambiar grupo de ficheros.
  8. chown user1:group1 file1: cambiar usuario y el grupo propietario de un fichero.
  9. find / -perm -u+s: visualizar todos los ficheros del sistema con SUID configurado.
  10. chmod u+s /bin/file1: colocar el bit SUID en un fichero binario. El usuario que corriendo ese fichero adquiere los mismos privilegios como dueño.
  11. chmod u-s /bin/file1: deshabilitar el bit SUID en un fichero binario.
  12. chmod g+s /home/public: colocar un bit SGID en un directorio –similar al SUID pero por directorio.
  13. chmod g-s /home/public: desabilitar un bit SGID en un directorio.
  14. chmod o+t /home/public: colocar un bit STIKY en un directorio. Permite el borrado de ficheros solamente a los dueños legítimos.
  15. chmod o-t /home/public: desabilitar un bit STIKY en un directorio.

Atributos especiales en ficheros (Usa ”+” para colocar permisos y ”-” para eliminar)

  1. chattr +a file1: permite escribir abriendo un fichero solamente modo append.
  2. chattr +c file1: permite que un fichero sea comprimido / descomprimido automaticamente.
  3. chattr +d file1: asegura que el programa ignore borrar los ficheros durante la copia de seguridad.
  4. chattr +i file1: convierte el fichero en invariable, por lo que no puede ser eliminado, alterado, renombrado, ni enlazado.
  5. chattr +s file1: permite que un fichero sea borrado de forma segura.
  6. chattr +S file1: asegura que un fichero sea modificado, los cambios son escritos en modo synchronous como con sync.
  7. chattr +u file1: te permite recuperar el contenido de un fichero aún si este está cancelado.
  8. lsattr: mostrar atributos especiales.

Archivos y Ficheros comprimidos

  1. bunzip2 file1.bz2: descomprime in fichero llamado ‘file1.bz2′.
  2. bzip2 file1: comprime un fichero llamado ‘file1′.
  3. gunzip file1.gz: descomprime un fichero llamado ‘file1.gz’.
  4. gzip file1: comprime un fichero llamado ‘file1′.
  5. gzip -9 file1: comprime con compresión máxima.
  6. rar a file1.rar test_file: crear un fichero rar llamado ‘file1.rar’.
  7. rar a file1.rar file1 file2 dir1: comprimir ‘file1′, ‘file2′ y ‘dir1′ simultáneamente.
  8. rar x file1.rar: descomprimir archivo rar.
  9. unrar x file1.rar: descomprimir archivo rar.
  10. tar -cvf archive.tar file1: crear un tarball descomprimido.
  11. tar -cvf archive.tar file1 file2 dir1: crear un archivo conteniendo ‘file1′, ‘file2′ y’dir1′.
  12. tar -tf archive.tar: mostrar los contenidos de un archivo.
  13. tar -xvf archive.tar: extraer un tarball.
  14. tar -xvf archive.tar -C /tmp: extraer un tarball en / tmp.
  15. tar -cvfj archive.tar.bz2 dir1: crear un tarball comprimido dentro de bzip2.
  16. tar -xvfj archive.tar.bz2: descomprimir un archivo tar comprimido en bzip2
  17. tar -cvfz archive.tar.gz dir1: crear un tarball comprimido en gzip.
  18. tar -xvfz archive.tar.gz: descomprimir un archive tar comprimido en gzip.
  19. zip file1.zip file1: crear un archivo comprimido en zip.
  20. zip -r file1.zip file1 file2 dir1: comprimir, en zip, varios archivos y directorios de forma simultánea.
  21. unzip file1.zip: descomprimir un archivo zip.

Paquetes RPM (Red Hat, Fedora y similares)

  1. rpm -ivh package.rpm: instalar un paquete rpm.
  2. rpm -ivh –nodeeps package.rpm: instalar un paquete rpm ignorando las peticiones de dependencias.
  3. rpm -U package.rpm: actualizar un paquete rpm sin cambiar la configuración de los ficheros.
  4. rpm -F package.rpm: actualizar un paquete rpm solamente si este está instalado.
  5. rpm -e package_name.rpm: eliminar un paquete rpm.
  6. rpm -qa: mostrar todos los paquetes rpm instalados en el sistema.
  7. rpm -qa | grep httpd: mostrar todos los paquetes rpm con el nombre “httpd”.
  8. rpm -qi package_name: obtener información en un paquete específico instalado.
  9. rpm -qg “System Environment/Daemons”: mostar los paquetes rpm de un grupo software.
  10. rpm -ql package_name: mostrar lista de ficheros dados por un paquete rpm instalado.
  11. rpm -qc package_name: mostrar lista de configuración de ficheros dados por un paquete rpm instalado.
  12. rpm -q package_name –whatrequires: mostrar lista de dependencias solicitada para un paquete rpm.
  13. rpm -q package_name –whatprovides: mostar la capacidad dada por un paquete rpm.
  14. rpm -q package_name –scripts: mostrar los scripts comenzados durante la instalación /eliminación.
  15. rpm -q package_name –changelog: mostar el historial de revisions de un paquete rpm.
  16. rpm -qf /etc/httpd/conf/httpd.conf: verificar cuál paquete rpm pertenece a un fichero dado.
  17. rpm -qp package.rpm -l: mostrar lista de ficheros dados por un paquete rpm que aún no ha sido instalado.
  18. rpm –import /media/cdrom/RPM-GPG-KEY: importar la firma digital de la llave pública.
  19. rpm –checksig package.rpm: verificar la integridad de un paquete rpm.
  20. rpm -qa gpg-pubkey: verificar la integridad de todos los paquetes rpm instalados.
  21. rpm -V package_name: chequear el tamaño del fichero, licencias, tipos, dueño, grupo, chequeo de resumen de MD5 y última modificación.
  22. rpm -Va: chequear todos los paquetes rpm instalados en el sistema. Usar con cuidado.
  23. rpm -Vp package.rpm: verificar un paquete rpm no instalado todavía.
  24. rpm2cpio package.rpm | cpio –extract –make-directories *bin*: extraer fichero ejecutable desde un paquete rpm.
  25. rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm: instalar un paquete construido desde una fuente rpm.
  26. rpmbuild –rebuild package_name.src.rpm: construir un paquete rpm desde una fuente rpm.

Actualizador de paquetes YUM (Red Hat, Fedora y similares)

  1. yum install package_name: descargar e instalar un paquete rpm.
  2. yum localinstall package_name.rpm: este instalará un RPM y tratará de resolver todas las dependencies para ti, usando tus repositorios.
  3. yum update package_name.rpm: actualizar todos los paquetes rpm instalados en el sistema.
  4. yum update package_name: modernizar / actualizar un paquete rpm.
  5. yum remove package_name: eliminar un paquete rpm.
  6. yum list: listar todos los paquetes instalados en el sistema.
  7. yum search package_name: Encontrar un paquete en repositorio rpm.
  8. yum clean packages: limpiar un caché rpm borrando los paquetes descargados.
  9. yum clean headers: eliminar todos los ficheros de encabezamiento que el sistema usa para resolver la dependencia.
  10. yum clean all: eliminar desde los paquetes caché y ficheros de encabezado.

Paquetes Deb (Debian, Ubuntu y derivados)

  1. dpkg -i package.deb: instalar / actualizar un paquete deb.
  2. dpkg -r package_name: eliminar un paquete deb del sistema.
  3. dpkg -l: mostrar todos los paquetes deb instalados en el sistema.
  4. dpkg -l | grep httpd: mostrar todos los paquetes deb con el nombre “httpd”
  5. dpkg -s package_name: obtener información en un paquete específico instalado en el sistema.
  6. dpkg -L package_name: mostar lista de ficheros dados por un paquete instalado en el sistema.
  7. dpkg –contents package.deb: mostrar lista de ficheros dados por un paquete no instalado todavía.
  8. dpkg -S /bin/ping: verificar cuál paquete pertenece a un fichero dado.

Actualizador de paquetes APT (Debian, Ubuntu y derivados)

  1. apt-get install package_name: instalar / actualizar un paquete deb.
  2. apt-cdrom install package_name: instalar / actualizar un paquete deb desde un cdrom.
  3. apt-get update: actualizar la lista de paquetes.
  4. apt-get upgrade: actualizar todos los paquetes instalados.
  5. apt-get remove package_name: eliminar un paquete deb del sistema.
  6. apt-get check: verificar la correcta resolución de las dependencias.
  7. apt-get clean: limpiar cache desde los paquetes descargados.
  8. apt-cache search searched-package: retorna lista de paquetes que corresponde a la serie «paquetes buscados».

Ver el contenido de un fichero

  1. cat file1: ver los contenidos de un fichero comenzando desde la primera hilera.
  2. tac file1: ver los contenidos de un fichero comenzando desde la última línea.
  3. more file1: ver el contenido a lo largo de un fichero.
  4. less file1: parecido al commando ‘more’ pero permite salvar el movimiento en el fichero así como el movimiento hacia atrás.
  5. head -2 file1: ver las dos primeras líneas de un fichero.
  6. tail -2 file1: ver las dos últimas líneas de un fichero.
  7. tail -f /var/log/messages: ver en tiempo real qué ha sido añadido al fichero.

Manipulación de texto

  1. cat file1 file2 .. | command <> file1_in.txt_or_file1_out.txt: sintaxis general para la manipulación de texto utilizando PIPE, STDIN y STDOUT.
  2. cat file1 | command( sed, grep, awk, grep, etc…) > result.txt: sintaxis general para manipular un texto de un fichero y escribir el resultado en un fichero nuevo.
  3. cat file1 | command( sed, grep, awk, grep, etc…) » result.txt: sintaxis general para manipular un texto de un fichero y añadir resultado en un fichero existente.
  4. grep Aug /var/log/messages: buscar palabras “Aug” en el fichero ‘/var/log/messages’.
  5. grep ^Aug /var/log/messages: buscar palabras que comienzan con “Aug” en fichero ‘/var/log/messages’
  6. grep [0-9] /var/log/messages: seleccionar todas las líneas del fichero ‘/var/log/messages’ que contienen números.
  7. grep Aug -R /var/log/*: buscar la cadena “Aug” en el directorio ‘/var/log’ y debajo.
  8. sed ‘s/stringa1/stringa2/g’ example.txt: reubicar “string1” con “string2” en ejemplo.txt
  9. sed ‘/^$/d’ example.txt: eliminar todas las líneas en blanco desde el ejemplo.txt
  10. sed ‘/ *#/d; /^$/d’ example.txt: eliminar comentarios y líneas en blanco de ejemplo.txt
  11. echo ‘esempio’ | tr ‘[:lower:]‘ ‘[:upper:]‘: convertir minúsculas en mayúsculas.
  12. sed -e ‘1d’ result.txt: elimina la primera línea del fichero ejemplo.txt
  13. sed -n ‘/stringa1/p’: visualizar solamente las líneas que contienen la palabra “string1”.

Establecer caracter y conversión de ficheros

  1. dos2unix filedos.txt fileunix.txt: convertir un formato de fichero texto desde MSDOS a UNIX.
  2. unix2dos fileunix.txt filedos.txt: convertir un formato de fichero de texto desde UNIX a MSDOS.
  3. recode ..HTML < page.txt > page.html: convertir un fichero de texto en html.
  4. recode -l | more: mostrar todas las conversiones de formato disponibles.

Análisis del sistema de ficheros

  1. badblocks -v /dev/hda1: Chequear los bloques defectuosos en el disco hda1.
  2. fsck /dev/hda1: reparar / chequear la integridad del fichero del sistema Linux en el disco hda1.
  3. fsck.ext2 /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 2 en el disco hda1.
  4. e2fsck /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 2 en el disco hda1.
  5. e2fsck -j /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 3 en el disco hda1.
  6. fsck.ext3 /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 3 en el disco hda1.
  7. fsck.vfat /dev/hda1: reparar / chequear la integridad del fichero sistema fat en el disco hda1.
  8. fsck.msdos /dev/hda1: reparar / chequear la integridad de un fichero del sistema dos en el disco hda1.
  9. dosfsck /dev/hda1: reparar / chequear la integridad de un fichero del sistema dos en el disco hda1.

Formatear un sistema de ficheros

  1. mkfs /dev/hda1: crear un fichero de sistema tipo Linux en la partición hda1.
  2. mke2fs /dev/hda1: crear un fichero de sistema tipo Linux ext 2 en hda1.
  3. mke2fs -j /dev/hda1: crear un fichero de sistema tipo Linux ext3 (periódico) en la partición hda1.
  4. mkfs -t vfat 32 -F /dev/hda1: crear un fichero de sistema FAT32 en hda1.
  5. fdformat -n /dev/fd0: formatear un disco flooply.
  6. mkswap /dev/hda3: crear un fichero de sistema swap.

Trabajo con la SWAP

  1. mkswap /dev/hda3: crear fichero de sistema swap.
  2. swapon /dev/hda3: activando una nueva partición swap.
  3. swapon /dev/hda2 /dev/hdb3: activar dos particiones swap.

Salvas (Backup)

  1. dump -0aj -f /tmp/home0.bak /home: hacer una salva completa del directorio ‘/home’.
  2. dump -1aj -f /tmp/home0.bak /home: hacer una salva incremental del directorio ‘/home’.
  3. restore -if /tmp/home0.bak: restaurando una salva interactivamente.
  4. rsync -rogpav –delete /home /tmp: sincronización entre directorios.
  5. rsync -rogpav -e ssh –delete /home ip_address:/tmp: rsync a través del túnel SSH.
  6. rsync -az -e ssh –delete ip_addr:/home/public /home/local: sincronizar un directorio local con un directorio remoto a través de ssh y de compresión.
  7. rsync -az -e ssh –delete /home/local ip_addr:/home/public: sincronizar un directorio remoto con un directorio local a través de ssh y de compresión.
  8. dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’: hacer una salva de un disco duro en un host remoto a través de ssh.
  9. dd if=/dev/sda of=/tmp/file1: salvar el contenido de un disco duro a un fichero. (En este caso el disco duro es “sda” y el fichero “file1”).
  10. tar -Puf backup.tar /home/user: hacer una salva incremental del directorio ‘/home/user’.
  11. ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’: copiar el contenido de un directorio en un directorio remoto a través de ssh.
  12. ( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’: copiar un directorio local en un directorio remoto a través de ssh.
  13. tar cf – . | (cd /tmp/backup ; tar xf – ): copia local conservando las licencias y enlaces desde un directorio a otro.
  14. find /home/user1 -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents: encontrar y copiar todos los ficheros con extensión ‘.txt’ de un directorio a otro.
  15. find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2: encontrar todos los ficheros con extensión ‘.log’ y hacer un archivo bzip.
  16. dd if=/dev/hda of=/dev/fd0 bs=512 count=1: hacer una copia del MRB (Master Boot Record) a un disco floppy.
  17. dd if=/dev/fd0 of=/dev/hda bs=512 count=1: restaurar la copia del MBR (Master Boot Record) salvada en un floppy.

CD-ROM

  1. cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force: limpiar o borrar un cd regrabable.
  2. mkisofs /dev/cdrom > cd.iso: crear una imagen iso de cdrom en disco.
  3. mkisofs /dev/cdrom | gzip > cd_iso.gz: crear una imagen comprimida iso de cdrom en disco.
  4. mkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso data_cd: crear una imagen iso de un directorio.
  5. cdrecord -v dev=/dev/cdrom cd.iso: quemar una imagen iso.
  6. gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -: quemar una imagen iso comprimida.
  7. mount -o loop cd.iso /mnt/iso: montar una imagen iso.
  8. cd-paranoia -B: llevar canciones de un cd a ficheros wav.
  9. cd-paranoia – ”-3”: llevar las 3 primeras canciones de un cd a ficheros wav.
  10. cdrecord –scanbus: escanear bus para identificar el canal scsi.
  11. dd if=/dev/hdc | md5sum: hacer funcionar un md5sum en un dispositivo, como un CD.

Trabajo con la RED ( LAN y Wi-Fi)

  1. ifconfig eth0: mostrar la configuración de una tarjeta de red Ethernet.
  2. ifup eth0: activar una interface ‘eth0′.
  3. ifdown eth0: deshabilitar una interface ‘eth0′.
  4. ifconfig eth0 192.168.1.1 netmask 255.255.255.0: configurar una dirección IP.
  5. ifconfig eth0 promisc: configurar ‘eth0’en modo común para obtener los paquetes (sniffing).
  6. dhclient eth0: activar la interface ‘eth0′ en modo dhcp.
  7. route -n: mostrar mesa de recorrido.
  8. route add -net 0/0 gw IP_Gateway: configurar entrada predeterminada.
  9. route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1: configurar ruta estática para buscar la red ‘192.168.0.0/16′.
  10. route del 0/0 gw IP_gateway: eliminar la ruta estática.
  11. echo “1” > /proc/sys/net/ipv4/ip_forward: activar el recorrido ip.
  12. hostname: mostrar el nombre del host del sistema.
  13. host www.example.com: buscar el nombre del host para resolver el nombre a una dirección ip(1).
  14. nslookup www.example.com: buscar el nombre del host para resolver el nombre a una direccióm ip y viceversa(2).
  15. ip link show: mostar el estado de enlace de todas las interfaces.
  16. mii-tool eth0: mostar el estado de enlace de ‘eth0′.
  17. ethtool eth0: mostrar las estadísticas de tarjeta de red ‘eth0′.
  18. netstat -tup: mostrar todas las conexiones de red activas y sus PID.
  19. netstat -tupl: mostrar todos los servicios de escucha de red en el sistema y sus PID.
  20. tcpdump tcp port 80: mostrar todo el tráfico HTTP.
  21. iwlist scan: mostrar las redes inalámbricas.
  22. iwconfig eth1: mostrar la configuración de una tarjeta de red inalámbrica.
  23. whois www.example.com: buscar en base de datos Whois.

Redes de Microsoft Windows (SAMBA)

  1. nbtscan ip_addr: resolución de nombre de red bios.
  2. nmblookup -A ip_addr: resolución de nombre de red bios.
  3. smbclient -L ip_addr/hostname: mostrar acciones remotas de un host en windows.

Tablas IP (CORTAFUEGOS)

  1. iptables -t filter -L: mostrar todas las cadenas de la tabla de filtro.
  2. iptables -t nat -L: mostrar todas las cadenas de la tabla nat.
  3. iptables -t filter -F: limpiar todas las reglas de la tabla de filtro.
  4. iptables -t nat -F: limpiar todas las reglas de la tabla nat.
  5. iptables -t filter -X: borrar cualquier cadena creada por el usuario.
  6. iptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT: permitir las conexiones telnet para entar.
  7. iptables -t filter -A OUTPUT -p tcp –dport http -j DROP: bloquear las conexiones HTTP para salir.
  8. iptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT: permitir las conexiones POP a una cadena delantera.
  9. iptables -t filter -A INPUT -j LOG –log-prefix “DROP INPUT”: registrando una cadena de entrada.
  10. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE: configurar un PAT (Puerto de traducción de dirección) en eth0, ocultando los paquetes de salida forzada.
  11. iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.0.0.2:22: redireccionar los paquetes diriguidos de un host a otro.

Monitoreando y depurando

  1. top: mostrar las tareas de linux usando la mayoría cpu.
  2. ps -eafw: muestra las tareas Linux.
  3. ps -e -o pid,args –forest: muestra las tareas Linux en un modo jerárquico.
  4. pstree: mostrar un árbol sistema de procesos.
  5. kill -9 ID_Processo: forzar el cierre de un proceso y terminarlo.
  6. kill -1 ID_Processo: forzar un proceso para recargar la configuración.
  7. lsof -p $$: mostrar una lista de ficheros abiertos por procesos.
  8. lsof /home/user1: muestra una lista de ficheros abiertos en un camino dado del sistema.
  9. strace -c ls >/dev/null: mostrar las llamadas del sistema hechas y recibidas por un proceso.
  10. strace -f -e open ls >/dev/null: mostrar las llamadas a la biblioteca.
  11. watch -n1 ‘cat /proc/interrupts’: mostrar interrupciones en tiempo real.
  12. last reboot: mostrar historial de reinicio.
  13. lsmod: mostrar el kernel cargado.
  14. free -m: muestra el estado de la RAM en megabytes.
  15. smartctl -A /dev/hda: monitorear la fiabilidad de un disco duro a través de SMART.
  16. smartctl -i /dev/hda: chequear si SMART está activado en un disco duro.
  17. tail /var/log/dmesg: mostrar eventos inherentes al proceso de carga del kernel.
  18. tail /var/log/messages: mostrar los eventos del sistema.

Otros comandos útiles

  1. apropos …keyword: mostrar una lista de comandos que pertenecen a las palabras claves de un programa; son útiles cuando tú sabes qué hace tu programa, pero de sconoces el nombre del comando.
  2. man ping: mostrar las páginas del manual on-line; por ejemplo, en un comando ping, usar la opción ‘-k’ para encontrar cualquier comando relacionado.
  3. whatis …keyword: muestra la descripción de lo que hace el programa.
  4. mkbootdisk –device /dev/fd0 `uname -r`: crear un floppy boteable.
  5. gpg -c file1: codificar un fichero con guardia de seguridad GNU.
  6. gpg file1.gpg: decodificar un fichero con Guardia de seguridad GNU.
  7. wget -r www.example.com: descargar un sitio web completo.
  8. wget -c www.example.com/file.iso: descargar un fichero con la posibilidad de parar la descargar y reanudar más tarde.
  9. echo ‘wget -c www.example.com/files.iso‘ | at 09:00: Comenzar una descarga a cualquier hora. En este caso empezaría a las 9 horas.
  10. ldd /usr/bin/ssh: mostrar las bibliotecas compartidas requeridas por el programa ssh.
  11. alias hh=’history’: colocar un alias para un commando –hh= Historial.
  12. chsh: cambiar el comando Shell.
  13. chsh –list-shells: es un comando adecuado para saber si tienes que hacer remoto en otra terminal.
  14. who -a: mostrar quien está registrado, e imprimir hora del último sistema de importación, procesos muertos, procesos de registro de sistema, procesos activos producidos por init, funcionamiento actual y últimos cambios del reloj del sistema.
    fuente:  http://blog.desdelinux.net/mas-de-400-comandos-para-gnulinux-que-deberias-conocer/