Inicio

Versión 1.0 - marzo de 2011

Ordenador sin entorno gráfico en GNU/Linux

Instalamos Debian y en tasksel no marcamos nada. Así tenemos solo el sistema base. Reiniciamos e instalamos los siguientes paquetes:

apt-get install --no-install-recommends myspell-es alsa-utils dosfstools less make remind anacron lame exim4 heirloom-mailx mutt elinks hdparm ftp gcc gcc-doc rsync powertop mingetty pandoc antiword odt2txt pdftotext cups texlive-latex-extra wpasuplicant wirelesstools offlineimap msmtp ca-certificates zip spell unzip

Para instalar gcc-doc necesitamos los repositorios non-free en sources.list.

Para entrar en el sistema automáticamente sin contraseña, en Debian 7, editamos /etc/inittab y cambiamos:

1:2345:respawn:/sbin/getty 38400 tty1
# por:
1:2345:respawn:/sbin/mingetty --autologin usuario --no-clear tty1
En Debian 8 crea el fichero:
/etc/systemd/system/getty@tty1.service.d/autologin.conf
con el siguiente contenido:
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux
y después ejecuta:
: systemctl enable getty@tty1.service

El sistema sin cups, latex ni pdftotext ocupa aproximadamente 900 MiB con Debian 7. Con los paquetes anteriores ocupa 1,2 GiB. Un Toshiba NB500 tarda en arrancar, desde la ventana de Grub, 15 segundos. Con las X, como en Escritorio mínimo, tarda 25 segundos.Si le instalo las X con Openbox añadimos 143 MiB.

Para poner la pantalla en negro después de un tiempo escribimos en .bashrc:
# pantalla en negro tras 3 minutos de inactividad:
setterm -blank 3
Para navegar por internet usamos elinks, que permite usar pestañas (también está lynx y w3m). Pulsando Esc obtenemos los menús. Pulsando Mayúscula+t abrimos el enlace en una pestaña nueva. Con "<" y ">" nos movemos entre las pestañas y pulsando "c" cerramos pestañas. Para configurar la página de inicio escribimos en ~/.elinks.conf:

set ui.sessions.homepage = "pagina_de_inicio.html"


Para leer el correo usamos mutt. Si tenemos una cuenta IMAP podemos configurar mutt para que sea él quién descarge los mensajes y los envíe, pero esto require conexión permanente a internet. Para poder trabajar sin conexión vamos a usar offlineimap para descargar y sincronizar los cambios (borrado de mensajes, modificación en la carpeta de enviados, etc.) y msmtp para enviar los correos. Creamos la carpeta ~/.mutt en nuestro home y en esa carpeta ponemos el muttrc, el directorio_offlineimap donde se guardará la copia del servidor IMAP y la libreta de direcciones, que llamaremos direcciones_correo. El archivo de configuración muttrc:

# configuración para conexión directa a IMAP
#set folder      = imaps://SERVIDOR/INBOX
#set spoolfile   = imaps://SERVIDOR
#set imap_user   = USUARIO
#set imap_pass   = CONTRASEÑA
#set postponed = +Drafts
#set record = +Sent
# permitir a mutt abrir nuevas conexiones imap automaticamente
#set imap_passive = no
# mantener viva la conexion imap preguntando intermitentemente (tiempo en segundos)
#set imap_keepalive = 300
# que tan frequetemente se revisara si hay correo nuevo (tiempo en segundos)
#set mail_check = 120
# almacene las cabeceras de mensajes localmente para acelerar las cosas
#set header_cache = ~/.mutt/hcache

# Maildir creado por offlineimap
# maildir es un formato para almacenar correo
set mbox_type=Maildir
set folder = "~/.mutt/directorio_offlineimap"
set spoolfile = "+INBOX"
set record = +INBOX.Sent
set trash = +INBOX.Trash
set postponed = +INBOX.Drafts

# libreta de direcciones
source ~/.mutt/direcciones_correo
set alias_file=~/.mutt/direcciones_correo
set sort_alias=alias

## configurar el remitente de los correos
set from = DIRECCIÓN_DE_CORREO
set realname = "NOMBRE Y APELLIDOS"

# no pregunta al borrar correos
set delete

## envío con msmtp a través de cola
set sendmail="/usr/local/bin/msmtp-enqueue.sh"

#  no hace falta la siguiente línea ni la seccion nbname en .offlineimaprc
#source ~/.muttrc.mailboxes

El archivo ~/.mutt/direcciones_correo contiene las direcciones de correo con el formato:
alias PEPITO DIRECCION_DE_CORREO

