You are on page 1of 24

Sistemas Operativos Monopuesto 1 SMR

4.1 Introduccin
Linux es un sistema multiusuario y multitarea basado en el sistema operativo UNIX. Es de
libre distribucin y cdigo abierto.
En cuanto a su estructura, tiene un ncleo donde se ejecutan los servicios ms bsicos y que
est aislado del usuario que puede comunicarse con el sistema a travs de las distintas shell y
entornos de escritorio.
Nota: Linux dispone de varias alternativas para el entorno de escritorio y para la shell
(concha) que son los interfaces que aslan al usuario del ncleo. El usuario podr dar rdenes, desde
el terminal o desde el entorno grfico, que sern interpretadas y enviadas al ncleo.

4.1.1 El ncleo
Cada nueva distribucin de Linux incluye un nuevo ncleo mejorado. Los ncleos se
nombran con 3 o 4 nmeros separados por puntos:
El primer nmero: Indica la versin del ncleo. Slo cambia cuando se modifica el
ncleo.
El segundo nmero: Indica la revisin principal del ncleo.
El tercer nmero: Revisin menor del ncleo. Por ejemplo, se aaden drivers o
alguna caracterstica.
El cuarto nmero: Correcciones de errores o fallos de seguridad. El cuarto nmero
slo aparece si ha sido necesario aplicar alguna correccin.
Por ejemplo, el ncleo 4.4.0.57 corresponde a la versin 4, revisin 4, sin revisiones menores
y con 57 correcciones.
Puedes ver el ncleo que est funcionando en tu sistema con el comando:
uname -r
Cuando haces una actualizacin del sistema a un nuevo ncleo, el ncleo anterior no se
desinstala y queda en reserva por si en alguna ocasin falla el actual. Puedes ver los ncleos que
mantiene tu sistema en el men del grub, al iniciar el equipo.

4.1.2 La shell
Una shell se encarga de interpretar rdenes o comandos, permitiendo redireccin de
entrada/salida, listado y lectura de ficheros y un lenguaje para crear programas por lotes o scripts.
Linux dispone de las siguientes shell:
sh (Bourne shell): Original de Unix. Archivos de configuracin /etc/profile y
~/.profile.
csh (C shell): adapta el anterior para programadores adoptando una sintaxis parecida
al lenguaje C.
tcsh (Tenex C shell): Mejora el anterior.

Curso 2016 / 2017 4 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

ksh (Korn shell): Mejora la Bourne shell para programadores.


bash (Bourne Again shell): Creado especialmente para Linux, es uno de los ms
extendidos. Es una revisin del Bourne Shell que incorpora capacidades de C shel y
de Korn shell. Archivos de configuracin /etc/profile y ~/.profile, ~/.bash_profile,
~/.bash_login y ~/.bashrc.
En una misma instalacin pueden estar disponibles varias shell. Si quieres saber cul de ellos
usas cuando accedes al terminal de comandos, echa un vistazo a tu usuario en el fichero
/etc/passwd. Tambin puedes usar los siguientes comandos:
Para saber la shell que est activa:
echo $0
Nota: Si el comando echo $0 se ejecuta desde un script, mostrar el nombre del fichero script
como shell activa.
Para ver todas las shells que tienes instaladas:
cat /etc/shells
Para cambiar de una a otra shell:
exec /bin/bash (Cambia a la shell bash)
exec /bin/sh (Cambia a la shell sh)
Normalmente usaremos la shell bash que incluye autocompletado de comandos y nombres de
ficheros (tecla TAB ), historial de comandos, editor de lneas previas, definicin de alias. Hay un
manual completo de la shell en http://www.gnu.org/software/bash/manual/ que puedes ver en
HTML, PDF y otros formatos.

El prompt en la shell bash es as:


usuario@equipo:directorio$ para usuarios normales
root@equipo:directorio# para el usuario root
Nota: Recuerda que el sistema de comandos de Linux es Case Sensitive (sensible a
maysculas), esto significa que entiende como distintas las letras maysculas de las minsculas.

PARA USAR LAS FUNCIONES DE AUTOCOMPLETAR


Escribe las primeras letras de un comando o fichero o directorio y pulsa la tecla TAB . Si
existe lo que buscas (y lo ests escribiendo en el sitio adecuado) se completar la palabra.
Cuando hay varias opciones que comienzan por la secuencia que has escrito, una segunda
pulsacin de la tecla TAB mostrar todas las opciones disponibles.

PARA RECURRIR AL HISTORIAL DE COMANDOS DEL SHELL


Si ests usando el shell bash se guardan todos los comandos que has escrito anteriomente.
Pulsando la tecla CURSOR-ARRIBA van apareciendo esos comandos del ltimo al primero.
Una vez localizado el comando que buscas puedes volver a ejecutarlo o incluso editarlo
previamente.

Curso 2016 / 2017 5 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

PARA ESCRIBIR NOMBRES DE FICHEROS O CARPETAS CON ESPACIOS


Si un fichero o directorio incluye espacios ser necesario hacer una de estas dos cosas:
Encerrar el nombre entre comillas.
Anteponer a cada espacio el carcter escape (barra invertida, \). Este carcter se usa
siempre para liberar el siguiente carcter de su significado habitual. As, puesto
que el significado habitual del espacio es separar argumentos, al anteponerle el
carcter escape lo liberamos de ese significado y el shell entiende que sigue
formando parte del mismo argumento.
Ejemplo: Cambiar a la carpeta llamada Mis Trabajos
cd Mis Trabajos
o bien:
cd Mis\ Trabajos

4.1.3 Entornos de escritorio


El entorno grfico de Linux se llama X-Window y funciona como una
aplicacin independiente del ncleo. Sobre el entorno grfico trabaja el entorno de escritorio
(que podramos llamar shell grfica) y los sistemas Linux ofrecen varias alternativas:
KDE (K Desktop Environment): Es un proyecto de escritorio para varios sistemas
operativos y es el que ms se acerca al aspecto de Windows o Mac OS. Es el que
viene por defecto en las distribuciones de Kubuntu.
GNOME (GNU Network Object Model Environment): Surgi como alternativa a
KDE con la intencin de ser ms atractivo y fcil. Es el que vena por defecto en las
primeras distribuciones de Ubuntu.
Tiene un panel superior con los mens Aplicaciones, Lugares y Sistema y en el
que se pueden aadir lanzadores para las aplicaciones ms habituales.
MATE: Naci de la polmica con la versin 3 de GNOME que no fue bien acogida
por buena parte de los usuarios. Fue desarrollada a partir de GNOME2. La
distribucin Ubuntu Mate la incorpora por defecto.
Unity: No es tcnicamente un entorno de escritorio, porque corre sobre GNOME y
usa sus mismas aplicaciones, pero de cara al usuario se puede considerar un entorno
ms.
Otros: Existen otros muchos entornos de escritorio que suelen requerir menos
recursos y son adecuados para equipos antiguos.
Fluxbox.
Xfce: Es el que viene por defecto en Xubuntu.
IceWM:
LXDE: Es el que viene por defecto en Lubuntu.
Es posible tener varios entornos de escritorio en una misma instalacin y usar uno u otro en
distintos momentos. Al iniciar sesin ser posible elegir el entorno. Sin embargo no es buena idea

