0% encontró este documento útil (0 votos)
26 vistas39 páginas

Cuaderno Practicas I

Cuaderno_practicas_I ASO
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
26 vistas39 páginas

Cuaderno Practicas I

Cuaderno_practicas_I ASO
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 39

Cuaderno de prácticas I

Máquinas virtuales: VmWare PLayer

Comandos UNIX/Linux
Sistema Operativo Linux Ubuntu

Dpto. Física y Arquitectura de Computadores


Área de Arquitectura y tecnología de Computadores
Universidad Miguel Hernández
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

INDICE DE CONTENIDOS

1. OBJETIVOS DEL Cuaderno de prácticas I


2. HERRAMIENTAS
2.1. Descarga e instalación del software
2.2. Creación de una máquina virtual
3. ACCESO AL SISTEMA LINUX Ubuntu MEDIANTE MÁQUINA VIRTUAL
4. EL SISTEMA LINUX
5. ARCHIVOS DE CONFIGURACIÓN DEL SISTEMA
6. CONCEPTOS BÁSICOS PARA ADIMINSTRAR LINUX
6.1. Trabajando con la línea de comandos
6.1.1. El shell
6.1.2. Sintaxis de los comandos UNIX
6.1.3. El comando: ¿qué hacer?
6.1.4. Las opciones: ¿cómo hacerlo?
6.1.5. Los argumentos: ¿sobre quién actuar?
6.2. Comandos en minúsculas y MAYUSCULAS
6.3. Variantes en la ejecución de un comando
6.3.1. Redirección de las entradas / salidas estándares
6.3.2. Ejecución en background
6.3.3. Agrupación de comandos
6.3.4. Ejecutando comandos secuenciales
6.3.5. Pipelines
6.3.6. Variables de entorno
6.3.7. Combinaciones de teclas
7. COMANDOS BASICOS
7.1. Apagar el sistema
7.2. Información del sistema
7.3. Comandos relacionados con archivos
7.4. Comandos relacionados con propiedad y protección
7.5. Comandos de procesos
8. EDITOR DE TEXTOS
9. BIBLIOGRAFIA
10. REFERENCIA RAPIDA DE COMANDOS UNIX / LINUX

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 2
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

1. OBJETIVOS DEL Cuaderno de prácticas I


El objetivo del siguiente documento es familiarizarse con el entorno de trabajo de un
sistema UNIX y su operatoria de comandos. De esta forma podemos poner en práctica
conceptos vistos en clase en los dos primeros temas. Para ello se ha elegido el sistema UNIX-
like, Linux Ubuntu .Este cuaderno pretende ser una orientación y una guía para el alumno,
siendo el mismo, con su iniciativa y curiosidad, el que aprovechará su contenido.

2. HERRAMIENTAS
Se utilizará el software. Esta herramienta es un software para trabajar con máquinas
virtuales. Dispondréis de una máquina virtual para realizar las prácticas propuestas en la
asignatura.
2.1. Descarga e instalación del software
El objetivo de este apartado es instalación de una distribución del sistema operativo
Linux Ubuntu en una máquina virtual desde donde podréis trabajar y hacer los ejercicios y
las prácticas. La aplicación VmWare Player 3.1.1 282343 es un programa de libre
distribución y se emplea para creación de máqinas virtuales. Se encuentra disponible en
http://vmware-player.softonic.com/. Deberéis descargarla e instalarla en el ordenador de
trabajo.

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 3
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 4
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

Una vez que tengáis instalada la aplicación estaréis en disposición de poder crear
máquinas virtuales con cualquier tipo de sistema operativo, de forma que podréis trabajar
con sistemas operativos sin preocuparos de si su uso afecta al hardware real, ya que está
máquina es una emulación del hardware real.
A continuación buscaréis una distribución del sistema operativo que queréis instalar. En
nuestro caso trabajaremos con Linux Ubuntu. Desde la página
http://ubuntu.softonic.com/linux podréis descargar la versión 10.04. Se podrá trabajar con
distribuciones anteriores, pero a partir de la 9.

2.2. Creación de una máquina virtual


Una vez tenemos la ISO del sistema operativo a instalar procedemos de la siguiente
manera:
1. Abrimos el programa y seleccionamos CREATE A NEW VIRTUAL MACHINE para
crear una nueva máquina virtual.

2. Pinchamos en INSTALLER DISC IMAGE FILE (ISO) y seleccionamos la ruta donde


se encuentra la ISO. Si tuviéramos un cd o dvd pincharíamos INSTALLER DISC.

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 5
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

3. Indicamos usuario de acceso y password.

4. Le damos un nombre a la máquina virtual y el lugar dónde se almacenará.

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 6
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

5. Dejamos el tamaño de disco como está

6. Aceptamos la configuración del hardware

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 7
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

7. Aceptamos que el sistema detecte el hardware encontrado de E/S

8. Descargamos las VmWare Tools. Deberás tener conexión a la web.

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 8
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

9. Continúa la instalación

10. Esperamos a que aparezca el entorno gráfico. No hacemos nada aquí…

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 9
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

11. Ya podemos loggearnos con el usuario que indicamos durante la creación de la


máquina virtual.

12. Ya tenemos la máquina virtual creada y el sistema operativo funcionando.

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 10
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

13. Podemos maximizar la ventana y con CTRL + ALT retornar al sistema operativo de
base.

3. ACCESO AL SISTEMA LINUX UBUNTU MEDIANTE MÁQUINA VIRTUAL


