lundi 18 février 2013

Denominación Simbólica de Sistemas Internet 2013

En lugar de los números lógicos vistos previamente (del tipo 132.227.70.83), es posible utilizar
nombres simbólicos tanto para las redes como para las máquinas. Estos nombres se estructuran de
modo jerárquico, de modo similar al sistema de ficheros UNIX, tal y como puede verse en la Figura
36.
internet
com edu gov uk fr es
mdi att ucsb ornl cerfacs ceit
Figura 36
en la que por ejemplo, com indica empresas comerciales (como MDI o ATT), edu indica
instituciones educativas americanas, gov instituciones gubernamentales, etc. A la derecha aparecen
los indicativos de otros países, como el reino Unido, Francia y España. En la línea inferior aparecen
las instituciones concretas de que se trate. Dentro de cada institución se pueden identificar las
máquinas y los usuarios. El comando nslookup permite hallar la dirección numérica Internet de un
ordenador a partir de su nombre simbólico.
12.8 Comando telnet
Permite abrir una terminal virtual en un sistema distante. Este comando no requiere que los sistemas
sean UNIX, y tiene la siguiente forma general:
telnet [direccion_host [puerta]]
donde la direccion_host puede ser el numero de Internet, el nombre en el fichero /etc/hosts o el
nombre simbólico completo de la máquina. Si el sistema tiene varias puertas, hay que especificar
por cual se desea hacer la conexión. Para salir de telnet se emplead el comando quit (o simplemente
q).
12.9 Comando ftp
Permite la transferencia de ficheros entre sistemas distantes. Supone una conexión entre el sistema
local y el sistema distante. Tiene la siguiente forma general:
ftp [-g] [-i] [-n] [-v] [direccion_host ]
Si se define la máquina distante direccion_host se conecta con ella la máquina local. Si no, se entra
en modo comando con el prompt ftp>. En ftp no se arranca un shell especial en la máquina distante.
Las opciones tienen el siguiente significado:

COMANDOS UTILES PARA TRABAJAR EN 2 red 2013

COMANDOS UTILES PARA TRABAJAR EN RED.............................................................................68
12.6 PROTOCOLOS INTERNET (IP)......................................................................................................................68
12.7 DENOMINACIÓN SIMBÓLICA DE SISTEMAS INTERNET.................................................................................69
12.8 COMANDO TELNET ...................................................................................................................................69
12.9 COMANDO FTP............................................................................................................................

Al comienzo de la línea, un campo formado por un carácter cualquiera que se repite
las veces que sea, volviendo a aparecer dos veces mas antes de que se acabe la línea. Esta expresión
detectaría las líneas que contienen palabras (o conjuntos de palabras) triples.
- una expresiones regulares de un sólo carácter seguida de \(entero\) representa entero
apariciones consecutivas de alguno de los caracteres aceptados por la expresiones regulares de un
sólo carácter. Si va seguida de \(entero,\) representa un número mínimo de entero apariciones
consecutivas. Si va seguida de \(entero1, entero2\) representa un mínimo de entero1 y un máximo
de entero2 apariciones consecutivas. Los números enteros deben estar comprendidos entre 0 y 255.
- toda expresión que comienza con ˆ indica que los caracteres buscados deben estar a
comienzo de la línea
ˆ[a-z]* selecciona las líneas que sólo contienen letras minúsculas
- toda expresión que termina con indica que los caracteres buscados deben estar a final de la
línea
ˆ[a-z]\{3\}[ˆa-z]\{3\} selecciona las líneas que comienzan con tres minúsculas, terminan con tres
caracteres cualesquiera pero que no son minúsculas, y no tiene ningún otro carácter entre medio.
12.5 COMANDOS UTILES PARA TRABAJAR EN RED
12.6 Protocolos Internet (IP)
Cualquier comunicación entre dos sistemas distantes debe resolver los dos problemas siguientes: a)
Designación de cada sistema (addressing), y b) Selección del camino a seguir por la comunicación
(routing).
El protocolo IP define una dirección lógica para cada red local. La dirección de una máquina
concreta se forma añadiendo a la dirección de la red el número que identifica a la máquina en esa
red. La dirección completa tiene 32 bits, y se suele dar en la forma de 4 octetos separados por
puntos (por ejemplo: 132.227.70.83). El número de octetos que designa a la red (izquierda) y a la
máquina (derecha) es variable, dependiendo del tamaño de la red.
El camino de los mensajes (routing) se establece a través de ciertos ordenadores, llamados
"pasarelas", que tienen la propiedad de pertenecer al menos a dos redes. Existen tablas que indican
cual es la pasarela de la red local a través de la cual se puede acceder a otras redes.
Los mensajes enviados tienen un encabezamiento con las direcciones de los ordenadores "desde" y
"hacia". Como los mensajes se suelen enviar fragmentados por problemas de tamaño, el
encabezamiento lleva también la información necesaria para reconstruir el mensaje al llegar a su
destino.
Las características principales de este nivel de comunicación entre ordenadores son: a) La conexión
no es interactiva (se envía el mensaje y no se hace nada más), y b) No se garantiza ni la llegada, ni el
orden de llegada, ni la no duplicación de los mensajes).