Curso 2016 / 2017 6 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

ya que cada uno de los entornos viene acompaado de sus propias aplicaciones y nos podramos
encontrar por ejemplo, con tantas aplicaciones de terminal como escritorios tengamos.
Adems tener varios entornos de escritorio puede crearte problemas difciles de solucionar.
Si quieres hacer pruebas se recomienda que uses mquinas virtuales o equipos para ensayos, pero
nunca equipos en produccin.

4.1.4 Distribuciones de Linux


Al ser un sistema operativo abierto y libre existen numerosas distribuciones de Linux, de
entre las que destacamos las siguientes:
Slackware: Es una de las ms antiguas.
SUSE: Basada en Slackware, incluye el gestor de paquetes YaST, fcil de usar.
Red hat: Es una de las ms antiguas y acab convirtindose en un proyecto
profesional.
Fedora: Basada en Red hat, pero para usuarios particulares.
Mandriva: Basada en Red hat y fusionada con las distribuciones Mandrake y
Conectiva. Usa el formato de paquetes RPM.
Gentoo: Es una distribucin muy personalizable y que funciona con rapidez. En su
contra tiene el proceso de instalacin y actualizacin.
Debian: Es una de las distribuciones ms estables y exitosas. A partir de ella se han
basado otras muchas distribuciones.
Ubuntu: Es una de las distribuciones ms estables y la ms extendida por su
facilidad de uso e instalacin. Est basada en Debian y usa paquetes con formato
deb. Usa un gestor de paquetes muy fcil de usar llamado Synaptic.
Linex, Guadalinex, Molinex, etc: Son distribuciones propias de las distintas
comunidades autnomas espaolas.
Aunque todas las distribuciones de Linux son libres, no todas son gratuitas. Algunas cobran el
soporte, la documentacin o algunas aplicaciones. Lo que nunca pueden cobrar es el ncleo.

4.1.5 Numeracin y nominacin de distribuciones Ubuntu


Como hemos comentado Ubuntu es una de las distribuciones ms extendidas en la actualidad.
Por eso la vamos a usar para profundizar en el conocimiento de los sistemas Linux.
Cada ao aparecen dos nuevas distribuciones de Ubuntu: una en abril y otra en octubre y se
numeran con el ao y el mes. Por ejemplo, la ltima distribucin en el momento de escribir este
documento sali en octubre de 2016 y por eso se numera como Ubuntu 16.10. La prxima saldr en
abril de 2017 y ser Ubuntu 17.04.
Adems de esa numeracin, cada una de las distribuciones tiene un nombre de animal
siguiendo orden alfabtico en la primera letra.
Algunas distribuciones de Ubuntu (una cada dos aos) se acompaan de las siglas LTS (Long
Time Support, Soporte de larga duracin) y significa que son mantenidas por la comunidad durante
ms tiempo del habitual: 18 meses las normales, 5 aos las LTS.

Curso 2016 / 2017 7 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

Numeracin Nombre Traduccin


Ubuntu 12.04 LTS Precise Pangolin Pangoln preciso
Ubuntu 12.10 Quantal Quetzal Quetzal cuntico
Ubuntu 13.04 Raring Ringtail Lemur ansioso
Ubuntu 13.10 Saucy Salamander Salamandra descarada
Ubuntu 14.04 LTS Trusty Tahr Tauro fiel
Ubuntu 14.10 Utopic Unicorn Unicornio utpico
Ubuntu 15.04 Vivid Vervet Mono araa vvido
Ubuntu 15.10 Wily Werewolf Hombre lobo astuto
Ubuntu 16.04 LTS Xenial Xerus Xerus (Ardilla) amigable
Ubuntu 16.10 Yakkety Yak Yakkety Yak (toro)
Ubuntu 17.04 Zesty Zapus Ratoncito vigoroso

4.2 Uso de comandos

4.2.1 Acceso al terminal


Para acceder al terminal de comandos tendrs que buscar una aplicacin del mismo nombre
(terminal):
Con un entorno de escritorio MATE:
APLICACIONES/ACCESORIOS/TERMINAL
Con un entorno de escritorio Unity: Con el icono superior de la lanzadera buscamos
terminal. Si posteriormente queremos dejarlo en la lanzadera de forma estable,
buscamos su icono y hacemos:
CLIC DERECHO/MANTENER EN EL LANZADOR

Tambin se puede acceder a un terminal en exclusiva (sin ventanas) pulsando la combinacin


de teclas CTRL + ALT + F1 a CTRL + ALT + F6 . Cada una de estas combinaciones de teclas te
abre una instancia distinta del terminal. Para volver al entorno grfico usa CTRL + ALT + F7 .

4.2.2 Documentacin de comandos


Cuando necesites ayuda sobre la funcionalidad o el uso de un comando puedes recurrir a la
ayuda con el comando:
comando --help
o bien:
man comando
El primero de ellos es una ayuda rpida, el segundo una ayuda ms extensa. Cuando pedimos
ayuda con man, el terminal queda inutilizado hasta que salimos de la ayuda pulsando la letra q.

Curso 2016 / 2017 8 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

Ejemplo:
man ls
Ofrece ayuda sobre el comando ls.
PARA ENTENDER LA AYUDA
Si en la ayuda de un comando muestra lo siguiente:
comando [-o | --opcion] [argumentos]
Las opciones son para cambiar la forma de trabajar del comando.
Los argumentos son datos sobre los que trabaja el comando (por ejemplo, un fichero
o una carpeta).
Los corchetes significan que es opcional. En este caso se podra escribir el comando
solo (todo lo dems es opcional porque est entre corchetes) o bien se podra escribir
el comando seguido de opciones y/o argumentos.
La barra vertical (|) significa que hay que elegir entre varias alternativas. En este
caso se podra elegir la alternativa -o o bien la alternativa --opcion, pero nunca
ambas.
PARA TRADUCIR LAS PGINAS MAN AL CASTELLANO
Algunas de las pginas del manual estn traducidas al castellano (no todas). Para tener acceso
a las traducciones debemos descargar dos paquetes:
sudo apt-get install manpages-es manpages-es-extra
y configurarlo para que, por defecto, ofrezca la versin en castellano si existe:
sudo dpkg-reconfigure locales