Pasos a seguir para el inicio del sistema:
1. Mediante File – Open aparecerá una ventana como la de la figura de abajo.

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 11
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

2. Accedemos a donde está la máquina virtual.

3. Puede que nos pida que creemos un nuevo identificador de la máquina en vuestro
lugar de de trabajo (os recuerdo: de manera temporal en el pc o en vuestro usb). En
ese caso respondemos a CREATE.
4. A la pregunta de si queremos actualizar el programa le decimos CANCEL.
5. Comienza a arrancar el sistema:

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 12
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

6. Cuando te pida usuario y contraseña de acceso se accederá mediante el superusuario


creado. En esta distribución no nos deja acceder como root. Cuando ya estemos
trabajando con el sistema sí que podremos identificarnos como root poniendo $> sudo
root y pondremos contraseña.

7. Puede que salgan mensajes diciendo que la tarjeta de sonido no está disponible. Los
vamos solventando. Luego aparecerá el sistema cargado con la siguiente interfaz
gráfica:

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 13
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

8. Para acceder a un Terminal (shell o intérprete de comandos) :

9. Desde este Terminal podremos interactuar con la máquina, introducir comandos y


realizar las prácticas de la asignatura:

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 14
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

4. EL SISTEMA LINUX
Linux es un clon de Unix en el dominio público destinado a los procesadores Intel. Linux ha
ganado en popularidad regularmente y es muy útil en varias situaciones: es un sistema Unix
poco costoso que puede constituir un ambiente de investigación para los colegios y
universidades, una solución económica para contar con una conexión Internet para las
empresas pequeñas, un sistema Unix doméstico para los profesionales y una terminal X
barata para los sitios Unix con presupuesto reducido.
El núcleo fue desarrollado por Linux Torvaldas, (Linux es el Unix de Linus, Linus Unix)
aunque otras personas han contribuido (y contribuyen) a su desarrollo. Linux es globalmente de
tipo BSD.
Técnicamente, el nombre de Linux hace referencia al corazón del sistema operativo (el
núcleo y algunos controladores de periféricos) pero eso nombre también se aplica al s ftware
de dominio público, donde las fuentes son de origen variado, que constituyen una distribución.

5. ARCHIVOS DE CONFIGURACIÓN DEL SISTEMA


Todos los archivos de la configuración del sistema se encuentran ubicados en el
directorio /etc. Los que tienen que ver con la configuración del usuario se encuentran en el
directorio home de cada uno, normalmente precedidos de un punto, lo que los convierte en
ocultos. De todos ellos se pueden destacar lo siguientes:
o /etc/fstab

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 15
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