y para listas de correo:

alias AMIGOS DIRECCION_DE_CORREO-1, DIRECCION_DE_CORREO-2, DIRECCION_DE_CORREO-3


El archivo
.offlineimparc:
[general]
accounts = correo_corporativo

[Account correo_corporativo]
localrepository = Local
remoterepository = Remote

[Repository Local]
type = Maildir
localfolders = ~/.mutt/directorio_offlineimap

[Repository Remote]
type = IMAP
remotehost = SERVIDOR
remoteuser = USUARIO
remoteport = 993
remotepass = CONTRASEÑA
ssl = yes
maxconnections = 1

# directorio para logs
metadata = ~/.mutt/.offlineimap

# 
maxsynaccounts = 1

fsync = true

#no hace falta la seccion nbnames
#[mbnames]
#enable = yes
#filename = ~/.mutt/muttrc.mailboxes
#header = "mailboxes "
#peritem = "+%correo_corporativo/%.directorio_offlineimap"
#peritem = "+%/accountname)s/%(foldername)s"
#sep = " "
#footer = "\n"

El archivo .msmtprc:

account default
host SERVIDOR
port 465
from DIRECCIÓN_CORREO
auth on
user USUARIO
password CONTRASEÑA
tls on
tls_starttls off

##  tls_cercheck off porque si no no funciona
tls_certcheck off
#tls_trust_file /etc/ssl/certs/ca-certificates.crt
##  tls_cercheck off porque si no no funciona

Abrimos mutt, para crear un mensaje pulsamos "m", nos aparece el campo "To", para buscar en la libreta de direcciones escribimos las primeras letras del alias y pulsamos tabulador, se nos despliegan las opciones que concuerdan. Después nos pregunta el asunto y por último se nos abre nano, o el editor po defecto, para escribir el cuerpo del mensaje. Cuando acabemos de escribir el mensaje guardamos y cerramos el editor y pulsamos "y" para mandarlo (aparece una ayuda arriba con las opciones básicas). El mensaje se ha enviado a la cola que gestiona msmtp. Para ver los mensajes que hay en la cola ejecutamos msmtp-listqueue.sh y para enviarlos (una vez tengamos conexión) ejecutamos msmtp-runqueue.sh. Para descargar los mensajes ejectuamos offlineimap. Si desde mutt borramos algún mensaje y queremos sincronizar dicho cambio en el servidor volvemos a ejecutar offlineimap. Para navegar por la carpetas de nuestro correo desde mutt pulsamos "c" y luego "?".

Para mostrar los correos según un criterio, pulsamos la letra l. Mutt llama a esto limitar y es equivalente al filtro de Thunderbird. lregexp busca regexp en asunto y de l=bpatron busca patron en el cuerpo l~bregexp busca regexp en el cuerpo l=fpatron busca patron en direcion del remitente l~f regexp busca regexp en direccion del remitente l=tpatron busca patron en direccion del remitido l~tregexp busca regexp en direccion del remitido l"palabras separadas por espacio" busca patrones con espacios lpatron l=fpatron Y lógico lpatron | l=fpatron O lógico !lpatron NEGACIÓN lógica !(lpatron | lpatron) lpatron los () agrupan Por tanto lregexp es equivalente a l~sregexp ~fregexp La ayuda de mutt se obtiene pulsando F1 o el manual en /usr/share/doc/mutt
Teclas rápidas útiles en nano (M significa la tecla Alt y ^ la tecla Control):

M-$ activar soft wrap (recorte de líneas largas, no permanente)
M-A seleccionar
M-6 copiar
^O guardar
^C mostrar número de fila y de columna del cursor
M-\ ir al principio del fichero
M-/ ir al final
^T corrector ortográfico
M-R buscar y reemplazar
^W buscar
M-W repetir última búsqueda
^barra espaciadora avanzar palabra
M-barra espaciadora retroceder palabra
M-, ir al siguiente fichero abierto
M-. ir al anterior fichero abierto
M-D contar líneas, palabras y caracteres (un fichero vacío contiene dos líneas
y un carácter, así que la posición del cursor cuenta como un espacio y la línea
inferior a la posición del cursor también cuenta).
^T abre el navegador de archivos (cuando insertamos un fichero o lo guardamos)
^J justifica un párrafo (texto entre dos líneas en blanco) al número de columnas
indicadas en .nanorc (set fill x) o en la opción -r al invocarlo: nano -r80
M-J justifica el fichero completo. Cuidado con código y ficheros con líneas cortas.

