Sie sind auf Seite 1von 63

Instituto Politécnico Nacional

Escuela Superior de Ingeniería Mecánica


y Eléctrica
Unidad Culhuacán
Ingeniería en Computación

Sistemas Operativos

¿Qué es Linux?

Profesor: Cruz Garcia Oscar

Alumno: Lechuga Ortega Jesús Alejandro

Grupo: 6CV13

Turno: Vespertino
¿Qué es Linux?

Linux es un sistema operativo de gran difusión en la actualidad debido principalmente a que es de libre distribución.

Linux permite trabajar al usuario en modo monopuesto o en modo de red, permitiendo iniciar sesión localmente en la máquina o de forma
remota.

Es una versión de UNIX desarrollada para funcionar en plataformas de computadoras personal. También recibe el nombre de GNU/Linux
o sistema operativo libre con licencia pública GNU.

Su nombre proviene del núcleo de un sistema operativo desarrollado en 1991 por Linus B. Torvalds.

La estructura general de un sistema operativo UNIX/Linux es la siguiente:

El sistema operativo está formado básicamente por 2 componentes:

 Shell: Es el equivalente al intérprete de comandos de Windows y sirve para introducir órdenes, ejecutar programas, etc.
 Núcleo: Como en todos los sistemas operativos, es la parte del sistema que interactúa con el hardware.

Elementos de la interfaz gráfica

Los elementos básicos del escritorio de Linux son muy similares a los de Windows:

 Iconos
 Ventanas
 Barra de tareas
 Menús de trabajo
o Aplicaciones
o Lugares
o Sistema
 Área de notificación

En Linux, a diferencia de lo que ocurre en Windows, podemos utilizar diferentes tipos de inferfaz gráfica. Las 2 más importantes son:

 KDE
 Gnome

Entre ambos tipos hay grandes diferencias en cuanto a opciones disponibles y configuración. El uso de uno u otro depende, en gran
medida, del gusto personal de quien instala el sistema.

Un sistema de archivos es el modo en que el sistema operativo organiza los archivos en el disco duro, gestionándolo de manera que los
datos estén de forma estructurada y sin errores.

La estructura de archivos de Linux es una estructura jerárquica en forma de árbol invertido, donde el directorio principal (directorio
raíz) es el directorio /, del que cuelga toda la estructura del sistema:
Linux admite nombres de archivos largos y se puede utilizar cualquier carácter excepto /. De todas maneras no es recomendable usar los
siguientes caracteres, por tener significado especial en Linux:

\^~!#?&()´"`;·$=¿¡<>@{}*+-

A la hora de diferenciar un archivo de otro, Linux distingue mayúsculas y minúsculas, por lo que los archivos "texto1.txt" y
"Texto1.txt" son archivos distintos.

El sistema de archivos de Linux permite al usuario crear, borrar y acceder a los archivos sin necesidad de saber el lugar exacto en el que
se encuentran.

En Linux no existen unidades físicas, sino archivos que hacen referencia a ellas, integrados en la estructura de archivos como cualquier
otro.

El sistema de archivos de Linux consta de varias partes importantes:

 Superbloque
 Tabla de inodos
 Bloques de datos

En Linux cada bloque es de 512 bytes o de múltiplos de 512. Al igual que el cluster era la estrella del sistema de archivos FAT,
en ext3 es el bloque.

En la siguiente tabla podemos ver un esquema del sistema de archivos de Linux:


El bloque de carga o bloque cero de cada sistema está reservado para almacenar un programa que utiliza el sistema para gestionar el
resto de las partes del sistema de archivos.

El superbloque o bloque uno contiene la información sobre el sistema de archivos.

La tabla de inodos es el equivalente a las entradas de la FAT. Por cada archivo, Linux tiene asociado un elemento en esta tabla que
contiene un número. Este número identifica la ubicación del archivo dentro del área de datos.

Cada inodo contiene información de un archivo o directorio. En concreto, en un inodo se guarda la siguiente información:

 El identificador de dispositivo del dispositivo que alberga al sistema de archivos.


 El número de inodo que identifica al archivo dentro del sistema de archivos.
 La longitud del archivo en bytes.
 El identificador de usuario del creador o un propietario del archivo con derechos diferenciados.
 El identificador de grupo de un grupo de usuarios con derechos diferenciados.
 El modo de acceso: capacidad de leer, escribir, y ejecutar el archivo por parte del propietario, del grupo y de otros usuarios.
 Las marcas de tiempo con las fechas de última modificación (mtime), acceso (atime) y de alteración del propio inodo
(ctime).
 El número de enlaces (hard links), esto es, el número de nombres (entradas de directorio) asociados con este inodo. Si
múltiples nombres están enlazados, o sea, asociados a un mismo inodo (lo que se denomina enlaces duros o simplemente
enlaces) entonces todos los nombres son equivalentes entre sí. El que fue creado en primer lugar no tiene ningún estatus
especial, al contrario de lo que ocurre con los enlaces simbólicos o con los denominados accesos directos de Windows, donde
todos dependen del nombre original. El número de enlaces se emplea por el sistema operativo para eliminar el archivo del
sistema de archivos, tanto el inodo como el contenido, cuando se han borrado todos los enlaces y el contador queda a cero

El área de datos ocupa el resto del disco y es equivalente a la zona de datos en FAT. En esta zona, como su nombre indica, están
almacenados los archivos y directorios de nuestro sistema.

Un directorio no es más que un archivo que contiene los nombres de los archivos (o directorios) que contiene junto con el número
del inodo que contiene la información de cada uno de ellos.

Linux soporta gran variedad de sistemas de archivos, desde sistemas basados en discos, como pueden ser ext2, ext3, ReiserFS, XFS,
JFS, UFS, ISO9660, FAT, FAT32 o NTFS, a sistemas de archivos que sirven para comunicar equipos en la red de diferentes sistemas
operativos, como NFS (utilizado para compartir recursos entre equipos Linux) o SMB (para compartir recursos entre máquinas Linux y
Windows).

Los sistemas de archivos indican el modo en que se gestionan los archivos dentro de las particiones. Según su complejidad, tienen
características como previsión de apagones, posibilidad de recuperar datos, indexación para búsquedas rápidas, reducción de la
fragmentación para agilizar la lectura de los datos, etc. Hay varios tipos, normalmente ligados a sistemas operativos concretos. A
continuación se enumeran los más representativos:

 ext2: Hasta hace poco era el sistema estándar de Linux. Tiene una fragmentación muy baja, aunque es algo lento manejando
archivos de gran tamaño. Fue la continuación del sistema de archivos ext, implementado en 1992 e integrado en Linux 0.96.
Las principales ventajas que tenía sobre ext eran las siguientes:
o Compatible con sistemas de archivos grandes, admitiendo particiones de disco de hasta 4TB y archivos de hasta
2GB de tamaño.
o Proporciona nombres de archivos largos, de hasta 255 caracteres.
o Tiene una gran estabilidad.
o Actualización.
 ext3: Es la versión mejorada de ext2, con previsión de pérdida de datos por fallos del disco o apagones. En contraprestació, es
totalmente imposible recuperar datos borrados. Es compatible con el sistema de archivos ext2. Actualmente es el más
difundido dentro de la comunidad GNU/Linux y es considerado el estándar. Sus ventajas frente a ext2 son:
o Actualización. Debido a que los dos sistemas comparten el mismo formato, es posible llevar a cabo una
actualización a ext3, incluso aunque el sistema ext2 esté montado.
o Fiabilidad y mantenimiento.
 ext4: Es la última versión de la familia de sistemas de archivos ext. Sus principales ventajas radican en su eficiencia (menor
uso de CPU, mejoras en la velocidad de lectura y escritura) y en la ampliación de los límites de tamaño de los archivos, ahora
de hasta 16TB, y del sistema de archivos, que puede llegar a los 1024PB (PetaBytes).
 ReiserFS: Es el sistema de archivos de última generación para Linux. Organiza los archivos de tal modo que se agilizan
mucho las operaciones con estos. El problema de ser tan actual es que muchas herramientas (por ejemplo, para recuperar
datos) no lo soportan.
 swap: Es el sistema de archivos para la partición de intercambio de Linux. Todos los sistemas Linux necesitan una partición
de este tipo para cargar los programas y no saturar la memoria RAM cuando se excede su capacidad. En Windows, esto se
hace con el archivo pagefile.sys en la misma partición de trabajo, con los problemas que esto conlleva.

Además de estos sistemas de archivos, Linux también ofrece soporte para sistemas de archivos de Windows, como FAT, FAT32 y NTFS.
Tanto para FAT como para FAT32, Linux tiene soporte completo y estable de escritura y lectura, mientras que para NTFS, y con las
últimas versiones del kernel, solo se puede acceder de manera estable en modo lectura. En modo escritura todavía está en fase
experimental y no es estable.

Veamos algunos de los directorios más importantes de Linux y lo que contienen:

 / es el directorio raíz. De aquí cuelgan todos los directorios del sistema. Dentro del directorio raíz encontramos varios
subdirectorios importantes:
o /bin contiene archivos de comandos ejecutables utilizables por todos los usuarios. Aquí tenemos los programas que
pueden lanzar todos los usuarios del sistema.
o /sbin es para ejecutables de uso exclusivo por el superusuario. Son los necesarios para arrancar y montar el
directorio /usr.
o /home es un directorio donde se encuentran los directorios personales de los usuarios del sistema.
o /usr contiene utilidades y programas generales de usuario:
 /usr/bin contiene programas de uso general.
 /usr/share contiene archivos compartibles, independientes de la arquitectura.
 /usr/share/doc contiene cierta documentación del sistema.
 /usr/share/man contiene los manuales.
 /usr/etc contiene archivos de configuración de uso global.
 /usr/include contiene las cabeceras de C y C++.
 /usr/lib contiene las bibliotecas de nuestros programas.
 /usr/sbin contiene los programas de administración del sistema.
 /usr/src contiene los códigos fuente de nuestros programas.
o /dev contiene archivos especiales de bloques y caracteres asociados a dispositivos hardware. Aquí encontramos
todos los dispositivos físicos del sistema (todo nuestro hardware).
o /lib contiene librerías y compiladores del sistema. Contiene las bibliotecas necesarias para que se ejecuten los
programas que tenemos en /bin y /sbin únicamente.
o /proc contiene los archivos que reciben o envían información al núcleo. No deberíamos modificar el contenido de
este directorio.
o /etc contiene los archivos de configuración y utilidades para la administración.
o /var contiene archivos para el administrador. Este directorio contiene información variable, como registros, datos
de los servidores, etc.
o /boot contiene los archivos de configuración del arranque del sistema, como por ejemplo GRUB.
o /media contiene todas las unidades físicas que tenemos montadas: discos duros, unidades de DVD, pen drives, etc.
o /opt sirve para admitir archivos nuevos creados tras la modificación del sistema. Es un punto de montaje desde el
que se instalan los paquetes de aplicación adicionales. Podemos usarla para instalar aplicaciones que no vienen en
los repositorios, por ejemplo, aquellas que compilamos a mano.
o /tmp es donde se almacenan los archivos temporales.

Cabe destacar que éstas son las ubicaciones de los directorios en Fedora. Para otras distribuciones algunos directorios pueden tener un
nombre diferente.

Además de los directorios que acabamos de ver, hay 2 directorios especiales:

 Directorio actual (.): es un directorio especial que hace referencia al directorio en el que estamos. Si referenciamos al
directorio . nos estaremos refiriendo al directorio actual.
 Directorio padre (..): es un directorio especial que hace referencia al directorio padre del directorio en el que estamos. Si
