1
REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA DEFENSA
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA
DE LA FUERZA ARMADA
NÚCLEO LARA
DIVISION ACADEMICA
COORDINACION CARRERA INGENIERIA DE SISTEMAS
LABORATORIO DE SISTEMAS OPERATIVOS
GUIA No. 3
MANEJO DE COMANDOS EN LINUX
BARQUISIMETO, OCTUBRE 2014
LABORATORIO DE SO
AUTOR: ING. ANA LORENA FREITEZ
2
INTRODUCCIÓN
El laboratorio significa aprendizaje mediante la experiencia directa del estudiante con los elementos que constituyen el mismo
y la interacción sobre estos elementos, para obtener resultados, adquirir destrezas e interpretación en su manejo (por ejemplo
aprender a manejar un sistema operativo de licencia libre).
Es importante que el estudiante tenga conocimiento previo de las actividades a desarrollar en el laboratorio. Así como
también de una guía de procedimientos y materiales a utilizar, y así evitar incertidumbres que puedan obstaculizar el desarrollo
normal de la enseñanza en el laboratorio.
Este trabajo sirve de guía para las prácticas en el “Lab. De Computación” perteneciente a la Coordinación de la Carrera
Ingeniería de Sistemas de la Universidad Nacional Experimental Politécnica de la Fuerza Armada Nacional.
LABORATORIO DE SO
AUTOR: ING. ANA LORENA FREITEZ
3
PRACTICA No.3
PRE - LABORATORIO
1) ACTIVIDAD DE PRE PRACTICA
a) ¿Qué es el sistema operativo Linux? ¿En qué año se creó y quienes los crearon?
b) ¿Cuáles son los componentes o estructura básica de Linux?
c) ¿Dónde se ubica el kernel de Linux?
d) ¿Cómo se llama la interfaz gráfica de Linux?
e) ¿Cuáles y Cuántos son los tipos de archivos que maneja Linux?
f) Investigue 10 comandos básicos de Linux. Explique: ¿para qué sirve c/u? (CUIDADO con copiar las que
están en la parte de Lab. De esta guía. AQUÍ DICE INVESTIGUE NO DICE CÓPIESE LOS
COMANDOS QUE ESTÁN EN ESTA GUÍA)
g) ¿Cuál es la función del Intérprete de comandos en línea de Linux?
h) Investigue a que componente de Linux se le llama: La Cáscara.
i) ¿Qué sistemas operativos para móviles utilizan el kernel de Linux?
2) OBJETIVO:
El alumno aprenderá el uso básico de la cónsola (shell) de LINUX y al final de esta práctica será capaz de:
a) Utilizar los comandos básicos de Unix (ls,mkdir,cd, etc.)
b) Consultar el manual en Línea de Unix (“man pages”) para descubrir cómo se utilizan algunos de los
comandos.
c) Hacer uso del carácter de “pipe” (“ | ”) que se utiliza para ligar la salida de un comando con la entrada de otro.
3) MARCO TEÓRICO
HISTORIA DE LOS SISTEMAS UNIX/LINUX
La historia de estos sistemas ha sido ampliamente difundida, así que simplemente se deja al usuario algunos enlaces en
los cuales puede profundizar acerca de esta historia. Tratando de ser breves y concisos en las bases para iniciar el
trabajo de este laboratorio, simplemente vamos a listar algunas breves definiciones de aquellos conceptos que
consideramos claves.
UNIX: es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969 por un
grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y
Douglas McIlroy.
System V: (SysV), es una de las primeras versiones comerciales del S.O. Unix. Es una versión
bastante popular.
Berkeley System Distribution: (BSD) es una versión derivada del S.O. Unix distribuido por el grupo
CSRG de la Universidad de California en Berkeley. Hoy el término BSD es frecuentemente usado
para referirse a los sistemas descendientes y derivados del BSD.
GNU project: (GNU’s not UNIX) es un proyecto de software libre y colaboración en masa desarrollado desde
1983 por Richard Stallman del MIT. El objetivo principal, en su inicio, fue desarrollar un conjunto suficiente
de software libre, de modo que se pueda salir adelante sin la necesidad de software que no sea libre.
GNU GPL: (General Public License) es una de las principales licencias de software libre. Es la primera
licencia copyleft para uso general, lo cual implica que los trabajos derivados solo pueden ser distribuidos bajo
los términos de la misma licencia. Bajo esta filosofía, la GPL otorga a los beneficiarios de un programa de
cómputo los derechos de la definición de software libre y copyleft es usado para asegurar que las libertades se
mantengan, incluso cuando el trabajo se cambia o mejora. Esto es a diferencia de las permisivas licencias de
software libre, de los cuales las licencias BSD son los ejemplos estándar.
LABORATORIO DE SO
AUTOR: ING. ANA LORENA FREITEZ
4
GNU/LINUX: El proyecto GNU tenía hasta los principios de los 90’s una amplia gama de software libre
corriendo bajo el sistema UNIX, sin embargo el kernel del sistema UNIX no era libre aún. En 1991 la primera
versión de un kernel de Unix bajo la licencia GPL fue desarrollada por Linus Torvalds, lo cual abría las
puertas a un sistema operativo libre en todos sus componentes.
EL KERNEL
El kernel es aquel módulo del S.O que implementa la mayor parte de funcionalidades básicas del sistema
Operativo. En sistemas basados en UNIX el kernel es monolítico, lo cual implica que toda la funcionalidad del
kernel está implementada en un solo módulo de software.
Para usar un sistema tipo UNIX generalmente no es necesario conocer nada acerca del kernel sin embargo,
saber cosas como su ubicación y versión puede ser de utilidad.
Ubicación de la imagen del kernel: El kernel de linux es un programa y como tal tiene un ejecutable
asociado, en este caso el ejecutable del kernel se conoce como su imagen. Cuando el kernel es
compilado su imagen es generada y colocada por medio de comandos en el directorio boot, el cual se
encuentra dentro del directorio raíz (/). La imagen del kernel generalmente tiene el nombre vmlinux*1
Conociendo la imagen del kernel: El nombre de la imagen suele dar información útil sobre el kernel
Para ello se ejecuta el siguiente comando:
ls -l /boot/vmlinuz*
Otra forma de obtener información sobre el kernel puede ser por medio del comando uname2 o usando el
comando cat /proc/version.
El Intérprete de Línea de Comandos (CLI) Shell
Cada vez que se realiza un ingreso a un sistema Unix, generalmente podemos interactuar con el
sistema a través de un programa llamado Shell. El Shell es quizás el programa más importante en un sistema
UNIX, desde la perspectiva del usuario.
Figura 1. Interprete de comandos de linux (shell).
El Shell es la interfaz con el sistema UNIX, el intermediario entre el usuario y el kernel. El Shell actúa
como un intérprete de comandos; toma de cada comando y lo pasa al kernel del sistema operativo para que
este lo ejecute.
LABORATORIO DE SO
AUTOR: ING. ANA LORENA FREITEZ
5
El Shell es un programa que ejecuta el kernel de UNIX. Muchos comandos del Shell en realidad son
subrutinas básicas integradas en el mismo programa de Shell. Los comandos que no están integrados
requieren que el kernel inicie otro proceso para ejecutar.
Sistema de Archivos Unix
Toda la información almacenada en un equipo UNIX se mantiene en un sistema de archivos. Cada elemento
del árbol de sistema de archivos UNIX es un archivo o un directorio. Un directorio es como una carpeta de
archivos. Un directorio en el árbol de archivos puede tener muchos hijos, pero sólo puede tener un padre. Un
archivo puede contener información, pero no puede contener otros archivos o directorios. El archivo es la
unidad más pequeña en la que se almacena la información.
El sistema de archivos UNIX tiene varias características importantes:
Diferentes tipos de archivo: Para el usuario, parece como si sólo hay un tipo de archivo en UNIX, el
archivo que se utiliza para mantener su información. De hecho, el sistema de archivos UNIX contiene varios
tipos de archivo.
* Los archivos ordinarios: Este tipo de archivos se utiliza para almacenar su información, como un texto
que ha escrito o imagen. Los archivos que se crean pertenecen a su usuario y se pueden establecer
permisos de acceso para controlar que otros usuarios no puedan tener acceso a ellos. Cualquier archivo
siempre está contenido dentro de un directorio.
* Directorios: Archivo que contiene otros archivos y otros directorios.
* Los archivos especiales: Este tipo de archivos se utiliza para representar a un dispositivo físico real como
una impresora o una tarjeta de red. La ventaja de esto es que permite enviar la salida de un comando a un
dispositivo de la misma manera que se le envía a un archivo.
* Tuberías: UNIX permite unir dos o más comandos entre sí mediante una tubería. La tubería actúa como
un archivo temporal que sólo existe para mantener los datos de un comando hasta que es leído por otro.
La tubería tiene la salida estándar de un comando y la utiliza como la entrada estándar de otro comando:
$ comando1 | comando2 | command3
La | (barra vertical) se utiliza para representar la tubería que une los comandos. Con la práctica se pueden
utilizar tubería para crear comandos complejos mediante la combinación de varios comandos simples juntos.
Estructura Del Sistema De Archivos: El sistema de archivos UNIX se organiza como una jerarquía de
directorios a partir de un único directorio llamado root, que es representado por una barra diagonal (/)
Figura. Los directorios del sistema estándar se indican a continuación. Cada uno contiene tipos específicos
de archivos. Los detalles pueden variar entre los diferentes sistemas UNIX, pero estos directorios deben ser
comunes a todos.
1. / directorio root. Raíz de todos los archivos y directorios.
2. /bin/ archivos ejecutables de los servicios del Shell. Ls, cd, …
3. /boot/ aquí reside el programa kernel
4. /dev/ archivos especiales de dispositivos
5. /etc/ archivos de configuración del sistema
6. /home/ archivos y directorios personales
7. /lib/ librerías del sistema operativo
8. /usr/bin/ ejecutables de comandos de usuario
9. /root/ el directorio del super usuario
10. /tmp/ archivos temporales
11. /usr/include/ archivos headers estándar
LABORATORIO DE SO
AUTOR: ING. ANA LORENA FREITEZ
6
LABORATORIO
4.) DESARROLLO DE LA PRÁCTICA (LABORATORIO)
4.1) Terminal de Linux: Comandos básicos: ls, cat, mkdir, rm…
Iniciaremos con lo más básico: moverse entre directorios, desplegar el contenido de directorios, editar un
archivo, etc; Para ello estaremos trabajando en la carpeta del Usuario ( /home/<user> ) ya que sólo en ella tenemos
total libertad. Si no puede ingresar a la carpeta de Usuarios, acceda a la Terminal de Linux y realizar los siguientes
comandos:
ls: Lista archivos y directorios
mkdir: Crea un directorio.
rmdir: Borra un directorio. Nota: el directorio debe de estar vacío.
cd: Cambia el directorio actual a otro.
less: Permite visualizar un documento de texto.
cat: Lee, concatena y despliega archivos de texto en stdout.
head: Despliega en stdout las primeras líneas de un archivo de texto.
tail: Despliega en stdout* las últimas líneas de un archivo de texto.
rm: Remueve archivos.
pwd: (Present Working Directory) Imprime la dirección del directorio actual
tree: Muestra la estructura de árbol de los directorios.
touch: Actualiza el “timestamp” de un archivo y si no existe el archivo lo crea.
* stdout: representa la salida o resultado del comando, que por default es la terminal pero puede redirigirse hacia un
archivo o bien hacia la entrada de otro comando.
Como ya se mencionó, los comandos poseen opciones y/o parámetros que sirven para modificar su funcionamiento,
para una mayor descripción del comando, consultar el manual ejecutando el comando man <comando>. Para salir del
manual presionar tecla “q”.
4.2) Actividad 1 - Manipulando el shell
1. Verificar el shell, asegurarse que está utilizando el shell “bash”, ejecutar:
[user@gecko ~]$ echo $BASH
/bin/bash
Si no aparece la segunda línea significa que nos hallamos en otro shell, para escoger BASH bastará con
ejecutar el comando “bash” como se muestra en el siguiente ejemplo:
sh-4.2$ echo $BASH
/usr/bin/sh
sh-4.2$ bash
[user@gecko ~]$
2. Con el shell bash ya inicializado escriba “wh” y a continuación presione la tecla TAB en dos ocasiones.
Notará que esto provoca que se desplieguen todos los comandos que inician con “wh” como se muestra a
continuación:
[rfuentess@muuf ~]$ wh
LABORATORIO DE SO
AUTOR: ING. ANA LORENA FREITEZ
7
whatis whereis which while whiptail who whoami [rfuentess@muuf ~]$ wh
A excepción de whiptail, while y whois, la mayoría son comandos útiles para ver status de usuario,
descripciones de programas y ubicación de los mismos. Por ejemplo, ejecute “whatis whatis”.
En base a los comandos mostrados hasta este punto y la información que proporcionen sus respectivos MAN,
conteste las siguientes preguntas:
1. ¿Cuáles comandos nos muestran el listado de usuario activos en el sistema?
2. ¿Cuál sería el comando, incluyendo opciones, para desplegar la fecha del último “boot” (Reinicio) del
sistema?
3. Si un archivo tuviese exclusivamente 3 líneas de texto, ¿cuál sería la diferencia de utilizar los comandos head,
tail, more y cat?
4. Si queremos leer el archivo /etc/passwd (el cual contiene el listado de usuarios del sistema) ¿Cuál sería el más
apropiado entre los comandos head, tail, more y cat? ¿Por qué?
5. ¿Cuál es el comando que se recomienda utilizar en lugar de more?
4.3) Actividad 2 - ¿Dónde estamos?
Supongamos que nuestro usuario de nombre “fulano” tiene la estructura en su directorio HOME -obtenida
mediante tree- de la siguiente forma:
.
├── Desktop
├── Documents
│ └── Pruebas
├── Downloads
├── Music
├── Pictures
├── Public
├── Sesion1
│ ├── Archivo1
│ └── Archivo2.txt
├── Templates
└── Videos
Conteste las siguientes preguntas
1. ¿Qué diferencia existe entre Archivo1 y Archivo2.txt?
2. Si la línea en bash aparece como: fulano@host: /etc$
3. ¿Cuál es el comando, con sus posibles opciones, para desplegar todo el contenido de Archivo2.txt utilizando
direccionamiento relativo?
4. ¿Cuál es el comando, con sus posibles opciones, para desplegar el contenido del folder oo directorio Sesion1,
incluyendo los directorios lógicos y en orden alfabético,, utilizando direccionamiento absoluto?
5. ¿Cuál es el comando, con sus posibles opciones, para duplicar la información liberada por tree?
6. Valide su respuesta anterior con su propio directorio HOME, utilizando tanto tree como el comando sugerido
por usted.
4.4) Actividad 3
Sumando todo lo visto en esta práctica, realice las siguientes actividades. Ejecute los siguientes comandos
mkdir $HOME/Operativos
touch $HOME/Operativos/Arch1
touch $HOME/Operativos/Arch2
touch $HOME/Operativos/Arch3
Conteste las siguientes preguntas:
LABORATORIO DE SO
AUTOR: ING. ANA LORENA FREITEZ
8
1. Comando para copiar el contenido del archivo /etc/passwd a Arch1
2. Comandos para guardar las descripciones de whatis de todo los comandos wh (Primera actividad) en Arch2.
3. Guarde la ubicación del comando ping en Arch3
4. Anexe el contenido de Arch1 y Arch2 en Arch3 (Sobre-escribalo)
5. Desde $HOME/Operativos ejecute el comando mkdir ./Acto1
6. Mueva el archivo Arch3 al directorio creado en el paso anterior.
7. Despliegue la primera línea de Arch3 con direccionamiento absoluto
8. Estando en su carpeta Home y utilizando direccionamiento relativo, genere un archivo llamado Arch4 en el
directorio Acto1 que contenga las últimas 5 líneas de Arch2.
9. Utilizando solamente los comandos tail y head, despliegue la segunda línea de Arch4.
10. Utilice solamente un único comando para borrar todo el contenido del directorio Operativos
POST – LABORATORIO
5. ACTIVIDAD POST – PRÁCTICA.
1) Investigue que es una Script en Linux
2) ¿Qué se puede hacer con una Script? ¿Cómo son las sintaxis de una Script?
3) ¿Qué se usa para escribir una Script?
4) Cuáles son los comandos más útiles de Unix bajo la cónsola o terminal?
5) ¿Qué es la terminal de comandos?
6) Realice sus conclusiones sobre lo aprendido en la práctica.
El Informe a elaborar su equipo es sobre lo siguiente:
Introducción (indicando sobre que trata la práctica y que conocimientos
adquiridos)
1) El Pre laboratorio (las 9 preguntas que tiene el mismo)
2) El Laboratorio (Las actividades 4.1, 4.2, 4.3 y 4.4). Se les recuerda que
deben descargar una Terminal si trabajan bajo Android (SO el cual tiene
núcleo de Linux) o deben virtualizar el SO Linux bajo Windows y luego
descargar la Terminal en el SO virtualizado. Por qué deben descargar la
terminal? Para poder probar los comandos y realizar las actividades 4.2,
4.3 y 4.4.
3) El Post Laboratorio (las 4 preguntas que tiene el mismo. Y Muy importante la
Conclusión)
LABORATORIO DE SO
AUTOR: ING. ANA LORENA FREITEZ