Editar ficheros con linux


Para muchas personas, una de las piezas de software más importantes es un procesador de textos, aunque obviamente si ese equipo es un Linux  para  escribir documentos se usen otros programas como LibreOffice Writer,Open Office ,ete c o incluso servicios en linea como google docs , un editor de texto, sigue siendo hoy en dia  una herramienta indispensable  pera  ver contenido de ficheros ASCIII ( por ejemplo tipo logs, txt ,etc )   y también  para editar o ver  scripts de shell, programas PostScript, páginas web y más.

Un editor de texto opera en archivos de texto sin formato almacenando solo los caracteres que escribe no agregando ningún código oculto de formateo. Es decir ,si escribimos unos caracteres   y presionamos Enter en un editor de texto y lo guardamos, el archivo contendrá exactamente esos caracteres y una nueva línea. Sin embargo si usamos  un  procesador de textos, dicho fichero  que contenga el mismo texto sería miles de veces más grande (con abiword por ejemplo un archivo de unos pocos caracteres  podiria ocupar 2.526 bytes, el archivo LibreOffice.org contendria sobre 7.579 bytes).

Puede escribir scripts en cualquier editor de texto, desde el e3 básico o nano hasta el emacs o nedit completos.

Los mejores editores de texto le permiten tener más de un archivo abierto a la vez. Hacen que el código de edición sea más fácil con, por ejemplo,con  resaltado de sintaxis, sangría automática, autocompletado, revisión ortográfica, macros, búsqueda y reemplazo, y la importante funcion de deshacer.

En última instancia, qué editor se  elige es una cuestión de preferencia personal pero en  GNU  uno muy bueno  es  emacs

emacs1.PNG

Emacs viene autodocumentado de serie con un manual al que puede acceder usando el comando info. Ya sea desde una terminal de los sistemas operativos GNU y Unix, o desde el propio Emacs, escribiendo M-x info RET (esto quiere decir Meta- x o ESC x, la palabra “info”, seguido de la tecla return), o escribiendo C-h i (eso es Control-h seguido de la i). Ademá Emacs trae consigo un tutorial interactivo que le guiará paso a paso a través de una sesión de edición en la cual aprenderá los elementos básicos del uso de Emacs como editor de texto.

Para realizarlo, proceda de la siguiente manera:

  • Utilice C-h t (presione Control y h, suelte ambas teclas, y luego pulse t).
  • Si eso no resulta, intente mediante F1 t.
  • Si eso no resulta tampoco, intente M-x help-with-tutorial (Pulse Esc, suéltela, pulse x, suéltela, escriba help-with-tutorial, pulse Enter).

Si desea leer el tutorial en un idioma distinto al Inglés, use el comando M-x help-with-tutorial-spec-language. (en el momento se encuentran disponibles: bg, cn, cs, de, es, fr, it, ja, ko, nl, pl, ro, ru, sk, sl, sv, th, zh  , es decir también esta en español)

Las opciones más habituales:

  • Obtener ayuda C-h (Mantenga presionada la tecla CTRL y presione h)
  • Deshacer cambios C-x u Salir Emacs C-x C-c
  • Obtener un tutorial C-h t Usar información para leer documentos C-h i
  • Manuales de pedido C-h RET
  • Activar la barra de menú F10 o ESC `o M-`
  • `C- ‘significa usar la tecla CTRL.
  • ` M-‘ significa usar la tecla Meta (o Alt).Si no tiene una clave Meta, en su lugar puede escribir ESC seguido del carácter).

El entorno puede modificar el modo en que secuencias como C-h o F1 son interpretadas.

 

Cuadro de Referencia Resumido

Apertura de archivos: C-x C-f – luego escriba el nombre del archivo, puede usar la tecla TAB para  autocomplementar de modo automático.

Creación de nuevos documentos: C-x C-f – luego escriba el nombre de un archivo que no exista aun; use TAB para  autocomplementar de modo automático.

Guardar archivo: C-x C-s

Destruir búfer (cerrar archivo): C-x k

Separar ventanas (para ver dos archivos al mismo tiempo):

  • Una sobre la otra: C-x 2
  • Una al lado de la otra: C-x 3

Unificar ventanas (maximizar una ventana)C-x 1

Cambiar de ventana (luego de haber hecho una separación): C-x o

Cambiar de búfer (si está editando múltiples archivos): C-x b

Menú de búferes (listado de búferes): C-x C-b

Ejecutar comandos de cuyo atajo por teclado se ha olvidado: M-x – luego escriba el nombre del comando, TAB puede ser usado para autocomplementar.

Obtener ayuda: C-h, luego cualquiera de las siguientes teclas:

  • k – ¿qué hace cierta secuencia de teclado?
  • f – ¿qué hace cierta función?
  • m – ¿qué secuencias de teclado están definidas en este modo?
  • w – ¿a qué teclas está asociada una función?
  • a – ¿qué nombres de comandos coinciden con cierta cadena?

 

 