4.2.3 Autenticar al usuario root


El superadministrador (root) est deshabilitado cuando terminamos una instalacin de
Ubuntu. Para habilitarlo, desde un terminal establecemos la contrasea del root, con la orden:
sudo passwd root
y nos pedir una contrasea. En sistemas de pruebas y aprendizaje podemos asignarle la
misma contrasea que usamos que con nuestro usuario principal. En sistemas reales de produccin
es conveniente crear otra contrasea ms segura.
Tras repetir la contrasea una segunda vez, el usuario root queda habilitado y, a partir de
ahora, podremos actuar como root con escribir en el terminal la orden:
su root
y proporcionar la contrasea.
Nota: No es buena idea trabajar de forma habitual como root. Lo mejor es trabajar con un
usuario y anteponer sudo a todos los comandos que requieran privilegios del root. Para esto no es
necesario habilitar el root.

Curso 2016 / 2017 9 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

whoami
Sintaxis:
whoami
Muestra el usuario actual.
who
Sintaxis:
who
Muestra todos los usuarios que tienen sesin abierta en el sistema.
Nota: Si pruebas estos comandos en tu equipo probablemente no encontrars diferencia entre
who y whoami. Cuando un equipo admite conexiones remotas de otros usuarios, el comando who te
permitir saber quienes estn dentro.

w
Muestra los usuarios conectados e informacin de los procesos que estn ejecutando.
Sintaxis:
w

clear
Limpia el terminal de los comandos y respuestas anteriores.
Sintaxis:
clear
echo
Muestra una lnea de texto en el terminal.
Sintaxis:
echo texto
Ejemplo:
echo Esto es un ejemplo de echo
Nota: El comando echo te parecer absurdo si lo tecleamos directamente sobre el terminal.
Sin embargo es muy til cuando se usa dentro de un script.

Curso 2016 / 2017 11 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

passwd
Cambia la contrasea de un usuario.
Sintaxis:
passwd [opciones] [usuario]
Si no se especifica un usuario, cambia la contrasea del usuario actual.
Opciones:
-e | --expire: Obliga a que caduque la contrasea, de modo que el usuario tendr que
modificarla forzosamente en el prximo inicio de sesin.
Ejemplo:
passwd pepe
Cambia la contrasea del usuario pepe. Primero pregunta por la contrasea actual y despus
por la nueva contrasea dos veces para evitar errores al teclear.
Nota: Un usuario normal slo puede modificar su propia contrasea. Slo el usuario root
puede modificar la contrasea de otros usuarios.
history
Muestra todo el historial de comandos tecleados en el terminal.
Sintaxis:
history
Nota: El historial de comandos tecleados en el terminal se guarda en un fichero de texto
llamado .bash_history, que se aloja en la carpeta de usuario.
cat
Muestra el contenido de un fichero de texto.
Sintaxis:
cat [ruta]nombreFichero
Si el fichero no est en la carpeta actual habr que especificar la ruta.
Ejemplo:
cat ~/Escritorio/instrucciones.txt
Muestra el contenido de un fichero llamado instrucciones.txt, que se encuentra en el
Escritorio del usuario actual.
exit
Sintaxis:
exit
Sale del terminal de texto.

Curso 2016 / 2017 13 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

4.4 Sistema de Archivos


Tal y como vimos en temas anteriores, el sistema de archivos que utiliza Linux suele ser ext2,
ext3 y ext4, siendo este ltimo el ms moderno y mejorado. Algunas distribuciones usan otros
sistemas de archivos como ReiserFS y Reiser4, pero estn menos extendidos. Las ltimas
distribuciones de Linux reconocen y permiten, adems, el uso de otros sistemas de archivos como
NTFS, FAT32, etc.
Nota: Una de las particularidades del sistema de archivos de Linux es que todo (fichero
regular, carpeta, enlace simblico, socket, tubera, etc.) es tratado como si fuese un fichero. Cada
fichero pertenece a un usuario y a un grupo (al que debe pertenecer ese usuario) y tiene permisos de
lectura, escritura y ejecucin diferenciados para el usuario propietario, el grupo propietario y resto
de usuarios. Veremos la gestin de usuarios, grupos y permisos en este mismo tema.
Ya sabemos que el sistema de archivos de Linux se estructura en forma de un nico rbol
invertido: en la parte superior se encuentra la raz, que se representa con un barra (/) y hacia abajo
se abren las ramas (carpetas o directorios). Todas las carpetas salvo la raz tienen un slo padre.
Cada carpeta puede tener 0 o ms hijos.
Las carpetas del primer nivel (los hijos de la raz) tienen nombres preestablecidos y estn
asignados a un uso muy concreto:
/bin: (de binario) Contiene programas ejecutables que son accesibles a todos los
usuarios. Si echas un vistazo a esta carpeta vers programas que ya te son familiares
como sh, bash, chmod, uname, etc.
/boot: (arranque) Contiene los archivos de configuracin del arranque del sistema.
Vers que aparecen varios ficheros de texto con configuraciones para cada uno de los
ncleos (kernel) de Linux que tienes instalados.
/boot/grub: En esta subcarpeta se aloja el GRUB (GRand Unified Bootloader
Gestor de arranque unificado) que es el gestor de arranque de tu sistema. Entre
otras cosas hay un fichero llamado grub.cfg que contiene en forma de fichero
de texto la configuracin.
Nota: Si miras dentro del fichero grub.cfg vers cosas que te sonarn, como
el men con el que se inicia tu equipo. De momento no deberas modificarlo. Ms
adelante aprenderemos a trabajar con l.
/dev: (device dispositivo) Contiene los archivos (ficheros especiales) de los
dispositivos fsicos, hardware del sistema. Al principio de este apartado decamos
que Linux trata todos los elementos como si fuesen un fichero.
Por ejemplo, si conectas una impresora, aparecer un nuevo fichero en la
carpeta /dev que representa a la impresora. Para enviar algo a la impresora bastara
con escribir un comando que escriba dentro de ese fichero.
Otro ejemplo son los ficheros sda (representa al primer disco SATA), sdb
(representa al segundo disco SATA), hda (representa al primer disco IDE), sda1,
sda2, etc (representan a cada una de las particiones del disco sda). De esta manera
cuando decimos que Linux trata a todos esos elementos como si fuesen ficheros
significa que podemos hacer una copia de la particin 1 del disco en la particin 2
del disco, con un comando tan simple como copiar el fichero sda1 en el fichero sda2
(no es el mismo comando, pero muy similar).

