16 de febrero de 2016

Comandos Basicos de GNU/Linux - Comandos para Visualizacion de Archivos de Texto

Mediante el shell de GNU/Linux es posible visualizar documentos de texto plano de varias maneras. En esta entrada solo se verán algunas de ellas junto con sus principales opciones.

La visualización básica de archivos de texto se realiza mediante el comando cat, que muestra en el shell el contenido completo del archivo de texto que se le pasa como argumento. Si se le pasan varios argumentos, mostrara los archivos de texto en el orden en que se le haya indicado, como si fuesen uno solo, sin distinguir que linea corresponde a que archivo, Sus principales opciones son las siguientes:
  • cat -n, numera todas las lineas de texto, incluyendo las vaciás. En concreto, pone un numero delante de cada linea al mostrarlas en pantalla.
  • cat -b, numera todas las lineas del texto que no estén vaciás. Las lineas vaciás las muestra pero no les pone ningún numero delante.
Como se podrá observar, el comando cat no dispone de demasiadas opciones en cuanto a la visualización de textos, por lo que es la manera mas rudimentaria de mostrarlos en el shell.

Otra forma de visualizar los archivos de texto es con el comando more, que nos da algunas utilidades mas a la hora de ver el texto. Concretamente, dicho comando nos permite avanzar por el documento, linea por linea, pulsando la tecla Enter o pagina por pagina mediante la barra espaciadora. Si le pasamos varios nombres de archivo como argumentos, el comando more nos mostrara uno detrás de otro en el orden indicado, pero siguiendo cada archivo de manera separada. Sus opciones mas útiles son:
  • more -X, donde X es el numero de lineas que se requiere que muestren, por cada pagina. Por ejemplo, si se requiere visualizar 6 lineas por pagina se ejecuta: more -6
  • more +X, donde X es el numero de linea en donde comienza la visualización del archivo. Por ejemplo si, se requiere visualizar un archivo a partir de su linea 12, se ejecuta de la siguiente manera: more +13
Mientras se visualiza un documento con el comando more y se pulsa la letra h, se mostraran las opciones que ofrece durante la visualización.

Un comando similar a more pero mas completo es less, que permite avanzar y retroceder linea a linea con las teclas de flecha de dirección o avanzar pagina a pagina mediante la barra espaciadora y retroceder una pagina mediante la tecla w. Al igual que more, se presiona la tecla h, aparecerán las opciones que permitirán el desplazamiento por el archivo. Si se pasan varios archivos de texto como argumentos, se puede mover entre ellos pulsando :n para ir al siguiente archivo o :p para ir al archivo anterior. Una vez que se esta visualizando un archivo con less y se desea terminal la visualización, se presiona la tecla q.

Las principales opciones de less son las siguientes:
  • less -e, hace que se salga automáticamente de la visualización cuando se llega por segunda vez al final del archivo. La primera vez que se llega al final del archivo permanece en la visualización. Es muy útil para no tener que acordarse de salir con la tecla q.
  • less -E, es muy similar a la anterior opción, pero hace que salga de la visualización cuando llega al final del archivo por primera vez.
  • less -F, sale de la visualización automáticamente si el archivo puede ser mostrado en una sola pagina.
  • less -N, muestra un numero de linea delante de cada linea de texto que  contiene el archivo.
  • less -w, al avanzar una pagina señala cual es la primera linea que no estaba en la pagina anterior. Sirve para saber por donde se estaba leyendo cuando se hizo el cambio de pagina.
Una curiosidad es que less, es el método usado por defecto para mostrar las paginas de manual con el comando man. Es por eso que, cuando se ejecuta man, se puede mover por el manual libremente.

En ocasiones no se requiere visualizar un archivo completo, si no solo el principio o el final. Para ello, el shell de GNU/Linux dispone de dos comandos, head y tail, que muestran respectivamente las primeras o las ultimas 10 lineas del archivo que se pase como argumento. Si en lugar de mostrar 10 lineas, prefiere mostrar mas o menos, ambos comandos comparten las siguientes opciones:
  •  head -n X o tail -n X, donde X es el numero de lineas y que respectivamente muestra las primeras o ultimas lineas del archivo. Por ejemplo, para visualizar las primeras 7 lineas de un archivo se ejecuta: tail -n 7
  • head -c X o tail -c X, donde X es el numero de bytes y que respectivamente muestra los primeros o los últimos bytes (normalmente un carácter equivale a un byte). Por ejemplo para ver los últimos 20 bytes de un archivo se ejecuta: tail -c 20
Para imprimir un archivo de texto mediante una impresora se dispone del comando lpr. La forma de configurar la impresión es mediante las opciones siguientes:
  • lpr -P <nombre de la impresora>, especifica el nombre de la impresora con la que se va a imprimir. En caso de no especificarse se imprimirá en la impresora por defecto. Por ejemplo si la impresora se llama EpsonS22, se ejecuta lo siguiente: lpr -P EpsonS22.
  • lpr -# X, donde X es el numero de copias que se requieren del documento, entre 1 y 100, por defecto 1. Por ejemplo, para 3 copias, se ejecuta lpr -# 3.
Normalmente se especificaran ambas opciones, por lo que se ejecuta: lpr -P EpsonS22 -# 3.

Sea el caso de que se desee ver las paginas que va a ocupar el documento antes de imprimirlo, se dispone del comando pr, que muestra el documento separado en paginas de la misma forma que se haría al enviarlo a la impresora.

Algunas de sus opciones son las siguientes:
  • pr -d, pone el documento a doble espacio.
  • pr -l X, donde X es el numero de lineas que tendrá la pagina. Ejemplo, paginas de 30 lineas: pr -l 30
  • pr -h "texto", permite poner en la cabecera de cada pagina el texto que se encuentre entre comillas.
  • pr -n imprime también el numero de linea asignado a cada linea del texto.

No hay comentarios.:

Que es NGINX ?

NGINX es un servidor web diseñado para ser rapido, eficiente y compatible con casi cualquier cosa que se pueda imaginar. Es facil de instala...