El fichero de configuración
~/.nanorc:
# Para que funcione debe estar compilado con la opción with --enable-nanorc,
la versión de Debian viene con esta opción activada.

# muestra el número de linea y columna, igual que la opción -c
set const

## Enable soft line wrapping (AKA full line display). No rompe las líneas por espacios.
# set softwrap

## Dentro de nano, mediante ^J, se justifica el texto con saltos de línea cada x caracteres, incluso elimina
## saltos de línea para que las líneas tengan la longitud establecida, por tanto usarlo con precaución. se modifica
## con set fill

## Set the line length for wrapping text and justifying paragraphs.
## If fill is 0 or less, the line length will be the screen width less
## this number.
##  solo funciona con ^J, con softwrap no funciona.
## se puede cambiar temporalmente con la opción -r: nano -r 80 file

set fill 72

## Don't wrap text at all. No introduce saltos de línea automáticamente, aunque esté desactivado no los produce. #
 set nowrap

## Backup files to filename~.
set backup

## Color setup, desmarcar lo deseados

## C/C++
include "/usr/share/nano/c.nanorc"

## Cascading Style Sheets
include "/usr/share/nano/css.nanorc"

## HTML
include "/usr/share/nano/html.nanorc"

## TeX
include "/usr/share/nano/tex.nanorc"

# markdown, está aquí en vez de en un fichero en /usr/share/nano

## found: http://lists.gnu.org/archive/html/help-nano/2006-08/msg00000.html
## edited by serialhex
## http://daringfireball.net/projects/markdown/syntax
#syntax "markdown" "\.txt$" "\.text$" "\.md$" "\.markdown$"
syntax "markdown"  "\.md$" "\.markdown$"
# Quotations
color cyan "^>.*"
# Emphasis
color green "_[^_]*_"
color green "\*[^\*]*\*"
# Strong emphasis
color brightgreen "\*\*[^\*]*\*\*"
color brightgreen "__[\_]*__"
# Underline headers
color brightblue "^====(=*)"
color brightblue "^----(-*)"
# Hash headers
color brightblue "^#.*"
# Linkified URLs (and inline html tags)
color brightmagenta start="<" end=">"
# Links
color brightmagenta "\[.*\](\([^\)]*\))?"
# Link id's:
color brightmagenta "^\[.*\]:( )+.*"
# Code spans
color brightyellow "`[^`]*`"
# Code blocks
# disabled, because indented lines aren't always code blocks
# color brightyellow "^( ).*"
# Links and inline images
color brightmagenta start="!\[" end="\]"
color brightmagenta start="\[" end="\]"
# Lists
color yellow "^( )*(\*|\+|\-|[0-9]+\.) "

Para capturar la pantalla, ejecutar:

setterm -dump    # escribe la pantalla en screen.dump sobrescribiendo
setterm -append  #escribe la pantalla en screen.dump añadiendo contenido
setterm -dump -file pepe.txt 
setterm -append -file pepe.txt

solo funciona como root, como usario normal dice que no puede leer /dev/vcsa0. Añadí el usuario al grupo tty pero sigue sin funcionar. El problema es que vcsa0 no existe, existe vcsa, así que parece un error de setterm.

Para cambiar el tipo y tamaño de letra:

setfont /usr/share/consolefonts/tipografia_deseada

la fuente por defecto es Lat15-Fixed16.psf.gz, pero las de tamaño 18 se ven deformadas un poco extrañas. La mejor para aumentar el tamaño de letra es Lat15-Terminus20x10.psf.gz. Con dpkg-reconfigure -plow console-setup realizamos el cambio en todo el sistema.
Para ver archivos con formato doc podemos usar antiword. Para ver ficheros pdf podemos usar pdftotext. Para ver archivos con formato opendocument (odt) podemos usar odt2txt. Con pandoc podemos transformar un fichero de texto a diferentes formatos: html, txt, latex, markdown, docx, etc.

Para guardar datos podemos usar un único archivo por tema. Podemos usar el formato que queramos: markdown, latex, html, o ninguno. Dentro del archivo, cada subtema lo marcamos con palabras clave para su búsqueda poterior, por ejemplo escribiendo las palabas clave entre arrobas, o comillas simples, etc. Así, cuando queramos buscar algo usamos el buscador del editor de texto y ponemos el término de búsqueda: @*término de búsqueda*@. Evidentemente también podemos realizar búsquedas dentro del texto. Si luego queremos generar un documento en un formato más lustroso podemos pasarlo fácilmente a html, pdf, odt, etc. y también podemos quitar todas las marcas entre arrobas con sed o desde el editor de textos.

Inicio

HTML5 Powered