Curso 2016 / 2017 14 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

/etc: Contiene los archivos de configuracin del sistema, separados en carpetas. Por
ejemplo, habr una carpeta /etc/apt para la configuracin de la aplicacin apt que
tantas veces hemos usado ya.
/etc/init.d: Contiene los demonios (del ingls, daemon), que son scripts que
proporcionan un servicio en segundo plano. Estos demonios se suelen usar con
los argumentos start, stop o restart para iniciar, parar o reiniciar el servicio
respectivamente.
Por ejemplo, supongamos que en nuestro equipo tenemos instalado un
servidor web, de modo que otros usuarios pueden solicitar pginas web y
nuestro equipo las proporciona. Este servicio requiere que haya un programa en
segundo plano (un demonio llamado httpd) que est todo el tiempo a la espera
de que se soliciten las pginas web.
Si queremos que el demonio comience su ejecucin y est a la escucha
escribiremos:
/etc/init.d/httpd start
Y si queremos que deje de funcionar:
/etc/init.d/httpd stop
/etc/rc0.d a /etc/rc6.d: Estas 7 carpetas corresponden a los 7 niveles de
ejecucin de un sistema Linux, desde el nivel 0 (apagado), nivel 1
(monousuario), nivel 2 (multiusuario sin red), nivel 3 (inicio normal), niveles 4
y 5 (iguales al 3), hasta el nivel 6 (reinicio).
Cada una de estas carpetas contiene enlaces simblicos (llamadas) a los
demonios de la carpeta /etc/init.d. El nombre del enlace comenzar por S (start)
si tiene que iniciarse o por K (kill) si tiene que detenerse en ese nivel de
ejecucin concreto.
/home: (hogar) Esta carpeta est destinada a alojar todas las carpetas personales de
los usuarios del sistema.
/home/usuario o ~: Cada vez que se crea un nuevo usuario, se crea una carpeta
del mismo nombre como hija de /home. La virgulilla (~) es el smbolo que
usamos para designar la carpeta del usuario actual.
~/Escritorio o ~/Desktop: (segn la distribucin de Linux) Es la carpeta
que contiene los elementos que se mostrarn en el escritorio grfico del
sistema. Puesto que es una carpeta hija de la carpeta personal, cada
usuario tendr un escritorio personalizado.
/lib: (libraries bibliotecas) Contiene las libreras o bibliotecas que son ficheros
necesarios para la ejecucin de los programas.
/lost+found: (perdidos y encontrados) Contiene informacin sobre los procesos que
se ejecutaban antes de una cada del sistema.
/media: Contiene las unidades de disco (disco duro, DVD, pendrive, etc) que se
montan automticamente. Lo habitual es que estn en una subcarpeta con el nombre
del usuario.

Curso 2016 / 2017 15 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

/mnt: (mount) Contiene las unidades de disco que se montan de forma temporal y
manual.
/opt: Para las aplicaciones que no se instalan automticamente porque no proceden
de los repositorios.
/proc: Contiene ficheros que estn residiendo en memoria principal (no en disco).
Por ejemplo existe una carpeta para cada uno de los procesos en ejecucin. Otros
ficheros ofrecen informacin en directo del sistema, como partitions o filesystems.
/root: Es la carpeta personal del usuario root. Es la nica carpeta personal que no es
hija de /home.
/sbin: (Como bin) Contiene programas que slo puede ejecutar el usuario root.
/usr:
/usr/games: Contiene juegos.
/usr/bin: Contiene programas ms complejos que los alojados en /bin. En
niveles de ejecucin bajos estos programas no estn disponibles, los de /bin si.
/usr/lib: Contiene las libreras para los programas alojados en /usr/bin.
/usr/sbin: Como /usr/bin, pero con programas que slo estn accesibles al
usuario root.
/usr/src: Contiene el cdigo fuente de los programas.
/tmp: Contiene archivos temporales.
/var: Contiene informacin variable.
/var/log: Contiene los archivos de registro. Son ficheros de texto donde las
aplicaciones escriben mensajes de error o registran su actividad. Son muy tiles
cuando una aplicacin da problemas.
/var/spool: Contiene eventos programados con at y cron, que los veremos ms
adelante.

4.4.1 Archivos y directorios


Un archivo o fichero es un conjunto lgico de informacin que se guarda bajo un nombre. El
nombre de un fichero puede tener entre 1 y 255 caracteres. Puede incluir cualquier carcter salvo la
barra (/) para evitar confusiones ya que la barra se usa como separador en las rutas. No obstante, se
recomienda no usar caracteres raros como la ee o las vocales con tilde porque algunas
aplicaciones o sistemas operativos podrn funcionar mal con esos nombres.
Un i-nodo (ndice de nodo) es el conjunto de informacin que describe a un fichero. Al
arrancar el sistema se crea la tabla de i-nodos de todos los ficheros del sistema. Un i-nodo contiene
la siguiente informacin:
Nmero de i-nodo: Es un nmero nico que se asigna a cada fichero.
Nota: El comando ls -i lista el contenido de un directorio mostrando los nmeros
de i-nodo de cada fichero o directorio.

Curso 2016 / 2017 16 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

Tipo de fichero: Si se trata de un fichero regular, un fichero especial, un directorio,