ANEJOS.linux 2013

  1. ESIISS: Aprenda Linux como si estuviera en Primero página 64
    12. ANEJOS
    12.1 Compilado de programas en Linux
    Linux como cualquier sistema Unix que se precie incluye un compilador de C y C++. Esto no
    implica que se esté limitado a estos dos lenguajes de programación. Por el contrario existen una
    gran cantidad de compiladores gratuitos para los lenguajes más importantes.
    El compilador de C/C++ de Linux es un compilador de línea de comandos, esto es, no dispone de
    ninguna interfaz gráfica que facilite la programación y compilación del código. Existen eso sí
    editores de texto capaces de mostrar la sintaxis del código resaltada como kwrite, aunque la
    compilación hay que realizarla manualmente a través de una consola o terminal.
    12.2 Compilación y linkado
    El primer paso para crear un programa, por ejemplo en C++, es crear el fichero de código fuente, y
    guardarlo en un fichero de texto por ejemplo e1.cpp. Tras esto hay que compilar el programa. Para
    esto se empleará el comando g++, de la siguiente forma:
    g++ e1.cpp
    Con lo que conseguiremos que se compile el programa. Con este comando hemos conseguido que
    se cree un programa llamado a.out en el directorio de trabajo. Para ejecutarlo emplearemos
    ./a.out
    Normalmente no desearemos que el programa se llame a.out sino que tenga un nombre más
    significativo, como ejemplo_1, para conseguirlo emplearemos:
    g++ -o ejemplo_1 e1.cpp
    Si queremos ejecutar el programa emplearemos ./ejemplo_1. Si el programa escrito realiza emplea
    alguna función que no se encuentre en la librería estándar hay que incluirla en la orden de
    compilación, por ejemplo:
    g++ -o ejemplo_2 e2.cpp -lname
    Donde name es el nombre de la librería. Por defecto estas se guardan en un fichero cuyo nombre es
    libname.so, cuya localización suele ser /usr/lib.
    Si el programa no está escrito en C++ sino en C las opciones de compilación son las mismas salvo
    que en lugar del programa g++ se empleará el comando gcc.
    gcc –o ejemplo_3 e3.c
    12.3 Comando make
    Este comando sirve para organizar la compilación y el enlazado de programas complicados que
    dependen de muchos módulos y librerías diferentes. Cuando se ejecuta este comando, se construye
    un nuevo ejecutable volviendo a compilar sólo aquellos ficheros fuente que son más recientes que el
    los ficheros compilados correspondientes, teniendo en cuenta para ello las fechas de última
    modificación de cada fichero.
    Capítulo 12: ANEJOS página 65
    Este comando se basa en un fichero ASCII (llamado por defecto makefile) que contiene una
    relación de dependencias entre los distintos módulos, así como las acciones que hay que realizar
    para poner a punto cada módulo, es decir para pasar de un fuente a un objeto, por ejemplo. Este
    comando tiene la siguiente forma general:
    make [–f makefilename] [–arg_opt] [exe_name]
    El fichero makefile (con éste o con otro nombre invocado por medio de la opción –f) contiene
    cuatro tipos de líneas diferentes:
    •= Líneas de comentario, que comienzan por el carácter (#). Si en una línea cualquiera aparece el
    carácter (#), se ignora todo lo que aparece a continuación de dicho carácter en dicha línea.
    •= Líneas de definición de macros. Tienen la forma general,
    IDENTIFICADOR = cadena_de_caracteres
    Si en alguna otra línea aparece (IDENTIFICADOR), dicha ocurrencia se sustituye por
    cadena_de_caracteres. No es necesario que el nombre del identificador esté escrito con
    mayúsculas, pero es una costumbre bastante extendida el hacerlo así. Mediante el uso de macros se
    pueden representar brevemente pathnames o listas de nombres de ficheros largos. Si el identificador
    tiene una sola letra, no hace falta poner los paréntesis. El comando make tiene una serie de macros
    definidas por defecto que se pueden listar con el comando make –p.
    Líneas describiendo las relaciones de dependencia. Tienen la forma,
    file.o fila.o ... : file1.cpp file2.cpp ...
    La lista de ficheros que están a la izquierda del carácter (:) dependen de los ficheros que están a la
    derecha. En estas líneas se realiza la sustitución habitual de los caracteres (?*[])
    Líneas de comandos shell, comenzando siempre por un tabulador. Estas líneas representan las
    acciones que hay que realizar para actualizar los ficheros dependientes, según las relaciones de
    dependencia descritas en la línea anterior. En una misma línea de comandos puede haber varios
    comandos separados por un carácter (;), y de este modo se ejecutan en un mismo proceso; si hay
    varias líneas de comandos, cada línea se ejecuta en un proceso diferente. Estos comandos shell
    (compilaciones, etc.) se ejecutan o no según las fechas de los ficheros correspondientes. Hay
    también una lista de dependencias implícitas y de macrodefiniciones standard que se pueden obtener
    con el comando make -p (la salida de este comando puede tener varios cientos de líneas). A
    continuación se presentan algunos ejemplos de ficheros makefile.
    A continuación se muestran una serie de ejemplos
    # Esto es un ejemplo de fichero makefile
    # Definiciones de macros
    ma = ma27ad.o ma27bd.o ma27cd.o
    TEST: test.o (ma)
    xlf –o TEST –O (ma)
    test.o: test.f
    xlf –c –O test.f
    ma27ad.o: ma27ad.f
    ESIISS: Aprenda Linux como si estuviera en Primero página 66
    xlf –c –O ma27ad.f
    ma27bd.o: ma27bd.f
    xlf –c –O ma27bd.f
    ma27cd.o: ma27cd.f
    xlf –c –O ma27cd.f
    Hay informaciones que no es necesario dar por que se suponen por defecto. Por ejemplo, si el
    fichero objeto (.o) y el fichero C (.c) o C++ (.cpp) tienen el mismo sufijo, no hace falta definir esas
    relaciones de dependencia, que por otra parte son triviales.
    12.4 Búsqueda avanzada en ficheros. Expresiones regulares
    A veces se desea encontrar las líneas de un fichero que contienen una palabras o palabras
    determinadas. Cuando el texto que se desea encontrar es único, lo que hay que hacer es ponerlo tal
    cual en la sección del comando que define la búsqueda, por ejemplo
    grep "PATATAS" Lista_de_la_compra.txt
    Sin embargo, en otras ocasiones el texto que se desea buscar no es único, es decir, no está
    unívocamente determinado como en el ejemplo anterior, sino que debe cumplir unas ciertas
    condiciones, como la de estar escrito con mayúsculas, comenzar por determinado carácter, estar a
    principio o final de línea, etc. Este problema se puede resolver en muchos comandos de Linux por
    medio de las expresiones regulares que se van a presentar a continuación.
    Las expresiones_regulares son una forma de describir patrones para la búsqueda de unas
    determinadas líneas dentro de uno o más ficheros ASCII. Se trata pues de encontrar las líneas cuyo
    contenido cumple ciertas condiciones, que se definen en la expresión_regular.
    12.4.1 Caracteres especiales
    En una expresión_regular se pueden utilizar algunos caracteres que tienen un significado especial.
    Son los siguientes:
    [ comienzo de la definición de un conjunto de caracteres
    . un carácter cualquiera, excepto el <eol>
    * un conjunto de caracteres cualesquiera, excepto el primer carácter de una expresión o
    inmediatamente después de la secuencia \(
    ] terminación de la definición de un conjunto de caracteres
    - sirve para definir el conjunto de caracteres que van del que le precede al que le sigue. Si va
    detrás del [ o delante del ], no es especial
    ˆ comienzo de línea, si está al comienzo de la expresión
    ˆ conjunto complementario (el que no cumple la condición), si está justo después del [ que
    abre la definición de un conjunto
    fin de línea, cuando está al final de una expresión
    Capítulo 12: ANEJOS página 67
    \ quita el significado especial a un carácter, excepto en la definición de un conjunto de
    caracteres
    12.4.2 Expresiones regulares de un solo carácter
    Se trata de buscar palabras o conjuntos de un solo carácter, que cumple ciertas condiciones. A
    continuación se presentan algunos ejemplos:
    \* representa el carácter *
    . cualquier carácter, excepto el <eol>
    [a-f] un carácter cualquiera entre la a y la f
    [A-Z] cualquier letra mayúscula
    [ˆa-d] cualquier carácter que no sea una letra entre la a y la d
    [:clase:] donde clase puede ser: digit (cifra del 0 al 9), xdigit (cifra hexadecimal), alpha (letra
    cualquiera), upper (letra mayúscula), lower (letra minúscula), alnum (letra o dígito cualquiera),
    space (un espacio en blanco), cntrl (carácter de control), punct (un carácter de puntuación) y print
    (carácter imprimible).
    12.4.3 Expresiones regulares generales
    Se pueden formar de acuerdo con las siguientes reglas:
    - una expresión regular de un sólo carácter
    [a-z] cualquier letra minúscula
    - una expresión regular de un sólo carácter, seguida del carácter *, representando entonces
    todas las palabras de longitud positiva o nula que se pueden construir con los caracteres aceptados
    por la una expresiones regulares de un sólo carácter
    [a-z]* cualquier palabra escrita con minúsculas
    - concatenando (poniendo una a continuación de la otra) dos expresiones regulares construidas
    previamente
    [a-z][A-Z] cualquier palabra de dos letras, de las cuales la primera es minúscula y la segunda
    mayúscula
    - Una expresión_regular definida en la forma \(expresiones regulares\) representa la propia
    expresiones regulares (es decir, definida ella sola), pero define una forma de referirse luego a esa
    expresiones regulares. En efecto las expresiones regulares definidas de esta forma quedan afectadas
    por un número del 1 al 9, y es posible luego hacer referencia a una expresiones regulares por medio
    del número que le corresponde, en la forma \número. Si \número va seguido de un *, esa
    subexpresión puede repetirse un número cualquiera de veces

PROGRAMAS DE COMANDOS linux 2013

PROGRAMAS DE COMANDOS....................................................................................................................60
11.1 INTRODUCCIÓN DE COMENTARIOS.............................................................................................................61
11.2 VARIABLES DEL SHELL ..............................................................................................................................61
11.3 COMANDO ECHO.......................................................................................................................................61
11.4 PARÁMETROS DE LOS FICHEROS DE COMANDOS ........................................................................................62
11.5 OTRAS POSIBILIDADES DE LOS FICHEROS DE COMANDOS ...........................................................................63
11. PROGRAMAS DE COMANDOS
El sistema operativo Linux, al igual que otros sistemas operativos, permite realizar programas de
comandos, esto es, programas constituidos por distintos comandos que podrían teclearse
interactivamente uno por uno en una terminal, pero que es muchas veces más cómodo agruparlos en
un fichero, y ejecutarlos con una sola instrucción posteriormente.
Los comandos de Linux pueden ser externos - que implican la creación de un nuevo proceso, cuyo
código está en /bin o /usr/bin- e internos - cuyo código está incluido en el del intérprete shell que
los ejecuta.
Una cierta primera forma de agrupar comandos la ofrece Linux por medio del carácter ;. Por
ejemplo, tecleando el comando,
date; ls; who
el ordenador ejecutará sucesivamente los comandos date, ls y who. También podría crearse con un
editor de textos un fichero llamado comandos que contuviera las líneas siguientes:
date
ls
who
Para ejecutar este fichero de comandos puede teclearse,
sh comandos
o bien convertir el fichero comandos en directamente ejecutable por medio del comando chmod en
la forma,
chmod a+x comandos
de modo que el programa de comandos comandos puede ejecutarse simplemente tecleando su
nombre,
comandos
Los comandos sh comandos y comandos no son enteramente equivalentes. Así, el primero de ellos
exige que el fichero comandos esté en el directorio de trabajo, mientras que el segundo sólo exige
que el fichero comandos esté en uno de los directorios de búsqueda de comandos especificados en
la variable PATH.
Cuando se ejecuta un fichero de comandos Linux abre lo que se llama un nuevo shell, es decir un
nuevo entorno para la ejecución de los comandos. Para que las variables del caparazón original
conserven su valor en el nuevo caparazón es necesario prepararlas con la sentencia export antes de
abrir el nuevo shell. Por ejemplo, como consecuencia de lo que se acaba de decir, si en el interior de
un fichero de comandos se cambia de directorio con el comando cd, al acabar la ejecución de dicho
fichero volveremos automáticamente al directorio inicial.
Capítulo 11: PROGRAMAS DE COMANDOS página 61
11.1 Introducción de comentarios
Para introducir líneas de comentarios en un programa de comandos basta comenzar dichas líneas
con el carácter #. Hay que tomar la precaución de que este carácter no sea el primer carácter del
fichero de comandos, porque entonces el ordenador interpreta que el programa está escrito en Cshell
(una variante especial de UNIX desarrollada en la Universidad de Berkeley) y el resultado es
imprevisible. Puede ser buena práctica comenzar todos los ficheros de comandos con una línea en
blanco.
11.2 Variables del shell
UNIX permite definir variables en un fichero de comandos en la forma,
USER=/mnt/mecan/juanto
TERM=hp2392
...
Es una práctica habitual el utilizar nombres con letras mayúsculas para las variables del caparazón.
Para recuperar el valor de una variable hay que precederla con el carácter . Por ejemplo, utilizando
en otra parte del programa TERM, en dicho lugar se sustituiría TERM por su valor, esto es, hp2392.
El shell del Linux tiene definidas para cada usuario unas variables estándar. Para averiguar cuáles
son basta teclear el comando siguiente,
set
Para definir otras variables propias de cada usuario puede utilizarse el fichero .profile, que es un
fichero de comandos propio de cada usuario que se ejecuta automáticamente al hacer el login.
Para definir variables que contengan espacios en blanco deben encerrarse entre caracteres (') o ("),
como por ejemplo,
FECHA="31 de Diciembre de 1986"
más adelante se verá la diferencia entre el carácter (') y el carácter (").
11.3 Comando echo
El comando echo imprime un determinado texto en la terminal. Un ejemplo de utilización de dicho
comando puede ser el siguiente:
echo Me gusta el sistema operativo UNIX
El comando echo es de gran utilidad en los ficheros de comandos. Cuando el texto que se desea
escribir en la terminal contiene alguno de los caracteres especiales de UNIX ( * ? [ ] > >> < & ; \ ' )
hay que tomar precauciones especiales desconectando su significado. Una forma de hacerlo es
precediendo dicho carácter con la barra invertida (\). Así, para escribir mediante el comando echo
tres asteriscos, utilizaríamos
echo \*\*\*
ESIISS: Aprenda Linux como si estuviera en Primero página 62
si no utilizáramos la barra invertida, el asterisco se interpretaría como un carácter de sustitución y se
imprimiría el nombre de todos los ficheros del directorio.
Otra forma de anular el significado de los caracteres especiales es encerrando el texto a escribir
mediante comillas (") o entre apóstrofos normales ('). Los apóstrofos (') anulan el significado de
todos los caracteres comprendidos entre ellos. Así pues, el triple asterisco lo podríamos escribir con
el comando,
echo '***'
Las comillas (") son menos restrictivas, y anulan el significado de todos los caracteres excepto los
tres siguientes: ( ` \). Esto es muy importante porque si VAR es el nombre de una variable, y VAR
aparece en un comando echo entre apóstrofos se escribe VAR, mientras que si aparece entre
comillas se escribe el valor de la variable, al cumplir el carácter su cometido.
El carácter (\) tiene otros significados, además del ya visto de anular el significado especial de otros
caracteres. Así, sirve como indicador de que un comando continúa en la línea siguiente. Cuando se
utiliza en la definición interactiva de un comando, en la línea siguiente aparece el prompt
secundario (>), que indica que se debe seguir tecleando el comando. Cuando en un comando echo
aparecen los caracteres (\c) y (\n) quiere decir, respectivamente, que no se cambie de línea y que se
salte de línea, al escribir por la pantalla.
El carácter apóstrofo inverso o acento grave (`) tiene también un significado especial. Cuando en un
comando echo aparece el nombre de otro comando encerrado entre apóstrofos inversos (por
ejemplo, `date`, `who`, `ls`, ...), el nombre de dicho comando se sustituye por el resultado que
genera al ejecutarse interactivamente. Un ejemplo podría ser el siguiente:
echo "Los usuarios del sistema son \n\n `who`"
El lector puede hacer la prueba y observar el resultado correspondiente.
11.4 Parámetros de los ficheros de comandos
A los ficheros de comandos pueden pasárseles como parámetros un conjunto de una o más
variables. Dentro del fichero de comandos estas variables o parámetros se conocen con los nombres
0, 1, 2, ..., 9. La variable 0 representa el propio nombre del fichero de comandos, y 1, 2, ..., 9 son los
nombres de los parámetros propiamente dichos
Vamos a comenzar viendo un ejemplo muy sencillo de programa de comandos al que se le pasa sólo
una variable o parámetro. El comando de borrar de Linux rm no confirma la operación de borrado
si no se le pone la opción (-i). Esto es peligroso porque uno fácilmente puede olvidarse de teclear
dicha opción y borrar lo que no quería borrar. Vamos a crear un fichero de comandos llamado del
que incluya dicha opción. Dicho fichero podría estar formado por,
echo "Quiere borrar el fichero 1?"
rm -i 1
Después de darle a este fichero el correspondiente permiso de ejecución con el comando chmod,
podríamos borrar con confirmación el fichero file tecleando,
del file
Capítulo 11: PROGRAMAS DE COMANDOS página 63
Dentro del fichero de comandos, 0 valdría del y 1 valdría file.
Un programa de comandos más complicado y que utiliza dos parámetros podría ser el contenido en
el fichero cambio, que intercambia el nombre de dos ficheros:
mv 1 ficheropufo
mv 2 1
mv ficheropufo 2
Este fichero se ejecutaría en la forma,
cambio file1 file2
En este ejemplo 0 es cambio, 1 es file1 y 2 es file2. En realidad a un fichero de comandos se le
pueden pasar todos los argumentos que se deseen, aunque sólo hay nombre específico para los
nueve primeros (más el propio nombre del comando). El número de argumentos que se le pasa está
contenido en la variable #. La variable * contiene el conjunto de todos los parámetros. Un nuevo
ejemplo puede aclarar algo más este punto.
Si el programa del que hemos hecho previamente lo hubiéramos utilizado en la forma:
del *.f
teóricamente debería de borrar, con confirmación, todos los ficheros Fortran del directorio. En la
práctica no es así, porque (*.f) no representa un único argumento sino muchos argumentos (todos
los ficheros Fortran del directorio). Como resultado sólo se borra el primer fichero Fortran. Para
borrar todos e indicarnos además cuántos ficheros hay, el fichero del podría estar compuesto por los
siguientes comandos:
echo "Hay # programas Fortran \n"
rm -i *
El comando shift hace posible utilizar y distinguir parámetros que están más a la derecha del
noveno lugar en la llamada al programa de comandos. En efecto, cuando se llama al comando shift,
2 se convierte en 1, 3 en 2, etc, y lo que hubiera sido 10 en 9, con lo cual ya se puede referenciar. El
comando shift deja inalterado 0 y puede utilizarse tantas veces como se desee.
11.5 Otras posibilidades de los ficheros de comandos
Los ficheros de comandos tienen muchas más posibilidades que las que se han apuntado en esta
Introducción: pueden leer variables, preguntar por la existencia de un fichero y por si es ejecutable o
no, y admiten construcciones lógicas del tipo IF, DO, DO WHILE, etc. Para utilizar estas
posibilidades acudir al manual correspondiente.

EJECUCIÓN DE PROGRAMAS linux 2013

10.1 EJECUCIÓN EN EL FONDO & , KILL, NICE Y NOHUP ....................................................................................58
10.2 COMANDO TIME........................................................................................................................................58
10.3 COMANDO TOP ............................................................................................................................... 58


10. EJECUCIÓN DE PROGRAMAS
10.1 Ejecución en el fondo & , kill, nice y nohup
Para ejecutar un programa en el fondo, es decir, recuperando inmediatamente el control del
terminal, basta añadir el carácter & al final del comando de ejecución:
program <datos.d >resultados.r &
inmediatamente aparecerá en el terminal, debajo de esta línea, un número que es el número de
proceso de la ejecución de este programa. Para detener definitivamente dicha ejecución (no se
puede detener temporalmente) se puede utilizar el comando kill:
kill númerodeproceso
La ejecución de un programa en el fondo no impide que aparezcan en la pantalla los mensajes de
error que se produzcan (a no ser que se haya redirigido la salida de errores), y que el programa se
pare cuando se salga del sistema. Para que el programa continúe ejecutándose aún cuando nosotros
hayamos terminado la sesión, hay que utilizar el comando nohup:
nohup program
Si no se utilizan redirecciones todas las salidas del programa se dirigen a un fichero llamado
nohup.out. Cuando se utiliza nohup el ordenador entiende que el usuario no tiene prisa y
automáticamente disminuye la prioridad de la ejecución. Existe un comando, llamado nice, que
permite realizar ejecuciones con baja prioridad, es decir se le indica al ordenador que puede ejecutar
de forma más lenta esta aplicación si existen otras que sean más urgentes. Se utiliza en las formas,
nice program &
nice nohup program &
Para darle al programa la prioridad mínima habría que utilizar el comando,
nice -19 program &
donde el -19 indica la mínima prioridad.
10.2 Comando time
El comando time, precediendo a cualquier otro comando, suministra información acerca del tiempo
total empleado en la ejecución, del tiempo de CPU utilizado por el programa del usuario, y del
tiempo de CPU consumido en utilizar recursos del sistema. Por ejemplo para saber el tiempo
utilizado en la compilación y montaje del programa prueba.c utilizaríamos el comando,
time gcc prueba.c
10.3 Comando top
Linux incluye una aplicación llamada top cuya finalidad es manipular la ejecución de programas de
una forma interactiva. Esta aplicación muestra una lista de los procesos que se están ejecutando. Los
principales comandos de top son: u que muestra los procesos que pertenecen a un determinado

REDIRECCIONES Y TUBERÍAS

9. REDIRECCIONES Y TUBERÍAS...................................................................................................................56
9.1 REDIRECCIONES .......................................................................................................................................56
9.2 TUBERÍAS.................................................................................................................................................56
9.3 BIFURCACIÓN O T (COMANDO TEE) ...........................................................................................................57
9.4 REDIRECCIÓN DE LA SALIDA DE ERRORES..................................................................................................

9. REDIRECCIONES Y TUBERÍAS
9.1 Redirecciones
Los comandos de Linux tienen una entrada estándar (número 0) y dos salidas estándar (número 1
para la salida normal del comando, y número 2 para la salida de los mensajes de error que se puedan
producir en su ejecución). Por defecto tanto la entrada como las salidas estándar de los comandos
son la propia terminal, a no ser que por la propia naturaleza del comando se den en él los nombres
de algunos ficheros que hagan el papel de entrada y de salida. Por ejemplo, en el comando
cp file1 file2
file1 es la entrada y file2 es la salida; aquí no intervienen las entradas y salidas estándar. Sin
embargo, cuando utilizamos por ejemplo el comando ls (listado de directorio), la salida de este
comando se dirige hacia la terminal. Si queremos que la salida de este comando se dirija a un
fichero llamado file, podríamos escribir,
ls >file
el (>) es uno de los llamados operadores de redirección y dirige la salida estándar hacia el fichero
indicado a continuación; si este fichero no existe, se crea en ese momento. Otros operadores de
redirección son el operador (<) que redirige la entrada estándar desde un determinado fichero, y el
operador (>>) que redirige la salida estándar hacia otro fichero, pero añadiendo dicha salida al final
de ese fichero, sin sobreescribir el contenido original. Por ejemplo, si cada vez que entramos en el
sistema ejecutamos el comando,
date >>archivo
tendremos un fichero llamado archivo que contiene información sobre todas las veces que hemos
entrado en el sistema. Otro ejemplo, para añadir al fichero file2 al final de file1 y al conjunto
llamarle file3, sería
cat file1 file2 >file3
o, si quisiéramos que el fichero resultante fuera el mismo file1,
cat file2 >>file1
Un ejemplo en redirección a la entrada podría ser el siguiente,
mail juan <carta
que envía al usuario juan el contenido del fichero carta.
9.2 Tuberías
Siguiendo con los ejemplos anteriores, si quisiéramos enviar a juan una lista de nuestros ficheros
podríamos utilizar los comandos,
ls >fichero
mail juan <fichero
rm fichero
Capítulo 9: REDIRECCIONES Y TUBERÍAS página 57
Es decir que hemos conectado la salida estándar de ls con la entrada estándar de mail, a través de un
fichero transitorio filelist. Linux permite hacer esta operación directamente, sin pasar por el fichero
de almacenamiento transitorio: esto se hace mediante el concepto de tubería (pipe), que consiste en
empalmar la salida estándar de un comando con la entrada estándar de otro. Para el ejemplo anterior
esto se hace en la forma,
ls | mail juan
Con el operador de tubería (|) se pueden empalmar tantos comandos como se desee.
9.3 Bifurcación o T (comando tee)
A veces interesa que la salida de un comando, además de redirigirse a un determinado fichero, se
bifurque también hacia la terminal, con objeto de observar inmediatamente el resultado. Esto se
consigue con el operador tee, que podría emplearse de la siguiente forma:
ls | tee file
la salida de ls se bifurca hacia la terminal y hacia file.
Si quisiéramos que la salida de este comando se añadiera al final de file, deberíamos utilizar la
opción -a,
ls | tee -a file
9.4 Redirección de la salida de errores
Los mensajes de error se dirigen a la salida número 2, que normalmente es también la terminal. A
veces, por ejemplo cuando se quiere ejecutar un comando en background (ejecutar un comando en
background es lanzar su ejecución y recuperar el control de la terminal sin esperar a que termine, lo
cual se hace añadiendo el carácter & al final del comando), interesa evitar que los mensajes de error
aparezcan en la pantalla, pues en ella habremos empezado a hacer otra cosa.
Supongamos por ejemplo que queremos compilar y montar en background un conjunto de ficheros,
dirigiendo los listados a un fichero llamado listados, y los mensajes de error a un fichero llamado
errores. Lo haríamos en la forma,
gcc prueba.c 2>errores
con lo cual la salida 2 (errores) se redirige hacia el fichero errores. Para redirigir la salida estándar
de errores al mismo fichero que la salida estándar se emplea un comando como:
program <datos.d >resultados.r 2>&1

ESPACIO OCUPADO EN EL DISCO COMANDOS DU Y DF

8.4 ESPACIO OCUPADO EN EL DISCO COMANDOS DU Y DF................................................................................52
8.5 VISUALIZACIÓN SIN FORMATO DE UN FICHERO. COMANDO CAT ................................................................52
8.6 COMANDO HEAD ......................................................................................................................................53
8.7 VISUALIZACIÓN DE FICHEROS CON FORMATO. COMANDO PR.....................................................................53
8.8 VISUALIZACIÓN DE FICHEROS PANTALLA A PANTALLA. COMANDOS MORE Y LESS.....................................53
8.9 BÚSQUEDA EN FICHEROS. COMANDOS GREP, FGREP Y EGREP....................................................................54
8.10 COMANDOS TAR Y GZIP .............................................................................................................................54
8.11 COMANDOS DE IMPRESIÓN.

oper Indica la operación que se desea hacer con el permiso. Para dar un permiso
se pondrá un +, y para quitarlo se pondrá un -.
permiso Indica el permiso que se quiere dar o quitar. Será una combinación
cualquiera de las letras anteriores : r,w,x,s.
files Nombres de los ficheros cuyos modos de acceso se quieren cambiar.
Por ejemplo, para quitar el permiso de lectura a los usuarios de un fichero el comando es:
chmod a -r fichero.txt
Los permisos de lectura, escritura y ejecución tienen un significado diferente cuando se aplican a
directorios y no a ficheros normales. En el caso de los directorios el permiso r significa la
posibilidad de ver el contenido del directorio con el comando ls; el permiso w da la posibilidad de
crear y borrar ficheros en ese directorio, y el permiso x autoriza a buscar y utilizar un fichero
concreto.
Por otra parte, el comando chown se emplea para cambiar de propietario (“change owner”) a un
determinado conjunto de ficheros. Este comando sólo lo puede emplear el actual propietario de los
mismos. Los nombres de propietario que admite Linux son los nombres de usuario, que están
almacenados en el fichero /etc/passwd. La forma general del comando chown es la siguiente:
chown newowner file1 file2 ...
Análogamente, el grupo al que pertenece un fichero puede ser cambiado con el comando chgrp, que
tiene una forma general similar a la de chown,
chgrp newgroup file1 file2...
Los grupos de usuarios están almacenados en el fichero /etc/group.
8.4 Espacio ocupado en el disco Comandos du y df
El comando du permite conocer el espacio ocupado en el disco por un determinado directorio y
todos los subdirectorios que cuelgan de él. Para usarlo basta simplemente colocarse en el directorio
adecuado y teclear, du, éste comando da el espacio de disco utilizado en bloques. Para obtener la
información en bytes se debe emplear el comando con la opción –h: du -h
El comando df por el contrario informa del espacio usado por las particiones del sistema que se
encuentren montadas.
8.5 Visualización sin formato de un fichero. Comando cat
Este comando permite visualizar el contenido de uno o más ficheros de forma no formateada.
También permite copiar uno o más ficheros como apéndice de otro ya existente. Algunas formas de
utilizar este comando son las siguientes,
cat filename Saca por pantalla el contenido del fichero filename.
cat file1 file2... Saca por pantalla, secuencialmente y según el orden especificado, el
contenido de los ficheros indicados.
cat file1 file2 >file3 El contenido de los ficheros file1 y file2 es almacenado en file3.
Capítulo 8: EL SHELL: COMANDOS BÁSICOS DE LINUX página 53
cat file1 file2 >>file3 El contenido de file1 y file2 es añadido al final de file3.
cat >file1 Acepta lo que se introduce por el teclado y lo almacena en file1 (se crea
file1). Para terminar se emplea <ctrl>d
8.6 Comando head
head -7 filename
escribe las 7 primeras líneas del fichero filename
8.7 Visualización de ficheros con formato. Comando pr
Este comando, a diferencia de cat, imprime por consola el contenido de los ficheros de una manera
formateada, por columnas, controlando el tamaño de página y poniendo cabeceras al comienzo de
las mismas. Está muy en relación con el comando lp de salida por impresora. Las formas más
importantes que admite son las siguientes:
pr file Produce una salida estándar de 66 líneas por página, con un encabezamiento
de 5 líneas (2 en blanco, una de identificación y otras 2 líneas en blanco).
pr -ln file Produce una salida de n líneas por página (cuando el tamaño de papel de
impresora, por ejemplo, tiene un número de líneas distinto de 66)
pr -p file Hace una pausa para presentar la página, hasta que se pulsa <return> para
continuar
pr -t file Suprime las 5 líneas del encabezamiento y las del final de página.
pr -wn file Ajusta la anchura de la línea a n posiciones.
pr -d file Lista el fichero con espaciado doble.
pr -h `caracteres` file el argumento o cadena de caracteres `caracteres` se convertirán en la
cabecera del listado.
pr +n file Imprime el fichero a partir de la página n.
Además de los ejemplos anteriores, se pueden combinar varias opciones en un mismo comando,
como por ejemplo en: pr -dt file la salida de este comando es por la consola, pero puede
redireccionarse a otro fichero, por ejemplo, si ejecutamos el comando: pr file1 > file2 se crea un
fichero nuevo llamado file2 que es idéntico a file1, pero con formato por páginas y columnas.
8.8 Visualización de ficheros pantalla a pantalla. Comandos more y less
Estos comandos permiten visualizar un fichero pantalla a pantalla. El número de líneas por pantalla
es de 23 líneas de texto y una última línea de mensajes, donde aparecerá la palabra more. Cuando se
pulsa la barra espaciadora (el espacio en blanco), se visualizará la siguiente pantalla. Para salir de
este comando (terminar la visualización) se pulsa <ctrl>d o q. Por ejemplo: more file
El comando less es muy similar al anterior pero permite el desplazamiento a lo largo del texto
empleando las teclas de cursores pudiendo desplazarse hacia arriba o abajo de un fichero.
ESIISS: Aprenda Linux como si estuviera en Primero página 54
8.9 Búsqueda en ficheros. Comandos grep, fgrep y egrep
El comando grep localiza una palabra, clave o frase en un conjunto de directorios, indicando en
cuáles de ellos la ha encontrado. Este comando rastrea fichero por fichero, por turno, imprimiendo
aquellas líneas que contienen el conjunto de caracteres buscado. Si el conjunto de caracteres a
buscar está compuesto por dos o más palabras separadas por un espacio, se colocará el conjunto de
caracteres entre apóstrofes ('). Su formato es el siguiente:
grep 'conjuntocaracteres' file1 file2 file3
siendo 'conjuntocaracteres' la secuencia de caracteres a buscar, y file1, file2, y file31 los ficheros
donde se debe buscar. Veamos un nuevo ejemplo:
grep 'TRIANGULARIZACION MATRIZ' matrix.f scaling.f
Este comando buscará TRIANGULARIZACION MATRIZ entre las líneas de los ficheros
matrix.f y scaling.f. Este comando permite seleccionar, entre todas las líneas de uno o más ficheros,
aquellas que contienen un motivo que satisface una expresión regular determinada.
grep [-opcion] expresión_regular [referencia...]
Las opciones principales son:
c lo único que se hace es escribir el número de las líneas que satisfacen la
condición.
i no se distinguen mayúsculas y minúsculas.
l se escriben los nombres de los ficheros que contienen líneas buscadas.
n cada línea es precedida por su número en el fichero.
s no se vuelcan los mensajes que indican que un fichero no se puede abrir.
v se muestran sólo las líneas que no satisfacen el criterio de selección.
A continuación se muestra una serie de ejemplos.
•= grep ‘ˆd’ text líneas que comienzan por d.
•= grep ‘ˆ[ˆd]’ text líneas que no comienzan por d.
•= grep -v ‘ˆC’ file1 > file2 quita las líneas de file1 que comienzan por C y lo
copia en file2.
8.10 Comandos tar y gzip
Tanto el comando tar como gzip son ampliamente empleados para la difusión de programas y
ficheros en Linux. El primero de ellos agrupa varios ficheros en uno solo o “archivo”, mientras que
el segundo los comprime. En conjunto estos dos programas actúan de forma muy similar a
programas como Winzip. Para crear un nuevo archivo se emplea:
tar –cvf nombre_archivo.tar fichero1 fichero2 …


Borrado de subdirectorios. Comando rmdir

El comando mkdir (make directory) permite a cada usuario crear un nuevo subdirectorio:
mkdir subdir1
donde subdir es el nombre del directorio que se va a crear.
8.3.3 Borrado de subdirectorios. Comando rmdir
Este comando borra uno o más directorios del sistema (remove directory), siempre que estos
subdirectorios estén vacíos. Por ejemplo:
rmdir subdir1
donde subdir es el nombre del directorio que se va a eliminar.
8.3.4 Cambio de directorio. Comando cd
Este comando permite cambiar de directorio a partir del directorio actual de trabajo. Por ejemplo,
cd /home/Pedro En este ejemplo pasamos del directorio actual de trabajo al nuevo directorio
/home/Pedro, que será desde ahora nuestro nuevo directorio.
cd dire Nos traslada al subdirectorio dire (que deberá existir como subdirectorio en
el directorio actual).
cd .. Retrocedemos un nivel en la jerarquía de directorios. Por ejemplo, si
estamos en /home/Pedro y usamos este comando, pasaremos al escalafón
inmediatamente superior de la jerarquía de directorios, en este caso a /home.
Nota: al contrario que en MS-DOS en Linux no existe la forma cd.. sin
espacio entre cd y los dos puntos.
cd Nos sitúa nuevamente en el directorio personal del usuario.
8.3.5 Situación actual. Comando pwd
El comando pwd (print working directory) visualiza o imprime la ruta del directorio en el que nos
encontramos en este momento. Este comando es uno de los pocos que no tiene opciones y se utiliza
escribiendo simplemente pwd.
8.3.6 Acceso a unidades de disco
Linux a diferencia de Windows no utiliza letras ("a:", "c:", "d:", ...) para acceder a las distintas
unidades de disco de un ordenador. En Linux para acceder al contenido de una unidad de disco o de
un CD-ROM este tiene que haber sido previamente "montado". El montado se realiza mediante el
comando mount, con lo que el contenido de la unidad se pone a disposición del usuario en el
directorio de Linux que se elija. Por ejemplo para acceder al CD-ROM se teclearía el siguiente
comando:
mount -t iso9660 /dev/cdrom /mnt/cdrom

EL SHELL: COMANDOS BÁSICOS DE LINUX 2013

EL SHELL: COMANDOS BÁSICOS DE LINUX 2013

EL SHELL: COMANDOS BÁSICOS DE LINUX..........................................................................................45
8.1 INTRODUCCIÓN.........................................................................................................................................45
8.2 ALGUNOS COMANDOS SENCILLOS DE LINUX............................................................................................46
8.3 DIRECTORIO PERSONAL............................................................................................................................47
Hasta este momento se han visto los entornos gráficos existentes para Linux más importantes, no
obstante cualquier usuario de Linux acabará antes o después relacionándose con el sistema
empleando el modo texto. Este modo se basa en la ejecución de una serie de comandos, que son
interpretados por un programa o shell. Linux dispone de varios de estos programas pero el más
habitual es conocido como bash o Bourne Shell. Si Linux se ha arrancado en modo texto el sistema
arranca de forma directa el shell y queda a la espera de introducción de nuevos comandos. Si se ha
arrancado en modo gráfico se puede acceder al shell de dos formas:
•= Se puede acceder al shell del sistema presionando alguna de las siguientes combinaciones de
teclas:
•= <ctrl>+<alt>+<F1>
•= <ctrl>+<alt>+<F2>
•= <ctrl>+<alt>+<F3>
•= <ctrl>+<alt>+<F4>
•= <ctrl>+<alt>+<F5>
•= <ctrl>+<alt>+<F6>
Esto hace que el sistema salga del modo gráfico y acceda a alguna de las seis consolas virtuales de
Linux, a las cuales también se puede acceder cuando se arranca en modo de texto. Para volver al
modo gráfico hay que presionar <ctrl>+<alt>+<F7> o <ctrl>+<alt>+<F8>.
•= La segunda forma es más cómoda y menos radical permitiendo acceder al shell desde el mismo
entorno gráfico. Para esto hay que abrir un programa llamado terminal o consola, por ejemplo:
kconsole (en el entorno KDE), xterm, gnome-terminal ( en GNOME), etc como se ha visto
anteriormente.
8.1 Introducción
Existen una serie de nociones básicas que hay que tener en cuenta a la hora de introducir los
comandos. En primer lugar citaremos las siguientes:
•= Los comandos hay que teclearlos exactamente.
•= Las letras mayúsculas y minúsculas se consideran como diferentes.
•= En su forma más habitual (los shells de Bourne o de Korn), el sistema operativo utiliza un signo
de $ como prompt para indicar que está preparado para aceptar comandos, aunque este carácter
puede ser fácilmente sustituido por otro u otros elegidos por el usuario. En el caso de que el
usuario acceda como administrador este signo se sustituye por #.
ESIISS: Aprenda Linux como si estuviera en Primero página 46
•= Cuando sea necesario introducir el nombre de un fichero o directorio como argumento a un
comando, Linux, permite escribir las primeras letras del mismo y realiza un autorrellenado al
presionar la tecla del tabulador. Si no puede distinguir entre diversos casos rellenará hasta el
punto en el que se diferencien. Por ejemplo, supongamos una carpeta con los siguientes
directorios:
Programas
Documentos_proyecto
Documentos_privados
Al escribir cd Pr<tab> Linux rellenará el resto del contenido hasta escribir cd Programas. Por
el contrario al escribir cd D<tab> escribirá cd Documentos_
8.2 Algunos Comandos Sencillos de LINUX
Para efectuar el cambio o la introducción de un password o contraseña se utiliza el comando
passwd. El proceso a seguir es el siguiente:
passwd
(current) UNIX password: (se teclea la contraseña actual; no aparece en pantalla)
New UNIX password: (se teclea la nueva contraseña; no aparece en pantalla)
Retype new UNIX password: (se teclea de nuevo la nueva contraseña comprobando que se
ha tecleado bien. Si no coincide no se cambia produce el cambio).
A continuación se describen algunos comandos sencillos de que pueden ser útiles para
familiarizarse con los comandos del sistema.
date Muestra por pantalla el día y la hora.
cal 1949 Muestra el calendario del año 1949.
cal 05 1949 Muestra el calendario de mayo de 1949.
who Indica qué usuarios tiene el ordenador en ese momento, en qué
terminal están y desde qué hora.
whoami Indica cuál es la terminal y la sesión en la que se está trabajando.
man comando Todos los manuales de Linux están dentro del propio sistema
operativo, y este comando permite acceder a la información
correspondiente al comando comando. Por ejemplo con man who
aparecerá por pantalla y de forma formateada por páginas, la
explicación del comando who. Se puede navegar a través de estas
páginas con los cursores del teclado, y presionando q para salir.
clear Este comando limpia la consola
Capítulo 8: EL SHELL: COMANDOS BÁSICOS DE LINUX página 47
8.3 Directorio Personal
Como se ha visto anteriormente el directorio personal es un directorio con un determinado nombre
asignado a un usuario. Los directorios personales habitualmente son subdirectorios de /home (en
algunos casos se utiliza mnt, u otro subdirectorio de orden inferior). Generalmente el nombre
coincide con el del nombre de usuario, aunque puede no ser así, y varios usuarios pueden estar
trabajando en el mismo directorio. Cada usuario de Linux puede crear una estructura en árbol de
subdirectorios y archivos tan compleja como desee bajo su directorio personal pero normalmente
nunca fuera de él.
8.3.1 Listado del contenido de directorios: comando ls
Una de las acciones más habituales a la hora de trabajar es mostrar el contenido de un directorio,
como se ha visto existen herramientas gráficas con este fin, no obstante el shell incluye un programa
con este mismo fin: ls,
ls Muestra los nombres de los ficheros y subdirectorios contenidos en el
directorio en el que se está. Sólo se obtienen los nombres de los ficheros, sin
ninguna otra información.
ls -a Muestra todos los ficheros incluyendo algunos que ordinariamente están
ocultos para el usuario (aquellos que comienzan por un punto). Se recuerda
que el fichero punto . indica el directorio actual y el doble punto .. el
directorio padre, que contiene, al actual.
ls -l Esta es la opción de lista larga: muestra toda la información de cada fichero
incluyendo: protecciones, tamaño y fecha de creación o del último cambio
introducido,...
ls -c Muestra ordenando por día y hora de creación.
ls -t Muestra ordenando por día y hora de modificación.
ls -r Muestra el directorio y lo ordena en orden inverso.
ls subdir Muestra el contenido del subdirectorio subdir.
ls -l filename Muestra toda la información sobre el fichero.
ls --color Muestra el contenido del directorio coloreado.
Las opciones anteriores pueden combinarse. Por ejemplo:
ls -cr Muestra el directorio ordenando inversamente por fechas.
El comando ls admite los caracteres de sustitución o metacarácteres (*) y (?). El carácter *
representa cualquier conjunto o secuencia de caracteres. El carácter ? representa cualquier carácter,
pero sólo uno. Por ejemplo:
ls *.gif Muestra todos los nombres de ficheros que acaben en .gif, por ejemplo
dib1.gif, a.gif, etc.


Aprenda Linux 2013 como si estuviera en Primero

Figura 3
En ella se puede introducir el nombre del usuario y la clave.
Nota: tanto Linux, como UNIX, distinguen entre letras mayúsculas y minúsculas. Por lo que root
no es lo mismo que Root o ROOT.
Cuando se sale del sistema vuelve a aparecer esta misma ventana. Para apagar el ordenador se puede
seleccionar el botón de Options…, tras lo que aparece un menú con las siguientes opciones:
Sessions, permite elegir al usuario el entorno de ventanas con el que va a trabajar, los entornos
más habituales son, AnotherLevel, Default (arranca el entorno por defecto instalado que puede
ser cualquiera de los otros), FailSafe (Modo a prueba de fallos), Gnome o KDE.
Language, permite cambiar el idioma en el que se muestran algunos de los mensajes del sistema.
System, contiene dos opciones, Reboot (para rearrancar el sistema) y Halt para apagarlo. Nota:
NUNCA se debe apagar directamente el ordenador siempre hay que apagarlo empleando la
opción Halt anterior (tras salir del entorno con logout) o empleando el comando halt en el caso
de trabajar en modo texto.
Tras introducir el nombre del usuario y el password aparecerá una pantalla similar a la siguiente :
Capítulo 6: GNOME página 13
Figura 4
Como se puede observar en la figura anterior este entorno es muy similar a otros como Windows,
OS/2 o Macintosh. Al igual que estos entornos GNOME está diseñado para ser empleado con el
ratón, e incluye elementos comunes con estos entornos como iconos, menús, etc. Al igual que
Windows incluye en la parte inferior una barra, el Panel de GNOME (GNOME Panel), en la cual se
encuentran accesos directos a determinados programas de uso común.
En GNOME para acceder a las distintas aplicaciones hay que seleccionar el botón en forma de
huella de pie como se aprecia en la figura adjunta, lo cual despliega un menú. Como se puede
comprobar existen una gran cantidad de programas disponibles para el usuario, así como la ayuda
del sistema la cual incluye un tutorial sobre su uso.
Para salir de GNOME hay que seleccionar la opción Log Out que aparece en la parte inferior del
menú.
Si se ha entrado como usuario root por primera vez tras instalar Linux el primer paso a seguir es
crear una nueva cuenta de usuario que permita acceder al sistema como un usuario normal sin los
privilegios del superusuario, de forma que se impida la modificación del sistema de forma
inadecuada.
ESIISS: Aprenda Linux como si estuviera en Primero página 14
Si se está familiarizado con MS-DOS o con versiones de Windows como Windows 98 y Windows
95, puede parecer un poco irracional tener que crear una nueva cuenta de usuario. Después de todo
al entrar con root, se puede navegar por el sistema y usar programas por lo que puede parecer
excesivo tener dos cuentas en el mismo ordenador.
Nada más lejos de la realidad:
Linux es un sistema operativo multitarea y multiusuario, lo que significa que puede ser empleado de
forma segura por varios usuarios de forma simultánea, realizando todas las acciones que los
usuarios deseen. Pero por motivos de seguridad sólo puede existir un único usuario root, capaz de
cambiar la forma de trabajo del sistema.
Además actuar como superusuario puede conducir al desastre puesto que el sistema permite
modificar todos sus parámetros, lo cual puede conducir a daños irreparables. Por este motivo cada
usuario de Linux debe tener su cuenta de usuario, aun siendo los administradores del sistema,
trabajando como root sólo en aquellos casos en los que se necesita realizar la administración del
sistema, como por ejemplo al crear un nuevo usuario. Al entrar en el sistema como root, se puede
ejecutar el programa linuxconf, que se encuentra en System/linuxconf. Este programa permite
manipular una cantidad enorme de parámetros del sistema entre los que se encuentra la
administración de usuarios. Este programa es un ejemplo de porqué actuar como superusuario es
peligroso, linuxconf permite crear y borrar usuarios, cambiar contraseñas, etc.
La primera pantalla de Linuxconf es similar a la siguiente:
Figura 5
En donde en la lista se puede seleccionar User accounts/Normal/User accounts, tras lo que
aparecerá un cuadro de diálogo como el siguiente:
Capítulo 6: GNOME página 15
Figura 6
Tras seleccionar Add se muestra el siguiente cuadro de diálogo:
Figura 7
ESIISS: Aprenda Linux como si estuviera en Primero página 16
En el anterior cuadro de diálogo hay que especificar el nombre de usuario: por ejemplo billy (Hay
que recordar que se distingue entre mayúsculas y minúsculas por los que no es lo mismo billy que
Billy), el nombre completo del usuario Bilbo Baggins. Los demás parámetros son opcionales y no
se comentarán en este momento. Por defecto el directorio en el que este usuario podrá escribir los
ficheros será algo así como /home/billy.Tras aceptar el sistema pedirá el nuevo password del
usuario.
6.1 Iniciación a GNOME
El uso de GNOME es muy parecido al de otros entornos gráficos. La pantalla inicial de GNOME se
encuentra dividida en dos zonas principales como se puede apreciar en la siguiente figura:
Figura 8
La parte superior en la que aparecen las ventanas de las aplicaciones y documentos del usuario
recibe el nombre de escritorio, mientras que la parte inferior de la pantalla recibe el nombre de
panel de GNOME:
Figura 9
Este elemento está diseñado para contener la siguiente información:
Capítulo 6: GNOME página 17
•= Contiene la huella de pie o footprint, al seleccionar este elementos aparece un menú similar al
menú Start de Windows 9x con las aplicaciones más importantes instaladas.
•= Las applets son enlaces a las aplicaciones de uso más frecuente como la consola, Netscape, la
ayuda, etc.
•= El acceso a los escritorios virtuales. Al contrario que en Windows, X Window permite organizar
las ventanas en varios escritorios virtuales.
•= Al igual que Windows el panel de GNOME dispone de un área específica en la que
aparecen los botones representativos de las ventanas.
•= En los dos extremos del panel aparecen dos botones con flechas con los que el usuario
puede colapsar el panel de forma que se maximice el área útil del escritorio.
Clicando con el botón derecho del ratón sobre cualquiera de los elementos anteriores aparecerá un
menú contextual que permite configurar el elemento. Las cuatro opciones más habituales son:
•= Remove from Panel, con lo que se elimina el applet del panel
•= Move applet, permite modificar la posición del applet arrastrándola y soltándola en la nueva
posición.
•= About, muestra información sobre el autor del applet.
•= Properties, abre un cuadro de diálogo en el que se permite personalizar todos las características
del applet.
Seleccionado así mismo en alguna de las áreas libres del panel se despliega otro menú que permite
configurar todo el panel y añadir y quitar applets del mismo. Este mismo menú puede ser accedido a
través de la opción Panel del menú principal (footprint).
De igual forma que en el panel, en el escritorio también se puede hacer clic con el botón derecho lo
que despliega un menú contextual con diversas opciones.
6.2 Aplicaciones auxiliares de GNOME
A continuación se comentan brevemente las aplicaciones que por defecto incluye el entorno
GNOME.
6.2.1 File Manager
Al crear una cuenta de usuario el sistema crea un directorio o carpeta personal en la que el usuario
puede crear y modificar los ficheros con los que trabaja. GNOME incluye una herramienta, que
permite la manipulación de los archivos.

X WINDOW 2013

X Window es el entorno gráfico habitual de los sistemas Unix. El sistema X Window se compone de
dos parte principales el servidor X y el programa para la gestión de las ventanas. El servidor X es el
programa que se encarga realmente de dibujar en la pantalla. Por el contrario el gestor de ventanas
como su nombre indica es el encargado de crear las ventanas y gestionar su apariencia. Debido a
este modelo, la apariencia de las aplicaciones varía según se use uno u otro gestor de ventanas, entre
los que destacan por su sencillez de uso los entornos GNOME y KDE.
Al instalar Linux el sistema puede preguntar si se desea arrancar Linux en modo texto o en modo
gráfico. Si se ha seleccionado esta última opción Linux arrancará directamente X Window, en caso
contrario en la línea de comandos hay que escribir startx con lo cual se arranca el modo gráfico. Por
defecto esto arranca el entorno gráfico GNOME (en distribuciones que no sean Red Hat 6.0 se
puede arrancar por defecto otro entorno como KDE o

ESTRUCTURA DEL SISTEMA DE ARCHIVOS DE LINUX

Este directorio contiene información temporal de los programas (lo cual no implica que se
pueda borrar su contenido, de hecho, ¡no se debe hacer!)
4.5 Acceso a los diferentes sistemas de archivos
Como se ha visto anteriormente el sistema de archivos de Linux sólo tiene una raíz y su estructura
es independiente de los dispositivos de almacenamiento existentes. Esto implica que el
procedimiento a emplear para acceder a la información almacenada en los distintos sistemas de
almacenamiento de un ordenador no es tan sencilla como en Windows, y requiere un proceso
llamado “montado”, que se verá más adelante. Cuando se ha terminado de trabajar con un
determinado dispositivo hay que “desmontarlo” (¡No físicamente!).
Por ejemplo el proceso para leer un disquete sería el siguiente:
1. Introducir el disquete en la disquetera.
2. Montar el sistema de archivos del mismo.
3. Leer, grabar, y manipular el contenido del disquete.
4. Desmontar el sistema de archivos del disquete.
5. Extraer el disquete de la disquetera.
El proceso puede parecer complejo pero es el precio a pagar por la seguridad, puesto que de esta
forma se garantiza que no exista ninguna aplicación que esté usando el disquete cuando se extraiga.
(En el caso de los CD-ROM Linux impide su extracción hasta que se desmonta).
Para complicar más las cosas sólo el administrador o root tiene permiso para montar y desmontar un
sistema de archivos (por motivos de seguridad), aunque esto puede ser arreglado.
4.6 Permisos
Linux, al igual que todos los sistemas Unix, mantiene un sistema de permisos de acceso a los
ficheros muy estricto, a fin de controlar qué es lo que se puede hacer con ellos, y quien lo puede
hacer. Estos permisos se identifican con letras y son:
r permiso de lectura el fichero
w permiso de escritura en el fichero
x permiso de ejecución del fichero
s permiso para cambiar el propietario del fichero
Al contrario que en Windows o MS-DOS los programas ejecutables de Linux no están marcados
por una determinada extensión (.exe) sino por un atributo, el permiso de ejecución x. Si se elimina
este atributo a un programa, Linux no será capaz de ejecutarlo.
ESIISS: Aprenda Linux como si estuviera en Primero página 10
A su vez cada uno de estos permisos se aplica: al dueño del fichero (u), al grupo de usuarios al que
pertenece el dueño (g), ó al resto de usuarios (a). Así un fichero determinado puede tener permiso
para ser leído, escrito y ejecutado por su dueño, leído y ejecutado por el grupo al que pertenece y no
tener ningún tipo de acceso para los demás usuarios. Como se puede entender este tipo de
mecanismo es especialmente útil cuando se trabaja en grupo en un determinado proyecto.
Capítulo

ESTRUCTURA DEL SISTEMA DE ARCHIVOS DE LINUX

ESTRUCTURA DEL SISTEMA DE ARCHIVOS DE LINUX

ESTRUCTURA DEL SISTEMA DE ARCHIVOS DE LINUX
4.1 Archivos: Tipos
La base del sistema de archivos de Linux, es obviamente el archivo, que no es otra cosa que la
estructura empleada por el sistema operativo para almacenar información en un dispositivo físico
como un disco duro, un disquete, un CD-ROM o un DVD. Como es natural un archivo puede
contener cualquier tipo de información, desde una imagen en formato PNG o JPEG a un texto o una
página WEB en formato HTML, … El sistema de archivos es la estructura que permite que Linux
maneje los archivos que contiene.
Todos los archivos de Linux tienen un nombre, el cual debe cumplir unas ciertas reglas:
•= Un nombre de archivo puede tener entre 1 y 255 caracteres.
•= Se puede utilizar cualquier carácter excepto la barra inclinada / y no es recomendable emplear
los caracteres con significado especial en Linux, que son los siguientes: = \ ^ ~ ' " ` * ; - ? [ ] ( )
! & ~ < >. Para emplear ficheros con estos caracteres o espacios hay que introducir el nombre
del fichero entre comillas.
•= Se pueden utilizar números exclusivamente si así se desea. Las letras mayúsculas y minúsculas
se consideran diferentes, y por lo tanto no es lo mismo carta.txt que Carta.txt ó carta.Txt
Como en Windows, se puede emplear un cierto criterio de "tipo" para marcar las distintas clases de
ficheros empleando una serie de caracteres al final del nombre que indiquen el tipo de fichero del
que se trata. Así, los ficheros de texto, HTML, las imágenes PNG o JPEG tienen extensiones .txt,
.htm (o .html), .png y .jpg (o .jpeg) respectivamente.
Pese a esto Linux sólo distingue tres tipos de archivos:
•= Archivos o ficheros ordinarios, son los mencionados anteriormente.
•= Directorios (o carpetas), es un archivo especial que agrupa otros ficheros de una forma
estructurada.
•= Archivos especiales, son la base sobre la que se asienta Linux, puesto que representan los
dispositivos conectados a un ordenador, como puede ser una impresora. De esta forma
introducir información en ese archivo equivale a enviar información a la impresora. Para el
usuario estos dispositivos tienen el mismo aspecto y uso que los archivos ordinarios.
4.2 Enlaces
Los enlaces son un tipo de archivo ordinario cuyo objetivo es crear un nuevo nombre para un
archivo determinado. Una vez creado el enlace simbólico éste permite acceder al fichero que enlaza
de igual modo que si se hubiera copiado el contenido del mismo a otro fichero, con la ventaja de
que este realmente no se ha copiado. Los enlaces simbólicos son especialmente útiles cuando se
quiere que un grupo de personas trabajen sobre un mismo fichero, puesto que permiten compartir el
fichero pero centralizan las modificaciones.
Capítulo 4: ESTRUCTURA DEL SISTEMA DE ARCHIVOS DE LINUX página 7
Como ejemplo se puede suponer la existencia de un fichero llamado balance.1999.txt, al que se crea
un enlace simbólico balance.txt. Cualquier acceso a balance.txt es traducido por el sistema de
forma que se accede al contenido de balance.1999.txt.
4.3 El camino o Path
En cualquier sistema operativo moderno la estructura de archivos es jerárquica y depende de los
directorios. En general la estructura del sistema de archivos se asemeja a una estructura de árbol,
estando compuesto cada nudo por un directorio o carpeta, que contiene otros directorios o archivos.
En Windows cada unidad de disco se identifica como una carpeta básica que sirve de raíz a otras, y
cuyo nombre es especial a:, c:, d: etc. En los sistemas Unix, y por lo tanto en Linux, existe una
única raíz llamada / de la que cuelgan todos los ficheros y directorios, y que es independiente de qué
dispositivos estén conectados al ordenador.
El camino o path de un fichero o directorio es la secuencia de directorios que se ha de recorrer para
acceder a un determinado fichero separados por /. Supongamos la estructura de archivos de la
Figura 2.
Existen dos formas del path o camino:
•= el camino absoluto que muestra toda la ruta a
un fichero, /home/luis/Carta.txt.
•= el path relativo a un determinado directorio,
por ejemplo si no encontramos en el
directorio /home, el path relativo al fichero
Carta.txt es luis/Carta.txt
Para complicar aun más las cosas, todos los
directorios contienen dos directorios especiales:
•= El directorio actual, representado por el punto
.
•= El directorio padre representado por dos puntos ..
Estando en el directorio /home/pedro se puede acceder a Carta.txt con /home/luis/Carta.txt (path
absoluto) o bien ../luis/Carta.txt (path relativo). En luis como ./Carta.txt o simplemente Carta.txt.
4.4 Estructura del sistema de archivos de Linux
El sistema de archivo de Linux sigue todas las convenciones de Unix, lo cual significa que tiene
una estructura determinada, compatible y homogénea con el resto de los sistemas Unix. Al contrario
que en Windows o MS-DOS el sistema de archivos en cualquier sistema Unix no está ligado de una
forma directa con la estructura del hardware, esto es, no depende de si un determinado ordenador
tiene 1, 2 o 7 discos duros para crear las unidades c:\, d:\ o m:\.
Todos el sistema de archivos de Unix tiene un origen único la raíz o root representada por /. Bajo
este directorio se encuentran todos los ficheros a los que puede acceder el sistema operativo. Estos
/
home
luis pedro
mnt
Carta.txt
Figura 2
ESIISS: Aprenda Linux como si estuviera en Primero página 8
ficheros se organizan en distintos directorios cuya misión y nombre son estándar para todos los
sistema Unix.
/ Raíz del sistema de archivos.
/dev Contiene ficheros del sistema representando los dispositivos que estén físicamente
instalados en el ordenador.
/etc Este directorio esta reservado para los ficheros de configuración del sistema. En este
directorio no debe aparecer ningún fichero binario (programas). Bajo este deben aparecer
otros dos subdirectorios:
/etc/X11 Ficheros de configuración de X Window
/etc/skel Ficheros de configuración básica que son copiados al directorio del usuario
cuando se crea uno nuevo.
/lib Contiene las librerías necesarias para que se ejecuten los programas que residen en /bin (no
las librerías de los programas de los usuarios).
/proc Contiene ficheros especiales que o bien reciben o envían información al kernel del sistema
(Se recomienda no modificar el contenido de este directorio y sus ficheros).
/sbin Contiene programas que son únicamente accesibles al superusuario o root.
/usr Este es uno de los directorios más importantes del sistema puesto que contiene los programas
de uso común para todos los usuarios. Su estructura suele ser similar a la siguiente:
/usr/X11R6 Contiene los programas para ejecutar X Window.
/usr/bin Programas de uso general, lo que incluye el compilador de C/C++.
/usr/doc Documentación general del sistema.
/usr/etc Ficheros de configuración generales.
/usr/include Ficheros de cabecera de C/C++ (.h).
/usr/info Ficheros de información de GNU.
/usr/lib Librerías generales de los programas.
/usr/man Manuales accesibles con el comando man (ver más adelante).
/usr/sbin Programas de administración del sistema.
/usr/src Código fuente de programas.
Existen además de los anteriores otros directorios que se suelen localizar en el directorio
/usr, como por ejemplo las carpetas de los programas que se instalen en el sistema.
Capítulo 4: ESTRUCTURA DEL SISTEMA DE ARCHIVOS DE LINUX página 9
/var Este directorio contiene información temporal de los programas (lo cual no implica que se
pueda borrar su contenido, de hecho, ¡no se debe hacer!)

INICIACIÓN A LINUX 2013

INICIACIÓN A LINUX
Existen tres formas de acceder a un sistema Linux:
•= A través de una consola de texto, el usuario se conecta directamente al ordenador que tiene
instalado Linux y accede mediante un sistema no gráfico.
•= Desde un gestor de sesiones gráfico (X Window), el usuario se conecta directamente al
ordenador que tiene instalado Linux y accede al sistema mediante un programa gráfico.
•= Desde un ordenador remoto mediante telnet o secure shell
3.1 Entrada y salida del sistema
En cualquiera de los casos en la pantalla aparecerá (más o menos) lo siguiente:
Login: (Se teclea el nombre del usuario)
Password: (Se teclea la contraseña, que no se ve en la pantalla)
Por motivos de seguridad la contraseña debe cumplir ciertas condiciones tales como:
•= Contener al menos seis caracteres.
•= Contener al menos un carácter numérico o especial y dos alfabéticos.
•= Ser diferente del nombre de login.
La primera vez que se accede al sistema la contraseña empleada será la proporcionada por el
administrador del sistema. Existen diversas formas para terminar la sesión de trabajo en Linux,
dependiendo de si estamos en modo gráfico o de texto.
En modo texto:
•= Presionar las teclas <ctrl> d
•= Escribir el comando exit.
La salida de X Window depende del gestor de ventanas que se esté ejecutando y se explicará más
adelante.

INSTALACIÓN linux 2013 ?

2. INSTALACIÓN
Al contrario que lo que ocurre con Microsoft Windows la instalación de Linux no es un proceso
sencillo, puesto que Linux permite el control y la personalización de una cantidad mayor de
parámetros y opciones. Pese a todo se están realizando grandes progresos buscando que la
instalación de Linux sea un proceso lo menos traumático posible, dependiendo la sencillez de la
misma de la distribución que se emplee. Por el momento la distribución más sencilla de instalar es
Red Hat y aquellas que derivan de esta (Linux Mandrake, …).
Pese a todo antes de proceder a instalar Linux es necesario tener en cuenta una serie de aspectos
fundamentales. El primero de ellos es leer la información que contiene el CD de la instalación, esta
información puede aparecer de dos formas distintas, los llamados HOWTO o en forma de manuales
desarrollados para la distribución. El problema fundamental en todos los casos es que la mayor parte
de esta información (aunque no toda) se encuentra en inglés. La distribución de RedHat incluye un
manual de instalación de Linux en HTML en la que se explica con todo lujo de detalles cómo se
realiza ésta y que es conveniente leer y comprender antes de proceder a realizar la instalación.
Uno de los conceptos principales a tener en cuenta antes de la instalación es el de partición. Cada
sistema operativo organiza la información de los ficheros que contiene de forma diferente,
utilizando cada uno su propio sistema de archivos. Como referencia se indica a continuación el
nombre del sistema de archivos de diferentes sistemas operativos:
Sistema Operativo Sistema de archivos
MS-DOS FAT
MS Windows 95 VFAT
MS Windows 95 OSR2 y Windows 98 FAT32
MS Windows NT NTFS
IBM OS/2 Warp HPFS
Linux Ext2
Esto en general impide que se puedan instalar varios sistemas operativos mezclados en un mismo
disco duro. Para solucionar este problema existen las llamadas particiones con las que se divide un
determinado disco duro de forma que pueda contener ambos sistemas de archivos. A todos los
efectos realizar una partición es equivalente a que el disco duro se divida en dos (aunque por
supuesto no se divide de una forma física).
Los problemas fundamentales al instalar Linux provienen de que en la mayor parte de las ocasiones
el usuario desea conservar Windows y todos los programas para este sistema. En la actualidad
existen varias distribuciones que permiten la instalación de Linux en un sistema de archivos de
Windows, bien en lo que se denomina un disco imagen (un fichero muy grande), de las
distribuciones Corel Linux y Linux Mandrake 6.1, o directamente en el sistema de archivos de
Windows (WinLinux 2000). No obstante para obtener un buen rendimiento es preferible instalar
Linux sobre una partición diferente de la de Windows empleando el sistema de archivos propio de
Linux, por lo que suele ser necesario realizar una partición del disco duro (Habitualmente Windows
se apropia de la totalidad). Hasta épocas recientes esta división suponía la pérdida irremediable e
inevitable de toda la información que contuviese el disco duro. En la actualidad las distribuciones de
Linux incluyen una pequeña utilidad llamada fips que permite dividir el disco duro sin perder
ESIISS: Aprenda Linux como si estuviera en Primero página 4
información. Antes de utilizar fips es muy importante leer la información que se adjunta con el
programa. Tras emplear fips se habrá reducido el tamaño de la partición de Windows y se habrá
creado una nueva para ser utilizada durante la instalación de Linux.
Durante el proceso de instalación de Linux habrá que borrar la partición creada con fips y sustituirla
por las particiones que va emplear Linux. (Mucho cuidado en no borrar la partición donde resida
Windows, puesto que en ese caso se perderá TODA la información de forma permanente).
Otro de los puntos a tener en cuenta es cómo se quiere arrancar Linux si existe Windows, la forma
más sencilla es instalar LILO, un programa que se encarga de arrancar ambos sistemas operativos
según lo que indique el usuario al arrancar el PC. Los problemas surgen si hay que reinstalar
Windows de nuevo, puesto que éste sistema operativo asume el control del PC y el sistema de
arranque eliminando LILO (e impidiendo arrancar Linux). Otra forma muy sencilla es emplear el
disquete de arranque que se crea durante la instalación. Por último una de las formas más sencillas
de ejecutar Linux es creando un menú de arranque en Windows y empleando el programa LoadLin
desde MS-DOS, para más información sobre este último método de arranque se recomienda la
lectura del mini-HowTo loadlin que suele acompañar a la documentación de Linux.
Por último existe otro concepto fundamental a la hora de instalar y usar Linux que es el de Super
Usuario o usuario root. Este usuario es el administrador del sistema y se crea durante la instalación.
Como administrador que es puede acceder y modificar (así como destruir) toda la información del
sistema, por lo que hay que evitar en la medida de lo posible trabajar como usuario

1.3 Entorno de trabajo: el shell y X Window

1.3 Entorno de trabajo: el shell y X Window

1.3 Entorno de trabajo: el shell y X Window
Al contrario que otros sistemas operativos, por defecto el trabajo con Linux no se realiza de una
forma gráfica, sino introduciendo comandos de forma manual. Linux dispone de varios programas
que se encargan de interpretar los comandos que introduce el usuario y realiza las acciones
oportunas en respuesta. Estos programas denominados shell son el modo típico de comunicación en
todos los sistemas Unix incluido Linux. Para muchas personas el hecho de tener que introducir los
comandos de forma manual les puede parecer intimidante y dificultoso, aunque como se verá más
adelante los comandos de Linux son relativamente simples y muy poderosos.
No obstante, casi todas las distribuciones más recientes incluyen el sistema X Window (no X
Windows), el cual es el encargado de controlar y manejar la interfaz de usuario. Como se verá más
adelante X Window es mucho más poderoso que otros entornos similares como Microsoft
Windows, puesto que permite que el usuario tenga un control absoluto de la representación de los
elementos gráficos.
1.4 Usuarios y grupos
Linux es un sistema operativo multitarea y multiusuario. Esto quiere decir que es capaz de ejecutar
varios programas (o tareas) de forma simultánea y albergar a varios usuarios de forma simultánea.
Por lo tanto, todos los usuarios de Linux deben tener una cuenta de usuario en el sistema que
establezca los privilegios del mismo. A su vez Linux organiza a los usuarios en grupos de forma
que se puedan establecer privilegios a un determinado grupo de trabajo, para el acceso a
determinados archivos o servicios del sistema.

ESIISS: Aprenda Linux como si estuviera en Primero página 2 1.2 ¿Qué son las distribuciones?

ESIISS: Aprenda Linux como si estuviera en Primero página 2
1.2 ¿Qué son las distribuciones?

ESIISS: Aprenda Linux como si estuviera en Primero página 2
1.2 ¿Qué son las distribuciones?
Una de los primeros conceptos que aparecen al iniciarse en Linux es el concepto de distribución.
Una distribución es un agrupamiento del núcleo del sistema operativo Linux (la parte desarrollada
por Linus Torvalds) y otra serie de aplicaciones de uso general o no tan general. En principio las
empresas que desarrollan las distribuciones de Linux están en su derecho al cobrar una cierta
cantidad por el software que ofrecen, aunque en la mayor parte de las ocasiones se pueden conseguir
estas distribuciones desde Internet, de revistas o de amigos, siendo todas estas formas gratuitas y
legales.
Las distribuciones más conocidas son RedHat, Debian, Slackware, SuSE y Corel Linux, todas
ellas incluyen el software más reciente y empleado lo cual incluye compiladores de C/C++, editores
de texto, juegos, programas para el acceso a Internet, así como el entorno gráfico de Linux: X
Window.
A lo largo de este manual se considerará la distribución de Linux más extendida en la actualidad:
RedHat 6.0. Aunque la mayor parte de la información debe ser válida para el resto de las
distribuciones, existen determinadas opciones que están sujetas a cambio como el sistema de
instalación del sistema operativo.

Qué es LINUX?

1.1 ¿Qué es LINUX?
Linux es un sistema operativo gratuito y de libre distribución
inspirado en el sistema Unix, escrito por Linus Torvalds con la
ayuda de miles de programadores en Internet. Unix es un
sistema operativo desarrollado en 1970, una de cuyas mayores
ventajas es que es fácilmente portable a diferentes tipos de
ordenadores, por lo que existen versiones de Unix para casi todos los tipos de ordenadores, desde
PC y Mac hasta estaciones de trabajo y superordenadores. Al contrario que otros sistemas
operativos, como por ejemplo MacOS (Sistema operativo de los Apple Macintosh), Unix no está
pensado para ser fácil de emplear, sino para ser sumamente flexible. Por lo tanto Linux no es en
general tan sencillo de emplear como otros sistemas operativos, aunque, se están realizando grandes
esfuerzos para facilitar su uso. Pese a todo la enorme flexibilidad de Linux y su gran estabilidad ( y
el bajo coste) han hecho de este sistema operativo una opción muy a tener en cuenta por aquellos
usuarios que se dediquen a trabajar a través de redes, naveguen por Internet, o se dediquen a la
programación. Además el futuro de Linux es brillante y cada vez más y más gente y más y más
empresas (entre otras IBM, Intel, Corel) están apoyando este proyecto, con lo que el sistema será
cada vez más sencillo de emplear y los programas serán cada vez mejores

INTRODUCCIÓN Aprenda LINUX

1. INTRODUCCIÓN ..............................................................................................................................................1
1.1 ¿QUÉ ES LINUX? .......................................................................................................................................1
1.2 ¿QUÉ SON LAS DISTRIBUCIONES?................................................................................................................2
1.3 ENTORNO DE TRABAJO: EL SHELL Y X WINDOW ..........................................................................................2
1.4 USUARIOS Y GRUPOS ..................................................................................................................................

La mayor parte de los ordenadores que existen en la actualidad están diseñados de forma que
puedan ejecutar diversas tareas o programas. Estos programas pueden ir desde un procesador de
textos, a un programa para la animación de gráficos tridimensionales o distintos tipos de juegos.
Para su correcto funcionamiento deben ser además capaces de acceder a las recursos de que dispone
el ordenador, como por ejemplo escribir o leer datos en un disco duro, mostrar un gráfico por
pantalla, etc. Es evidente, que si cada programa actuase de una forma independiente, existirían
graves problemas y conflictos, puesto que, por ejemplo, tendrían libertad para escribir sus datos
sobre los de otro, etc.
Para solucionar este tipo de problemas se desarrollaron los Sistemas Operativos, los cuales aportan
unos mecanismos y reglas básicas de funcionamiento, de forma que los programas puedan acceder a
los recursos del ordenador de una forma adecuada. Aunque ésta fue la funcionalidad inicial de los
sistemas operativos, con el tiempo se han añadido otras muchas, como la ejecución de programas, el
control de la memoria del ordenador, la creación y control de interfaces gráficas de usuario, etc.
En la actualidad existen una gran cantidad de sistemas
operativos dependiendo del tipo de ordenador en el que se va a
ejecutar. Por ejemplo para los PC uno de los sistemas
operativos más difundidos en Microsoft Windows, tanto en las
versiones 95, 98, 2000 y NT 4.0. Otros posibles sistemas
operativos para este tipo de ordenadores son Solaris, OS/2,
BeOS, Microsoft DOS, o uno de los sistemas operativos más
poderosos y en rápida expansión para PC, LINUX.