ConsolaDrake (I)

Esta es la primera entrega de lo que será ConsolaDrake. Con estos textos quiero hacer ver al usuario novel, lo útil que puede llegar a ser la consola. Nos vamos a mover por Bash, que es el interprete de comandos más usado, y es el que viene por defecto en Mandrake.

Voy a usar el mismo sistema que me dan a mi en clases de Sistemas Operativos en la facultad. Que nadie se asuste por eso de facultad. Lo que se empieza a ver es lo básico. Vamos a ver los comandos más importantes y las opciones más usadas de cada uno de ellos.

NOTA: Si no sabes como sacar una consola, haz lo siguiente. Pulsa Alt+F2. En la ventana que te sale escribe “konsole”. También la puedes obtener en K-->Terminales--->Konsole.

Comandos:

Empezamos con el asunto. Los comandos que tocan en esta ocasión son los siguientes:

ls: Lista el contenido de un directorio

cd: Cambia de directorio

pwd: Muestra el path absoluto del directorio en el que estamos

mkdir: Crea un directorio

rmdir: Borra un directorio

cat: Muestra el contenido de un fichero

cp: Copiar archivos

mv: Renombra archivos y/o directorios

more: Muestra el contenido de un fichero paginando la salida

tail: Muestra las últimas líneas de un fichero

man: Muestra ayuda en línea de comandos

find: Busca ficheros en la estructura de un directorio

passwd: Cambia vuestro password

Antes que nada veamos que significa path abosluto y path relativo. En primer lugar path es la ruta hasta llegar a un directorio. Imaginemos por un momento que en el directorio /home/usuario/ tenemos otro directorio que se llama blogdrake. Cuando llegamos al sistema estamos entrando en nuestro directorio /home/usuario/ y si queremos entrar en nuestro directorio blogdrake podremos hacerlo de 2 formas:

a) La primera es hacer directamente cd blogdrake/ y estaremos entrando mediante el path relativo porque es relativo a nuestra posición actual.

b) Por otro lado, podemos hacer cd /home/usuario/blogdrake/ y llegaremos al mismo lado. De esta forma hemos llegado al mismo directorio mediante el path absoluto. Con el path absoluto llegamos independientemente de donde estamos.

Si estamos en /etc/ y hacemos cd blogdrake no entraremos en ningún lado. Sin embargo si hacemos cd /home/usuario/blogdrake/ sí. Esta es la diferencia entre el path absoluto y path relativo.

Mi ruta en el instante de iniciar en el sistema es como sigue:

[parver@BlogDrake parver]$ pwd
/home/parver



Una vez dicho esto comencemos con los comandos:

ls nos permite ver los archivos que están en el directorio. El uso de ls es como sigue:ls [opciones] . Si se pone sólo ls nos mostrará el directorio actual.

Opciones:

ls -a Muestra los archivos ocultos. (Los que empiezan con '.')

ls -l Muestra una amplia información de los archivos.

ls -F Añade tras cada nombre de directorio un `/', tras cada nombre de FIFO un `|', y tras cada nombre de un ejecutable un `*'.

cd sirve para cambiar de directorio. El uso es como sigue: cd . Como se puede ver, el uso de cd es bastante simple.

rm elimina un archivo. Su uso es así: rm [opciones] . También borra un directorio con la opción -r. Hay un par de opciones que yo uso a menudo:

Opciones:

rm -r Borrará un directorio y recursivamente lo que cuelgue de este directorio.

rm -f Borrará sin preguntar “¿Desea borrar el archivo....?”. Directamente lo borrará.

pwd muestra el directorio donde nos encontramos. Nos dará la ruta absoluta.

mkdir creará un directorio. Podremos usar ruta absoluta y relativa. El uso es tal que así: mkdir [opciones] . Una opción que yo suelo usar es -p que crea al directorio padre en caso necesario. Por ejemplo: mkdir -p d1/d2 si el directorio d1 no existe entonces lo crea. Si existe no pasará nada, sólo creará el directorio d2 dentro de d1.

rmdir elimina un directorio pero sólo si éste está vacío. Su uso es como sigue: rmdir . Si quieres eliminar un directorio que no está vacío hazlo con “rm -rf” (esta opción fijo que les mola a los BOFH, XDDDD)

cat muestra el contenido de un fichero. Su uso es sencillo: cat . Si por ejemplo tenemos un fichero que se llama “texto.txt” y queremos ver el contendido podemos hacer cat texto.txt. No tenemos la necesidad de abrir un editor de textos ni nada por el estilo.

cp copia un fichero. Su uso es de la siguiente forma: cp [Opciones] . Una opción muy común es la opción -r que copia recursivamente el directorio, es decir, que el directorio tenga más directorios en su interior.

mv renombra un fichero o directorio. Su uso es: mv . Para más información “man mv”.

more funciona de la misma manera, more . En este caso también se muestra el contenido, pero lo va paginando.