un enlace, etc. Recuerda que para el sistema operativo un directorio es un fichero
ms.
Propietario: Usuario al que pertenece el fichero.
Grupo: Grupo al que pertenece el fichero.
Permisos del fichero: De lectura, escritura y ejecucin del fichero a los distintos
usuarios del sistema.
Fechas de creacin, acceso y modificacin.
Vnculos o enlaces: Nmero de nombres asociados con el i-nodo. Normalmente un
i-nodo est asociado con un nico nombre de fichero, pero pueden ser ms si
creamos enlaces duros.
Nota: El comando stat nombreFichero muestra la informacin del i-nodo correspondiente al
fichero.
Nota: La tabla de i-nodos est cargada en memoria principal durante la ejecucin del sistema
y, aunque la copia del disco se actualiza regularmente, hay momentos en los que las modificaciones
no han sido guardadas. Si deseas sincronizar la tabla en memoria con la del disco, usa el comando
sync.
ENLACES
Hemos visto que uno de los tipos de ficheros son los enlaces, que se utilizan para acceder a un
fichero desde otro nombre y/u otra ubicacin. Hay dos tipos de enlaces: duros y blandos.
Enlace duro: Al crear un enlace duro, ambos (original y enlace) tendrn el mismo
nmero de i-nodo. Esto se traduce en que solamente existe un fichero en disco y un
solo i-nodo, y el acceso desde cualquiera de los nombres va al mismo fichero. Si se
borra alguno de los dos, el otro sigue intacto, porque mientras uno siga apuntando a
esa zona del disco no se borrar fsicamente la informacin. Slo al borrar el ltimo
desaparece el fichero real.
Nota: Para crear un enlace duro usamos el comando ln fichero nombreEnlace.
Se pueden crear tantos enlaces como queramos a un mismo fichero. Las
modificaciones de cualquiera de ellos se ven reflejadas en los otros, incluidos
permisos y propietario (porque todos tienen el mismo i-nodo).
Enlace blando: (o enlace simblico) Es un acceso directo a un fichero desde otro
nombre y/o ubicacin. El enlace simblico tiene su propio i-nodo. Las
modificaciones en el contenido del fichero se pueden hacer por el acceso original o
por el enlace y se ven reflejadas desde el otro, porque slo existe un fichero.
Nota: Para crear un enlace blando usamos ln -s fichero nombreEnlace.
Los permisos de un enlace blando siempre son 777, pero no tienen efecto,
porque los permisos que actan son los del fichero original. Las modificaciones de
propietario y permisos en un enlace blando nunca afectan al enlace pero s al fichero
original. Si se borra el fichero original, el enlace se mantiene, pero no apunta a nada
y queda inutilizado.

Curso 2016 / 2017 17 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

Ejemplo: Tabla de i-nodos


En el siguiente dibujo vemos, a la izquierda, una tabla en la que cada nombre de fichero de
nuestro sistema de archivos se corresponde con un i-nodo.
A veces, dos o ms nombres de ficheros apuntan al mismo i-nodo. Eso es lo que se conoce
como enlace duro (flecha roja). ~/fichero1 y ~/fichero2 apuntan al mismo i-nodo y ninguno es ms
importante que otro. Si borramos alguno de los dos, el i-nodo sigue existiendo porque an le apunta
otro nombre de fichero. Slo al borrar el ltimo, se borra el i-nodo.
En el centro est la tabla de i-nodos, cada uno de los cuales tiene todos los datos del fichero
(propietario, permisos, etc) y apunta a la ubicacin real del fichero en disco.
A veces, un i-nodo apunta a otro i-nodo. Eso se conoce como enlace blando (flecha azul).
~/fichero3 y ~/fichero4 acceden al mismo fichero. Pero ~/fichero3 es ms importante: si se borra
desaparece el fichero del disco y el nombre ~/fichero4 se queda en el aire.

i-nodos Bloques del disco

Nombre i-nodo
/etc/config 334
~/fichero1 350
~/fichero2 350
~/fichero3 420
~/fichero4 431
... ...

FICHEROS OCULTOS
En Linux los ficheros y carpetas que empiezan por un punto se tratan como ocultos. Esto
significa que no se mostrarn al listar el contenido de una carpeta (ya sea desde el shell o desde el
entorno grfico) si no se solicita de forma explcita.
Para listar los ficheros y carpetas ocultos desde el shell usamos la opcin -a en el comando ls:
ls -a
Para ver los ficheros y carpetas ocultos desde el entorno grfico usa las teclas CTRL + h .
Para volverlos a ocultar usa la misma combinacin de teclas.
SHELL SCRIPTS
Los shell scripts (guiones) de Linux son ficheros de texto que contienen un comando u orden
en cada lnea. Lo normal es que el nombre de fichero de un script tenga la extensin .sh. Si los
marcamos como ejecutables, al ordenar la ejecucin se cumplirn cada uno de los comandos en el

Curso 2016 / 2017 18 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

mismo orden en que se encuentran en el script, de la misma forma que si los escribisemos uno a
uno en el terminal.
Para hacer que un fichero de texto sea ejecutable, desde el entorno grfico:
CLIC-DERECHO/PROPIEDADES/PERMISOS/EJECUCIN

Desde el terminal:
chmod +x miScript.sh
Para lanzar la ejecucin del script desde el entorno grfico haremos doble clic sobre el
fichero, desde el terminal lo lanzamos con:
sh miScript.sh

ASOCIACIN ENTRE FICHEROS Y APLICACIONES


Ya sabemos que los nombres de ficheros suelen tener una extensin que es la parte final del
nombre tras el ltimo punto. Las extensiones tienen un significado: informan al sistema operativo
del tipo de fichero. De esta manera el sistema operativo puede establecer dos cosas asociadas al
fichero:
El icono con el que se representar.
La aplicacin con la que se debe abrir el fichero.
Las extensiones de ficheros no deben modificarse sin tener en cuenta esto.
Si se desea abrir un fichero con una aplicacin que no sea la que se le asocia por su extensin:
CLIC-DERECHO/ABRIR CON

y elegimos la aplicacin deseada.


Si se desea modificar la asociacin de una extensin con una aplicacin, desde cualquier
fichero que tenga esa extensin:
CLIC-DERECHO/PROPIEDADES/ABRIR CON...

seleccionas la aplicacin deseada y pulsas en Establecer como predeterminada .


FICHEROS DE CONFIGURACIN
Los ficheros de configuracin permiten definir, en modo texto, los parmetros de
funcionamiento del sistema: como se inicia, qu programas se cargan, etc.
Algunos de estos ficheros de configuracin son:
/boot/grub/grub.cfg: Guarda la configuracin del gestor de arranque GRUB.
/etc/fstab: Contiene informacin sobre los dispositivos (generalmente discos) que
deben montarse al iniciarse el equipo.
/etc/apt/sources.list: Aqu se almacena la lista de repositorios desde los que se
descargan paquetes y actualizaciones.
/etc/shells: Contiene todos los shells que admite el sistema.
/etc/sudoers: En este fichero se detallan los usuarios que tienen permisos de
superusuario. Tambin los usuarios o grupos que pueden puntualmente usar esos
privilegios con sudo.
/etc/rc.local: Se ejecuta al iniciar el sistema, despus de los niveles 2, 3 y 5.

Curso 2016 / 2017 19 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

