viernes 26 de febrero de 2010

Crear, Compilar y Ejecutar un Programa COBOL

En este artículo se vera como escribir un programa Hola Mundo básico en COBOL y ejecutarlo en Linux.

1. Escribir el Programa Hola Mundo en COBOL

Crea el programa holamundo usando el editor de texto Vim tal como se muestra a continuación:

$ vim holamundo

IDENTIFICATION DIVISION.
PROGRAM-ID. HOLA-MUNDO.
* programa simlpe hola mundo
PROCEDURE DIVISION.
DISPLAY Hola Mundo!'.
STOP RUN.

Nota: Los comentarios en COBOL empiezan con *.

2. Asegúrate que COBOL esta Instalado en tu Sistema

Te puedes asegurar que el compilador de COBOL lo tienes instalado haciendo lo siguiente:

$ whereis cobc
cobc: /usr/bin/cobc /usr/share/man/man1/cobc.1.gz

$ which cobc
/usr/bin/cobc

Instalar el compilador cobc

Si no tienes el compilador de COBOL, lo puedes instalar de la siguiente forma:

$ sudo apt-get install open-cobol

3. Compilar el Programa COBOL

Compilar el HolaMundo para que cree un ejecutable

$ cobc -free -x -o holamundo-exe holamundo

$ ls
holamundo holamundo-exe*

  • -free – usa el formato de fuente libre. Sin esta opción el programa en COBOL requiere cierto formato.
  • -x – construye el ejecutable.
  • -o ARCHIVO – sitúa la salida en un archivo especificado.

4. Ejecutar el Programa COBOL

Ejecútalo mencionando el nombre del programa

$./holamundo-exe
Hola Mundo!

jueves 25 de febrero de 2010

Particiones de Disco en Linux

A continuación les dejo una guía para crear particiones en Linux, podrás ver como Alocar sistema de ficheros y de intercambio, asegurarse que el sistema se pueda arrancar y afinar el diseño para el uso del sistema. Esta guía se puede usar también para prepararse para el examen LPI 101.

http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-102-1/index.html?ca=drs-

Como Crear una Memoria USB Bootable

A continuación dejo un enlace donde se muestra una guía para crear una memoria USB arrancable en Ubuntu de una forma muy fácil.

http://www.howtoforge.com/easy-way-to-create-bootable-ubuntu-usb-pendrive

miércoles 24 de febrero de 2010

El Núcleo de Linux Vale más de Mil Millones de Euros

Desarrollar el núcleo Linux en Europa y desde cero costaría algo más de 1000 millones de euros si se realizara por una sola organización. Esta es la estimación realizada por profesores de la Universidad de Oviedo, según la cual el valor incorporado anualmente a este producto fue de cerca de 100 millones de euros en 2005 a 2007 ascendiendo a algo más de 200 millones de euros en 2008. Este valor es equivalente a un 4% y 12% de las cifras reconocidas en las cuentas anuales del mismo año de Microsoft y Google, respectivamente, como gastos en I+D para el desarrollo de nuevos productos.

Leer más.

martes 23 de febrero de 2010

Mejorar Modo de Seguridad de YouTube con SafeSquid

Google anunció recientemente el "Modo de Seguridad" para YouTube. Cuando escoges el modo seguro (Safety Mode) aquellos vídeos con contenido para adultos, material objetable y restricción de edad, serán filtrados fuera de la búsqueda del sitio. Si un usuario ingresa directamente al enlace de alguno de estos vídeos, el modo Safety bloqueara su reproducción de este.

Pero el Modo Seguro de YouTube tiene algunos problemas. Esta basado en el navegador. Esto quiere decir que solo estará habilitado en el navegador que usaste para habilitarlo. Si un usuario ingresa desde la misma maquina pero usando otro navegador, el Modo de Seguridad no se aplicará. Tampoco es muy difícil saltarse el Modo de Seguridad, ya que esta basado en cookies, lo único que se necesita hacer es borrar las cookies de Youtube y el Modo de Seguridad se deshabilitara.

En el siguiente enlace se muestra una guía de como mejorar el Modo de Seguridad de Youtube usando SafeSquid.

http://www.howtoforge.com/how-to-enforce-youtube-safety-mode-to-block-objectionable-content-with-safesquid-content-filtering-proxy

Ubuntu One Music Store

Siguiendo el calendario de lanzamientos de Ubuntu, la próxima gran versión de la distribución de Linux por excelencia tendrá lugar el próximo mes de abril, y por lo que parece traerá novedades importantes. Una de ellas es su propia tienda musical, llamada Ubuntu One Music Store.

Leer más.

lunes 22 de febrero de 2010

Pinta el Nuevo Paint de Linux

Pinta, un editor de imágenes que necesitará de Mono y GTK para funcionar y que se basa en el código de Paint.NET, así que es como una especie de clon, un derivado de la versión windowsera para sistemas Linux y OS X. A pesar que se trata en una primerísima versión Pinta ya pinta, es decir que es una aplicación completamente funcional, con soporte para capas múltiples, historial y herramientas varias como pinceles y lápices de distintos tipos, de borrado, de formas, de selección o efectos de retoque como sepia, invertido y autoajuste.

Leer más.

KDE SC 4.4

KDE SC (antes KDE a secas) es una compilación de software muy completa, que cuenta con un entorno de escritorio (Plasma), un gestor de ventanas (KWin) y un amplio catálogo de aplicaciones. Basado en las librerías Qt, KDE se centra en el look and feel, esto es, el aspecto gráfico y las posibilidades de personalización.

Leer más.

viernes 19 de febrero de 2010

Obtener Codigo Fuente de Cualquier Comando de Linux

Para una distribución de la familia de Debian puedes obtener el código fuente de cualquier comando de Linux usando uno de estos dos métodos que se mencionan abajo.

Metodo 1: Obtener el codigo fuente usando apt-get

Paso 1: Añadir la URI de fuentes al sources.lst