tail es también similar, solo que muestra las últimas filas del archivo. No lo muestra completo. Su uso es tail . Una opción muy común es la siguiente:

tail -n X . Donde X es cualquier número. De esta forma, se muestra las ultimas X líneas del fichero. Por defecto, si no se pone la opción, muestra las últimas 10.

man es importantísimo (man es tu amigo). Man os puede facilitar mucho las cosas. Es la ayuda a cada comando. Su uso es sencillo y práctico: man . Man os mostrará por pantalla la ayuda del comando, así como las opciones que se pueden usar. Podeis probar con cualquiera de los comandos que hemos vistos. Poned en consola “man ls”. Para salir, usad la letra “q”.

find realizará una búsqueda a partir del directorio que le digamos. Su uso es fácil: find . El uso “normal” que yo suelo usar es poner find /directorio/ -name “lo_que_sea” y me buscará “lo_que_sea_” a partir del directorio /directorio/. Usa man find y verás todas las opciones que viene.

passwd sirve para cambiar la clave de un usuario. Como usuario teclea passwd y podrás realizar un cambio de clave. Si eres root puedes cambiar la clave de cualquier usuario poniendo passwd usuario.

A continuación, propongo ejercicios similares a los que tenemos que entregar en clase nosotros. Cualquier cosa que hagais que os de el resultado esperado, significará que está bien hecho. Esto quiere decir, que puede haber muchas posibilidades de hacer una misma cosa. Si alguna os resulta muy complicada, preguntadla, que alguno con algo más de experiencia os lo puede contestar.

Ejercicios:

1.- Comprueba la ruta en la que estas

2.- Moverse al directorio raíz con una sola orden

3.- Comprobar que estais en el raiz

4.- Visualizar la ayuda del comando rmdir

5.- Haceros un directorio que se llame ConsoleDrake. Cread ahora, con una sola orden, un directorio temporal dentro de ConsoleDrake que se llame temporal1 y que contenga otro que se llame temp1

6.- Copiar cualquier fichero que de vuestro directorio a ConsoleDrake/ con el nombre “copiado”

7.- Visualiza las 2 últimas líneas del fichero /etc/modules.conf

8.- Mostrar en la pantalla los ficheros que empiezan por “a” dentro del directorio /etc/

9.- Borrar el directorio temporal1

10.- Cambiar el nombre del directorio ConsoleDrake por el de BlogDrake

11.- Visualizar todos los ficheros y directorios que cuelgan del directorio "/usr", incluyendo los ocultos y en formato largo, es decir, incluyendo el tamaño, la fecha ...

12.- Mostrar los contenidos del directorio "/etc" ordenados ascendentemente por fecha.

13.- Visualizar en formato largo, todos los ficheros del directorio "/etc" que comiencen por "r", sin que se liste el contenido de los subdirectorios, sino tan solo su nombre.

14.- Localizar los fichero llamados "shadow" del sistema y mostrar su nombre completo y su tamaño.

Como comprimir y descomprimir archivos en varios formatos por consola

Aquí un pequeño manual de compresión-empaquetado de archivos por consola (Siempre es bueno saberlo ;)).

Antes que nada, veamos la diferencia entre empaquetar y comprimir:


Empaquetar:
Crear, a partir de varios archivos, un solo archivo que contenga a estos, sin reducir su tamaño.
Comprimir:
Crear a partir de un archivo, uno igual pero de menor tamaño.

Ahora una lista de compresores, empaquetadores y los que cumplen ambas funciones.

COMPRESORES:


  • gzip

    Descripción:
    gzip es una abreviatura de GNU ZIP, un software libre GNU que reemplaza al programa compress de UNIX. Se basa en el algoritmo Deflate, que es una combinación del LZ77 y la codificación Huffman.

    Instalación:

    urpmi gzip

  • bzip2

    Descripción:

    bzip2 es un programa libre desarrollado bajo licencia BSD que comprime y descomprime ficheros usando los algoritmos de compresión de Burrows-Wheeler y de codificación de Huffman. El porcentaje de compresión alcanzado depende del contenido del fichero a comprimir, pero por lo general es bastante mejor al de los compresores basados en el algoritmo LZ77/LZ78 (gzip, compress, WinZip, pkzip,...). Como contrapartida, bzip2 emplea más memoria y más tiempo en su ejecución.

    Instalación:

     urpmi bzip2 

EMPAQUETADORES:


  • tar

    Descripción:
    El formato fue diseñado para almacenar archivos de una forma conveniente en cintas magnéticas y de allí su nombre, que proviene de "Tape ARchiver" (en inglés: archivador en cinta). Debido a este origen el formato está preparado para ser procesado linealmente, no contando con manera de extraer un miembro sin recorrer todo el archivo hasta encontrarlo.
    Este posee también la posibilidad de trabajar como compresor/Empaquetador, haciendo uso de los compresores gzip y bzip2.

    Instalación:

    urpmi tar