/etc/hosts: Contiene resolucin local de nombres a direcciones IP (es como un DNS


bsico). Se usa para redes muy pequeas o para poner nombre a nuestro equipo.
/etc/network/interfaces: Configuracin de la tarjeta de red. Los comandos ifconfig,
ifup e ifdown usan este fichero.
/etc/crontab: Informacin sobre los procesos programados para ejecutarse
regularmente (cada da, cada hora, cada semana, ). La programacin de tareas
implica varias carpetas como /var/spool/cron, que veremos ms adelante en este
curso.
Ficheros de configuracin del shell:
/etc/profile: Se ejecuta cada vez que cualquier usuario inicia la sesin.
~/.profile: Uno para cada usuario. Se ejecuta cuando ese usuario inicia la
sesin.
/etc/bash.bashrc: Se ejecuta cada vez que cualquier usuario ejecuta un
programa bash.
~/.bashrc: Uno para cada usuario. Se ejecuta cuando ese usuario ejecuta un
programa bash.
Ficheros de configuracin de grupos y usuarios:
/etc/passwd: Informacin de todos los usuarios del sistema.
/etc/group: Informacin de los grupos del sistema.
/etc/shadow: Contraseas encriptadas de los usuarios.
/etc/gshadow: Contraseas encriptadas de los grupos.
/etc/adduser.conf: Valores por defecto que se usan al aadir usuarios.
/etc/deluser.conf: Valores por defecto que se usan al eliminar usuarios.

4.4.2 Comandos para la gestin del sistema de archivos


En el tema 2 vimos algunos comandos para gestionar el sistema de archivos. All hicimos una
presentacin rpida para poder practicar las rutas absolutas y relativas. En este apartado
rescataremos aquellos comandos con ms profundidad y aadiremos algunos otros:
COMODINES
Cuando escribimos una ruta (absoluta o relativa) podemos usar comodines que nos permiten
abarcar varias posibilidades. Tenemos los siguientes:
Asterisco (*): Significa 0 o ms caracteres.
Interrogante de cierre (?): Significa exactamente un carcter.
Corchetes ([]): Significa un solo carcter a elegir de entre los encerrados en los
corchetes.
Llaves ({}): Significa una sola cadena de entre las encerradas en las llaves y
separadas por comas.

Curso 2016 / 2017 20 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

Ejemplos:
ls -d /etc/*.d
Muestra todos los ficheros y carpetas alojados en /etc y que terminan en .d.
ls -d /etc/rc*
Muestra todos los ficheros y carpetas alojados en /etc y que comienzan con
rc.
ls /bin/*sh*
Muestra todos los ficheros y carpetas alojados en /bin y que contengan la
cadena sh.
ls -d /etc/*/*.d
Muestra todos los ficheros alojados en cualquier carpeta hija de /etc y que
terminen en .d.
ls -d /etc/rc?.d
Muestra todos los ficheros y carpetas alojados en /etc que comienzan con rc
seguido de un carcter cualquiera y seguido de .d.
ls -d /etc/??a*
Muestra todos los ficheros y carpetas alojados en /etc con la letra a en la
tercera posicin.
ls -d /etc/rc[012].d
Muestra todos los ficheros y carpetas alojados en /etc que comienzan con rc
seguido de un cero, un uno o un dos y seguido de .d. Es decir: rc0.d, rc1.d y rc2.d.
ls -d /etc/hos{t.,tn,ts}*
Muestra todos los ficheros y carpetas alojados en /etc que comienzan con hos
seguido de las cadenas t. tn ts y cualesquiera otros caracteres detrs.
ls
Muestra informacin de ficheros y directorios. Si no se especifica nada, los del directorio
actual.
Sintaxis:
ls [opciones] [argumentos]
Opciones:
-d | --directory: Muestra informacin de los directorios, pero no de su contenido.
-a | --all: Muestra tambin los ficheros y directorios ocultos (los que empiezan por
un punto).
-i | --inode: Muestra el nmero de i-nodo.
-t | --sort=time: Muestra la informacin ordenada por la fecha de modificacin.
-r | --reverse: Muestra la informacin en el orden contrario.
--color: Muestra el contenido con colores. (Si usas el shell bash ya sale con color por
defecto, pero puedes probar esta opcin en el shell sh).

Curso 2016 / 2017 21 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

-l | --format=long: Muestra la informacin en formato largo, un elemento por lnea.


La informacin de cada elemento es la siguiente:
Tipo de archivo:
Guin (-): Fichero regular.
Letra l: Enlace blando.
Letra d: Directorio.
Letra b: Fichero especial de bloques.
Letra c: Fichero especial de caracteres.
Letra p: Fichero especial de tubera.
Permisos: Los veremos con detalle ms adelante, en este tema.
Nmero de enlaces del fichero.
Usuario propietario del fichero.
Grupo propietario del fichero: El usuario anterior debe pertenecer a este grupo.
Tamao.
Fecha/hora de ltima modificacin.
Nombre del fichero.
Fichero al que apunta: Slo si es un enlace blando.
-n | --numeric-uid-gid: Muestra la informacin en formato largo, pero con los
nmeros de usuario y grupo en lugar de sus nombres.
-F | --classify: Muestra, al final del nombre, el tipo de fichero con los smbolos:
Asterisco (*): Ejecutable.
Barra (/): Directorio.
Arroba (@) o Flecha (->): Enlace simblico (blando). Se muestra la arroba en
el formato corto y la flecha en el formato largo indicando tambin el fichero al
que apunta.
Barra vertical (|): Tubera.
Nada: Fichero normal.
Argumentos:
En los argumentos podemos indicar el directorio cuyo contenido queremos listar. Si no se
usan argumentos devuelve el contenido del directorio actualidad.
Se pueden usar comodines para concretar el listado que se desea.
Ejemplo:
ls -ltr
Muestra todos los ficheros y directorios del directorio actual, en formato largo, ordenados al
revs de la fecha de modificacin.

Curso 2016 / 2017 22 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

ln -i texto1.txt texto2.txt texto2.txt ./enlaces/


Crea enlaces para los tres ficheros en la carpeta enlaces, pero pregunta antes de reemplazar a
los ficheros ya existentes.
ln -s /home/usuario/texto1.txt /home/usuario/texto2.txt ./enlaces/
Crea enlaces simblicos para los dos ficheros en la carpeta enlaces. Observa que es necesario
indicar la ruta absoluta para que los enlaces funcionen.
cd
Establece como directorio actual el que se le indica (mediante ruta absoluta o relativa). Si no
se indica ninguno, establece como directorio actual la carpeta personal de usuario.
Sintaxis:
cd [directorio]
Ejemplo:
cd ./direc1
Establece como directorio actual la carpeta direc1, que es hija de la actual.

pwd
Muestra la ruta absoluta del directorio actual.
Sintaxis:
pwd
mkdir
Crea directorios.
Sintaxis:
mkdir [opciones] directorio[...]
Opciones:
-p | --parents: Crea los directorios intermedios si no existen.
-m | --mode: Permite especificar los permisos del nuevo directorio.
Ejemplos:
mkdir dire1
Crea el directorio dire1, que ser hijo del directorio actual.
mkdir dire1 dire2
Crea los directorios dire1 y dire2, que sern hijos del directorio actual.
mkdir -p dire1/dire2
Crea el directorio dire2, que ser hijo del directorio dire1, que a su vez es hijo del directorio
actual. Si dire1 no existiera tambin lo crea, ya que hemos usado la opcin -p.
mkdir -m 555 dire1
Crea el directorio dire1, que ser hijo del directorio actual y que tendr los permisos 555.
Nota: Veremos los significados de los permisos ms adelante, en este mismo tema.

Curso 2016 / 2017 24 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

EXPRESIONES REGULARES
Las expresiones regulares permiten definir patrones de coincidencia en un texto, mediante el
uso de caracteres y metacaracteres. No deben confundirse con los patrones que se usan en la lnea
de comandos con comodines. Los metacaracteres son caracteres que adquieren un significado
especial y tenemos los siguientes:
Cuantificadores:
Interrogante (?): El elemento que le precede es opcional.
Asterisco (*): El elemento que le precede se repite 0 o ms veces.
Suma (+): El elemento que le precede se repite 1 o ms veces.
Llaves: Encierran un cuantificador.
{n}: El elemento que le precede se repite exactamente n veces.
{n,m}: El elemento que le precede aparecer un mnimo de n veces y un
mximo de m veces.
{n,}: El elemento que le precede aparecer un mnimo de n veces.
Punto (.): Cualquier carcter (salvo salto de lnea o retorno de carro).
Circunflejo (^): Inicio de cadena.
Dolar ($): Final de cadena.
Barra (|): Alternativa entre varias opciones.
Parntesis (): Encierran expresiones regulares para anidamientos.
Corchetes [] : Encierra clase carcter. Todo lo que hay entre corchetes dar como
resultado un nico carcter.
Guin (-): Separador para rangos.
Barra inversa (\): Secuencia de escape. Despoja al carcter siguiente de su
significado habitual. Por ejemplo para representar un interrogante tenemos que
despojarle (escaparle) de su significado especial y eso lo conseguimos
anteponindole el carcter de escape (\).

Patrn Secuencia que admite


\ seguida de un metacarcter el propio carcter
\s espacio (esp, tab, salto o retorno)
\S cualquier carcter no espacio

Una expresin regular tiene 0 o mas piezas concatenadas, cada pieza ser un elemento
seguido opcionalmente de un cuantificador. Cada elemento puede ser un carcter, una clase de
carcter que ir encerrada entre corchetes [] u otra expresin regular que ir encerrada entre
parntesis ().

Curso 2016 / 2017 29 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

Ejemplos:
Patrn Secuencia que admite
a?b b, ab
a*b b, ab, aab, aaab, ....
a+b? a, ab, aa, aab, aaa, aaab, ....
a{1,3}b ab, aab, aaab
go{2,}gle google, gooogle, goooogle, ....
[abcd] Una sola letra que puede ser a, b, c d
[a-d] Una sola letra que puede ser a, b, c d
[A-Z] una letra mayscula
Chapter\s[0-9] Chapter 0, Chapter 2, . , Chapter 9
(a|b)+x ax, bx, aax, bbx, abx, bax, ....
[xyz]b xb, yb, zb
(ho\s){2}there ho ho there
[-ac]x
-x, ax, cx
[ac-]x
[a-c]x ax, bx, cx
.abc cualquier carcter seguido de abc
a.*b cualquier secuencia que comience por a y termine en b
(a?b)|(c?d) ab, b, cd, d
\*a+ *a, *aa, *aaa, *aaaa, ....
Como ltimo ejemplo, observa el patrn que se correspondera con una direccin IP:
(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])

Curso 2016 / 2017 30 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

--output-delimiter=cadena: Indica el delimitador en la salida para todos los valores


de una misma lnea.
-s: Omite las lneas que no contienen el delimitador. Por defecto, estas lneas se
muestran completas.
Ejemplos:
cut -c 3 fichero.txt
Muestra la tercera letra de todas las lneas del fichero.txt.
cut -c 3-5 fichero.txt
Muestra las letras 3, 4 y 5 de todas las lneas del fichero.txt.
cut -d : -f 1 fichero.txt
Muestra la primera columna (-f 1) de todas las lneas del fichero.txt, entendiendo que las
columnas estn separadas por el smbolo dos puntos (-d :). Tambin mostrar completas las lneas
que no contienen el smbolo dos puntos (:).
cut -s -d : -f 1 fichero.txt
Muestra la primera columna (-f 1) de todas las lneas del fichero.txt, entendiendo que las
columnas estn separadas por el smbolo dos puntos (-d :). Puesto que usamos la opcin -s, no
mostrar las lneas que no contienen el smbolo dos puntos (:).

4.4.3 Redireccionamientos y tuberas


Todos los programas trabajan con datos: reciben datos de entrada, los procesan y ofrecen
datos de salida. Por eso, todos los programas tienen una entrada (llamada stdin o entrada estndar) y
dos salidas: una para los datos resultado (llamada stdout o salida estndar) y otra para los mensajes
de error (llamada stderr o salida de errores).
Normalmente la entrada estndar de todos los programas es el teclado y las salidas (tanto la
estndar como la de errores) son el monitor.
Por ejemplo, cuando tecleas el comando passwd para cambiar una contrasea, el programa
recibe la nueva contrasea de la entrada de datos estndar (el teclado) y enva los mensajes de salida
a la pantalla.
REDIRECCIONAMIENTOS
Sin embargo podemos redirigir, tanto la entrada como la salida, a otros dispositivos o incluso
a ficheros.
Los smbolos de redireccionamiento son:
menor que (<): Redirecciona la entrada estndar, sustituyndola por el fichero que se
indique.
Mayor que (>): Redirecciona la salida estndar al fichero que se indique, borrando
la informacin que pudiera tener el fichero previamente.
Doble mayor que (>>): Redirecciona la salida estndar al fichero que se indique,
pero lo aade al final del fichero, conservando el contenido que pudiera tener
previamente.

Curso 2016 / 2017 35 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