$ cat /etc/apt/sources.list
deb-src http://ftp.de.debian.org/debian lenny main

$ apt-get update

Paso 2: Ejecutar apt-get source para obtener la fuente

Por ejemplo, para obtener el código fuente del comando netstat, se hace lo siguiente:

Sintaxis: apt-get source command-name

Ejemplo: apt-get source netstat

Método 2: Obtener el código fuente desde packages.debian.org

Si no estas muy seguro sobre el nombre del paquete, puedes navegar a través de la pagina ‘Sections’ aquí: http://packages.debian.org/stable/

  • Clic en el nombre del programa que deseas obtener la fuente.
  • Buscar el comando y darle clic sobre este.
  • En la barra de la derecha, tendrás un enlace para descargar el codigo fuente.

Ejemplo1: Descargar el código fuente del edito vim

Paso 1: Ir a la pagina de Lenny en packages.debian.org
Paso 2: Clic en el enlace que dice 'editors'.
Paso 3: Buscar e ir a la pagina del editor vim.
Paso 4: En barra de la derecha seleccionar downlaod: vim_7.1.314.orig.tar.gz

Nota: Para Ubuntu reemplazar http://packages.debian.org/ por http://packages.ubuntu.com

jueves 18 de febrero de 2010

Analizar una Red Local con Wireshark en Ubuntu

Wireshark es un analizador de protocolo de red que se puede usar para análisis de redes, resolucion de problemas, desarrollo de software, educación, etc. En el siguiente enlace se muestra una guía de como instalar y usar Wireshark en Ubuntu 9.10 para analizar el trafico en una red local.

http://www.howtoforge.com/network-analysis-with-wireshark-on-ubuntu-9.10

Usando Pipes para Cargar Data en DB2 Linux

Mover información o data desde una base de datos fuente en DB2 para Linux puede ser un reto, particularmente cuando la base de datos fuente es muy grande y no tienes espacio suficiente disponible para mantener los archivos de datos intermedios.

Con Linux puedes crear una tubería (pipe) con los comandos mkfifo o mknod. Dos procesos separados pueden acceder al pipe creado. El comando mkfifo crea un archivo FIFO. Puedes usar ese archivo FIFO para mover la información desde una aplicación a otra sin guardar la información en un archivo intermedio. De tal forma, ahorras espacio que de otro modo usarías para guardar un archivo temporal. El comando mknod también crea un pipe si especificas la opción p para el tipo.

Lo siguiente son ejemplos de los comandos para realizar los dos pasos de crear un pipe y cargar la data en DB2 en un ambiente Linux.

Paso 1 — Crear un pipe y enviar la información descomprimida al pipe:

$ mkfifo db2pipe
$ gunzip tabledata.gz > db2pipe

Paso 2 — usar el pipe para cargar la data en DB2:

$ db2 connect to sample
$ db2 "LOAD FROM db2pipe OF DEL INSERT INTO mytable"
$ db2 terminate

Crear Copias de Seguridad de MySQL usando AutoMySQLBackup

AutoMySQLBackup es un código en shell que te permite realizar copias de seguridad (backups) diariamente, semanalmente y mensualmente de tu base de datos de MySQL usando mysqldump. Puede hacer copias de múltiples base de datos, comprimir la copia de seguridad, hacer copias de base de datos remotas y enviar por correo el log. A continuación les dejo un enlace que explica como instalarlo y usarlo en Ubuntu 9.10 Server.

http://www.howtoforge.com/creating-mysql-backups-with-automysqlbackup-on-ubuntu-9.10

miércoles 17 de febrero de 2010

Logran Correr Ubuntu en Xperia X1

Un programador de XDA Developers logrado instalar Ubuntu 8.04 en Xperia X1. Aunque no es la versión mas reciente de Ubuntu es sorprendente ver Ubuntu funcionando en un X1. La funcionalidad es limitada. Si deseas probar como hacerlo puedes verlo aquí.

Video: Como Instalar DB2 en Linux

A continuación dejo un enlace para que puedas ver un vídeo de como instalar DB2 en Linux, por si acaso el vídeo esta en portugués pero si se entiende.

http://www.channeldb2.com/video/db2-on-linux

martes 16 de febrero de 2010

Intel y Nokia crean MeeGo

El Mobile World Congress de Barcelona se ha convertido en el centro tecnológico de esta semana y el lugar elegido por las grandes marcas para hacer sus anuncios. Nokia e Intel se han desmarcado con un anuncio conjunto en el que han presentado MeeGo, la plataforma conjunta, resultado de la unión de Moblin y Maemo.

MeeGo se presenta como un sistema preparado para funcionar en netbooks, dispositivos portátiles, sistemas en vehículos, televisiones y teléfonos multimedia. Básicamente se trata de una distribución Linux con soporte para ARM e Intel/Atom que utilizará Qt para construir su interfaz.

Leer más.

lunes 15 de febrero de 2010

Usando GAWK

Cuando grep y sed no son suficiente, gawk podría ofrecer el caballo de fuerza extra que necesitas. El siguiente tip contiene un ejemplo de algunas de las cosas que se podrían hacer con gwak.

Extraer la ultima columna de un archivo de texto, separado por espacio en blanco:

cat myfile | gawk '{print $NF}'

o:

gawk '{print $NF}' myfile

Listar el total de archivos perteneciente a cada usuario en el directorio actual:

/bin/ls -l | \
gawk 'NR > 1 {counts[$3]++;}
END {for (s in counts) {
printf(" %-15s : % 5d\n",
s, counts[s]);}}' | \
sort

Terminar un proceso (se puede usar para terminar un login colgado si puedes logearte remotamente a la estación desde otra maquina):

ps -elf | \
gawk -v me="$USER" '$3 == me {print $4}' | \
egrep -v $$ | \
xargs -i@@ kill -9 @@; kill -9 $$


Mas

Top 5 Los Mejores Firewall para Linux

1. IPTABLE

iptables es un programa que hace filtrado de paquetes, NAT y PAT. iptables es para IVv4 e ip6tables es para IPv6.