Como ve, emacs  es un editor  ASCII  muy diferente a los editores basados en sistemas windows , pero como se ve tambien puede ser muy potente para trabajar desde una consola depurando o inlcuso escribiendo nuestros propios scripts en c-shell

Enviar correos desde Linux: el método definitivo


Mutt es un cliente de correo electrónico basado en línea de comandos. Es una herramienta muy útil y poderosa para enviar y leer correos electrónicos desde la línea de comandos en sistemas basados en Unix.

Mutt también admite protocolos POP e IMAP para recibir correos. Se abre con una interfaz coloreada para enviar correos electrónicos que hacen que sea fácil de usar para enviar correos electrónicos desde la línea de comandos.

Algunas  características importantes de Mutt son las siguientes:

  • Es muy fácil de instalar y configurar.
  • Nos permite enviar correos electrónicos con archivos adjuntos desde la línea de comandos.
  • También tiene las características para agregar BCC (copia ciega ) y CC (copia ) al enviar correos.
  • Permite el enhebrado de mensajes.
  • Nos proporciona la facilidad de listas de correo.
  • También es compatible con muchos formatos de buzón de correo como maildir, mbox, MH y MMDF.
  • Admite al menos 20 idiomas.
  • También es compatible con DSN (notificación de estado de entrega).

Por si alguna vez ha necesitado enviar correos completos con anexos desde una maquina Unix con Shell scripting siempre que esté configurado el servidor de correo , por ejemplo para enviar estos desde un script, de este modo funciona perfectamente:

#envió de correo ok
cat $BODY | mutt -s «$asunto» -a $Fichero $destinos

Donde las variables significan lo siguiente:

  • $BODY : es un fichero cuyo texto contiene el texto del cuerpo .Atención: con el comando cat sí se respetan los retornos de carro del fichero original pues con el comando echo los elimina concatenando todas las líneas quitando los saltos de línea
  • “$asunto” : es el asunto que hay que poner las comillas para que nos interprete los espacios como otros parámetros pues de no hacerlo corta el texto que queremos poner en el asunto interpretando las palabras tras el segundo espacio como destinatarios de correo
  • $ Fichero : es la ruta directa del fichero a adjuntar
  • $destinos: todos los destinatarios de correos separados por espacios

 

Entramos en  modo interactivo   cuando solo  especificamos el destinatario:

mutt -s "Test correo" [email protected]

Cuando ingresa el comando anterior en el terminal, se abre con una interfaz y confirma la dirección del destinatario y el asunto del correo y abre la interfaz. En este momento  puede realizar cambios en la dirección de correo del destinatario:

  • Cambiar la dirección de correo electrónico del destinatario presionando t.
  • Cambiar la dirección de Cc con c.
  • Adjunte archivos como archivos adjuntos con a.
  • Salir de la interfaz con q.
  • Enviar ese correo electrónico presionando y.

Podemos agregar Cc y Bcc con el comando mutt a nuestro correo electrónico con la opciones  «-c» y «-b». Asimismo podemos enviar correos electrónicos desde la línea de comandos con archivos adjuntos utilizando la opción «-a» con el comando mutt.


Si queremos cambiar el nombre y el correo electrónico de los remitentes, entonces necesitamos crear un archivo en el directorio de inicio de ese usuario en particular.

# cat .muttrc

Agregue las siguientes líneas a él. Guárdelo y cierrelo.

set from = «[email protected]» set realname = «Realname of the user»

AYUDA

Para imprimir el menú de ayuda de «mutt», necesitamos especificar la opción «-h» con él , es decir

# mutt -h

Y esta es la salida:

Mutt 1.4.2.2i (2006-07-14)
usage: mutt [ -nRyzZ ] [ -e ] [ -F ] [ -m ] [ -f ]
mutt [ -nx ] [ -e <cmd> ] [ -a <file> ] [ -F <file> ] [ -H <file> ] [ -i <file> ] [ -s <subj> ] [ -b <addr> ] [ -c <addr> ] <addr> [ … ]
mutt [ -n ] [ -e <cmd> ] [ -F <file> ] -p
mutt -v[v]

options:
-a <file> attach a file to the message
-b <address> specify a blind carbon-copy (BCC) address
-c <address> specify a carbon-copy (CC) address
-e <command> specify a command to be executed after initialization
-f <file> specify which mailbox to read
-F <file> specify an alternate muttrc file
-H <file> specify a draft file to read header from
-i <file> specify a file which Mutt should include in the reply
-m <type> specify a default mailbox type
-n causes Mutt not to read the system Muttrc
-p recall a postponed message
-R open mailbox in read-only mode
-s <subj> specify a subject (must be in quotes if it has spaces)
-v show version and compile-time definitions
-x simulate the mailx send mode
-y select a mailbox specified in your `mailboxes’ list
-z exit immediately if there are no messages in the mailbox
-Z open the first folder with new message, exit immediately if none
-h this help message
$