referenciamos al directorio .. nos estaremos refiriendo al directorio padre del actual. El único directorio que no tiene directorio
padre es el directorio raíz /.

Estos directorios son muy útiles a la hora de hacer referencia a rutas relativas.

En Linux existen básicamente 5 tipos de archivos:

 Archivos ordinarios. Contienen la información con la que trabaja cada usuario.

 Enlaces físicos o duros (hard links). No es específicamente una clase de archivo sino un segundo nombre que se le da a un
archivo. Supón que dos usuarios necesitan compartir información de un mismo archivo. Si cada uno tuviera una copia del
archivo se soluciona el problema, pero las modificaciones que realice un usuario no las vería el otro. Sin embargo, si creamos
un enlace duro al archivo para cada usuario cada vez que uno de ellos modifique cualquier cosa en el archivo, el otro lo podrá
ver puesto que realmente están viendo y modificando el mismo archivo. El enlace sirve para localizar el archivo en su
ubicación actual, pero no es el archivo real, sino un segundo nombre que se le da. De esta forma, con tener un solo archivo
real este se podrá utilizar por todos los usuarios que lo necesiten mediante estos enlaces duros sin necesidad de duplicar o
triplicar el archivo.

 Enlaces simbólicos. También se utilizan para asignar un segundo nombre a un archivo. La diferencia con los enlaces duros es
que los simbólicos solamente hacen referencia al nombre del archivo original, mientras que los duros hacen referencia al
inodo en el que están situados los datos del archivo original. De esta manera, si tenemos un enlace simbólico y borramos el
archivo original perderemos los datos, mientras que si tenemos un enlace duro los datos no se borrarán hasta que se hayan
borrado todos y cada uno de los enlaces duros que existen hacia esos datos en el sistema de archivos. El conteo del número de
enlaces duros que tiene un archivo se realiza, como ya vimos, en el inodo correspondiente a los datos del archivo.

 Directorios. Son archivos especiales que contienen referencias a otros archivos o directorios.

 Archivos especiales. Suelen representar dispositivos físicos, como unidades de almacenamiento, impresoras, terminales, etc.
En Linux, todo dispositivo físico que se conecte a la computadora está asociado a un archivo. Linux trata los archivos
especiales como archivos ordinarios
 Además del entorno gráfico, en Linux es muy importante saber usar el denominado Terminal o shell. Conceptualmente es
similar al intérprete de comandos de Windows y sirve para introducir órdenes y ejecutar programas.
 Para acceder al Terminal iremos al menú de trabajo Aplicaciones y en la sección Accesorios veremos el Terminal. Veremos
que nos aparece una pantalla como la siguiente:

Las diferentes distribuciones de Linux incorporan gran variedad de terminales. Los tipos principales son los siguientes:

 Shell Bourne (sh). Creado por S. Bourne, es el más utilizado en la actualidad. Su símbolo del sistema es $. Es el shell
estándar y el que se monta en casi todos los sistemas UNIX/Linux.

 C-Shell (csh). Procedente del sistema BSD, proporciona funciones tales como control de trabajos, historial de órdenes, etc.
Ofrece importantes características para los programadores que trabajan en lenguaje C. Su símbolo del sistema es %.

 Shell job (jsh). Incorpora algunas características de control al shell estándar del sistema.

 Shell Korn (ksh). Escrito por David Korn, amplía el shell del sistema añadiendo historial de órdenes, edición en línea de
órdenes y características ampliadas de programación.
 Bourne Again Shell (bash). Fue creado para usarlo en el proyecto GNU. BASH, por lo tanto, es un shell o intérprete de
comandos GNU que incorpora la mayoría de distribuciones de Linux. Es compatible con el shell sh. Además, incorpora
algunas características útiles de ksh y csh, y otras propias como la edición de línea de comandos, tamaño ilimitado del
historial de comandos, control de los trabajos y procesos, funciones y alias, cálculos aritméticos con números enteros, etc. Su
símbolo del sistema esnombre_usuario@nombre_equipo.
 Tal y como pasaba en Windows, en Linux tenemos un conjunto de caracteres especiales muy útiles para realizar búsquedas u
otras operaciones sobre archivos y directorios. En Linux, dicho conjunto de caracteres se denomina metacaracteres y son los
siguientes:
Metacarácter Acción
? Al igual que en Windows, sustituye un único carácter.
* Sustituye a cualquier carácter o conjunto de caracteres.
Cuando se utilizan como parte de nombres de archivo o directorio, representan un sólo carácter de los incluidos entre los
[] corchetes, que sustituirán al carácter en el nombre de archivo o directorio en la posición en la que estén estos corchetes.
Pueden incluir rangos separados por un guión.
! Permite la negación o exclusión de caracteres.

 Actividad 1
 Completa la siguiente tabla sobre los metacaracteres:

Orden con la expresión Referencia a archivos y directorios que
*[ab]* Cualquiera que tenga ab como caracteres y continue con cualquier caracter
[archi]*[AP] Empiecen por archi y que a continuación tengan cualquier carácter entre la A mayúscula y la P mayúscula.
texto1[1-4] Empieza por texto1 y a continuacion tenga un número del 1 - 4
[1-3]3*t[asa.txt] Empiecen por un número entre 1 y 3, a continuación tengan 3 caracteres cualesquiera, después una t y que terminen en asa.txt.
le[ae]me Empiecen con le, acontinuacion con ae y finalice con me
[a-zA-Z]*[asa.txt] Empiecen por una letra cualquiera, ya sea mayúscula o minúscula, y terminen en asa.txt.
[!0-9] Cualquier a que excluya los numeros del 0 al 9
[texto][!1-3] Se llamen texto y el siguiente carácter no sea un 1, un 2 o un 3.

 En general, todas las órdenes de UNIX/Linux son programas que están almacenados en el sistema de archivos. Su sintaxis es
similar a la del entorno comando de Windows y es la siguiente:
 orden [-opciones] [argumentos]
 A continuación veremos una serie de órdenes muy útiles de Linux y sus principales opciones.
 El shell de Linux tiene un sistema de ayuda basado en manuales para la mayoría de las órdenes del sistema. Para acceder a la
ayuda se usa la orden man. A la orden man se le pasa un sólo argumento, que es el nombre de la orden de la cual queremos
ver el manual.
 Por ejemplo, si queremos ver el manual de la orden ls (que explicaremos más adelante), tendremos que ejecutar:
 $ man ls
 Al ejecutarlo veremos que se nos muestra por pantalla el manual de la orden ls con su descripción, su sintaxis, sus argumentos
y sus opciones.
 Podemos movernos por la página del manual con las flechas de dirección arriba y abajo para retroceder o avanzar una línea,
o con la barra espaciadora para avanzar toda una página. Para salir de la página de manual debéis pulsar la tecla q.

 Actividades
 Actividad 1: ¿Para qué sirve la orden who? ¿Qué opciones tiene?
Sirve para ver quien esta logueado o esta en uso
 Actividad 2: ¿Con qué opción de la orden cal puedo mostrar el calendario con el lunes como primer día de la semana?
¿Y con el domingo?
Ncal -M

Desde el shell de Linux podemos movernos por todo el sistema de archivos para buscar un directorio o archivo concreto. Pero para
movernos por la estructura de directorios de nuestro sistema un primer paso es saber en cada momento donde nos encontramos. Para
saber qué directorio es el directorio actual tenemos la orden pwd. Su nombre viene del inglés "print working directory" y su único
cometido es el de mostrar por pantalla una línea que nos dice la ruta absoluta al directorio actual.

Una vez que ya sabemos en qué directorio nos encontramos podemos empezar a desplazarnos por el árbol de directorios con la orden cd.
El nombre de cd le viene de "cambiar de directorio" (en inglés, "change directory") y sirve exactamente para lo que parece: cambia el
directorio actual al que nosotros le especifiquemos en su argumento.

En este punto cabe destacar que, al igual que vimos en Windows, en Linux también podemos hacer referencia a los archivos y directorios
de 2 maneras:

 Rutas absolutas. Se forman empezando en el directorio raíz y acabando en el punto al que queremos hacer referencia. Por
ejemplo, si nuestro usuario se llama pepito y queremos hacer referencia a su directorio personal, la ruta absoluta
sería /home/pepito.
 Rutas relativas. Se forman usando los directorios especiales . y .. y empiezan siempre en el directorio actual. Como
recordaréis, el directorio especial . hace referencia al directorio actual y el directorio especial .. hace referencia al directorio
padre del actual. Así, si por ejemplo estamos situados en el directorio /etc y queremos ir al directorio personal de pepito, la
ruta relativa sería../home/pepito.

Por lo tanto, podemos usar la orden cd tanto con rutas absolutas como con rutas relativas.

Por ejemplo, estamos en el directorio /usr/share/man y queremos ir a /usr/bin. Tenemos las siguientes opciones:

$ cd /usr/bin

$ cd ../../bin

Una vez que estamos en un directorio concreto lo más probable es que queramos saber el contenido del directorio. Para ello disponemos
de la orden ls. Su nombre viene de "listar" (en inglés, "list") y eso es precisamente lo que hace, listar el contenido de un directorio. Si le
pasamos un argumento nos mostrará el contenido del directorio que le pasamos y si no, nos mostrará el contenido del directorio actual.
La orden ls tiene multitud de opciones. A continuación vamos a ver las más destacadas:

 ls -a muestra todos los archivos y directorios, incluso los ocultos (los que comienzan con un punto).
 ls -l muestra un listado en el formato largo, con información de permisos (que ya explicaremos más adelante), número de
enlaces duros asociados al archivo, usuario, grupo, tamaño en bytes y fecha de última modificación además del nombre.
 ls -lh muestra la misma información que con la opción -l pero el tamaño del archivo se muestra en unidades más entendibles
(K, M, G...).
 ls -S muestra el contenido ordenado por tamaño de archivo.
 ls -t muestra el contenido ordenado por la fecha de última modificación.
 ls -r muestra el contenido ordenado de forma inversa.
 ls -R muestra la estructura de directorios que cuelga del directorio actual o del que le pasemos como argumento.
 ls -i muestra el número del inodo en el que están los datos de cada archivo o directorio. Si tenemos 2 archivos que son enlaces
duros del mismo archivo veremos que el número del inodo es el mismo.
 ls -m muestra los archivos y directorios en una sola fila, separados por comas.
 ls -1 muestra los archivos y directorios en una sola columna.

Las opciones pueden combinarse entre sí. Por ejemplo, si ejecutamos la orden ls -lSa se mostrará por pantalla el contenido del directorio
actual ordenado por el tamaño de los archivos (por la opción -S) mostrando también los archivos ocultos (por la opción -a) y en formato
de lista larga (por la opción -l).

Actividades

Actividad 1: Lista el contenido del directorio /usr, de tal forma que aparezcan también los
archivos ocultos que pudiera haber.

Actividad 2: Muestra el contenido del directorio /etc e indica cuánto ocupa en K el archivo man.config.

Ls -lh
Actividad 3: ¿Cuál es el archivo más grande del directorio /etc?

Ls -Slh

El archivo mas grande es ld.so.cache

Actividad 4: ¿En qué inodo se encuentra el archivo ejercicio2.txt que tienes en el directorio Tema 1, que está dentro del directorio
Ejercicios, dentro de alumno?
Actividad 5: Muestra el contenido del directorio /etc en una sola fila.
Realiza después lo mismo, pero
organizado en una sola columna.

Ls ls -1

Actividad 6: Muestra el contenido del directorio /etc de forma que muestre también los archivos ocultos, muestre los atributos de cada
archivo o directorio y los ordene, además, según la fecha de última modificación.
xUna vez visto cómo cambiar el directorio de trabajo (cd) y cómo listar el contenido de un directorio concreto (ls), así como las posibles
opciones que nos ofrece la orden, pasamos a ver comandos que nos permitirán crear directorios y archivos:

 mkdir: Esta orden sirve para crear una carpeta o directorio cuyo nombre será el que le pasemos como argumento a dicha
orden.

Si, por ejemplo ejecutamos el comando $ mkdir nuevodirectorio, se creará el directorio nuevodirectorio en el directorio de trabajo
actual.

También podemos crear directorios en lugares distintos al que nos encontramos, mediante el uso de rutas absolutas o relativas. Así, si
deseamos crear el directorio Musica en /etc y nos encontramos en /home/alumno, tenemos 2 opciones:

$ mkdir /etc/Musica, o bien $ mkdir ../../etc/Musica

Con el comando mkdir también podemos crear varios directorios en una misma orden. Para ello, no tenemos más que introducir tantos
argumentos como carpetas queramos crear. Así, la orden $ mkdir Documentos Imagenes Musica, creará esos 3 directorios en el
directorio actual de trabajo.

 touch: La orden touch sirve para cambiar la fecha de acceso y modificación de un archivo que le pasemos como
argumento. Si dicho archivo no existe, lo creará vacío con el nombre que le hayamos pasado como argumento.

Por ejemplo, si ejecutamos la orden $ touch ejemplo.txt, creará un archivo vación con el nombre "ejemplo.txt" si no existía
anteriormente, o simplemente modificará su fecha de acceso y modificación con la fecha actual del sistema, si existía con anterioridad.

Al igual que con el comando mkdir, con la orden touch podemos crear varios archivos con una sola orden: $ touch fich1 fich2 fich3
fich4

 ln: Esta orden, se utiliza para crear un enlace duro al archivo que se le pasa como argumento. Así, si ejecutamos la orden
$ ln miarchivo miarchivo1, se creará un enlace duro al archivo "miarchivo", que tendrá como nombre "miarchivo1".

Para crear un enlace simbólico disponemos de la opción -s de esta misma orden, que se ejecutará de la misma manera que la anterior.

Por ejemplo, la orden $ ls -s miarchivo miarchivo2, creará un enlace simbólico al archivo "miarchivo", que tendrá como nombre
"miarchivo2".

Actividades

Actividad 1: Crea, dentro del directorio alumno y con una única orden por nivel, la siguiente estructura:

Tras crearlo, ejecuta la orden tree desde alumno, para comprobar que es correcto.

Actividad 2: Dentro de Cuestiones, crea 2 archivos con el nombre Cuestion1.txt y Cuestión2.txt. Y dentro de Color crea el archivo
yo.jpg

Actividad 3: Crea un enlace duro al archivo Cuestion1.txt que se llamen enlacedurocuestion1 y otro enlace simbólico a Cuestion2.txt que
sea enlacesimbcuestion2.
Actividad 4: Comprueba el inodo que el contenido de la carpeta Cuestiones. Explica qué ves.

Se ven los archivos .txt, enseguida se puede ver el enlace duro y por ultima se puede observar como enlacesimbcuestion2 se esta
refiriendo a Cuestion2.txt

Actividad 5: Abre una ventana para explorar los lugares del sistema y sitúate en la carpeta Cuestiones. Abre el archivo Cuestion1.txt,
escribe "hola" y guárdalo. Haz lo mismo en el archivo Cuestion2.txt pero con la palabra "adiós". Ahora, abre el archivo
enlacedurocuestion1.txt y el archivo enlacesimbcuestion2.txt. Verás que contienen lo mismo que los archivos a los que hacen referencia.

Actividad 6: Borra ahora, con el botón derecho del ratón, el archivo Cuestion1.txt y Cuestion2.txt. Intenta abrir los enlaces de cada uno.
¿Qué sucede? ¿por qué?

Actividad 7: Vuelve a crear por consola los archivos Cuestion1.txt y Cuestion2.txt dentro del directorio Cuestiones.
Actividad 8: Comprueba la fecha de última modificación del archivo yo.jpg. Después, haz que la fecha de último acceso y modificación
del archivo yo.jpg, pase a ser la actual del
sistema. Comprueba que ha cambiado.

Tras ver como crear directorios y archivos, vamos ahora a averiguar cómo borrarlos

 rmdir: La orden rmdir sirve para eliminar un directorio cuyo nombre será el que le pasemos como argumento. Su nombre
proviene del inglés Remove Directory, que significa Borrar Directorio Como condición para el borrado, el directorio deberá
estar vacío. Si no, nos mostrará un mensaje diciendo que tiene contenido.

Así, si queremos borrar la carpeta Cosas que está en nuestro directorio de trabajo actual y no contiene nada, ejecutaremos $ rmdir Cosas.

Si el directorio no existiese, nos avisará y no sucederá nada.

 rm: Esta orden es similar a la anterior, y sirve para eliminar un archivo cuyo nombre será el que le pasemos como
argumento.

Por ejemplo, para borrar el archivo con nombre borrame.txt, ejecutaremos la orden $ rm borrame.txt.

Si el archivo que queremos mostrar no existe, nos mostrará un error.

Al igual que hemos visto en otras órdenes, podemos borrar varios archivos o directorios (según la orden) en una linea si se los pasamos
como argumento. Así, si ejecutamos $ rmdir pepito juanito paquito, borrará esos 3 directorios del directorio de trabajo actual.

La orden rm tambiénn sirve para eliminar directorios completos. Si el directorio contiene archivos y queremos borrar tanto el directorio
como su contenido tendremos que usar la orden rm con la opción-R. Mucho cuidado al utilizar esta opción, ya que podríamos borrar
información importante.

 unlink: Para borrar un enlace, también podemos utilizar la orden rm, pero es más indicado utilizar unlink. La finalidad de esta
orden es borrar un enlace existente. En el caso en que dicho enlace sea el último que hace referencia al inodo, el archivo se
borrará dejando el espacio disponible. En caso de que exista algún otro, sólo se borrá el enlace.
Si, por ejemplo, deseamos borrar el enlace duro enlduroarchivo, ejecutaremos $ unlink enlduroarchivo.

Actividades

Actividad 1: Elimina el directorio que has creado anteriormente con el nombre Color. Prueba con rmdir, rm y rm -R y observa qué
sucede.

Actividad 2: Situado en el directorio alumno, elimina el archivto Cuestion2.txt que creaste anteriormente en la carpeta Cuestiones, con
una sola orden y ruta relativa.

Actividad 3: Intenta eliminar la carpeta AndeAndo (sin crearla antes).

Actividad 4: Intenta borrar el archivo Aminomemires.txt (sin crearlo antes).


Daremos ahora un paso más en la gestión de archivos y directorios. En concreto, veremos las opciones de copiar y pegar.

 cp: Esta orden se utiliza para copiar archivos. Proviene del inglés Copy, y copia el archivo que se le pasa por parámetro
(origen) en otro cuyo nombre se le pasa como segundo parámetro (destino).

Por ejemplo, si ejecutamos la orden $ cp archivo1.txt copiaarchivo1.txt, se copiará el contenido del archivo archivo1.txt en
copiaarchivo1.txt, encontrándose ambos en el directorio de trabajo actual.

Por otro lado, si en lugar de un archivo, indicamos como destino un directorio, lo que sucederá es que creará una copia del archivo origen
en el destino especificado. Por ejemplo: $ cp archivo2.txt /home/alumno, creará un archivo con el mismo nombre que el original en el
directorio /home/alumno.

En la orden cp, al igual que en la orden rm, disponemos de la opción -R para copiar directorios enteros con todo su contenido.

Así, si ejecutamos la orden $ cp -R /home/alumno/directorio1 /tmp, copiará todo el contenido de la carpeta directorio1 en el destino
indicado, que en este caso es /tmp.

 mv: Esta orden tiene el efecto de mover archivos de un directorio a otro, según se le indique. Proviene del inglés Move. Si, por
ejemplo, queremos mover el archivo mueveme.txt que se encuentra en el directorio actual, al directorio /home ejecutaríamos $
mv mueveme.txt /home.

La orden mv tiene otra utilidad, que es la de cambiar el nombre a un archivo. Para ello, no tenemos más que pasarle como argumentos el
nombre del archivo que queremos renombrar y el nombre nuevo, de la siguiente manera: $ mv antiguonombre.txt nuevonombre.txt

Actividades
Actividad 1: Desde el directorio /home/alumno, crea en el directorio BlancoNegro el archivo tu.jpg y cópialo en el directorio Cuestiones.
Usa rutas relativas. Comprueba que es correcto.

Actividad 2: Entra en el directorio BlancoNegro y crea el archivo Foto1.jpg. Crea una copia en este mismo directorio que se llame
CopiaFoto1.jpg.

Actividad 3: Desde el directorio /home/alumno,


copia todo el contenido de Cuestiones en el directorio
Videos.
Actividad 4: Desde el directorio /home/alumno, cambia el nombre de tu.jpg
de Cuestiones al de tu2.jpg.

Actividad 5: Entrando en el directorio que lo contenga, mueve el


archivo tu2.jpg al directorio BlancoNegro.

Mediante el shell de Linux es posible visualizar documentos de texto plano de una gran variedad de maneras. En este apartado vamos a
ver muchas de ellas junto con sus principales opciones.

La visualización básica de archivos de texto se realiza mediante la orden cat, que muestra en el shell el contenido completo del archivo
de texto que se le pasa como argumento. Si le pasamos varios argumentos, mostrará los archivos de texto en el orden en que se lo
indiquemos como si fuesen uno sólo, sin distinguir qué línea corresponde a qué archivo. Sus principales opciones son las siguientes:

 cat -n numera todas las líneas del texto, incluso las vacías. En concreto, pone un número delante de cada línea al mostrarlas
por pantalla.
 cat -b numera todas líneas del texto que no sean vacías. Las líneas vacías las muestra pero no les pone ningún número delante.

Como podemos ver, la orden cat no dispone de demasiadas opciones en cuanto a la visualización de textos, por lo que es la manera más
rudimentaria de verlos en el shell.

Otra forma de visualizar los archivos de texto es con la orden more, que nos da algunas utilidades más a la hora de ver el texto.
Concretamente, dicha orden nos permite avanzar por el documento línea a línea pulsando la tecla Intro o página a página mediante la
barra espaciadora. Si le pasamos varios nombres de archivo como argumentos, la orden more nos los mostrará uno detrás de otro en el
orden indicado, pero distinguiendo cada archivo de manera separada. Sus opciones más útiles son:

 more -X permite especificar el número de líneas que queremos que muestre por cada página. Por ejemplo, si queremos
visualizar 6 líneas por página ejecutaríamos more -6.
 more +X comienza la visualización delarchivo en la línea X. Por ejemplo, si queremos ver un archivo a partir de su línea 13
pondríamos more +13.

Si estamos visualizando un documento con la orden more y pulsamos la letra h veremos todas las opciones que nos ofrece durante la
visualización.

Una orden similar a more pero más completa es less, que nos permite avanzar y retroceder línea a línea con las flechas de dirección o
avanzar página a página mediante la barra espaciadora y retroceder una página mediante la tecla w. Al igual que con more, si
visualizamos un archivo con lessy preionamos la tecla h veremos una ayuda que nos indicará las teclas que podemos usar para
desplazarnos por el documento. Si le pasamos varios archivos de texto como argumentos, podemos movernos entre ellos pulsando :n para
ir al siguiente documento o :p para ir al documento anterior. Una vez que estamos visualizando un archivo con less, si queremos salir de
la visualización deberemos pulsar la tecla q.