iptables necesita un kernel con ip_tables (incluyendo el kernel de Linux 2.4.x y 2.6.x). Usando iptables puedes ver, añadir, remover o modificar las reglas de filtrado de paquetes.

  • Pagina Web: http://www.netfilter.org
  • Autor: Rusty Russell
  • Ultima versión estable: 1.4.6
  • Licencia: GNU

2. IPCOP

IPCop es para usuarios de hogar y pequeñas oficinas. Es una distribución firewall de Linux, que requiere una PC separada de baja potencia para ejecutar el software. Puedes configurar las reglas del firewall desde una interface Web amigable. Es un firewall basado en Linux netfilter.

Puedes tomar una PC vieja y convertirla en una aplicación de seguridad para Internet con IPCop, la cual asegurara la red de un hogar o pequeña oficina y también mejorara la navegación por Internet manteniendo alguna información usada frecuentemente.

  • Pagina Web: http://www.ipcop.org
  • Ultima versión estable: 1.4.21
  • Licencia: Open source

3. Shorewall

La frase de Shorewall es iptables hecho fácil. También se le conoce como Shoreline Firewall. Esta basada en los sistemas iptables/ipchains de netfilter.

Si se te hace pesado entender las reglas de iptables, deberías probar Shorewall, ya que provee un alto nivel de abstracción de iptables usando archivos de texto.

Shorewall contiene los siguientes paquetes:

  • Shorewall – ayuda a crear firewall para IPv4.
  • Shorewall6 – ayuda a crear firewall para IPv6.
  • Shorewall-lite – ayuda a administrar múltiples firewalls para IPv4.
  • Shorewall6-lite. ayuda a administrar múltiples firewalls para IPv6.

  • Pagina Web: http://shorewall.net
  • Autor: Thomas M. Eastep
  • Ultima versión estable: 4.4.3
  • Licencia: GPLv2

4. UFW - Uncomplicated Firewall

UFW es un programa para la linea de comandos que ayuda a manejar las iptables. Provee algunos comandos sencillos para administrar las iptables. Gufw es una interface gráfica para el UFW que esta usado en Ubuntu. Es muy intuitivo y fácil de usar con las iptables. Puedes ejecutar Gufw en cualquier distribución Linux que tenga Python, GTK y ufw.

Para permitir acceso a ssh en UFW tienes que hacer lo siguiente:

$ sudo ufw allow ssh/tcp


  • Pagina Web: https://launchpad.net/ufw
  • Ultima versión estable: 0.27.1
  • Licencia: GNU

5. OpenBSD y PF

PF (packet filter) esta bajo licencia BSD y desarrollado sobre OpenBSD. PF Firewall esta instalado por defecto en OpenBSD, FreeBSD y NetBSD.

PF hace lo siguiente:

  • Filtrado de paquetes.
  • NAT
  • Redireccion de trafico (port forwarding).
  • Priorizacion y encolado de paquetes.
  • Packet Tagging (Politicas de filtro).
  • Capacidades de log excelentes.

  • Pagina Web: http://www.openbsd.org/faq/pf/
  • Autor: Daniel Hartmeier
  • Licencia: BSD

Dos Nuevas Versiones de Linux Mint

Este fin de semana han visto la luz dos nuevas versiones de Linux Mint 8. Se trata de la adaptación de la versión KDE de esta distribución a los 64 bits, Linux Mint 8 KDE64, la cual permitirá aprovechar al máximo procesadores como Intel Core 2 Quad, Intel Core 2 Duo o AMD Athlon X2 64.

Leer más.

viernes 12 de febrero de 2010

Configurar WebDAV con Apache2 Sobre Ubuntu 9.10 Server

En el siguiente enlace encontraras un tutorial para configurar WebDAV en Apache2 sobre Ubuntu 9.10 Server. WebDAV es un conjunto de extensiones para l protocolo HTTP que permite a los usuarios editar archivos directamente en el servidor Apache de tal forma que no necesiten descargar y subirlos via FTP. Claro que WebDAV tambien sirve para subir y descargar archivos.

http://www.howtoforge.com/how-to-set-up-webdav-with-apache2-on-ubuntu-9.10

miércoles 10 de febrero de 2010

Determinar Si Una Entrada de Shell Viene del Terminal o de un Pipe

Usando el comando stat e información del archivo de sistema proc, se puede determinar si la entrada de una sentencia (script) viene de un terminal o de un pipe.

La primera solución usa el comando stat para determinar que tipo de archivo esta conectado a la entrada estándar. Primero se busca que esta conectado a la salida estándar:

stdin="$(ls -l /dev/fd/0)"
stdin="${stdin/*-> /}"

El archivo /dev/fd/0 es la entrada estándar, el cual es un enlace simbólico, entonces se usa ls para obtener el archivo que esta enlazado. Entonces se remueve todo lo que coincida con *-> desde el comienzo del valor, lo cual te deja con el enlace al archivo.

Ahora se usa el comando stat para obtener el tipo de archivo:

ftype="$(stat --printf=%F $stdin)"

Luego se prueba el tipo de archivo:

if   [[ "$ftype" == 'character special file' ]]; then
echo Terminal
elif [[ "$ftype" == 'regular file' ]]; then
echo Pipe: $stdin
else
echo Unknown: $stdin
fi

Se puede probarlo vía:

$ sh ckpipe.sh
Terminal
$ sh ckpipe.sh "<"ckpipe.sh Pipe: .../ckpipe/ckpipe.sh
La siguiente solución es usando información del archivo proc. En el archivo proc los archivos para cada proceso aparecen en el directorio /proc/PROCESS_ID/fd:
$ ls -la /proc/self/fd
total 0
dr-x------ 2 mitch users  0 2010-02-10 11:04 .
dr-xr-xr-x 7 mitch users  0 2010-02-10 11:04 ..
lrwx------ 1 mitch users 64 2010-02-10 11:04 0 -> /dev/pts/2
lrwx------ 1 mitch users 64 2010-02-10 11:04 1 -> /dev/pts/2
lrwx------ 1 mitch users 64 2010-02-10 11:04 2 -> /dev/pts/2
lr-x------ 1 mitch users 64 2010-02-10 11:04 3 -> /proc/29328/fd
Así como en lo anterior se necesita el nombre del archivo que esta enlazado:
stdin="$(ls -l /proc/self/fd/0)"
stdin="${stdin/*-> /}"
Desde ahí se puede probar si esta enlazado al archivo /dev/pts:
if [[ "$stdin" =~ ^/dev/pts/[0-9] ]]; then
echo Terminal
else
echo Pipe: $stdin
fi
Y se prueba de la misma forma:
$ sh ckpipe2.sh
Terminal
$ sh ckpipe2.sh "<"ckpipe2.sh Pipe: .../ckpipe/ckpipe2.sh


Sentencias creadas por Mitch Frazier

Pantallazos Usando Compiz

Hay muchas programas para grabar pantallazos (screenshots), pero una forma de hacerlo más facil es usando Compiz, ya que este permite hacerlo practicamente con un solo boton.

En este enlace podrás ver un vídeo de como configurarlo.

Comandos del Kernel Usando el Sistema de LLamadas de Linux

Todo los días se usa el sistema de llamadas de Linux (Linux System Calls), pero sabes como se ejecuta un sistema de llamada desde el espacio del usuario al kernel? En el siguiente enlace podrás explorar la interfaz del sistema de llamadas (SCI), aprender como añadir nuevos sistemas de llamadas (y alternativas de como hacerlo) y descubrir utilidades relacionadas al SCI.

http://www.ibm.com/developerworks/linux/library/l-system-calls/index.html?ca=drs-

martes 9 de febrero de 2010

Sincronizar con Synchrorep

Una de las cuestiones que enseguida necesitamos cuando trabajamos con varios equipos o con un disco duro externo es la opción de sincronización de carpetas. Synchrorep es una opción de sincronización para Linux sencilla y eficaz que nos permitirá cubrir nuestras necesidades básicas si utilizamos este sistema operativo. Actualmente se encuentra en su versión 1.3.6 de desarrollo.

Leer más.

Los 10 Mejores Juegos para Linux del 2009

Esta es la lista de los 10 mejores juegos por categoría del 2009, según LinuxJuegos.

Acción 3D/FPS: Open Arena.

Estrategia: Battle Of Wesnoth.

Condución: Super Tux Karts.

MMORPG: Planeshift.

RPG: S.C.O.U.R.G.E.

Plataformas: Secret Maryo Chronicles.

Puzzle: Frozen Bubble.

Simulación Musical: Frets of Fire X.


Mas info.

Instalar Multiple Distribuciones Via PXE

El siguiente código (script) configurara un PXE en tu servidor, haciendo posible instalar distribuciones de Linux vía netboot.

El código ha sido probado en Ubuntu Karmic.

Requisitos: sed,wget y lftp, ejecutándose tftp en tu servidor.

  1. Editar las opciones de configuración.
  2. Ejecutar el código.
  3. Ahora puedes instalar Linux vía netboot.

El código:

#!/bin/bash
#
# Configuration
#
tftp_boot_dir=/var/lib/tftpboot
menu_bg_png_url=http://www.howtoforge.com/images/pxe_install_server_ubuntu_9.10
/howtoforge_pxe.png
#
ubuntu_stable=karmic
ubuntu_testing=lucid
#
debian_stable=lenny
debian_unstable=sid
debian_testing=squeeze
#
fedora_ver=12
#
centos_ver=5.4
#
mandriva_ver=2010.0
#
opensuse_ver=11.2
#
# DON'T TOUCH ANYTHING BELOW THIS
#
ubuntu_stable_url="http://archive.ubuntu.com/ubuntu/dists/$ubuntu_stable/main/
installer-i386/current/images/"
ubuntu_testing_url="http://archive.ubuntu.com/ubuntu/dists/$ubuntu_testing/main/
installer-i386/current/images/netboot/"
#
debian_stable_url="ftp://ftp.nl.debian.org/debian/dists/$debian_stable/main/
installer-i386/current/images/netboot/"
debian_unstable_url="ftp://ftp.nl.debian.org/debian/dists/$debian_unstable/main/
installer-i386/current/images/netboot/"
debian_testing_url="ftp://ftp.nl.debian.org/debian/dists/$debian_testing/main/
installer-i386/current/images/netboot/"
#
fedora_url="http://ftp-stud.fht-esslingen.de/pub/Mirrors/fedora.redhat.com/
linux/releases/$fedora_ver/Fedora/i386/os/images/pxeboot/"
#
centos_url="http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/$centos_ver/
os/i386/images/pxeboot/"
#
mandriva_url="http://ftp-stud.fht-esslingen.de/pub/Mirrors/Mandrivalinux/
official/$mandriva_ver/i586/isolinux/alt0/"
#
opensuse_url="http://download.opensuse.org/distribution/$opensuse_ver/
repo/oss/boot/i386/loader/"
#
# Make dirs exist
#
mkdir -p $tftp_boot_dir
cd $tftp_boot_dir
mkdir -p $tftp_boot_dir/ubuntu
mkdir -p $tftp_boot_dir/debian
mkdir -p $tftp_boot_dir/mandriva
mkdir -p $tftp_boot_dir/fedora
#
# Get Ubuntu Stable
#
echo "Getting Ubuntu Stable ($ubuntu_stable)"
echo "URL : $ubuntu_stable_url"
lftp -c "open $ubuntu_stable_url; mirror netboot/"
mv netboot/* $tftp_boot_dir
rm -fr netboot
rm -rf pxelinux.0/default
mv ubuntu-installer ubuntu/$ubuntu_stable
#
# Get Ubuntu Testing
#
echo "Getting Ubuntu Testing ($ubuntu_testing)"
echo "URL : $ubuntu_testing_url"
lftp -c "open $ubuntu_testing_url; mirror ubuntu-installer/"
mv ubuntu-installer $tftp_boot_dir/ubuntu/$ubuntu_testing
#
# Get Debian Stable
#
echo "Getting Debian Stable ($debian_stable)"
echo "URL : $debian_stable_url"
lftp -c "open $debian_stable_url; mirror debian-installer/"
mv debian-installer $tftp_boot_dir/debian/$debian_stable
#
#Debian UnStable
#
echo "Getting Debian UnStable ($debian_unstable)"
echo "URL : $debian_unstable_url"
lftp -c "open $debian_unstable_url; mirror debian-installer/"
mv debian-installer $tftp_boot_dir/debian/$debian_unstable
#
#Debian Testing
#
echo "Getting Debian Testing ($debian_testing)"
echo "URL : $debian_testing_url"
lftp -c "open $debian_testing_url; mirror debian-installer/"
mv debian-installer $tftp_boot_dir/debian/$debian_testing
#
# Get Fedora
#
echo "Getting Fedora ($fedora_ver"
echo "URL : $fedora_url"
mkdir -p fedora/$fedora_ver/i386
wget $fedora_url/initrd.img -O fedora/$fedora_ver/i386/initrd.img
wget $fedora_url/vmlinuz -O fedora/$fedora_ver/i386/vmlinuz
#
# Get CentOS
#
echo "Getting CentOS ($centos_ver"
echo "URL : $centos_url"
mkdir -p centos/$centos_ver/i386
wget $centos_url/initrd.img -O centos/$centos_ver/i386/initrd.img
wget $centos_url/vmlinuz -O centos/$centos_ver/i386/vmlinuz
#
# Get Mandriva
#
echo "Getting Mandriva ($mandriva_ver"
echo "URL : $mandriva_url"
mkdir -p mandriva/$mandriva_ver/i386
wget $mandriva_url/all.rdz -O mandriva/$mandriva_ver/i386/all.rdz
wget $mandriva_url/vmlinuz -O mandriva/$mandriva_ver/i386/vmlinuz
#
# Get Suse
#
echo "Getting Suse ($opensuse_ver"
echo "URL : $opensuse_url"
mkdir -p suse/$opensuse_ver/i386
wget $opensuse_url/initrd -O suse/$opensuse_ver/i386/initrd
wget $opensuse_url/linux -O suse/$opensuse_ver/i386/linux

#
# convert bootmenu Ubuntu(Stable)
#
OLD="ubuntu-installer"
NEW="ubuntu\/$ubuntu_stable"
DPATH="$tftp_boot_dir/ubuntu/$ubuntu_stable/i386/boot-screens/*.cfg"
BPATH="$tftp_boot_dir/backup/$ubuntu_stable"
TFILE="/tmp/out.tmp.$$"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done


#
# convert bootmenu Ubuntu(Testing)
#
OLD="ubuntu-installer"
NEW="ubuntu\/$ubuntu_testing"
DPATH="$tftp_boot_dir/ubuntu/$ubuntu_testing/i386/boot-screens/*.cfg"
BPATH="$tftp_boot_dir/backup/$ubuntu_testing"
TFILE="/tmp/out.tmp.$$"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done

#
# convert bootmenu Debian(Stable)
#
OLD="debian-installer"
NEW="debian\/$debian_stable"
DPATH="$tftp_boot_dir/debian/$debian_stable/i386/boot-screens/*.cfg"
BPATH="$tftp_boot_dir/backup/$debian_stable"
TFILE="/tmp/out.tmp.$$"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done

#
# convert bootmenu Debian(UnStable)
#
OLD="debian-installer"
NEW="debian\/$debian_unstable"
DPATH="$tftp_boot_dir/debian/$debian_unstable/i386/boot-screens/*.cfg"
BPATH="$tftp_boot_dir/backup/$debian_unstable"
TFILE="/tmp/out.tmp.$$"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done
DPATH="$tftp_boot_dir/debian/$debian_unstable/i386/boot-screens/kde/*.cfg"
BPATH="$tftp_boot_dir/backup/$debian_unstable/kde"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done

DPATH="$tftp_boot_dir/debian/$debian_unstable/i386/boot-screens/lxde/*.cfg"
BPATH="$tftp_boot_dir/backup/$debian_unstable/lxde"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done
DPATH="$tftp_boot_dir/debian/$debian_unstable/i386/boot-screens/xfce/*.cfg"
BPATH="$tftp_boot_dir/backup/$debian_unstable/xfce"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done


#
# convert bootmenu Debian(Testing)
#
OLD="debian-installer"
NEW="debian\/$debian_testing"
DPATH="$tftp_boot_dir/debian/$debian_testing/i386/boot-screens/*.cfg"
BPATH="$tftp_boot_dir/backup/$debian_testing"
TFILE="/tmp/out.tmp.$$"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done
DPATH="$tftp_boot_dir/debian/$debian_testing/i386/boot-screens/kde/*.cfg"
BPATH="$tftp_boot_dir/backup/$debian_testing/kde"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done

DPATH="$tftp_boot_dir/debian/$debian_testing/i386/boot-screens/lxde/*.cfg"
BPATH="$tftp_boot_dir/backup/$debian_testing/lxde"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done
DPATH="$tftp_boot_dir/debian/$debian_testing/i386/boot-screens/xfce/*.cfg"
BPATH="$tftp_boot_dir/backup/$debian_testing/xfce"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done

#
# Copy vesamenu and get PNG for background
#
wget $menu_bg_png_url -O splash.png
cp ubuntu/$ubuntu_stable/i386/boot-screens/vesamenu.c32 .
echo "default vesamenu.c32" > pxelinux.cfg/default
echo "Menu Background splash.png" >> pxelinux.cfg/default
echo "Menu Title Boot Menu" >> pxelinux.cfg/default
#
# Create Menu Entries
#
echo "# Ubuntu Stable" >> pxelinux.cfg/default
echo "LABEL Ubuntu Stable ($ubuntu_stable)" >> pxelinux.cfg/default
echo "MENU LABEL Ubuntu Stable ($ubuntu_stable)" >> pxelinux.cfg/default
echo "KERNEL vesamenu.c32" >> pxelinux.cfg/default
echo "APPEND ubuntu/$ubuntu_stable/i386/boot-screens/menu.cfg" >> pxelinux.cfg/
default
echo "#" >> pxelinux.cfg/default
echo "# Ubuntu Testing" >> pxelinux.cfg/default
echo "LABEL Ubuntu Testing ($ubuntu_testing)" >> pxelinux.cfg/default
echo "MENU LABEL Ubuntu Testing ($ubuntu_testing)" >> pxelinux.cfg/default
echo "KERNEL vesamenu.c32" >> pxelinux.cfg/default
echo "APPEND ubuntu/$ubuntu_testing/i386/boot-screens/menu.cfg" >> pxelinux.cfg/default
echo "#" >> pxelinux.cfg/default
echo "# Debian Stable" >> pxelinux.cfg/default
echo "LABEL Debian Stable ($debian_stable)" >> pxelinux.cfg/default
echo "MENU LABEL Debian Stable ($debian_stable)" >> pxelinux.cfg/default
echo "KERNEL vesamenu.c32" >> pxelinux.cfg/default
echo "APPEND debian/$debian_stable/i386/boot-screens/menu.cfg" >> pxelinux.cfg/
default
echo "#" >> pxelinux.cfg/default
echo "# Debian UnStable" >> pxelinux.cfg/default
echo "LABEL Debian UnStable ($debian_unstable)" >> pxelinux.cfg/default
echo "MENU LABEL Debian UnStable ($debian_unstable)" >> pxelinux.cfg/default
echo "KERNEL vesamenu.c32" >> pxelinux.cfg/default
echo "APPEND debian/$debian_unstable/i386/boot-screens/menu.cfg" >> pxelinux.cfg/
default
echo "#" >> pxelinux.cfg/default
echo "# Debian Testing" >> pxelinux.cfg/default
echo "LABEL Debian Testing ($debian_testing)" >> pxelinux.cfg/default
echo "MENU LABEL Debian Testing ($debian_testing)" >> pxelinux.cfg/default
echo "KERNEL vesamenu.c32" >> pxelinux.cfg/default
echo "APPEND debian/$debian_testing/i386/boot-screens/menu.cfg" >> pxelinux.cfg/
default
echo "#" >> pxelinux.cfg/default
echo "# Fedora" >> pxelinux.cfg/default
echo "LABEL Fedora ($fedora_ver)" >> pxelinux.cfg/default
echo "MENU LABEL Fedora ($fedora_ver)" >> pxelinux.cfg/default
echo "KERNEL fedora/$fedora_ver/i386/vmlinuz" >> pxelinux.cfg/default
echo "APPEND append initrd=fedora/$fedora_ver/i386/initrd.img" >> pxelinux.cfg/
default
echo "#" >> pxelinux.cfg/default
echo "# CentOS" >> pxelinux.cfg/default
echo "LABEL CentOS ($centos_ver)" >> pxelinux.cfg/default
echo "MENU LABEL CentOS ($centos_ver)" >> pxelinux.cfg/default
echo "KERNEL centos/$centos_ver/i386/vmlinuz" >> pxelinux.cfg/default
echo "APPEND append initrd=centos/$centos_ver/i386/initrd.img" >> pxelinux.cfg/
default
echo "#" >> pxelinux.cfg/default
echo "# Mandriva" >> pxelinux.cfg/default
echo "LABEL Mandriva ($mandriva_ver)" >> pxelinux.cfg/default
echo "MENU LABEL Mandriva ($mandriva_ver)" >> pxelinux.cfg/default
echo "KERNEL mandriva/$mandriva_ver/i386/vmlinuz" >> pxelinux.cfg/default
echo "APPEND append initrd=mandriva/$mandriva_ver/i386/all.rdz vga=788
splash=silent automatic=method:http,network:dhcp,server:www.gtlib.gatech.edu,
directory:/pub/mandrake/official/2010.0/i586" >> pxelinux.cfg/default
echo "#" >> pxelinux.cfg/default
echo "# Suse" >> pxelinux.cfg/default
echo "LABEL Suse ($opensuse_ver)" >> pxelinux.cfg/default
echo "MENU LABEL Suse ($opensuse_ver)" >> pxelinux.cfg/default
echo "KERNEL suse/$opensuse_ver/i386/linux" >> pxelinux.cfg/default
echo "APPEND append initrd=suse/$opensuse_ver/i386/initrd splash=silent
showopts install=http://download.opensuse.org/distribution/$opensuse_ver/repo/oss/" >> pxelinux.cfg/default
echo "#" >> pxelinux.cfg/default
echo "prompt 0" >> pxelinux.cfg/default
echo "timeout 0" >> pxelinux.cfg/default

Fuente HowtoForge.

lunes 8 de febrero de 2010

Ailurus Hace más Facil Usar Linux

Seguramente muchos usuarios de GNU/Linux cuando comentan las ventajas de sus sistemas e intentan evangelizar a conocidos y amigos sobre este genial sistema operativo se encuentran con la misma respuesta: ‘Es muy difícil para mí, no encuentro nada y no sé como hacer funcionar mis programas’.
Las distribuciones modernas intentan solucionar, en parte, estos escollos que el usuario novel podría encontrar al enfrentarse por primera vez a un entorno Linux. A pesar de ello siempre hay gente que preferirá una manera más sencilla de acceder a toda la información de su sistema.
Leer más.

Ailurus Hace más Facil Usar Linux

Seguramente muchos usuarios de GNU/Linux cuando comentan las ventajas de sus sistemas e intentan evangelizar a conocidos y amigos sobre este genial sistema operativo se encuentran con la misma respuesta: ‘Es muy difícil para mí, no encuentro nada y no sé como hacer funcionar mis programas’.

Las distribuciones modernas intentan solucionar, en parte, estos escollos que el usuario novel podría encontrar al enfrentarse por primera vez a un entorno Linux. A pesar de ello siempre hay gente que preferirá una manera más sencilla de acceder a toda la información de su sistema.

Leer más.

Configurar Replica en MySQL usando SSL

En el siguiente enlace podrás leer un tutorial de como configurar una replica de base de datos en MySQL usando SSL para encriptar la conexión (haciendo imposible que los hackers puedan ver los password o la información transferida entre el maestro y el esclavo). La replica en MySQL permite tener una copia exacta de una base de datos desde un servidor maestro hacia otro servidor (esclavo) y todas las actualizaciones de la base de datos en el servidor maestro se replicaran automáticamente en la base de datos del servidor esclavo de tal forma que se tiene ambas bases de datos sincronizadas. Esta no es una política de copia de respaldo (backup), por que si accidentalmente se borra algo en la base de datos maestro a su vez se borrara en la base de datos esclavo. mas bien la replica ayuda a proteger contra fallas de hardware.

http://www.howtoforge.com/how-to-set-up-mysql-database-replication-with-ssl-encryption-on-ubuntu-9.10

viernes 5 de febrero de 2010

Como Cambiar el Fondo de Pantalla en Fluxbox

En este articulo se vera como cambiar el fondo de pantalla en Fluxbox usando una sentencia en bash o editando el menú archivo.

Se usa un código BASH para ayudarnos y estará guardado en ~/bin por lo cual sera accesible. Asegúrate que tu variable $PATH este correctamente configurada. Esto lo puedes hacer añadiendo la siguiente linea a tu ~/.bashrc.

PATH=$PATH:~/bin

Instalar feh para el fondo de pantalla de Fluxbox

Primero instala feh, en Ubuntu o Debian seria así:

sudo apt-get install feh

En FreeBSD

sudo pkg_add -r feh

Escribir una sentencia para configurar el fondo de pantalla

El siguiente paso es escribir un script el cual seria algo así:

#!/usr/bin/env bash
BG_TILE="--bg-tile"
BG_CEN="--bg-center"
BG_SCA="--bg-scale"
USAGE="Setting background:\n-t tiled\n-c center\n-s scaled\nsecond arg should
be a pic"
#
if [ "$1" = "-t" ]
then feh $BG_TILE $2

elif [ "$1" = "-c" ]
then feh $BG_CEN $2

elif [ "$1" = "-s" ]
then feh $BG_SCA $2

else
echo -e $USAGE
fi

if [ ! -e "$2" ] # Check if file exists.
then
echo "Are you sure you typed the filename correctly?"
fi

Lo que hace este script es ejecutar ciertos comandos basados en ciertas condiciones. La primera parte dice que si $1 8el primer argumento) es igual a "-t" entonces ejecuta feh $BG_TILE $2, donde $2 es el segundo argumento, por ejemplo la ruta donde esta el fondo de pantalla de Fluxbox.

Configurar fondo de pantalla editando el menú Archivo de Fluxbox

Otra forma mas simple de configurar el fondo de pantalla en Fluxbox es usando el menú editan el menú Archivo. Puedes agregar algo tal como lo siguiente en cualquier lado en tu menú archivo y obtendrás una lista de todos tus fondos de pantalla de Fluxbox. ( Ten en cuenta que esto no leerá subdirectorios).

[wallpapers] (/ruta/de/fondo_de_pantalla/) {command}

La sentencia {command} sera ejecutada haciendo clic. Por defecto este usa fbsetbg el cual es una envoltura, ya que en el fondo esta usando feh para configurar el fondo de pantalla.

Fluxbox es un excelente administrador de ventanas y sus funcionalidades se pueden extender usando algunas sentencias creativas, tiempo y paciencia. Ademas es muy ligero lo cual lo hace ideal para sistemas de bajo recursos.

Nota:
El script es tomado de http://www.thegeekstuff.com.

miércoles 3 de febrero de 2010

Operadores en AWK

Como cualquier otro lenguaje de programación Awk también tiene un montón de operadores para operaciones con números y cadenas. En este articulo se verán los operadores de awk.

Hay dos tipos de operadores en awk:

  • Operador Unario - Este operador acepta un operador individual.
  • Operador Binario - Este operador acepta mas de un operador.

Operadores Unarios

Operador Descripción
+ Hace positivo al numero
- Hace negativo al numero
++ Auto incrementa
Auto Decrementa

Operador Binario AWK

Hay diferentes clases de operador binarios disponibles en Awk. Han sido clasificados según su uso:

Operadores Aritméticos

Los siguientes operadores son usados para realizar operaciones de calculo aritmético:

Operador Descripción
+ Suma
- Resta
* Multiplicación
/ División
% Modulo de División

Operador de Cadena Awk

Para la concatenación de cadenas awk utiliza el siguiente operador:

Operador Descripción
(espacio) Concatenación de cadena


Operadores de Asignación Awk

Awk tiene operador de asignación y Atajos de operador de asignación:

Operador Descripción
= Asignación
+= Atajo de asignación de suma
-= Atajo de asignación de resta
*= Atajo de asignación de multiplicación
/= Atajo de asignación de división
%= Atajo de asignación de modulo de division

Operadores Condicionales Awk

Awk tiene la siguiente lista de operadores condicionales los cuales pueden ser usados con controles de estructuras y bucles:

Operador Descripción
> Es mayor que
>= Es mayor que o igual a
< Es menor que
<= Es menor que o igual a
== Es igual a
!= No es igual a
&& Ambas condiciones deben ser verdaderas
|| Cualquiera de las condiciones pueden ser verdadera

Operador de Expresiones Regulares Awk

Operador Descripción
~ Operador de coincidencia
!~ Operador de No Coincidencia

Ejemplos de Operadores AWK

Veamos algunos ejemplos que usan operadores awk. Se usara el archivo /etc/passwd como entrada en estos ejemplos:

Ejemplo 1: Contar el numero total de campos en el archivo:

El siguiente código, ubica todas las lineas y añade el numero de campos en cada linea, usando el operador de atajo para asignación de suma. El numero de campos se mantienen en la variable 'total'. Una vez que la entrada ha sido procesada, el patrón especial 'END {...}' es ejecutado, el cual imprime el numero total de campos.

$ awk -F ':' '{ total += NF }; END { print total }' /etc/passwd

49


Ejemplo 2: Contar el numero de usuarios que están usando /bin/sh

En el siguiente código awk, se ubicaran el ultimo campo de todas las lineas que contengan el patrón /bin/sh. La expresión regular debe estar encerrada entre //. Por eso todos los (/) tienen que estar con carácter de escape en la expresión regular. Cuando encuentra uno la variable 'n' se incrementa a uno.

$ awk -F ':' '$NF ~ /\/bin\/sh/ { n++ }; END { print n }' /etc/passwd

2

martes 2 de febrero de 2010

Crear, monitorear y apagar procesos en Linux

En el siguiente enlace podrás aprender sobre el proceso de administración en Linux: como barajar procesos entre foreground y background, encontrar los que se esta ejecutando, matar un proceso y mantener procesando después que hayas dejado por el dia. Puedes este material del articulo para estudiar si deseas certificarte en LPI 101 o solo por aprender.

http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-103-5/index.html?ca=drs-

Como configurar Apache2 con mod_fcgid

En el siguiente enlace encontraras un tutorial que describe como instalar Apache2 con mod_fcgid y PHP5 sobre OpenSUSE 11.2. mod_fcgid es una alternativa compatible con el antiguo mod_fastcgi. Este te permite ejecutar código PHP con permiso de sus dueños en vez del permiso de un usuario de Apache.

http://www.howtoforge.com/how-to-set-up-apache2-with-mod_fcgid-and-php5-on-opensuse-11.2

lunes 1 de febrero de 2010

10 Tips para Navegar en Less

Hay algunos que prefieren usar el comando less para ver archivos, en vez de abrirlo con un editor. Less es similar al comando more, pero less permite movimientos de retroceso y avance. Ademas less no requiere cargar el archivo completo antes de abrirlo. Intenta abrir un archivo log con Vim y less y veras la diferencia de velocidad entre ambos.

Las teclas de navegación en less son similares al editor vim. En este articulo se analizara algunos comandos de navegación para less y ptras operaciones.

1. Comando less - Búsqueda y Navegación

Una vez que abres un archivo log o cualquier archivo usando el comando less nombre-archivo, usa las siguientes teclas para navegar. Por favor nota que las coincidencias sera resaltadas automáticamente por defecto.

Búsqueda hacia adelante

  • / – busca un patrón el cual te llevara a la siguiente ocurrencia.
  • n – para la siguiente coincidencia hacia adelante.
  • N – para la anterior coincidencia hacia atrás.

Búsqueda hacia adelante

  • ? – busca un patrón el cual te llevara a la anterior ocurrencia.
  • n – para la siguiente coincidencia hacia adelante.
  • N – para la anterior coincidencia hacia atrás.

Nota:
Si no te importa en que la dirección se esta buscando, y quieres buscar una ruta de archivo o URL, puedes usar la búsqueda hacia atrás (?patrón).

Buscar Ruta
Hacia adelante: /\/home\/usuario\/
Hacia atrás: ?/home/usuario/

2. Comando less – Navegación por Pantalla

Usa los siguientes comandos para navegar mientras viendo un archivo.

  • CTRL+F – adelanta una ventana.
  • CTRL+B – retrocede una ventana.
  • CTRL+D – adelanta media ventana.
  • CTRL+U – retrocede media ventana.

3. Comando less - Navegación por Linea

En un trozo pequeño de información donde desees localizar un error en particular, quizás quieras navegar linea por linea usando las siguientes teclas:

  • j – navegar hacia adelante linea por linea.
  • k – navegar hacia atrás linea por linea.

4. Comando less – Otras navegaciones

Lo siguiente son otras formas de navegar que se pueden usar dentro de less:

  • G – ir al final del archivo.
  • g – ir al comienzo del archivo.
  • q o ZZ – salir de less.

5. Simular tail -f dentro de less– Presiona F

Una vez que has abierto el archivo usando less, cualquier contenido que agregues después al archivo no se mostrara automáticamente. Sin embargo puedes presionar F y el comando less te mostará el mensaje "esperando por información". Esto es similar a tail -f.

6. Comando less – Contador mágico

Parecido a Vim, puedes dar 10j para bajar 10 lineas o 10k para subir 10 lineas.

  • 10j – 10 lineas hacia adelante.
  • 10k – 10 lineas hacia atrás.
  • CTRL+G – muestra el nombre del archivo actual junto con la linea, byte y porcentaje.


7. Otras operaciones útiles de less

  • v – usar el editor configurado para editar la linea actual.
  • h – resumen de los comandos less.
  • &patrón – muestra solo las lineas que coinciden, no todas.

8. Abrir archivo con less

less nombre_archivo

Puedes abrir hasta 10 tipos de archivos con less.

9. Comando less – Navegación marcada

Cuando estas viendo un archivo largo usando el comando less puedes marcar una posición particular y regresa a ese mismo lugar otra vez usando esa marca.

  • ma – marca la posición actual con la letra 'a'.
  • a – ir a la posición marcada.

10. Comando less – Paginacion de archivo múltiple

Método 1: puedes abrir múltiples archivos pasando el nombre de los archivos como argumento.

$ less archivo1 archivo2

Método 2: Mientras estas viendo el archivo archivo1, usa :e para abrir el archivo2:

$ less archivo|
:e archivo2

Navegación a través de archivos: Cuando abres mas de dos archivos, usa las siguientes teclas para navegar:

  • :n – ir al siguiente archivo.
  • :p – ir al archivo anterior.