Dos, mayor que (2>): Redirecciona la salida de errores al fichero que se indique,
borrando la informacin que pudiera tener el fichero previamente.
Dos, doble mayor que (2>>): Redirecciona la salida de errores al fichero que se
indique, pero lo aade al final del fichero, conservando el contenido que pudiera
tener previamente.
Ejemplos:
ls -l > listado.txt
Crea un listado del directorio actual en formato largo (ls -l), pero en lugar de mostrarlo en
pantalla, lo guarda en el fichero listado.txt. Si el fichero no existe, lo crea. Si el fichero ya exista, lo
machaca con el nuevo contenido.
Si este comando tuviese que informar de un error, el mensaje se muestra en pantalla porque la
salida de errores no ha sido redirigida.
echo Fin del listado >> listado.txt
Muestra el mensaje Fin del listado, pero en lugar de mostrarlo en pantalla, lo aade al final
del fichero listado.txt. Si el fichero no existe, lo crea. Si el fichero ya exista, aade el mensaje en
una nueva lnea al final.
Si este comando tuviese que informar de un error, el mensaje se muestra en pantalla porque la
salida de errores no ha sido redirigida.
ls - 2> listado2.log
Muestra un listado del directorio actual en formato largo en pantalla (la salida estndar no ha
sido redirigida), pero si hubiera mensajes de error (observa que hemos usado a propsito una opcin
errnea -) los guarda en el fichero listado2.log, borrando su anterior contenido.
ls -l > listado3.txt 2> listado3.log
Crea un listado en formato largo del directorio actual en el fichero listado3.txt, enviando los
mensajes de error al fichero listado3.log.
Nota: Podemos redirigir la salida estndar o la salida de errores al fichero /dev/null. Esto
significa que no queremos que muestre la salida o los errores respectivamente. Esto es algo que
solamente tendr sentido en casos muy concretos.
Ejemplo de redireccin de entrada:
Como ya sabes, el comando passwd te permite modificar tu contrasea, de modo pide en
primer lugar la contrasea vigente y despus la nueva contrasea dos veces. Estos tres datos
debern ser suministrados en ese orden y seguidos de la tecla Enter . Supongamos que tenemos un
fichero contra.txt con el siguiente contenido:
contraseaVigente
contraseaNueva
contraseaNueva
Si usamos el comando:
passwd < contra.txt
se ejecuta el programa passwd, pero recoge los datos del fichero contra.txt en lugar del
teclado (la entrada ha sido redirigida).

Curso 2016 / 2017 36 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

TUBERAS
Las tuberas (pipes) conectan la salida estndar de un comando con la entrada estndar del
siguiente y usan el smbolo barra vertical (|).
Ejemplo:
ls -l | sort
El primer comando genera como salida un listado en formato largo del contenido actual. Ese
listado ser la entrada del segundo comando (sort), de modo que el listado saldr con las lneas
ordenadas alfabticamente.
ls -l | wc -w
El primer comando genera como salida un listado en formato largo del contenido actual. Ese
listado ser la entrada del segundo comando (wc -w), de modo que se mostrar el nmero de
palabras del listado.
find / | more
El primer comando genera un listado de todos los ficheros y directorios del sistema de
archivos (un listado muy muy largo). Ese listado ser la entrada del segundo comando (more) que
lo mostrar pgina a pgina.
egrep [0-9]{5} fichero.txt | head -n 2
El primer comando genera un listado con todas las lneas del fichero.txt que contengan un
cdigo postal. El segundo comando (head -n 2) muestra slo las dos primeras lneas de ese listado.
tee
Recibe una entrada y la enva a dos sitios: a la salida estndar y al fichero indicado.
Nota: Una redireccin normal enva la salida al fichero indicado, pero no se muestra en
pantalla. Con tee se consiguen las dos cosas a la vez.
Sintaxis:
tee [opciones] [fichero]
Opciones:
-a | --append: Escribe al final del fichero, sin sobrescribirlo.
Ejemplos:
ls -l | tee listado.txt
El primer comando genera un listado en formato largo del directorio actual. El segundo
comando (tee listado.txt) recoge ese listado y lo bifurca: por un lado saldr por la salida estndar
(pantalla) y por otro lado se almacenar en el fichero listado.txt, borrando su contenido previo.
ls -l | tee -a listado.txt
Hace lo mismo que el ejemplo anterior, pero aadiendo la informacin al final del fichero
listado.txt.
ls -l | tee listado.txt | wc -w
El primer comando genera un listado del directorio actual en formato largo. El segundo
comando (tee listado.txt) lo bifurca: por un lado al fichero listado.txt y por otro lado a la salida
estndar. Pero no aparece en pantalla porque el segundo pipe (tubera) dirige ese listado hacia el
tercer comando (wc -w) que mostrar el nmero de palabras del listado.

Curso 2016 / 2017 37 I.E.S. Murgi


Sistemas Operativos Monopuesto 1 SMR

4.4.4 Archivos especiales


Se conocen como archivos especiales aquellos que no son realmente archivos sino que
representan a dispositivos de la mquina, como dispositivos de entrada/salida, discos, memoria, etc.
Muchos de ellos estn en la carpeta /dev (recuerda que dev es una abreviatura de devices
-dispositivos-), pero pueden localizarse en otros sitios.
Podemos reconocer los archivos especiales por la primera letra de un listado en formato largo,
segn la siguiente correspondencia:
c: Archivo especial de caracteres. Se usan para representar dispositivos a los que se
envan caracteres uno a uno, como por ejemplo una impresora o una pantalla.
b: Archivo especial de bloques. Se usan para representar dispositivos con los que se
hace traspaso de informacin en bloques, como un disco o una memoria.
s: Archivo especial de socket. Se utilizan para comunicar procesos a travs de la red.
t: Archivo especial de tubera (pipe). Se utilizan para comunicar procesos.
Tienen especial inters los archivos de bloques que representan a los discos y particiones del
sistema:
/dev/hda: Representa al primer disco duro (IDE) del sistema.
/dev/hdb: Representa al segundo disco duro (IDE) del sistema. Si hubiera un tercer
disco IDE sera /dev/hdc y as sucesivamente.
/dev/sda: Representa al primero disco duro (ATA) del sistema. Si hubiera un segundo
disco ATA sera /dev/sdb y as sucesivamente.
/dev/hda1: Representa a la primera particin del disco hda. De la misma forma, las
siguientes particiones seran hda2, hda3, etc.
/dev/sdb3: Representa a la tercera particin del segundo disco (ATA) del sistema.
Tambin tienen inters los archivos que representan a las terminales:
/dev/tty1: Representa la terminal que se abre con las teclas CTRL + ALT + F1 .

/dev/tty2: Representa la terminal que se abre con las teclas CTRL + ALT + F2 y as
sucesivamente.

Curso 2016 / 2017 38 I.E.S. Murgi

You might also like