Las principales opciones de less son las siguientes:

 less -e hace que se salga automáticamente de la visualización cuando se llega por segunda vez al final del archivo. La primera
vez que se llega al final del archivo se permanece en la visualización. Es muy útil para no tener que acordarse de salir con la q.
 less -E es muy similar a la anterior opción, pero hace que se salga de la visualización cuando se llega al final del archivo por
primera vez.
 less -F hace que se salga de la visualización automáticamente si el archivo puede ser mostrado en una sola página.
 less -N muestra un número de línea delante de cada línea de texto que contiene el archivo.
 less -w al avanzar una página nos señala cual es la primera línea que no estaba en la página anterior. Sirve para saber por
donde nos habíamos quedado leyendo cuando cambiamos a la siguiente página.

Una curiosidad es que less es el método usado por defecto para mostrar las páginas de manual con la orden man. Es por eso que, cuando
ejecutáis man podéis moveros por el manual libremente.

En ocasiones no queremos ver un archivo de texto completo sino sólo el principio o el final. Para ello, el shell de Linux dispone de 2
órdenes, head y tail, que muestran respectivamente las primeras o las últimas 10 líneas del archivo que le pasemos como argumento. Si
en vez de mostrar 10 líneas queremos mostrar más o menos, ambas órdenes comparten las siguientes opciones:

 head -n X o tail -n X muestran las primeras o las últimas X líneas del archivo. Por ejemplo, si queremos ver las primeras 7
líneas de un archivo haríamos head -n 7.
 head -c X o tail -c X muestran los primeros o los últimos X bytes (normalmente un caracter equivale a un byte) del archivo.
Por ejemplo, si queremos ver los últimos 20 bytes de un archivo haríamos tail -c 20.

Para imprimir un archivo de texto mediante nuestra impresora disponemos de la orden lpr. La forma de configurar la impresión es
mediante las opciones siguientes:

 lpr -P nombredelaimpresora especifica el nombre de la impresora con la que queremos imprimir. En caso de no
especificarse se imprimirá en la impresora por defecto. Si por ejemplo nuestra impresora se llama EpsonS22 haremos lpr -P
EpsonS22.
 lpr -# X quiere decir que queremos X copias del documento, entre 1 y 100, por defecto 1. Por ejemplo, si queremos 3 copias
haremos lpr -# 3.

Normalmente especificaremos ambas opciones, por lo que si queremos combinar los ejemplos anteriores haríamos lpr -P EpsonS22 -# 3.
En caso de que queramos ver las páginas que nos va a ocupar un documento antes de imprimirlo, disponemos de la orden pr, que nos
muestra el documento separado en páginas de la misma forma que se haría al enviarlo a la impresora. Algunas de sus opciones son las
siguientes:

 pr -d pone el documento a doble espacio.


 pr -l X especifica que la página tendrá X líneas. Por ejemplo, para poner páginas de 30 líneas seríapr -l 30.
 pr -h "texto" permite poner en la cabecera de cada página el texto que le pongamos entre comillas.
 pr -n imprime también el número de línea asignado a cada línea del texto.

Actividades

Actividad 1: Desde el directorio /etc visualiza el contenido del archivo mtools.conf. ¿Cuántas líneas tiene? ¿Y cuántas sin contar las
líneas
vacía
s?

Actividad 2: Visualiza el contenido del archivo anterior de forma que dicha visualización comience en la línea 14 y muestre 3 líneas por
página.

Actividad 3: Visualiza en contenido del mismo archivo de tal manera que salga automáticamente de la visualización cuando llegue al
final del archivo. Ahora haz lo mismo pero para que salga a la seguna.
Comprueba que lo hace.

Less -e
Actividad 4: Muestra el contenido del archivo de forma que al avanzar una página nos indique cuál es línea que no estaba en la página
anterior, para guiarnos en la lectura.

Less -N

Actividad 5: ¿Cuáles son las primeras 15 líneas del archivo

ntp.conf en /etc? ¿Y la última? ¿Y los últimos 20 bytes?

Actividad 6: Queremos imprimir el archivo /tmp/mtools a doble


espacio. Muestra por pantalla cómo quedaría.
Actividad 7: En el mismo documento de antes, deseamos que como
cabecera de página aparezca la palabra linux. ¿Cómo lo harías?

Una vez que hemos visto como se visualizan los textos en el shell de Linux vamos a ver qué opciones tenemos para editarlos.

Para editar textos en el shell de Linux contamos con el editor vi. Es un editor que puede resultar complejo de utilizar pero es muy útil si,
por ejemplo, se nos ha desconfigurado el KDE o el Gnome y no podemos iniciar Linux en modo gráfico. En ese caso nuestra opción sería
iniciar Linux en modo texto y utilizar el editor vi para editar los archivos correspondientes que puedan hacer que KDE o Gnome vuelvan
a funcionar. Es por ello que debemos conocer su uso, aunque aquí lo veremos de una manera muy básica.

Para empezar, al ejecutar la orden vi en el shell sin ningún argumento veremos que aparece un texto en pantalla en el que todas las líneas
comienzan por un símbolo ~. Ese símbolo señala que son líneas que no pertenecen al archivo que estamos editando.
El editor vi dispone de 2 modos. En primer lugar tenemos el modo de edición, en el que todo lo que escribamos será añadido al archivo
que estamos editando. El segundo modo es el modo de comandos, en el que las teclas que pulsemos serán interpretadas como comandos
del editor. Podemos alternar entre un modo y otro mediante la tecla ESC.

En el modo de comandos nos podemos mover por el texto libremente mediante las flechas de dirección. Los principales comandos son:

 dd borra una línea completa.


 i inserta texto antes del carácter sobre el que está el cursor.
 a inserta texto después del carácter sobre el que está el cursor.
 I inserta texto al comienzo de la línea en la que está el cursor.
 A inserta texto al final de la línea en la que está el cursor.
 o abre espacio para una nueva línea después de la línea en la que está el cursor y permite insertar texto en la nueva línea.
 O análogo al anterior, pero abre espacio en la línea anterior.
 ESC como hemos dicho antes, permite bandonar el modo de inclusión de texto para volver al modo de comandos; también se
usa para cancelar comandos. (Usarlo en caso de duda).
 Ctrl-F avanzar una pagina hacia adelante.
 Ctrl-B avanzar una pagina hacia atrás.
 Ctrl-L refrescar la pantalla.
 G poner el cursor al final del archivo.
 1G poner el cursor al principio del archivo.
 XG poner el cursor en la línea X.
 $ poner el cursor al final de la linea.
 0 (cero) poner el cursor al principio de la linea.
 / texto busca el texto en el archivo y sitúa el cursor delante de la primera coincidencia que encuentra.
 :set number pone el número de línea de cada una.
 :q salir del editor si no ha habido cambios.
 :q! salir del editor sin guardar los cambios.
 :w guardar los cambios.
 :wq guardar los cambios y salir del editor.
 ZZ guardar los cambios y salir del editor.

Como podéis ver, el editor de textos vi se maneja completamente desde el teclado y, aunque pueda parecer un poco complicado de usar
en un principio, es muy potente.

Actividad

Desde el shell de Linux, copia el archivo /etc/ntp.conf a /home/alumno. Situaros en/home/alumno y ejecuta la siguiente orden:

vi ntp.conf

Ahora tienes el archivo ntp.conf abierto con el editor vi y listo para ser editado. Prueba sobre el archivo todos los comandos que hemos
visto para familiarizarte con el editor.
Linux nos ofrece una herramienta muy potente para realizar búsquedas en el Sistema de Archivos: la orden find. Esta orden necesita que
le pasemos como argumentos el directorio donde deseamos hacer la búsqueda y una expresión que se refiera a lo que queremos buscar.
Para dicha expresión tenemos varias opciones:

 -name se refiere al nombre del archivo que queremos buscar. Después de poner -name debemos indicar entre comillas una
expresión referida al nombre del archivo que estamos buscando. Dicha expresión distinguirá mayúsculas y minúsculas. Por
ejemplo, find / -name "*.conf" buscará todos los archivos que acaben en .conf y estén situados en el directorio raíz o sus
subdirectorios. Para la expresión del nombre del archivo que buscamos podemos utilizar los metacaracteres que ya
conocemos.

 -iname es igual a la anterior pero no distingue entre mayúsculas y minúsculas.

 -maxdepth sirve para indicarle la profundidad en subdirectorios a la que queremos buscar. Por ejemplo, find / -maxdepth
2 buscará en el directorio raíz y sus subdirectorios directos, pero no más allá.

 -size [+-]X[ckMG] permite hacer búsquedas por el tamaño de archivo. Como vemos, se admiten varias opciones en la
expresión. Puede empezar por +, lo cual indicará que buscamos archivos que sean mayores de cierto tamaño, o por -, con lo
que estaremos buscando archivos cuyo tamaño sea menor al especificado. Después del signo se debe poner una cantidad y
seguidamente c (referido a bytes), k (referido a kilobytes), M (referido a Megabytes) o G (referido a Gigabytes). Por ejemplo,
si queremos buscar un archivo que ocupe más de 10MB y menos de 1GB tendríamos que poner find / -size +10M -size -1G.

 -type [dfl] busca por tipo de archivo, pudiendo especificar si buscamos directorios (d), archivos normales (f) o enlaces
simbólicos (l). Por ejemplo, si queremos buscar directorios en /etc debemos hacer find /etc -type d.

 -samefile busca enlaces duros al archivo que le pasemos como expresión. Por ejemplo, si queremos saber todos los enlaces
duros que tiene el archivo texto.txt del directorio actual deberemos hacerfind / -samefile texto.txt. No buscamos en el
directorio actual, sino en el directorio raíz, para así encontrar todos los enlaces duros que haya en cualquiera de los directorios
del sistema de archivos.

 -user permite buscar archivos que pertenecen a determinado usuario. Por ejemplo, si queremos ver los archivos que
pertenecen al usuario alumno debemos ejecutar find / -user alumno.

 -group permite buscar archivos que pertenecen a determinado grupo. Por ejemplo, si queremos buscar archivos que
pertenezcan al grupo root haremos find / -group root.

 -amin X busca archivos cuya fecha de último acceso sea de hace X minutos. Si el número va precedido de un + buscamos
archivos que hayan sido accedidos hace más de X minutos. Si va precedido de un - lo que buscamos son archivos que hayan
sido accedidos hace menos de X minutos. Si no ponemos ni + ni - buscamos archivos que hayan sido accedidos hace
exactamente X minutos. Por ejemplo, para archivos que hayan sido accedidos en los últimos 5 minutos find / -amin -5.

 -atime X busca archivos cuya fecha de último acceso sea de hace X días. Si el número va precedido de un + buscamos
archivos que hayan sido accedidos hace más de X días. Si va precedido de un - lo que buscamos son archivos que hayan sido
accedidos hace menos de X días. Si no ponemos ni + ni - buscamos archivos que hayan sido accedidos hace exactamente X
días. Por ejemplo, para archivos que hayan sido accedidos en los últimos 5 días find / -atime -5.

 -cmin X busca archivos cuya fecha de último cambio de estado sea de hace X minutos. Si el número va precedido de
un + buscamos archivos que hayan cambiado de estado hace más de X minutos. Si va precedido de un - lo que buscamos son
archivos que hayan cambiado de estado hace menos de X minutos. Si no ponemos ni + ni - buscamos archivos que hayan
cambiado de estado hace exactamente X minutos. Por ejemplo, para archivos que hayan cambiado de estado hace más de 30
minutos find / -cmin +30.

 -ctime X busca archivos cuya fecha de último cambio de estado sea de hace X días. Si el número va precedido de
un + buscamos archivos que hayan cambiado de estado hace más de X días. Si va precedido de un - lo que buscamos son
archivos que hayan cambiado de estado hace menos de X días. Si no ponemos ni + ni - buscamos archivos que hayan
cambiado de estado hace exactamente X días. Por ejemplo, para archivos que hayan cambiado de estado hace más de 1
mes find / -ctime +30.

 -mmin X busca archivos cuya fecha de última modificación sea de hace X minutos. Si el número va precedido de
un + buscamos archivos que hayan sido modificados hace más de X minutos. Si va precedido de un - lo que buscamos son
archivos que hayan sido modificados hace menos de X minutos. Si no ponemos ni + ni - buscamos archivos que hayan sido
modificados hace exactamente X minutos. Por ejemplo, para archivos que hayan sido modificados hace exactamente 1
minuto find / -mmin 1.

 -mtime X busca archivos cuya fecha de última modificación sea de hace X días. Si el número va precedido de un + buscamos
archivos que hayan sido modificados hace más de X días. Si va precedido de un - lo que buscamos son archivos que hayan
sido modificados hace menos de X días. Si no ponemos ni + ni - buscamos archivos que hayan sido modificados hace
exactamente X días. Por ejemplo, para archivos que hayan sido modificados hace exactamente 1 año find / -mtime 365.

 -newer se refiere a archivos que hayan sido modificados más recientemente que un archivo determinado. Por ejemplo, si
queremos saber que archivos se han modificado más recientemente que /etc/sos.conf tendremos find / -newer /etc/sos.conf.

En Linux también disponemos de un comando para ordenar listas denominado sort. Su principal cometido es ordenar las líneas de texto
que se le pasen como argumento según distintos criterios. Por defecto las ordena por orden alfabético pero hay más criterios:

 sort -n usa un orden numérico. Por ejemplo, si queremos ver los contenidos del directorio actual ordenados por su tamaño
podemos hacer ls -s | sort -n. Como vemos, la utilidad de sort viene al concatenarlo con otros comandos como por ejemplo ls
o find. En este caso usamos ls -s para listar los contenidos del directorio actual precedidos de su tamaño y con la barra |
decimos que el resultado de ejecutar ese ls -s se le debe pasar a sort -n como argumento. Por su parte, sort -n ordena
numéricamente lo que se le ha pasado, por lo que realmente está ordenando el contenido del directorio actual de menor a
mayor tamaño de archivo.
 sort -r ordena los resultados en orden inverso. Por ejemplo, para ordenar los contenidos del directorio actual en orden inverso
podríamos hacer ls | sort -r.
 sort -f ordena alfabéticamente ignorando las mayúsculas y minúsculas.

La orden sort también es muy útil para ordenar los resultados de las búsquedas que se realizan confind.

Para buscar dentro de archivos de texto disponemos de la orden grep. También es muy útil para buscar entre los resultados de un find o
de un ls. Esta orden busca dentro de los archivos las líneas que coincidan con el patrón de búsqueda especificado. Para especificar dicho
patrón de búsqueda podemos recurrir a los metacaracteres que ya conocemos. Algunas de sus opciones son:

 -número Las líneas concordantes se mostrarán acompañadas del número especificado de líneas anteriores y posteriores.
 -A X Muestra X líneas de contexto después de las que concuerden con el patrón.
 -B X Muestra X líneas de contexto antes de las que concuerden con el patrón.
 -c En lugar de mostrar el contenido de las líneas que conciden con el patrón de búsqueda muestra el número de líneas que
concuerdan con el patrón para cada archivo de entrada.
 -h Suprime la impresión de los nombres de archivos antes de las líneas concordantes en la salida, cuando se busca en varios
archivos.
 -i No hace caso de si las letras son mayúsculas o minúsculas ni en el patrón ni en los archivos de entrada.
 -L Suprime la salida normal. En su lugar muestra el nombre de cada archivo de entrada donde no se encuentre ninguna
concordancia y por lo tanto de cada archivo que no produciría ninguna salida. La búsqueda se detendrá al llegar a la primera
concordancia.
 -l Suprime la salida normal. En su lugar muestra el nombre de cada archivo de entrada que produciría alguna salida. La
búsqueda se detendrá en la primera concordancia.
 -n Prefija cada línea de salida con el número de línea de su archivo de entrada correspondiente.
 -q Modo silencioso; suprime la salida normal. La búsqueda finaliza en la primera concordancia.
 -v Invierte el sentido de la concordancia, para seleccionar las líneas donde no hay coincidencias con el patrón.
 -w Selecciona solamente aquellas líneas que contienen concordancias que forman palabras completas.
 -x Selecciona solamente aquellas concordancias que constan de toda la línea.

Como hemos dicho antes, el comando grep es muy útil para buscar entre los resultados de un ls o de una búsqueda con find. Esto se
hace concatenando la salida de ls o find con la entrada de grepmediante la barra vertical |. Por ejemplo, para buscar entre el contenido del
directorio actual todos los archivos o directorios cuya fecha sea de 2010 podemos hacer ls -l | grep 2010. También podemos concatenar
varios comandos grep para afinar más la búsqueda, por ejemplo buscando solo los que sean de junio de dicho año: ls -l | grep 2010 | grep
Jun.

Actividades

Actividad 1. Busca en el directorio /etc, y sólo en ese directorio, todos los


archivos cuyo tamaño sea mayor de 10KB.
Actividad 2. Busca en /bin todos los archivos que comiencen por mk.

Actividad 3. Busca en /etc todos los archivos que hayan sido


modificados en la última semana.

Actividad 4. Busca en /etc todos los archivos que sean más nuevos que el
archivoprofile.

Actividad 5. Busca en /etc todos los archivos que pertenezcan al usuario root y ocupen entre 1KB y 10KB y ordena el resultado de la
búsqueda en orden alfabético inverso.
Actividad 6. Muestra todos los archivos de /etc cuya fecha sea de 2008.

Actividad 7. Busca en /etc todos los directorios que contiene, pero en lugar de
mostrarlos haz que se muestre cuántos contienen una d.
Al igual que en Windows, en Linux, los usuarios disponen de ciertos permisos o privilegios que limitan su control sobre el sistema.

Como ya hemos visto en apartados anteriores, para saber los permisos que un usuario tiene sobre determinados directorios, no tenemos
más que observar el primer atributo que aparece en cada caso al ejecutar la orden ls -l.

Si, además añadimos -d, y el nombre del directorio que queremos, veremos exclusivamente los permisos que tenemos sobre ese
directorio. Así, si ejecutamos $ ls -ld Fotos, veremos qué permisos tenemos sobre él.

Los tipos de permisos sobre archivos en Linux son los siguientes:

 Lectura: Permite fundamentalmente visualizar el contenido del archivo con órdenes como ls, cat, etc. También permite el uso
de órdenes como cp.

 Escritura: Permite modificar el contenido del archivo. El archivo se puede editar, por ejemplo, con gedit y modificar su
contenido sin ningún problema.

 Ejecución: Permite ejecutar el archivo como si de un programa ejecutable se tratase. Estos permisos se suelen asignar a
archivos Shell, es decir, archivos que realizan funciones propias del sistema operativo, como copias de seguridad, análisis de
la integridad del sistema, etc.

La asignación, modificación y eliminación de permisos o atributos sobre los archivos en entorno gráfico se realiza de forma análoga a
Windows (botón derecho sobre el directorio o archivo, en Propiedades, en la pestaña de Permisos).

Cuando creamos un archivo o directorio nuevo, se definen unos permisos concretos. Tienen la siguiente apariencia.
rwx rwx rwx -> Donde para dar permiso o no, consideraremos 0 ó 1.

111 111 100 -> El propietario y su grupo, tienen permisos de lectura, escritura y ejecución. El resto de usuarios, de lectura.

774

Existen varios comandos en linux que nos permiten modificar los permisos:

 chmod: Se utiliza para cambiar los permisos del archivo o directorio. Tenemos distintas formas de hacerlo. Por ejemplo:

- Ejecutando la orden $ chmod 777 Ejercicios/Ejer1.txt asignamos permisos de lectura, escritura y ejecución (control total) a todos los
usuarios sobre el archivo Ejer1.txt dentro del directorio Ejercicios.

- Ejecutando la orden $ chmod ugo+rwx Ejercicios/Ejer1.txt, conseguimos los mismo. Aquí, podemos variar el significado de la orden
según utilicemos + (añadimos los permisos que se indican a ese usuario), - (le quitamos los permisos indicados), = (le asignamos los
permisos).

 chown: Esta orden se utiliza para cambiar el propietario del archivo o directorio. Como parámetro, le pasaremos el nombre
del propietario y el nombre del archivo o directorio. Por ejemplo: $ chown alumno Cosas, haremos que el propietario del
directorio Cosas pase a ser el usuario alumno.

Existe la opción -R, que hace que el propietario de la carpeta cambie de forma recursiva, es decir, que también afectará el cambio al
contenido de ésta.

 chgrp: Es análoga a la anterior, sólo que aquí, en lugar de cambiar el propietario, cambiamos el grupo.
Actividades

Actividad 1: Crea un directorio en /home/alumno con el nombre Prueba. Describe los permisos que se han asignado para dicho directorio
por defecto.

Es un directorio

El propietario puede leer, escribir y ejecutar

El grupo puede leer y ejecutar

Otro usuarios pueden leer y ejecutar

Actividad 2: Crea un archivo en /home/alumno con el nombre texto.txt. Describe los permisos que se han asignado para dicho directorio
por defecto.

No se especifica el tipo de archivo, lo sabemos pos su extencion

El propietario puede leer y escribir

El grupo solo puede leer

Otros usuarios solo pueden leer

Actividad 3: ¿Qué diferencia has podido apreciar entre los permisos asignados a un nuevo directorio y a un nuevo archivo?

Que en un directorio el propietario tiene todos los permisos mientras que en un archivo solo puede leer y ejecutar

En cuanto a un archivo txt el propietario solo puede leer y escribir, mientras que los los grupos y otros usuarios solo pueden leer
Actividad 4: Modifica los privilegios de tu usuario sobre el archivo texto.txt de tal forma que ahora pueda ser ejecutado por el
propietario y su grupo. Comprueba que los cambios han surtido efecto.

Chmod 755

Actividad 5: Quita a todos los usuarios del archivo texto.txt los permisos de
ejecución y escritura. Comprueba el resultado.

Actividad 6: Abre desde la consola el archivo texto.txt con gedit.


¿Qué observas?

Actividad 7: Otorga permisos de lectura, escritura y ejecución al propietario y grupo del archivo anterior, y permiso sólo de lectura a los
demás usuarios. Utiliza la codificación decimal.
Actividad 8: Rellena la siguiente tabla sobre permisos.

ORDEN RESULTADO
$ chmod g+x doc1 Asigna permisos de ejecucion al grupo sobre doc1
$chmod ugo+rwx doc1 Asigna los privilegios de lectura, escritura y ejecución a todos los usuarios del archivo doc1
$ chmod go-wx doc1 Quita los privilegios de escritura y ejecucion ,al grupo y a otros usuarios sobre doc1
$chmod ugo +x doc1 Asigna a todos los usuarios el permiso de ejecución sobre doc1
$ chmod ugo+x doc1 Asigna el privilegio de ejecucion a todos los usuarios sobre doc1
$ chmod ugo-rwx doc1 Quita todos los privilegios a todos los usuarios del archivo doc1
Asigna todos los privilegios al propietario, le da privilegio de lectura y escritura al grupo y a otros usuarios solo le da lectura
$ chmod 764 doc1
sobre doc 1

Como la mayoría de los sistemas operativos actuales, Linux dispone de herramientas específicas para comprimir archivos.

En Windows, comprimimos los archivos con WinRAR, WinZIP o con las herramientas del propio sistema. En Linux, esto se hace con las
herramientas propias del sistema y con alguna utilidad extra.

 Los archivos comprimidos en Linux pueden ser, generalmente, de tipo:


o tar
o zip
o rar
o gz
o bz2

Aunque existen otras extensiones, estas son las más comunes.

Normalmente, los archivos tar suelen usarse para comprimir carpetas, y el resto para comprimir archivos y/o carpetas. En entorno texto,
para comprimir y descomprimir estos archivos, utilizaremos los siguiente comandos:
 tar:
o Para comprimir o empaquetar un archivo, ejecutaremos $ tar -cvf nuevo.tar uno.txt dos.txt tres.txt. Esto hará
que los archivos uno.txt, dos.txt y tres.txt, pasen a estar comprimidos o empaquetados dentro del archivo nuevo.tar.
o Para descomprimir un arcivo tar, ejecutaremos la orden $ tar -xvf archivo.tar.
o Para ver el contenido de archivo.tar, utilizaremos la orden $ tar -tf archivo.tar.

 zip/unzip:
o Si queremos comprimir los archivos anteriores en un archivo zip, ejecutaremos la orden $ zip nuevo.zip uno.txt
dos.txt tres.txt.
o Para descomprimirlo, ejecutaremos $ unzip nuevo.zip.
o Si lo que queremos es ver el contenido del archivo zip, ejecutaremos la orden anterior pero con la opción -v, de la
siguiente manera: $ unzip -v nuevo.zip.

 rar: Es importante saber que cuando utilicemos este comando, las opciones se deberán introducirsin guión.
o Para comprimir, utilizaremos la orden $ rar a nuevo.rar uno.txt dos.txt tres.txt.
o Para descomprimir, ejecutaremos el comando $ rar x nuevo.rar.
o Para ver el contenido del archivo, utilizaremos la orden $ rar v nuevo.rar o $ rar | nuevo.rar.

Actividades

Actividad 1: Crea en el directorio Ejercicios una carpeta que se llame Comprimir. Tras esto, crea dentro de ella y utilizando una sola
orden el archivo dibujo.jpg, documento.txt y video.mpg. Una vez lo hayas hecho, comprímelos en formato tar, luego en zip y luego en
rar, bajo los nombres de comp1, comp2 y comp3, respectivamente.
Actividad 2: Visualiza el contenido de los tres archivos comprimidos que has creado en el ejercicio anterior. ¿Muestran todos la misma
información?

Actividad 3: Descomprime el archivo nuevo.tar desde consola.

Actividad 4: Ahora descomprime nuevo.zip, ¿Qué diferencia hay?

Además de todas las órdenes que hemos visto hasta ahora, existe otras cuya finalidad vamos a ver a continuación:

 uname: Muestra información como el tipo de sistema operativo, versión, tipo de computadora desde el que nos conectamos,
etc.

 clear: Con esta orden, limpiamos la pantalla en modo comando, es decir, la consola. No tiene argumentos.

 date: Presenta en pantalla el día y la hora que tiene el equipo en ese momento. Muestra, de izquierda a derecha, el día de la
semana, mes, día del mes, hora, meridiano y año.

Con este comando, también podemos ajustar la hora del sistema. Si, por ejemplo, son las 18:45 del día 25 de diciembre, ejecutaremos en
la consola $ date 12251845, es decir primero el mes, luego el día, seguido de la hora y los minutos.

 cal/ncal: Sirven para mostrar el calendario del sistema. Nos permiten ver calendarios completos de otros años o calendarios de
un mes determitado, según los parámetros que le pasemos, así, la orden $ date 3 2010, nos mostrará el calendario del mes de
marzo del año 2010. Si no le pasamos ningún argumento, nos mostrará el mes actual, marcando el día en el que estamos.
 who: Muestra por pantalla una línea por cada usuario que en ese momento está conectado al sistema. Muestra, de izquierda a
derecha, el nombre de presentación del usuario, el número de terminal y la fecha y hora de presentación. Una variedad de este
comando, es who i am o who am i, que muestra solamente información referente al usuario conectado,

 passwd: Esta orden permite al usuario cambiar o asignar una contraseña, siempre que el administrador lo permita. Esta orden
se introduce sin parámetros o modificadores, $ passwd, y tras ejecutarla, pedirá la nueva contraseña si no existía
anteriormente, o pedirá confirmación de la antigua. Si la contraseña no cumpliera los mínimos de seguridad (por ser
demasiado corta, por ejemplo), el sistema avisaría, y tras un intento limitado, rechazaría la operación.

También podemos eliminar una contraseña de una cuenta mediante la orden $ passwd -d nombreusuario, pero debemos ser
administradores.

 logname: Esta orden tiene como misión mostrar el contenido de la variable logname, la cual contiene el nombre del usuario
conectado al sistema. No requiere ningún parámetro.

 id: Muestra el número de identificación y el grupo al que pertenece el usuario que le pasamos por parámetro. Así, para
conocer el identificador y el grupo al que pertenece alumno, ejecutaríamos $ id alumno.

 Concatenación de órdenes (| o barra vertical): Linux nos permite concatenar ordenes mediante este símbolo. Básicamente,
lo que hace es convertir la salida de un comando en la entrada de otro.

Por ejemplo, si ejecutamos la orden $ cat /etc/mtools.conf | grep disk, estamos haciendo que se vuelque el contenido del archivo
mtools.conf y nos resalte la palabra "disk" en éste. Esto es porque la tubería coge la salida que produce la orden cat y se la pasa a grep
como entrada.

 Redirección de salida (>): Lo que conseguimos con esto es redirigir la salida de un comando o programa para que en lugar de
salir por pantalla (como hemos estado viendo hasta ahora), se envíe a un archivo. Por ejemplo, la orden $ cal 2011 >
calendario.txt, crea un archivo en el directorio actual llamado calendario.txt que contiene la salida que ha producido la orden
cal.

 umask: Este comando es la abreviatura de user file-creation mode mask, y sirve para establecer los permisos por defecto que
tendrán los nuevos archivos y directorios que creemos.

Quizás lo más confuso de umask sea el modo octal que se utiliza para asignar las mascaras, la forma más sencilla es la siguiente, tenemos
que restar el valor de los permisos que deseamos asignar, al valor de la mascara, la cual es 666 para archivos y 777 para directorios:

Directorios:

Valor de la máscara:777 (111 111 111)


Permisos que queremos asignar:755 (111 101 101)
Valor para umask para directorios: 022 (111 111 111 - 111 101 101 = 000 010 010 = 022)

Archivos:

Valor de la máscara:666 (110 110 110)


Permisos que queremos asignar:644 (110 100 100)
Valor para umask para directorios: 022 (110 110 110 - 110 100 100 = 000 010 010 = 022)
Actividades

Actividad 1: Muestra por pantalla la información relativa al sistema


operativo y tu equipo.

Actividad 2: Muestra por pantalla el contenido de /etc/mtools.conf con


el
comando
cat. Tras
haberlo
hecho,
limpia la
consola.

Actividad 3: ¿Qué comando ejecutarías para que la fecha del equipo fuera 15 de Octubre, a las 12:30?

date 10151230

Actividad 4: Si no el usuario con el que estás conectado al equipo no tiene contraseña, crea una. Si ya tenías una, modifícala. La nueva
será alumno.2011. Tras esto, vuelve a cambiarla por la que tenías antes.

Actividad 5: Queremos saber las líneas en las que aparece la palabra "man" dentro del manual de man. Además, queremos saber qué
número de línea es. ¿Cómo lo harías?

Cat -n man | greep man

Actividad 6: A Pedro le han dicho que para mañana tiene que saberse "de pe a pa" el contenido del archivo ntf.conf del directorio /etc. El
pobre, para estudiárselo mejor, quiere meterlo en un archivo de texto llamando miarchivo.txt para aprendérselo, pero además quiere que
dentro de ese archivo, se muestre el contenido por páginas a doble espacio entre líneas y con la cabecera "Estudiar" en cada una. ¿Cómo
lo puede hacer?

cat / etc /ntf.conf > / home / alumno / Tarea / miarchivo.txt | pr – d / home / alumno / Tarea / miarchivo.txt | pr -h “Estudiar”

Una vez hecho, abre miarchivo.txt con gedit desde consola para comprobar que lo has hecho bien.
Actividad 7: Queremos asignar por defecto los permisos 664 a los nuevos archivos. ¿Qué máscara tendré que utilizar? Ejecuta la orden
adecuada, luego crea un archivo y comprueba si los permisos que asigna por defecto son correctos.

Umask 002

Actividad 8: ¿Con qué permisos se crearán los directorios por defecto si ejecuto $ umask 166? ¿Y los archivos?

Directorios 511

Archivos 500

Hasta ahora, nos hemos centrado en la ejecución de órdenes por consola, es decir, en modo texto. Pero como hemos visto anteriormente,
Linux también dispone de interfaz en modo gráfico (GNOME y KDE) enfocado principalmente a facilitar lo operabilidad e interacción
con el sistema.

Así, los elementos básicos del escritorio de Linux (muy similares a los de Windows) son:
 1) Iconos: Es el símbolo utilizado para representar un objeto (un disco duro, una unidad de CD-ROM, una impresora, etc.)
Si hacemos doble clic en un icono, se abre una ventana con información relativa a él o se ejecuta un programa dentro de
una ventana.

 2) Ventanas: Es la forma que tiene Linux de mostrarnos la información en pantalla.

 3) Barra de tareas: Situada normalmente en la parte inferior de la pantalla. Muestra las aplicaciones que tenemos abiertas en
cada momento. Es una parte del escritorio muy importante puesto que muestra componentes esenciales para el manejo del
escritorio.

 4) Menús de trabajo: Se utilizan para realizar las configuraciones en el sistema operativo, ejecutar aplicaciones, etc. Desde
estos menús podremos acceder a todos los elementos que nos sirven para configurar el sistema operativo. Estos menús se
pueden personalizar.

 5) Área de notificación: Muestra elementos como fecha, hora, estado de la red, etc. así como un botón desde el que podremos
cerrar las sesiones de trabajo o reiniciar y apagar el equipo.

Existen diferentes menús de trabajo con los que podemos trabjar:


 1) Aplicaciones: En este menú tendremos acceso rápido a herramientas del sistema, accesorios, juegos, etc. Podremos lanzar
el navegador web, ejecutar el procesador de textos que incorpora Linux, etc.

 2) Lugares: Podremos acceder a todas las carpetas de trabajo personal de cada usuario que ha iniciado sesión, así como
acceso directo al entorno de red del equipo, al equipo (Mi PC en Windows), a las unidades de almacenamiento e incluso a la
lista de archivos recientes utilizados en el sistema.

 3) Sistema: Tal vez el menú más importante. En este menú realizaremos la mayoría de ajustes del sistema, ya que
en Preferencias ajustaremos aspecto de ventanas, resolución de pantalla, apariencia, etc. En Administración, podremos
realizar todos los ajustes relacionados con hardware, software, red, gestión de usuarios, impresoras, etc.

Al igual que Windows, Linux posee un explorador para navegar gráficamente por el Sistema de Archivos. Para acceder a él, iremos
a Lugares > Equipo, donde se abrirá una ventana que mostrará el contenido de nuestro equipo, es decir, los dispositivos de
almacenamiento (Disquete, Unidad CD-ROM, Sistema de archivos).

Para entrar en el Sistema de Archivos (o Archivos) no tenemos más que hacer doble clic sobre el icono correspondiente, y nos lo
mostrará.

El explorador que nos permite navegar por los directorios y archivos, presenta el siguiente aspecto:
1. Barra de tareas.
2. Botones aspecto ventana.
3. Vista de iconos.
4. Vista actual de la ventana.
5. Barra de estado.
6. Explorador de la ventana.
7. Barra de herramientas, navegación y barra de menús.

La utilidad de todas ellas es la misma que en el entorno Windows.

Actividades

Actividad 1: Utilizando el explorador de archivos, crea un directorio dentro de alumno que se


llame Graficos.
En Windows, disponemos de editores de texto gráfico como WordPad o NotePad, con los cuales podemos acceder a archivos de texto
plano para trabajar con ellos.

Hasta ahora, hemos visto que en Linux disponemos del editor vi, que se ejecuta desde la línea de comandos.

Existe en Linux, un editor que se ejecuta en modo gráfico llamado gedit. Para ejecutarlo, no tenemos más que hacerlo desde la linea de
comandos o desde Aplicaciones > Accesorios > Editor de textos.

La interfaz del programa tiene este aspecto:

El funcionamiento es muy similar al de los que ya conocéis.

Para crear un nuevo documento con gedit desde consola, no tenemos más que escribir el nombre del editor seguido del nombre del nuevo
documento, por ejemplo $ gedit nuevo.txt o $ gedit nuevo.txt & si queremos seguir utilizando la consola sobre la cual ejecutamos el
programa.

Otro editor muy utilizado también es Emacs.

Emacs es un editor de texto con una gran cantidad de funciones, muy popular entre programadores y usuarios técnicos.
Tiene una gran cantidad de características que permiten lidiar con la aparentemente sencilla tarea de editar texto, que van desde
comandos para manipular palabras y párrafos (borrarlos, moverlos, moverse por entre ellos, etc.), hasta resaltado de sintaxis para hacer el
código fuente más fácil de leer, o ejecutar "macros de teclado" que contienen lotes de comandos de edición definidos por el usuario.

La interfaz de Emacs es esta:

Como hemos visto antes, Linux incorpora herramientas específicas para comprimir y descomprimir archivos.

Hemos visto los tipos de archivos que maneja Linux, y nos hemos centrado en tar, zip y rar.

Si bien, antes hemos visto como comprimir, descomprimir y visualizar archivos comprimidos en modo texto, vamos a hacerlo ahora de
manera gráfica, y utilizando los compresores de que dispone el sistema operativo.

Para comprimir archivos en otro, necesitamos crear un archivador, seleccionando los documentos que queramos comprimir o
empaquetar y haciendo clic con el botón derecho del ratón. Nos aparecerá esto:
Las acciones que nos pide aquí son:

- Nombre del archivador que vamos a crear.

- Carpeta destino del archivo compimido.

- Tipo de archivo compimido (a elegir entre varias opciones de compresión).

Si lo probamos, podremos ver que el tipo tar tiene una extensión similar a la suma de los archivos que contiene, por lo que generalmente
se le considera un contenedor de archivos más que un archivo comprimido. En cambio rar y zip sí tendrán un tamaño más pequeño.

Para descomprimir o extraer los archivos, haremos doble clic sobre el archivador creado, donde podremos visualizar el contenido del
archivo comprimido:
Seleccionaremos los archivos que queremos descomprimir y haremos clic en el icono Extraer. En la ventana que se abre, indicaremos
en Lugares dónde queremos que se extraiga y pulsaremos Extraer de nuevo.

Al igual que en Windows, podemos añadir archivos o carpetas al archivo comprimido, ver el contenido del archivo sin extraerlo, etc.

Gran parte del software que se instala en Linux suele distribuirse en paquetes tipos tar, con lo que es necesario descomprimirlo para
instalarlos.

Actividades

Actividad 1: Crea en el escritorio 3 archivos de texto llamados uno.txt, dos.txt y tres.txt. Edítalos y guarda cambios, y comprímelos
juntos primero como tar, luego zip y finalmente como rar, con los nombres que tú elijas. Una vez realizado esto, comprueba y compara la
extensión de los archivos generados.
Actividad 2: Visualiza el contenido del archivo zip creado anteriormente y descomprime los archivos uno.txt y dos.txt en una carpeta
que hayas creado previamente en el Escritorio con el nombre Archivos.

Repaso

Actividad 1: Crea la siguiente estructura de directorios utilizando una sola orden y mediante rutas relativas, dentro de /home/alumno.
Puedes ejecutar la orden tree al finalizar para comprobar que es correcto.

Actividad 2: Lista todos los archivos del directorio /etc que empiecen por t en orden inverso.
Actividad 3: Lista todos los archivos del directorio /dev que empiecen por tty y tengan 5 caracteres.

Actividad 4: Lista todos los archivos del directorio /dev que empiecen por tty y acaben en 1,
2, 3 ó 4.

Actividad 5: Lista todos los archivos del directorio /dev que empiecen por t y acaben en C1.

Actividad 6: Lista todos los archivos del directorio /etc que no empiecen por t.
Actividad 7: Estando en /home/alumno, crea dentro del directorio AlumnosInf los archivos alu1.txt, fotoalu1.jpg, alu2.txt, fotoalu2.jpg,
utilizando una única orden. Puedes elegir hacerlo con rutas absolutas o
relativas.

Actividad 8: Ahora estás situado en el directorio AulaOpt, y quieres cambiar el directorio de trabajo actual a
NotasOpt. Utiliza rutas relativas.

Actividad 9: Copia todo el contenido de la carpeta que has creado en el ejercicio 7


en Informática. Supón que estás en /home/alumno y lo quieres hacer sin
salir de esa carpeta.

Actividad 10: Desde Turismo, y usando rutas absolutas, cambia el


nombre del directorio AulaOpt para que pase a llamarse AulaOptica.

Actividad 11: Borra el directorio AlumnosInf.

Actividad 12: Indica al menos 3 propiedades sobre archivos que contiene un inodo.

El identificador de dispositivo del dispositivo que alberga al sistema de archivos.


El número de inodo que identifica al archivo dentro del sistema de archivos.

La longitud del archivo en bytes.

Actividad 13: ¿Qué es un hard link o enlace duro? ¿Y uno simbólico? Explica las diferencias entre ellos.

Un hard link es un enlace de un archivo a otro que contienen la misma informacion

Un enlace simbolico es un acceso directo a un archivo

Actividad 14: Nombra al menos 3 directorios importantes en Linux e indica qué contienen.

/ es el directorio raíz. De aquí cuelgan todos los directorios del sistema./

etc contiene los archivos de configuración y utilidades para la administración.

/home es un directorio donde se encuentran los directorios personales de los usuarios del sistema.

Actividad 15: ¿Qué dos directorios especiales tiene Linux? Explica a qué hace referencia cada uno y para qué resultan útiles.
/usr contiene utilidades y programas generales de usuario

/dev contiene archivos especiales de bloques y caracteres asociados a dispositivos hardware. Aquí encontramos todos los dispositivos
físicos del sistema (todo nuestro hardware)

Actividad 16: ¿Qué diferencia hay entre una ruta absoluta y una relativa?

Una ruta absoluta es aquella que escribimos desde el directorio raiz o padre la direccion completa en donde se encuentra el archivo
buscado

Una ruta relativa es aquella que puede hacer referencia a si misma (./) o a su inodo padre (../)

Actividad 17: Nombra los 5 tipos de archivos básicos en Linux y explica todo lo que sepas sobre cada uno.

Archivos ordinarios. Contienen la información con la que trabaja cada usuario.


Enlaces físicos o duros (hard links). No es específicamente una clase de archivo sino un segundo nombre que se le da a un archivo.

Enlaces simbólicos. También se utilizan para asignar un segundo nombre a un archivo. La diferencia con los enlaces duros es que los
simbólicos solamente hacen referencia al nombre del archivo original, mientras que los duros hacen referencia al inodo en el que están
situados los datos del archivo original.

Directorios. Son archivos especiales que contienen referencias a otros archivos o directorios.

Archivos especiales. Suelen representar dispositivos físicos, como unidades de almacenamiento, impresoras, terminales, etc.

Actividad 18: ¿Cuál es el tipo de Shell que has utilizado en clase para ejecutar los comandos Linux vistos durante el tema 8? ¿Por qué
sabes que es ese tipo (qué características tiene)?

Bourne Again Shell (bash). Fue creado para usarlo en el proyecto GNU. BASH, por lo tanto, es un shell o intérprete de comandos GNU
que incorpora la mayoría de distribuciones de Linux. Es compatible con el shell sh. Además, incorpora algunas características útiles de
ksh y csh, y otras propias como la edición de línea de comandos, tamaño ilimitado del historial de comandos, control de los trabajos y
procesos, funciones y alias, cálculos aritméticos con números enteros, etc. Su símbolo del sistema esnombre_usuario@nombre_equipo.

Actividad 19: Pedro ha creado un archivo llamado doc1.txt en el directorio /home/alumno. Sabe que cuando se crea un archivo nuevo, se
le asigna un número de inodo que es el que contendrá la información sobre él. ¿Cómo puede comprobar el número de inodo? Escribe
cómo lo harás con una sola orden si el directorio de trabajo actual fuera /etc. Usa rutas relativas.

Actividad 20: Ahora Pedro quiere crear un enlace simbólico llamado ensimbolico a ese mismo archivo, y luego uno duro llamado
enduro. ¿Con qué ordenes lo conseguiría? Escríbelas.

Actividad 21: ¿Qué le pasa a los enlaces simbólicos cuando borramos el archivo al que hacían referencia? ¿Y a los duros? Justifica por
qué.

A los enlaces simbolicos cuando se les borra la referencia son incapaces de acceder al archivo al que referenciaban

A los enlaces duros cuando se les borra la referencia siguen concervando una copia del archivo.
Actividad 22: ¿Cuándo se borra la información de un archivo en un inodo?
Cuando se borra el archivo completamente al usar rm archivo

Actividad 23: Muestra el contenido del directorio /etc de forma que muestre también los archivos ocultos, muestre los atributos de cada
archivo o directorio y los ordene, además, de forma inversa.

Actividad 24: En el directorio /home/alumno, tenemos varios directorios que contienen información que ya no nos interesa y queremos
borrarlos junto con todo su contenido. Como sólo queremos borrar directorios concretos, queremos que afecte a aquellos que empiezan
con una letra mayúscula, seguida de dos caracteres y que no acaben en número.

rm - R | Find / -name “[A-Z]*~[0-9]”

Actividad 25: Estamos en el directorio /bin y queremos mostrar el contenido de /etc/mtools.conf. Queremos que la visualización nos
permita recorrer el documento hacia delante y hacia atrás, y que no salga de él hasta que lleguemos al final por segunda vez. Escribe el
comando (una sola orden) que utilizarías empleando rutas relativas.

less /etc/mtools.conf
Actividad 26: Tenemos un archivo de texto llamado mismemorias.txt que queremos imprimir, pero antes de hacerlo, deseamos ver como
quedaría. Queremos que lo muestre con doble línea de espaciado y con la cabecera “Memorias” y que en cada página haya 25 líneas.
Además, queremos volcarlo al archivo imprimir.txt en lugar de mostrarlo por consola. ¿Qué orden ejecutarías para conseguir esto antes
de imprimir?

Pr -d archivo -h “memorias” -l 25

Actividad 27: Ya hemos visto cómo ha quedado el documento del ejercicio anterior y no ha gustado. Ahora queremos imprimirlo. La
impresora que tenemos conectada al equipo tiene como nombre Epson640, y queremos que imprima dos copias del documento, ¿qué
orden ejecutarías para conseguir que lo imprimiera así?
Pr -P Epson -#2 -d miarchivo -h “Memorias” -l 25

Actividad 28: Si ejecuto esta orden $ chmod go-rwx Ejercicios/ *.txt, ¿qué sucederá? Detállalo.
Se le otrogan todos los permisos al grupo y a otros usuarios sobre todos los archivos .txt que se encuentren en el directorio Ejercicios

Actividad 29: Paco quiere comprimir un archivo llamado imagen.jpg para que le ocupe menos espacio en el disco duro. ¿Qué le
recomendarías, hacerlo con el formato tar o zip? ¿por qué?

En un zip ya que el formato tar su uso se le considera para agrupar archivos

Actividad 30: Escribe las líneas de comando que ejecutarías para:

a. Crear una carpeta en el directorio de trabajo actual llamada Archivos.

Mkdir archivos
b. Generar los archivos vacíos llamados historia1.txt, historia2.txt e historia3.txt.

Touch historia1.txt historia2.txt historia3.txt


c. Abrir cada uno de los archivos anteriores con gedit, para editarlos (omite el paso de editarlos y guardarlos, especifica sólo como abrirlo
desde consola).

Gedit historia1.txt

gedir historia2.txt

gedit historia3.txt
d. Comprimirlos en un archivo llamado hist.tar.

Tar -cvf hist.tar archivos


e. Visualizar el contenido de dicho archivo comprimido.

Tar -tf hist.ar


f. Descomprimirlo.
Tar -xvf hist.tar

Actividad 31: Queremos buscar los enlaces simbólicos que tenemos en el directorio /home/alumno. De lo que nos muestre, queremos
filtrar sólo aquellos que empiecen por enl seguido de algún número, y nos da igual cómo acabe. El resultado lo queremos volcar en el
archivo resultados.txt. Indica cómo lo harías si estás en /home/alumno.

Find . -type l -ls | cat → resultado.txt


Activi
dad
32: In
dica
qué
orden
ejecuta
rías
para
obtene
r los
archiv
os de
la
carpet
a
/etc y s
ólo de esa carpeta, que tienen la extensión “.txt”, sin importar si lo pone en mayúsculas o minúsculas, y que fueron accedidos durante el
último mes. Además lo queremos ordenado alfabéticamente.

Actividad 33: Muestra qué archivos y directorios de /bin tienen fecha de


Mayo de 2007.

Actividad 34: Si tuvieras privilegios de administrador, ¿cómo harías que la fecha y hora del sistema fueran 12 de Noviembre de 2009?
Indica la orden.

Date –set “2009-11-12:

Actividad 35: ¿Qué sucederá si ejecuto esta orden: $ cat –b /etc/mtools.conf | grep -c disk > archivo.txt? Indica también qué contendrá
archivo.txt
Lo que pasara es que en un archivo llamado archivo.txt pondran todas las lineas con la palabra disk en el directorio actual

Ejercicio Final

En el tema hemos visto, entre otras cosas, multitud de órdenes del shell de Linux y muchas de sus opciones. Como es lógico, es
imposible aprenderse todas las opciones de cada orden, pero sí debemos de tener claras las más importantes.

1. De manera individual, para cada una de las órdenes que hemos visto, decide cuales son las opciones más
importantes, las que deberíamos tener claras al finalizar el tema. Para ello, crea un documento en el que recojas
todas las órdenes vistas en clase y, para cada una de ellas, las opciones que consideres más importantes. Para
algunas órdenes sólo habrá 1 ó 2 opciones importantes mientras que para otras puede haber algunas más. Lo
importante es que cada uno escoja las que le parezcan imprescindibles. El documento que creéis deberá
ser subido al apartado correspondiente de Moodle antes de la próxima clase.

ls -a muestra todos los archivos y directorios, incluso los ocultos (los que comienzan con un punto).

ls -lh muestra la misma información que con la opción -l pero el tamaño del archivo se muestra en unidades más
entendibles (K, M, G...).

ls -1 muestra los archivos y directorios en una sola columna.

mkdir: Esta orden sirve para crear una carpeta o directorio cuyo nombre será el que le pasemos como argumento a
dicha orden.

touch: La orden touch sirve para cambiar la fecha de acceso y modificación de un archivo que le pasemos como
argumento. Si dicho archivo no existe, lo creará vacío con el nombre que le hayamos pasado como argumento.

ln: Esta orden, se utiliza para crear un enlace duro al archivo que se le pasa como argumento. Así, si ejecutamos la
orden

ls -s miarchivo miarchivo2, creará un enlace simbólico al archivo "miarchivo", que tendrá como nombre "miarchivo2".

rmdir: La orden rmdir sirve para eliminar un directorio cuyo nombre será el que le pasemos como argumento. Su
nombre proviene del inglés Remove Directory, que significa Borrar Directorio Como condición para el borrado,
el directorio deberá estar vacío. Si no, nos mostrará un mensaje diciendo que tiene contenido.
rm: Esta orden es similar a la anterior, y sirve para eliminar un archivo cuyo nombre será el que le pasemos como
argumento.

cp: Esta orden se utiliza para copiar archivos. Proviene del inglés Copy, y copia el archivo que se le pasa por parámetro
(origen) en otro cuyo nombre se le pasa como segundo parámetro (destino).

cp -R /home/alumno/directorio1 /tmp, copiará todo el contenido de la carpeta directorio1 en el destino indicado, que en
este caso es /tmp.

mv: Esta orden tiene el efecto de mover archivos de un directorio a otro, según se le indique. Proviene del inglés Move.
Si, por ejemplo, queremos mover el archivo mueveme.txt que se encuentra en el directorio actual

cat -n numera todas las líneas del texto, incluso las vacías. En concreto, pone un número delante de cada línea al
mostrarlas por pantalla.

cat -b numera todas líneas del texto que no sean vacías. Las líneas vacías las muestra pero no les pone ningún número
delante.

less -e hace que se salga automáticamente de la visualización cuando se llega por segunda vez al final del archivo. La
primera vez que se llega al final del archivo se permanece en la visualización. Es muy útil para no tener que
acordarse de salir con la q.

less -N muestra un número de línea delante de cada línea de texto que contiene el archivo.

lpr -P nombredelaimpresora especifica el nombre de la impresora con la que queremos imprimir. En caso de no
especificarse se imprimirá en la impresora por defecto. Si por ejemplo nuestra impresora se llama EpsonS22
haremos lpr -P EpsonS22.
lpr -# X quiere decir que queremos X copias del documento, entre 1 y 100, por defecto 1. Por ejemplo, si queremos 3
copias haremos lpr -# 3.

pr -n imprime también el número de línea asignado a cada línea del texto.

vi en el shell sin ningún argumento veremos que aparece un texto en pantalla en el que todas las líneas comienzan por
un símbolo ~.

find. Esta orden necesita que le pasemos como argumentos el directorio donde deseamos hacer la búsqueda y una
expresión que se refiera a lo que queremos buscar.

find -name se refiere al nombre del archivo que queremos buscar. Después de poner -name debemos indicar entre
comillas una expresión referida al nombre del archivo que estamos buscando. Dicha expresión distinguirá
mayúsculas y minúsculas.

find -size [+-]X[ckMG] permite hacer búsquedas por el tamaño de archivo. Como vemos, se admiten varias opciones
en la expresión. Puede empezar por +, lo cual indicará que buscamos archivos que sean mayores de cierto
tamaño, o por -, con lo que estaremos buscando archivos cuyo tamaño sea menor al especificado.

sort -n usa un orden numérico. Por ejemplo, si queremos ver los contenidos del directorio actual ordenados por su
tamaño podemos hacer ls -s | sort -n. Como vemos, la utilidad de sort viene al concatenarlo con otros comandos
como por ejemplo ls o find. En este caso usamos ls -s para listar los contenidos del directorio actual precedidos
de su tamaño y con la barra | decimos que el resultado de ejecutar ese ls -s se le debe pasar a sort -n como
argumento. Por su parte, sort -n ordena numéricamente lo que se le ha pasado, por lo que realmente está
ordenando el contenido del directorio actual de menor a mayor tamaño de archivo.

sort -f ordena alfabéticamente ignorando las mayúsculas y minúsculas.

chmod: Se utiliza para cambiar los permisos del archivo o directorio. Tenemos distintas formas de hacerlo.
chown: Esta orden se utiliza para cambiar el propietario del archivo o directorio. Como parámetro, le pasaremos el
nombre del propietario y el nombre del archivo o directorio.

• tar:

◦ Para comprimir o empaquetar un archivo, ejecutaremos $ tar -cvf nuevo.tar uno.txt dos.txt tres.txt. Esto hará que
los archivos uno.txt, dos.txt y tres.txt, pasen a estar comprimidos o empaquetados dentro del archivo nuevo.tar.

◦ Para descomprimir un arcivo tar, ejecutaremos la orden $ tar -xvf archivo.tar.

◦ Para ver el contenido de archivo.tar, utilizaremos la orden $ tar -tf archivo.tar.

• zip/unzip:

◦ Si queremos comprimir los archivos anteriores en un archivo zip, ejecutaremos la orden $ zip nuevo.zip uno.txt
dos.txt tres.txt.

◦ Para descomprimirlo, ejecutaremos $ unzip nuevo.zip.

◦ Si lo que queremos es ver el contenido del archivo zip, ejecutaremos la orden anterior pero con la opción -v, de
la siguiente manera: $ unzip -v nuevo.zip.

• rar: Es importante saber que cuando utilicemos este comando, las opciones se deberán introducirsin guión.

◦ Para comprimir, utilizaremos la orden $ rar a nuevo.rar uno.txt dos.txt tres.txt.

◦ Para descomprimir, ejecutaremos el comando $ rar x nuevo.rar.

◦ Para ver el contenido del archivo, utilizaremos la orden $ rar v nuevo.rar o $ rar | nuevo.rar.

uname: Muestra información como el tipo de sistema operativo, versión, tipo de computadora desde el que nos
conectamos, etc.

clear: Con esta orden, limpiamos la pantalla en modo comando, es decir, la consola. No tiene argumentos.
date: Presenta en pantalla el día y la hora que tiene el equipo en ese momento. Muestra, de izquierda a derecha, el día
de la semana, mes, día del mes, hora, meridiano y año.

cal/ncal: Sirven para mostrar el calendario del sistema. Nos permiten ver calendarios completos de otros años o
calendarios de un mes determitado, según los parámetros que le pasemos, así, la orden

Redirección de salida (>): Lo que conseguimos con esto es redirigir la salida de un comando o programa para que en
lugar de salir por pantalla (como hemos estado viendo hasta ahora), se envíe a un archivo.

2. En grupos de 3 personas, poned en común las opciones que habéis escogido cada uno para cada orden. Decidid
entre todos cuales son las más importantes y cuales no y plasmadlas en otro documento similar al que hicísteis
individualmente.
3. Cuando todos los grupos acaben de tomar sus decisiones las pondremos en común para toda la clase y entre
todos decidiremos qué opciones son las que consideráis imprescindibles.

Das könnte Ihnen auch gefallen