COMPRESORES/EMPAQUETADORES:


  • tar+gzip

    Descripción:
    Tar posee la posibilidad de utilizar el compresor gzip para, previo al empaquetado, comprimir los archivos y directorios deseados

    Instalación: Se deben tener instalado tar y gzip(ver mas arriba)

  • tar+bzip2

    Descripción:
    Similar al anterior, solo que en vez de utilizar gzip, recurre al compresor bzip2

    Instalación: Se deben tener instalado tar y bzip2(ver mas arriba)

  • zip

    Descripción:

    El formato ZIP fue creado originalmente por Phil Katz, fundador de PKWARE. Katz liberó al público la documentación técnica del formato ZIP, y lanzó al mismo tiempo la primera versión de PKZIP en enero de 1989.

    Instalación:

     urpmi zip unzip

  • rar

    Descripción:

    El formato RAR fue desarrollado por Eugene Roshal y lleva su nombre. RAR significa Roshal ARchive.
    El RAR es más lento que el ZIP pero comprime más y tiene un mayor sistema de redundancia de datos para prevenir errores. Utiliza un algoritmo de compresión basado en el LZSS, que, a su vez, se basaba en el LZ77, de James Storer y Thomas Szymanski (1982).
    Software Propietario

    Instalación: aqui..

  • lha

    Descripción:
    LHA o LHARC es un algoritmo de compresión de archivos sin pérdida de información basado en el LZSS, que, a su vez, se basaba en el LZ77 de James Storer y Thomas Szymanski (1982), seguido por una etapa de codificación Huffman dinámico.

    Instalación:

     urpmi lha 

  • 7zip

    Descripción:
    Este formato usa los métodos de compresión LZMA y PPMD. Provee mucha mejor compresión que otros.


    Instalación:

     urpmi p7zip 

  • arj

    Descripción:

    Fue inventado por by Robert K. Jung. ARJ probablemente significa Archiver Robert Jung

    Instalación:

     urpmi arj unarj 

  • zoo
    Instalación:

     urpmi zoo 

  • ace

    Descripción:
    ACE es un formato de fichero de archivo de compresión de datos privativo desarrollado por e-merge GmbH.

    Instalación:

     urpmi unace 

UTILIZACIÓN DE LAS HERRAMIENTAS:(Esta es quizás la parte mas importante. :P)


  • tar(.tar)

    	Empaquetar:	 tar -cvf Paquete.tar Archivos 
    	Desempaquetar:	 tar -xvf Paquete.tar 
    	Ver contenido:	 tar -tf Paquete.tar 

  • gzip(.gz)

    	
    	Comprimir: 	gzip Archivo 
    	Descomprimir: 	gzip -d Archivo.gz 

  • bzip2(.bz2)

    	Comprimir:	bzip2 -k fichero
    	Descomprimir:	bzip2 -kd fichero.bz2 

    Nota: La opcion k indica que NO se borre el archivo original, si desean que se borre solo no lo pongan ;)

  • tar+gzip(tar.gz)

    	Comprimir:	tar -czf archivo.tar.gz ficheros 
    	Descomprimir:   tar -xvzf archivo.tar.gz 
    	Ver contenido:  tar -tzf archivo.tar.gz 

  • tar+bzip2(tar.gz2)

         
    	Comprimir: tar -cjf archivo.tar.bz2 Archivos
            Descomprimir: tar -xjvf archivo.tar.bz2
            Ver contenido: tar -tjf archivo.tar.bz2 

  • zip(.zip)

    	Comprimir:	zip archivo.zip ficheros 
    	Descomprimir:	unzip archivo.zip
    	Ver contenido:	unzip -v archivo.zip 

  • rar(.rar)

    	Comprimir:	rar a archivo.rar Archivos
    	Descomprimir:	rar x archivo.rar
    	Ver contenido:	rar l archivo.rar o  rar v archivo.rar 

  • lha (.lha o lzh)

    	Comprimir:	lha a archivo.lha Archivos
    	Descomprimir:	lha x archivo.lha 
    	Ver contenido:	lha v archivo.lha o lha l archivo.lha 

  • 7zip(.7z)

    	Comprimir:	7za a archivo.7z archivos 
    	Descomprimir:	7za x archivo.7z 	
    	ver contenido:	7za l archivo.7z 

  • arj(.arj)

    	Comprimir:	arj a archivo.arj ficheros 
    	Descomprimir:	unarj archivo.arj o  arj x archivo.arj 
    	Ver contenido:	arj v archivo.arj o  arj l archivo.arj 

  • zoo(.zoo)

         
    	Comprimir:	zoo a archivo.zoo archivos 
    	Descomprimir:	zoo x archivo.zoo 
    	Ver contenido:	zoo L archivo.zoo o  zoo v archivo.zoo 

  • ace(.ace)

    	Descomprimir:	unace x Archivo.ace 
    	Ver contenido:	unace l Archivo.ace 

Espero que a alguien le sirva de utilidad.
Saludos!!