Fichero que contiene la tabla del sistema de archivos que se monta en cada arranque.
Contiene un sistema de archivos por línea. Los campos de cada línea están separados
por blancos o tabuladores y son, en el orden en el que se encuentran:
1. Dispositivo donde se va a montar.
2. Punto de montaje (normalmente es un directorio)
3. Tipo de archivo que se va a montar (iso9660, swap, ext2,etc.)
4. Opciones de montaje: la más corriente es default.
o /etc/securetty
Fichero que contiene los terminales habilitados para acceder con root.
o /etc/lilo.conf y grub.conf
Configuran los respectivos gestores de arrnque
o /dev/null
Es un fichero y también un dispositivo que no contiene nada y no sirve para nada. Es un
agujero negro que utilizamos para enviar todo lo que no sirve.
o /etc/init.d
Contiene todos los script que inician los demonios del sistema.
o /etc/xinetd.d
Contiene los script que inician los servicios que el demonio xinetd (servicios de red)
controla.
o /etc/passwd
Contiene la lista de los usuarios dados de alta en el sistema. Los campos son los
siguientes, en este orden y separados por “:”:
1. login
2. contraseña encriptada (relamente el password se encuentra en (etc/shadow)
3. UID (identificador de usuario)
4. GIP (identificador de grupo)
5. nombre completo
6. shell usado
7. Ruta de directorio o donde el usuario guarda sus documentos (home)
o /etc/group
Contiene los grupos dados de alta
o /etc/sysconfig
Archivos con las configuraciones más importantes
o El directorio /var/log contiene la mayoría de los archivos log del sistema que se
encargan de almacenar los mensajes que el kernel o los demonios van lanzando.
o Los archivos de configuración .profile y /etc/profile son script de inicialización del
entorno de usuario. El .profile lo tiene cada usuario en su directorio home y se
ejecuta cada vez que el usuario accede al sistema. Se utiliza para configurar las
sesiones de trabajo de acuerdo con las preferencias propias de cada usuario. El

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 16
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

/etc/profile es propiedad del sistema y se ejecuta antes del .profile de cada usuario.
Prepara el entorno de los usuarios de forma global. El fichero /etc/profile puede ser
leído por todos los usuarios. Cualquier modificación de este fichero la debe realizar el
Administrador del sistema porque modificará el entorno de todos los usuarios
globalmente.
o En general, todos los archivos .conf son configuraciones particulares de un servicio o
un dispositivo.
o /etc/bash.bashrc y ~/.bashrc : se ejecutan cuando se lanza el shell bash después
de los profile.

6. CONCEPTOS BÁSICOS PARA ADIMINSTRAR LINUX


6.1. Trabajando con la línea de comandos
La línea de comandos empieza en el prompt y termina en el momento en que el usuario
presiona la tecla <RETURN>. La primera palabra que se introduce en la línea de comandos
palabra es el nombre de un archivo ejecutable, o de un comando del sistema.
La línea de comandos forma parte de lo que se conoce como shell. El shell es el
encargado de leer el comando y ejecutarlo. Existen una gran variedad de shells, entre los
más comunes encontramos el bourne-shell (el primer shell), el c-shell, el tc-shell y el korne-
shell.
La línea de comandos empieza en el prompt. Por default el prompt es representado por
un carácter aunque esto puede ser modificado por el usuario. Por ejemplo el prompt por
default del bourne-shell es el caracter $ y del c-shell es el caracter %. En este documento
se utiliza el prompt del shell Ubuntu(/bin/bash) que es de la forma:
• Para usuario: usuario1@dhccpc1: ~#
• Para el root: dhccpc1: ~#
donde se despliega la cuenta, la máquina y el directorio donde estamos.
El comando puede ser seguido por una o más opciones, y/o uno o más argumentos,
(separados por espacios o tabulaciones). El comando junto con sus opciones y/o
argumentos, no es ejecutado antes del <RETURN>. Una vez que el comando
termina su ejecución aparece el prompt de nuevo para indicar que el sistema esta listo para
ejecutar otro comando.
Para poder capturar una línea de comando muy larga, es posible de insertar el carácter
\ al final de la primera línea, después de teclear <RETURN>, para poder teclear el resto de
la línea de comando en una segunda línea de la pantalla.

6.1.1. El shell
Se accede como indicamos anteriormente:

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 17
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

La función expansión completa el nombre de un archivo asociado a un comando


escribiendo las primeras letras y pulsando la tecla <TAB>.
El path de un archivo o ruta se puede indicar mediante el camino absoluto
separando los diferentes directorios con / , o con el camino relativo usando . .. ~ .
En Linux los nombres de los archivos no tienen extensión, aunque sí es posible,
por acuerdo, poner un punto y una serie de caracteres que indiquen qué tipo de
información almacenan.
Se pueden usar metacaracteres, también llamados comodines o wildcards que
son caracteres con un significado especial para el shell:

> Redireccionamiemo de la salida estándar


>> Redirección de la salida añadiendo
< Redirección de la entrada estándar
<<carácter Asume entrada por teclado hasta introducir el carácter
especificado.
2> Redirección de la salida de error.
| Interconexión, a través de tubería o pipeline. La salida de la
orden a la izquierda, es la entrada de la siguiente.
* Sustituye a cualquier cadena
/? Sustituye cualquier carácter
[cadena] Sustituye la cadena indicada a través de intervalo ([1-3], 0 bien
por un conjunto de caracteres ([l23]).

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 18
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

; Ejecución secuencial de órdenes.


& Ejecución paralela u desatendida (background)
\ Anula interpretación de un carácter especial
`---‘ Fuerza la ejecución de ordenes de shell.
# Introduce comentarios.

6.1.2. Sintaxis de los comandos UNIX


Como se dijo en la sección anterior varios comandos cuentan con opciones y/o
argumentos. Ahora bien, es necesario dejar un espacio:
o entre el nombre del comando y las opciones y/o los argumentos.
o entre las opciones y los argumentos.
o entre los argumentos.
Un comando tiene opciones por default, si se quieren utilizar estas opciones se tiene
que teclear:
dhccpc1: ~# nombre-comando <RETURN>
En caso contrario los siguientes formatos son posibles:
1. nombre-comando argumento(s) <RETURN>
2. nombre-comando opcion(es) <RETURN>
3. nombre-comando opcion(es) argumento(s) <RETURN>
En general se puede decir que el comando le indica al sistema que hacer, as opciones
como hacerlo y los argumentos sobre quien hacerlo.

6.1.3. El comando: ¿qué hacer?


El comando es la primera palabra de la línea de comandos y siempre corresponde
al nombre de un archivo ejecutable.
Por ejemplo:
dhccpc1: ~# ls
dhccpc1: ~# who
dhccpc1: ~# ps

6.1.4. Las opciones: ¿cómo hacerlo?


Un comando puede realizar diferentes tareas, o presentar resultados en diferentes
formatos, de acuerdo a sus opciones. Las opciones siguen al comando (separadas por
un espacio) y le indican al sistema con cual opción se debe ejecutar el comando. En
caso de que no se de ninguna se toma la opción por default. Generalmente están
precedidas de un carácter - (o a veces de un carácter +).
Por ejemplo:
dhccpc1: ~# ls - l
dhccpc1: ~# date +%d%m%y
Juan de Dios Valero Serra Sistemas Operativos
juande.valero@umh.es 19
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

6.1.5. Los argumentos: ¿sobre quién actuar?


Generalmente se requieren a uno, o varios, nombres de archivo sobre los cuales
el comando será ejecutado.
dhccpc1: ~# cat capitulo
dhccpc1: ~# cp archivo nuevo
dhccpc1: ~# ls -l tarea*

6.2. Comandos en minúsculas y MAYUSCULAS


Es muy importante remarcar que Unix, a diferencia de otros sistemas operativos, no
hace diferencia entre letras MAYÚSCULAS y minúsculas en los nombres de los comandos.
Un comando construido exclusivamente de letras minúsculas no será reconocido si alguna
de estas letras es mayúscula. Es decir, no es lo mismo:
dhccpc1: ~# cd /bin
que:
dhccpc1: ~# CD /BIN
CD: Command not found
En el primer de los casos se hará lo que se el comando indique. En el segundo
ejemplo mientras que el segundo no será reconocido por el sistema y desplegar el
mensaje de error correspondiente a este echo: Comando no encontrado.
El mismo mensaje es desplegado si el comando no existe, o si se introducen
caracteres al azar sin significado alguno para el sistema.

6.3. Variantes en la ejecución de un comando


Se define ejecución de un comando a todo el trabajo que tiene que realizar dicho
comando para satisfacer lo solicitado por el usuario. Existen varias formas en que esta
ejecución puede llevarse a cabo. A continuación se explicarán algunas de las más
comunes.

6.3.1. Redirección de las entradas / salidas estándares


En los sistemas UNIX tenemos 3 ficheros estándar

fd Fichero Dispositivo Descripción


0 /dev/stdin Teclado Entrada estándar
1 /dev/stdout Pantalla Salida estándar
2 /dev/stderr Pantalla Salida estándar para los errores

El resultado de la ejecución de un comando aparece en la salida estándar (la


pantalla), mientras que los datos (y el comando mismo) son leídos de la entrada

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 20
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

estándar (el teclado). Unix permite redireccionar las entradas/salidas estándar a partir
de los delimitadores angulares:
< redirección de la entrada estándar.
> redirección de la salida estándar (creación)
>> redirección de la salida estándar (añadir)
2> redirección de los errores

Por redirección de salida estándar se entiende que en lugar de desplegar los


resultados en pantalla el sistema los envía a un archivo, y por redirección de la entrada
estándar provoca que en lugar de obtener los datos del teclado se lean de un archivo.
Un ejemplo de redirección de la entrada estándar es:
dhccpc1: ~# mail profesor < tarea.txt
En este caso la entrada estándar del comando mail es substituida por el
archivo tarea.txt.
Un ejemplo de redirección de la salida estándar (creación) se presenta a
continuación:
dhccpc1: ~# cat arch1 arch2 > final.txt
La salida estándar del comando cat es redirigida al archivo final.txt. Esto trae
como consecuencia que los los archivos arch1 y arch2 serán copiados una después del
otro en el archivo final.txt. En la mayoría de los sistemas si este archivo ya existe, el
sistema desplegará un mensaje de error; por ejemplo:
dhccpc1: ~# ls > sal
sal: File exists.+.
dhccpc1: ~#
El siguiente es un ejemplo de redirección de la salida estándar utilizando los
caracteres >>:
dhccpc1: ~# echo ERRORES DE COPIA >> log
La salida estándar del comando echo sería el archivo log. Dependiendo del tipo
de sistema Unix y shell utilizado, si el archivo no existe, éste será creado. Si el archivo
ya existe, se añadirá el resultado del comando echo al final de dicho archivo.
Si no queremos redirigir los errores a ningún fichero ni pantalla podemos hacer:
orden 2> /dev/null, de forma que los errores se dirigen a una papelera donde se
destruyen

6.3.2. Ejecución en background


Para los comandos lentos en su ejecución, resulta interesante poder disponer de
la terminal de tal forma que se puedan ejecutar otros comandos.

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 21
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

Poniendo un & después del comando y de sus opciones y/o argumentos, el


sistema ejecutará el comando en background, desplegando el prompt de nuevo y
dejando al sistema listo para leer otro
comando.
Por ejemplo:
dhccpc1: ~# netscape tareas.html -display walhalla: 0.0 &
[1] 712
dhccpc1: ~#
Ejecutará el comando netscape con todas sus opciones y argumentos en
background. El número 1 dentro de los corchetes es el número de trabajo (o job)
asignado por el sistema y el 712 es el identficador del proceso que se encarga de dicho
trabajo.
Es importante remarcar que el resultado de la ejecución de estos comandos
será desplegado en la misma pantalla donde se ejecutado el comando.
(poner lo de la página 52 de G.L.U.P. guia de Linux para el usuario)

6.3.3. Agrupación de comandos


Se agrupan varios comandos entre paréntesis ( ), estos serán considerados como
una sola unidad.
Por ejemplo, los siguientes comandos:
dhccpc1: ~# echo El día de hoy: > log
dhccpc1: ~# date >> log
dhccpc1: ~# echo las personas siguientes >> log
dhccpc1: ~# who >> log
dhccpc1: ~# echo se encuentran conectadas >> log
dhccpc1: ~#
pueden agruparse en uno solo:
dhccpc1: ~# ( echo El dia de hoy; date; echo las personas \
siguientes; who; echo se encuentran conectadas ) > log
dhccpc1: ~#
6.3.4. Ejecutando comandos secuenciales
Es posible teclear diferentes comandos sobre la misma línea de comandos,
separándolos por punto y comas (;).
En este caso los comandos son ejecutados secuencialmente, es decir que el
segundo comando es ejecutado después de que el primero terminó su ejecución. Por
ejemplo:
dhccpc1: ~# date
Wed Oct 12 10:44:16 MET 1986
dhccpc1: ~# ls -C
Juan de Dios Valero Serra Sistemas Operativos
juande.valero@umh.es 22
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

prueba archivo
dhccpc1: ~# who
rogomez console Oct 12 09:09
rogomez ttyp0 Oct 12 10:38
toto ttyp1 Oct 12 11:08
dhccpc1: ~#
se pudo haber tecleado como:
dhccpc1: ~# date; ls -C; who
Wed Oct 12 10:44:16 MET 1986
prueba archivo
rogomez console Oct 12 09:09
rogomez ttyp0 Oct 12 10:38
toto ttyp1 Oct 12 11:08
dhccpc1: ~#

6.3.5. Pipelines
En algunas ocasiones es importante que el resultado de la ejecución de un
comando sea la entrada de otro. Una opción para resolver lo anterior es utilizar
redirecciones, la salida del comando enviarla a un archivo y la entrada del otro
comando redireccionarla con respecto a dicho archivo.
La salida estándar de un comando puede ser conectada a la entrada estándar de
otro comando a través de lo que se conoce como pipelines. Un pipeline es un puente
de comunicación entre la salida de un proceso y la entrada de otro. Es representado
por una línea vertical. La sintaxis del pipeline es:
comando [ ] [ ] | [ ] [ ] | comando [ ] [ ]
Un ejemplo de uso del pipeline es el siguiente:
dhccpc1: ~# cat numeros
uno un
dos deux
tres trois
cuatro quatre
cinco cinq
dhccpc1: ~# cat numeros | grep dos | more
dos deux
dhccpc1: ~#
En este caso la salida del comando cat es la entrada del comando grep y la
salida de este es la entrada del comando more el cual al final lo imprime en pantalla.

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 23
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

En realidad una de las ventajas de los pipelines es el evitar la creación de


archivos temporales para dejar resultados parciales en ellos. En efecto, a través de
redirecciones y con archivos temporales
es posible obtener el mismo resultado. Esto se le deja como ejercicio al lector.

6.3.6. Variables de entorno


Un mayor uso de las mismas se da en la programación shell que se verá en
prácticas posteriores.

Comando Uso
env Índice de todas las variables
definidas en el entorno
export <VARIABLE> Exporta una variable al entorno.
Podemos referirnos a ella mediante
$VARIABLE
set Lee y escribe variables de entorno

dhccpc1: ~# env

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 24
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

6.3.7. Combinaciones de teclas

Comando Uso
Ctrl+C Interrumpe el comando activo
Ctrl+Z Ctrl+Z : Suspende el comando activo, con fg Se
reanuda y con bg se lleva a segundo plano
Ctrl+D Abandona sesión actual, similar a exit
Ctrl+W– Borra una palabra en la línea actual
Ctrl+U Borra toda la línea
!! Repite el último comando
exit Abandona la sesión actual

7. COMANDOS BASICOS
7.1. Apagar el sistema
Algunos comandos relacionados con el arranque y apagado de la máquina. Conviene
usarlos con cuidado.

Comando Uso
shutdown – r <hora> Especifica un momento para el
apagado automático del sistema.
Con now iniciará el apagado
instantáneamente.
reboot Reinicia el sistema.
halt Detiene el sistema para su posterior
apagado.

7.2. Información del sistema

Comando Uso

man comando Nos proporciona información del uso del comando.


Para salir de las páginas de man pulsar la tecla ‘Q’
man ascii Documentación de la tabla ASCII. Útil para saber
que número tiene cada carácter o símbolo.
date / cal Obtener la fecha y hora actual / Calendario mes
actual
w Nos informa de quien está conectado al sistema
ahora y que está haciendo
who Nos informa de quien está conectado al sistema
who am i Nos informa de la identidad de nuestro terminal
whoami Nos informa de quien somos nosotros (login)
su Permite el cambio de usuario sin ejecutar el login. Si
no se especifica usuario por defecto entrará en root.
echo cadena1 Muestra por pantalla las cadenas de texto
cadena2 ... especificadas

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 25
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

clear Borrar la pantalla


wc [-l] Contar líneas, palabras y letras de su entrada
(comando). Para terminar la entrada hacerlo en una
nueva línea pulsando CTRL+D

dmseg Muestra los mensajes del Kernel al arrancar el


sistema

passwd Cambia el password de un usuario

alias Los alias permiten asignar nombres alternativos a


nombre=’comando’ comadnos existentes o nuevos. Por defecto muestra
todos los alias

unalias nombre alias Elimina un alias

uptime Tiempo que lleva encendida la máquina

finger user Muestra información sobre user

uname –a Muestra información sobre el núcleo

cat /proc/cpuinfo Información sobre la cpu

cat /proc/meminfo Información sobre la memoria

df Espacio libre en los discos

du Espacio usado por los directorios

free -b Memoria libre y ocupada (en bytes y megas)


-m

El comando man es muy importante para conocer la sintaxis y parámetros de los


comandos con los que aún no estamos familiarizados.

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 26
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

Por ejemplo:
dhccpc1: ~# man sort

7.3. Comandos relacionados con archivos

Comando Uso
ls Listar contenido de un directorio :

-a: (all) todos los archivos, incluso los ocultos (. , .. y otros)


-l: (long) listado largo, mostrando detalles (fecha/hora, permisos,
propietario, etc.).
-F: listado para saber si son archivos o directorios. Además marca con un
'*' los ficheros ejecutables
-d: (directory) sólo directorios
-R: (recursive) listado recursivo
-i: presenta los i-nodes (números de archivo) de los archivos

cd newdir/ Moverse al directorio newdir


cd Moverse al directorio home
pwd Mostrar la ruta actual
rm file Borrar el archivo file
rm -r dir Igual que el anterior pero con
Juan de Dios Valero Serra Sistemas Operativos
juande.valero@umh.es 27
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

rm -f file Borrar file sin emitir mensajes de error


rm -rf dir Igual que el anterior pero con el directorio dir
cp file1 file2 Copiar file1 en file2
cp -r dir1 dir2 Copiar el dir1 en dir2 (si no existe se crea)
mv file1 file2 Renombra file1 como file2. Si file2 es un directorio, lo mueve dentro del
mismo.
ln -s file link Crea un enlace simbólico de link hacia file
ln file link Crea un enlace duro
touch file Crea o actualiza file
cat > file Redirecciona la entrada estándar a file
more file Muestra el contenido de file
head file Muestra las 10 primeras filas de file
tail file Muestra las 10 últimas filas de file
tail -f file Muestra las 10 últimas filas de file a medida que va creciendo.
mkdir nombre Crea u directorio
rmdir directorio Borra directorio sólo si está vacío

Los sistemas de ficheros de tipo Unix permiten crear enlaces entre fichero. os enlaces
pueden ser de dos tipos, duros y simbólicos (hard links, symbolic link también llamados hard
link y soft link).
El primer caso consiste en asignar más de un nombre a los mismos datos en disco.
Este nombre aparece como un fichero nuevo al hacer ls , e incluso puede residir en el mismo o
en otro directorio, pero los datos son los mismos, simplemente el fichero con el nuevo nombre
está apuntando a los mismos datos en disco que el fichero original. Por tanto no consume más
espacio en disco, excepto el necesario en la tabla de i-nodes (un i-node es el identificador físico
de los datos de un fichero en disco). Este tipo de enlace (hard link) solo es válido para ficheros
que estén en el mismo sistema de ficheros (partición).
Los enlaces simbólicos son ficheros que apuntan a otro fichero o directorio, en el
mismo o en otro sistema de ficheros. La diferencia, a parte de poder referenciar fuera del
sistema de ficheros actual, es que éstos crean un pequeño fichero en disco que almacena la
dirección del fichero apuntado. Por tanto utilizan espacio en disco. La dirección esta formada
por referencias al sistema de ficheros y a la ruta donde se encuentra el fichero apuntado. Los
datos del fichero no se copian de nuevo al crear el link simbólico, solo se referencian.

Hard links
Usamos el comando ln para crear hard links.
Crear un fichero llamado mesa con cierto contenido. Ahora si usamos ls –i vemos el
número de inodo para nuestro fichero mesa.
Ahora vamos a crear un enlace llamado silla: ln mesa silla . Con ls –i vemos que los
dos ficheros tienen el mismo inodo. Vemos que los dos ficheros tienen el mismo i-node, por lo
que están apuntando al mismo bloque de datos (fichero) en disco.
Si borramos un fichero con rm, solamente se borrará el enlace al fichero.

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 28
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

rm mesa no borra los datos en disco (el fichero), solo elimina el fichero de la tabla de ficheros
que apuntan a i-nodes.
Veamos esto con un poco más de calma. Cuando un fichero se crea, se almacenan sus
datos en el disco y se le asigna un i-node, luego se registra el nombre del fichero en una
tabla de ficheros. En esta tabla están (a parte de más cosas) el nombre del fichero y el puntero
a sus datos.
Ahora cuando se crea un hard link, solo se da de alta otro fichero en dicha tabla
apuntando al mismo i-node o bloque de datos, a los datos del fichero. Vemos ahora que si
borramos uno de los dos ficheros con rm¸ sólo lo estamos eliminando de la tabla de ficheros,
no estamos eliminando el fichero en si (los datos, vaya).
Será el último rm que se realice sobre el fichero el que elimine realmente los datos del
disco. (y el nombre de la tabla, claro).

Soft Links
El comando ln –s mesa silla crea un enlace simbólico silla que apunta a mesa. Si
realizamos un ls –l vemos que el fichero silla es un enlace simbólico y además el primer
carácter del grupo de permisos es ‘l’ que indica este hecho. Vemos que todos los permisos
aparecen activados. Esto no significa que se pueda hacer todo por todos sobre el enlace
simbólico, pues realmente los permisos que se tienen en cuenta son los del fichero apuntado.
Funcionalmente, los enlaces duros y simbólicos son similares, pero hay algunas
diferencias. Por una parte, puede crear un enlace simbólico a un fichero que no está en el
mismo dispositivo de almacenamiento, por ejemplo a un fichero en un cd-rom, cosa que no es
cierta con un hard link. Los enlaces simbólicos son procesados por el núcleo del sistema
operativo de forma diferente a los duros, lo cual es solo una diferencia técnica, pero a veces es
importante. Los enlaces simbólicos son de ayuda puesto que identifican al fichero al que
apunta; con enlaces duros no es tan fácil saber que fichero está enlazado al mismo i-nodo.
Los enlaces se usan en muchas partes del sistema operativo. Los enlaces simbólicos
son especialmente importantes para las imágenes de las librerías compartidas en /lib.

Estructura de archivos en Linux


Una de las partes fundamentales del sistema operativo Unix son los archivos. Todo se
hace a través de ellos. Los archivos se encuentran agrupados en como directorios. Estos
directorias se encuentran organizados en una jerarquía de Árbol, donde la raíz está
representada por el carácter \ . Ver figura 13.

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 29
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

Figura 13 .Estructura de archivos en Linux.

A continuación se explica brevemente el contenido de cada directorio:

Directorio Contenido
/bin Contiene los ficheros ejecutables esenciales del sistema.
/dev Alberga los controladores de dispositivo usados para acceder a elementos
como discos duros, modems......
/etc Información y programas. Se encuentran archivos de configuración del sistema
como “profiles”, “hosts” o “bashrc”
/sbin Ordenes ejecutables sólo por el administrador
/home Directorio de usuarios
/lib Librerías
/proc Estructura virtual de ficheros. Es un directorio espejo de la memoria. En
realidad los archivos ubicados allí no residen en el disco duro, con lo que no
es posible modificarlos o borrarlos.
/tmp Ficheros temporales
/usr Archivos de configuración y programas usados por el sistema
/var Históricos del sistema
/boot Información necesaria para el sistema de arranque
/cdrom Manejadores para el cd-rom
/dev/console Sistema de consola
/dev/ttyS Acceso a puertos
/dev/cua Acceso a puertos
/dev/hda Primer disco duro
/dev/sda Primer disco duro SCSI
/dev/lp0 Primer puerto paralelo
/dev/tty Consolas virtuales
/dev/pty Seudoterminales
/usr/x386 Sistema X-windows
/usr/bin Ficheros binarios o ejecutables comunes
/usr/etc Información y programas

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 30
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

/usr/include Ficheros para compilador C


/usr/man Páginas man
/usr/src Código fuente
/usr/src/linux Código fuente del núcleo linux
/var/adm Ficheros de administración
/var/spool Ficheros de spool
/usr/x11/bin Ejecutables X Window

7.4. Comandos relacionados con propiedad y protección

Comando Uso
chown usuario fichero Cambia el propietario de un fichero o
directorio
chgrp grupo fichero Cambia el grupo al que pertenece un fichero
chmod modo fichero Cambia los permisos de acceso de un fichero.
chmod {a,u,g,o}{+,-} Cuando hacemos ls -l podremos verlos en la
{r,w,x} fichero primera columna. Son 10 letras o guiones que
(all,user,group,other) representan: drwxrwxrwx
d: sólo aparece si es un directorio
s: sólo aparece si es un socket
rwx: permisos de lectura, escritura y ejecución
del usuario
rwx: permisos de lectura, escritura y ejecución
del grupo
rwx: permisos de lectura, escritura y ejecución
del resto
Cuando en cualquiera de ellos aparece un
guión "-"

Si hacemos ls –l obtenemos un listado largo del contenido del directorio.


Si empezamos de izquierda a derecha a analizar el listado encontramos:
• Tipo de archivo (directorio [d], enlace [l], archivo normal [-], socket [s], etc…)
• -rw-r--r- Permisos del fichero
• Número de enlaces duros al fichero (hard links)
• Propietario del fichero
• Grupo del fichero
• Tamaño en bytes del fichero
• Fecha y hora de la ultima modificación
• … y por fin el Nombre del fichero.

Permisos de ficheros
Cada fichero tiene ciertos permisos asociados a el, que indican al sistema
operativo quién puede acceder a ese fichero, cambiarlo o en el caso de ser un
programa, ejecutarlo. Cada uno de esos permisos puede ser establecido por separado

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 31
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

para el dueño del fichero, para el grupo al que pertenece el dueño del fichero y para el
resto de usuarios del sistema.
El modo de cambiar los permisos de un fichero es
chmod [a,u,g,o] [+,-] [r,w,x]
chmod o+w documento da a todos los usuarios permisos para escribir, borrar,
etc el documento.
Con chmod o-rw documento quitamos los permisos de lectura y escritura
para el resto de los usuarios.

7.5. Comandos de procesos

Comando Uso
ps Muestra los procesos activos del usuario
top Lista todos los procesos, así como diversos
detalles de éstos (memoria consumida,
CPU utilizada). Con la tecla <q> saldremos.
bg Lista los procesos parados o en segundo
plano.
fg Lleva el proceso más reciente a primer
plano.
fg n Lleva el proceso n a primer plano
kill [señal] pid Orden para eliminar procesos.
kill - l : muestra una lista de los nombres de
señal que pueden ser utilizados.
kill -9 : Envía señal de tipo TERM con lo
que matará el proceso.
kill allproc Mata a todos los procesos.
postree Muestra el árbol de procesos, útil para
saber las dependencias de padres e hijos
nice Nos permite especificar la prioridad de un
proceso. Normalmente se utiliza para
reducir la prioridad del proceso, en el caso
de que no nos urjan los resultados.

sleep Suspende la ejecución durante un cierto


número de segundos

jobs Nos lista los trabajos actuales en ejecución.


Nos pone un & al lado para los procesos
que estén en background. Podremos matar
trabajos con kill %n (si ponemos el número
de trabajo: 1,2,3, ...) o kill pid (si ponemos
el número de pid: 5794, ...).

nohup comando <f1 >f2 Nos permite ejecutar un comando, el cual


2>ferrores & perdurará cuando cerremos la sesión. Las
entradas y salidas de datos las realizará
sobre ficheros: nohup.in y nohup.out (por
defecto).
Juan de Dios Valero Serra Sistemas Operativos
juande.valero@umh.es 32
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

El comando yes es un comando aparentemente inútil que envía una serie interminable
de y-es a la salida estándar y hay que pulsar CTRL+C para que pare. Puede ser útil
cuando en un programa se nos realiza una serie de preguntas y queremos responder a
todas que si, direccionando su entrada estándar al comando yes, el lo hará por nosotros.
• Ejecutar el comando yes y parar su ejecución con CTRL+C
(La tecla de interrupción se puede definir con el comando stty, y puede que en todos
los sistemas no sea la misma)
Lo que podemos hacer es que no nos moleste la aparición de y-es en la pantalla,
redirigiendo la salida del comando yes a un dispositivo especial, /dev/null con lo que ya no
aparece nada por pantalla,
• Redirigir la salida, ¿que ocurre entonces?
Pulsando la tecla interrupción podemos parar el proceso, ya que sigue ejecutándose en
primer plano, aunque no veamos nada.
Supongamos que queremos dejar que el comando yes siga pero que nosotros
podamos recuperar el prompt para seguir trabajando.
• Lanzar el comando yes > /dev/null & para dejarlo ejecutando en segundo plano.

¿Qué pasaría si no pusiésemos > /dev/null?


Ahora nos aparece un número entre corchetes, por ejemplo [1] seguido de un numero,
por ejemplo 32832. ¿Qué es eso?
[1] representa el número de tarea que el sistema operativo le da al proceso yes cuando
lo ubica en segundo plano. El número que le sigue es el PID (identificador de proceso) que
es el número de proceso que tiene yes, independientemente de en que plano se ejecute.
Estos dos números se utilizan para referirse a la tarea o proceso.
Ahora tenemos el proceso yes corriendo en segundo plano, y enviando
constantemente la letra ‘y’ hacia el dispositivo /dev/null. Para chequear el estado del
proceso, utilice el comando jobs.

• Utilizar jobs para ver las tareas.


También podemos usar el comando ps

¿Qué diferencia hay entre jobs y ps?


Para eliminar una tarea podemos hacerlo por dos vías. A través de su número de tarea
y a través de su número de proceso y mediante el comando kill. (NOTA: kill, a pesar de su
nombre no es una orden para matar procesos, sino para enviar señales a procesos, lo que
pasa es que normalmente si un proceso recibe una señal que no espera, muere).

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 33
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

Así que con kill %1 nos referimos al número de tarea 1 y con kill 32832 le decimos que
le envÍe la señal por defecto al proceso con PID 32832. La señal por defecto es KILL.
Una vez matada la tarea, la siguiente vez que ejecutemos jobs (pero solo esa vez, la
siguiente) aparecerá un mensaje indicando que el proceso [1] ha terminado. Si volvemos a
usar jobs ya no muestra nada.
Hay otra manera de poner una tarea en segundo plano. Se lanza el proceso, se para y
queda parada en primer plano, pero nos devuelve el prompt, se pone entonces en segundo
plano.
• Lanzar en primer plano, yes >/dev/null (SIN &) (no saldrá el prompt, recordais?)

Ahora en vez de interrumpir (CTRL+C) la vamos a suspender con CTRL+Z.


Nos indica el sistema que la tarea [1] ha sido stopped, parada.
Ahora el proceso (tarea) esta suspendido y no consume CPU, ni recursos. Podemos
ver que es así con ps.
Para relanzar la tarea a primer plano y que siga ejecutando como si no hubiera pasado
nada se utiliza fg. Nos mostrará el nombre del comando que pasa a foreground pero sigue
sin salir nada por pantalla porque hemos redirigido a /dev/null.
Volvemos a parar el proceso con CTRL+Z.
Ahora hacemos bg y entonces la tarea sigue ejecutándose pero esta vez en segundo
plano. Con jobs vemos la tarea.

¿Que pasa ahora si pulsamos CTRL+C o CTRL+Z? Que no nos hace caso pues
la tarea está en segundo plano. La podemos pasar a primer plano con fg y luego pararla o
interrumpirla.
Nota: los comandos fg y bg actúan sobre la última tarea parada (suspendida). Con fg %n
pasamos a primer plano la tarea n.
yes > /dev/null& // Lo ejecutamos en background
fg // Lo ponemos en foreground
CTRL+Z (suspender proceso) // Lo suspendemos (para recuperar el control)
Bg // Lo colocamos de nuevo en background
Si nuestro terminal se queda "colgado" o hay un proceso en marcha que queremos
cancelar y no se puede abortar con CTRL+C, debemos abortar el proceso del shell. Para
ello, tenemos que:
1. iniciar otra sesión (ALT+Fn si estamos en local ó con otra ventana de Putty si
estamos en remoto).
2. Visualizar los procesos de nuestro usuario: ps -u usuario
3. Matar el proceso cuyo PID corresponde al shell que queremos abortar: kill -9 pid

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 34
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

8. EDITOR DE TEXTOS
Utilizaremos el editor vi. Vi es el nombre de editor de textos. Ver documentación
colgada en la asignatura.

9. BIBLIOGRAFIA
• Dr. Roberto Gómez Cárdenas .ITESM-CEM Dpto. Ciencias Computacionales. 16
de agosto de 2000.
• Manuales varios del sistema operativo UNIX
• Manuales varios del sistema operativo LINUX
• Bibliografía básica de comandos UNIX /Linux

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 35
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

10. REFERENCIA RAPIDA DE COMNADOS UNIX / LINUX

11.
Juan de Dios Valero Serra Sistemas Operativos
juande.valero@umh.es 36
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 37
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 38
Ingeniería Técnica en Informática de Gestión Cuaderno de prácticas I: Comandos UNIX / Linux

Juan de Dios Valero Serra Sistemas Operativos


juande.valero@umh.es 39

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy