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.

21 de octubre de 2015

Comandos Basicos de GNU/Linux - Comandos de Copiado

Para la gestión de archivos y directorios, se encuentran las opciones de copiar y pegar.

cp : Este comando se utiliza para copiar archivos y copia el archivo que se le pasa como parámetro (origen) en otro cuyo nombre se le pasa como segundo parámetro (destino).

Por ejemplo, se ejecuta el siguiente comando:

$ cp archivo1.txt copiaarchivo.txt

Se copiara el contenido el contenido del archivo archivo1.txt en copiaarchivo.txt, encontrándose ambos en el mismo directorio.

Por otro lado, si en lugar de un archivo, se indica como destino un directorio, lo que sucederá es que creara una copia del archivo origen en el destino especificado.

Por ejemplo

$ cp archivo2.txt /home/usuario/ 

Creara un archivo con el mismo nombre que el original en el directorio /home/usuario/.

El comando cp al igual que el comando rm, dispone de la opción -R, que sirve para copiar directorios enteros con todo su contenido.

Por ejemplo, se ejecuta el siguiente comando:

$ cp -R /home/usuario/directorio1/ /tmp

Copiara todo el contenido del directorio directorio1 en el destino indicado, que en este caso es /tmp

mv : Este comando se utiliza para mover archivos de un directorio a otro, según se indique.

Si por ejemplo, se requiere mover el archivo mueveme.txt que se encuentra en el directorio actual, al directorio /home, se ejecuta el siguiente comando.

$ mv mueveme.txt /home

El comando mv tiene otra utilidad, que es la de cambiar de nombre a un archivo. Para ello, solo habrá que pasarle como parámetros el nombre del archivo que se requiere renombrar y el nombre nuevo. Por ejemplo:

$ mv antiguonombre.txt nuevonombre.txt




7 de octubre de 2015

Comandos Basicos de GNU/Linux – Comandos de Borrado

Tras ver como crear directorios y archivos, ahora se vera como borrarlos.
rmdir: El comando rmdir sirve para eliminar un directorio cuyo nombre sera el que se le pase como argumento. Su nombre proviene de “remove directory”. Como condición para el borrado, el directorio deberá estar vacío. Si no, mostrara un mensaje diciendo que tiene contenido.
Así, para  borrar el directorio Documentos que esta en el directorio de trabajo actual y no contiene nada, se ejecuta:
$ rmdir Documentos
rm: Este comando es similar al anterior y sirve para eliminar un archivo, cuyo nombre sera el que se le pase como argumento.
Por ejemplo, para borrar el archivo miarchivo.txt, se ejecuta el comando:
$ rm miarchivo.txt
Si el archivo no existe, mostrara un error. Al igual que otros comandos, se pueden borrar varios archivos o directorios (según el comando) en una sola linea si se le pasa como argumento.
Por ejemplo:
$ rmdir Documentos Imagenes Musica
Borrara esos tres directorios. El comando rm también sirve para eliminar directorios completos. Para borrar un directorio y todo su contenido, habrá que utilizar el comando rm con la opción -R. Mucho cuidado al utilizar esta opción ya que pudiera borrarse información importante.
unlink: Para borrar un enlace, también se puede utilizar el comando rm, pero lo mas indicado es utilizar unlink. La finalidad de este comando, es borrar un enlace existente.
En el caso en que dicho enlace sea el ultimo que hace referencia al inódo, el archivo se borrara dejando el espacio disponible. En caso contrario de que exista algún otro, solo se borrara el enlace.
Por ejemplo, para borrar el enlace duro enlaceduro, se ejecuta:
$ unlink enlaceduro

Comandos Básicos de GNU/Linux – Comandos de Creación

Una vez visto como cambiar de directorio (cd) y como listar el contenido de un directorio en concreto (ls), así como las posibles opciones que nos ofrece este comando, veamos comandos que nos permitirán crear directorios y archivos:
mkdir Este comando sirve para crear un directorio, cuyo nombre sera el que le pasemos como argumento dicho comando.
Por ejemplo si ejecutamos:
$ mkdir nuevodirectorio
Se creara el directorio nuevodirectorio en el directorio actual de trabajo.
También se puede crear directorios en lugares distintos al que se encuentra posicionado, mediante el uso de rutas absolutas o relativas. Así, si se desea crear el directorio Musica en /etc y se encuentra en /home/usuario, se tienen dos opciones:
$ mkdir /etc/Musica
O bien
$ mkdir ../../etc/Musica
Con el comando mkdir también se pueden crear varios directorios en un mismo comando. Para ello, solo se introducen tantos argumentos como carpetas se quieran crear. Así  el comando
$ mkdir Documentos Imagenes Musica Descargas
Creara esos cuatro directorios en el directorio actual de trabajo.
touch Sirve para cambiar la fecha de acceso y modificación de un archivo que se le pase como argumento. Si el archivo no existe, lo creara vacío con el nombre que se le haya pasado como argumento. Por ejemplo, si se ejecuta el comando:
$ touch ejemplo.txt
Creara un archivo vacío con el nombre ejemplo.txt sino existía anteriormente o simplemente modificara su fecha de acceso y modificación con la fecha actual del sistema si existía con anterioridad. Al igual con el comando mkdir, con el comando touch podemos crear varios archivos con un solo comando.
$ touch archivo1 archivo2 archivo3 archivo4
ln Este comando se utiliza para crear un enlace duro al archivo que se le pasa como argumento. Así, si se ejecuta:
$ ln miarchivo miarchivo1
Se creara un enlace duro al archivo miarchivo, que tendrá como nombre miarchivo1.
Para crear un enlace simbólico disponemos de la opción -s de este comando, que se ejecuta de la misma manera que la anterior.
$ ln -s miarchivo miarchivo2

15 de julio de 2015

Comandos Basicos de GNU/Linux - Comandos para recorrer el Sistema de Archivos

Desde el shell de GNU/Linux podemos movernos por todo el sistema de archivos para, buscar un directorio o un archivo en concreto. Pero para movernos por la estructura de directorios de nuestro sistema, un primer paso es saber en cada momento donde nos encontramos.
Para saber que directorio es el directorio actual, tenemos el comando pwd. Su nombre proviene de "print working directory" y su único objetivo es el de mostrar en pantalla una linea que nos dice la ruta absoluta al directorio actual.
Una vez que ya sabemos en que directorio nos encontramos podemos empezar a desplazarnos por el árbol de directorios con el comando cd. Su nombre proviene de "change directory" y sirve exactamente para lo que parece; cambia de directorio actual, al que nosotros le especifiquemos en su argumento.

En este punto cabe destacar que al igual que en los sistemas operativos Microsoft Windows, en GNU/Linux también podemos hacer referencia a los archivos y directorios de dos maneras:

  • Rutas absolutas: Se forman empezando en el directorio raiz y acabando en el punto al que queremos hacer referencia. Por ejemplo, si nuestro usuario se llama paquito y queremos hacer referencia a su directorio personal, la ruta absoluta seria:
    $ cd /home/paquito
  • Rutas relativas: Se forman usando los directorios especiales . y .. que comienzan siempre en el directorio actual. Como es de saber, el directorio especial . hace referencia al directorio actual y el directorio especial .. hace referencia al directorio padre del actual. Así, por ejemplo si se esta situado en el directorio /etc y queremos ir al directorio personal de paquito, la ruta relativa seria:
    $ cd ../home/paquito
Por lo tanto, podemos usar el comando cd tanto con rutas absolutas como con rutas relativas.

Ejemplo, nos encontramos en el directorio /usr/share/man y queremos ir al directorio /usr/bin. Tenemos las siguientes opciones.
$ cd /usr/bin
O bien:
$ cd ../../bin

Una vez que se encuentra en un directorio en concreto, lo mas probable es que se quiera saber el contenido del directorio. Para ello disponemos del comando ls. Su nombre proviene de "list", que precisamente lo que hace es listar el contenido de un directorio. Si se le pasa un argumento mostrara el contenido del directorio que ha servido de argumento, si no, mostrara el contenido del directorio actual.
El comando ls tiene varias opciones. A continuación se muestran las mas destacadas.
  • ls -a Muestra todos los archivos y directorios, incluyendo los que se encuentran ocultos (cuyo nombre comienza con un punto) .
  • ls -l Muestra un listado en formato largo, con información de permisos, numero de enlaces duros asociados al archivo, usuario, grupo, tamaño en bytes y fecha de la ultima modificación, además del nombre.
  • ls -lh Muestra la misma información que con la opción -l pero el tamaño del archivo se muestra en unidades mas legibles (K, M, G...).
  • ls -S Muestra el contenido ordenado por tamaño de archivo.
  • ls -t Muestra el contenido ordenado por la fecha de ultima modificacion.
  • ls -r Muestra el contenido ordenado de forma inversa.
  • ls -R Muestra la estructura de directorios que cuelga del directorio actual o del que se pase como argumento.
  • ls -i Muestra el numero del inodo en el que estan los datos de cada archivo o directorio. Si se tienen dos archivos que son enlaces duros del mismo archivo, se observa que el numero de inodo es el mismo.
  • ls -m Muestra los archivos y directorio en una sola fila, separados por comas.
  • ls -1 Muestra los archivos y directorios en una sola columna.
Las opciones pueden combinarse entre si. Por ejemplo si se ejecuta:
$ ls -lSa
Se mostrara el contenido del directorio actual ordenado por el tamaño de los archivos (por la opción S), mostrando también los archivos ocultos (por la opción a) y en formato de lista larga (por la opción l)