ArqComp p1

Anuncio
ARQUITECTURA DE COMPUTADORES
PRÁCTICA 1
Introducción al Shell del
Sistema Operativo UNIX (I)
ENTRADA AL SISTEMA.
Vamos a trabajar con la distribución RedHat de LNUX en su versión 9.0. Se trata de un
entorno gráfico.
UNIX es un sistema multiusuario. Cada usuario tiene creada una cuenta propia. Las
cuentas de los usuarios son creadas por el superusuario (root), un usuario con privilegios
especiales que se encarga de la administración del sistema. En nuestro caso arrancaremos la
máquina seleccionando la primera de la opción LINUX. A continuación aparece un menú donde
se nos presentan todas las instancias Linux que han sido configuradas en esa máquina.
Debemos seleccionar la primera opción (arranque de un Linux genérico en modo usuario).
Una vez arrancado el Linux en concreto, todo usuario debe identificarse en el momento
de la conexión. Para ello debe introducir, en primer lugar, su identificador de usuario (login) y, a
continuación, su contraseña (password).
Tanto el identificador de usuario como el password se os indicarán en el momento de
realizar la práctica. Hay que introducir el mismo respetando las mayúsculas y minúsculas. Por
motivos de seguridad, la contraseña no se visualiza en pantalla al escribirla. Así que hay que
poner bastante atención en teclearla correctamente.
En nuestro caso y, antes de identificar el usuario, debes seleccionar desde la barra de
herramientas (en el inferior de la pantalla) la opción de Sesión para, en el desplegable que
aparecerá a continuación, picar en la opción de KDE (tipo de desktop que más nos conviene
para nuestras prácticas – por defecto los Linux han sido configurados con GNome).
Una vez arrancado el sistema operativo, observa el desktop juega un poco con él
(tienes 4 posibles a elegir, puedes cambiar el fondo… un poco como en el S.O. windows pero
con más elegancia).
Si te fijas, tienes un icono llamado terminal o shell (y si no, lo encontrarás en el grupo
de programas denominado Herramientas del Sistema). Se trata del intérprete de comandos que
utilizarás para realizar esta práctica y las siguientes. Haz doble click sobre el icono y ejecuta el
intérprete. Como ya te has identificado al entrar en el sistema no te va a pedir ni el nombre de
usuario ni la contraseña.
1
Una vez ubicado en el shell, podemos cambiar el prompt con el comando:
$ export PS1=‘$’
Así el prompt se quedará reducido al símbolo $. Este indicador denota que el intérprete espera
una orden del usuario desde el teclado con el fin de que UNIX la ejecute. La orden se ejecuta al
pulsar <ENTER>.
NOTAS GENERALES
•
<CTRL> C: Termina o aborta la ejecución de un comando.
•
<CTRL> S: Detiene la visualización en pantalla.
•
<CTRL> Q: Reanuda la visualización en pantalla.
•
En la microweb he dejado un Tutorial UNIX en castellano donde se pueden consultar los
comandos más utilizados de UNIX.
•
Ojo: UNIX distingue entre mayúsculas y minúsculas.
•
Si se ha tecleado mal, la orden puede corregirse con la tecla de retroceso Å
FORMATO DE LAS ÓRDENES
Muchas órdenes aceptan argumentos. Para UNIX, el separador de argumentos es el
espacio en blanco.
Ejemplo:
$ echo Hola
La mayoría de órdenes asumen como opción un argumento cuyo primer carácter es el
signo Ejemplos:
$ ls -l
$ ls -l /etc/passwd
Las opciones pueden expresarse por separado o combinadas:
$ ls -l -a
$ ls -la
El objetivo de la práctica es que empecéis a manejar UNIX a nivel de usuario. Para ello
debéis probar todas las órdenes de UNIX que se comentan en este boletín y comprender qué
es lo que hacen.
ALGUNAS ORDENES BASICAS DE UNIX.
Orden Man
Permite consultar la sintaxis, la descripción y las opciones de cualquier orden sobre el
terminal. Ejemplo:
$man date
nos dará información sobre el comando date. La información saldrá paginada por pantallas.
Podemos ir avanzando pulsando <ENTER> o abandonar la ayuda con q (quit).
2
Ejemplo:
dino!/home/arqcomp00 152 $ man date
date(1)
date(1)
NAME
date - print and set the date
SYNOPSIS
date [-u] [+format]
date [-u] [[mmdd]HHMM | mmddHHMM[[cc]yy]]
date [-a [-]sss.fff]
DESCRIPTION
If no argument is given, or if the argument begins with +, the
current date and time are printed. Otherwise, the current
date is set if the user is a privilege user.
Supplementary code set characters in + format (see below) are
:
CONSULTAR QUÉ DICE man DE CADA ORDEN CONFORME VAYAMOS VIÉNDOLAS A
LO LARGO DE LA PRÁCTICA.
Orden Date
Permite consultar la fecha y hora del sistema.
Formato por defecto: día de la semana, día del mes, mes, año, hora.
Este formato se puede cambiar. ¿Cómo? Probadlo.
$ date (no escribáis el $, pues es sólo indicativo del final del prompt)
Con esta orden también se puede modificar la fecha y hora del sistema, pero sólo el
superusuario puede hacerlo, ya que éstos son valores críticos de los que dependen muchos
de los servicios del sistema.
Orden Who
Permite visualizar los usuarios conectados al sistema. El formato de salida del comando es:
- nombre de usuario
- terminal de conexión
- momento de la conexión
3
También puede utilizarse para conocer la propia identidad:
$ who am i
Obtención del directorio actual: PWD.
Cuando entramos en el sistema a través de nuestro login, éste nos sitúa sobre nuestro
directorio de trabajo. A partir de ahí podemos ir cambiando de directorio.
Para saber en qué directorio estamos en cada momento utilizaremos la orden:
$ pwd
nos aparecerá el camino completo de la situación de nuestro directorio dentro del sistema,
empezando por el directorio / (raíz)
Listado del contenido de un directorio actual: LS.
La orden ls nos permite ver el contenido de un directorio. Variantes del comando:
ls -a : nos aparecen además los ficheros ocultos
ls -l : listado con todos los detalles de los archivos/directorios.
ls -F: nos indica además, qué ficheros en un directorio son ordinarios y cuáles son
directorios, de la siguiente forma:
- los ficheros que acaben en / son directorios
- los que acaben en * son ejecutables
ls -t : ordena los ficheros por fechas (primero los mas nuevos)
ls -r : ordena los ficheros por fechas (primero los más antiguos)
Podemos combinar varias opciones. Ejemplo:
$ ls -l -a
$ ls -ltF
Siempre nos aparecerán dos ficheros especiales que son el ‘.’ y ‘..’. El primero hace
referencia al directorio actual y el segundo al directorio padre.
La distinción entre ficheros ordinarios y directorios también se puede apreciar si observamos
el primer caracter de cada fila (fichero). Las entradas cuyo carácter es una ‘d’ son directorios
y los que tienen un ‘-’ son ficheros ordinarios. Existe una entrada especial ‘l’ que hace
referencia a un enlace ‘link’, y que más adelante veremos lo que es.
Significado de los campos en el listado de ficheros:
Cuando hacemos un ls -l , nos va a aparecer la siguiente información:
- Modos de fichero (bits de protección): El primer elemento especifica el tipo de fichero. El
resto de elementos son los llamados bits de protección. Están compuestos por tres
secuencias de valores ‘r’, ‘w’, ‘x’, que indican los permisos de lectura, escritura y ejecución.
- Número de enlaces.
- Nombre del propietario del fichero.
- Nombre del grupo al que pertenece el usuario.
- Tamaño del fichero en bytes.
- Fecha y hora de la última modificación.
El comando ls tiene muchas más opciones de las aquí comentadas. Averiguad algunas de
ellas con el comando man y probadlas por separado y combinándolas.
4
Cambio de Directorio:CD.
Por defecto, al entrar en el equipo Unix nos colocamos en nuestro directorio de trabajo. Pero
podemos cambiar de directorio mediante el comando:
$ cd directorio
El nombre del directorio podremos darlo mediante su forma absoluta (todo el camino desde
la raiz) o mediante su forma relativa (indicando la ruta desde el directorio actual). Probad
ambas formas.
Con el comando cd sin argumentos volveremos siempre al directorio de trabajo propio, y si
queremos ir al directorio de nivel superior basta con utilizar cd ..
Cambiar al directorio raiz (/) y desde ahí ir visualizando el contenido de los siguientes
directorios típicos de UNIX:
/bin : directorio de algunas órdenes ejecutables.
/usr/bin: resto de órdenes ejecutables.
/usr/include: librerías del lenguaje C.
/dev: ficheros especiales asociados a los diferentes dispositivos del sistema tales como
terminales, impresoras,...
/etc : directorio de contenidos variados. Ejemplo: passwd: fichero de contraseñas.
/tmp : se utiliza para crear ficheros temporales
/users o /home: directorio donde se encuentran los directorios de los usuarios del sistema.
Caracteres comodín
A veces nos puede interesar referenciar ficheros que tengan en su nombre características
comunes (todos los ficheros que empiezan por la letra "c", ... ). Esto se conseguirá utilizando
los caracteres comodines o metacaracteres:
* : representa a cualquier cadena de caracteres arbitraria incluyendo la cadena vacía.
? : representa a cualquier carácter simple.
[ ] : pueden contener un grupo o rango de caracteres y corresponden a un carácter
simple.
Ejemplos:
$ ls a*
$ ls fichero?
$ ls c[1-3]
$ ls c[1,3]
Probar distintas combinaciones de estas órdenes.
5
Visualización de ficheros: CAT, FILE, MORE, HEAD, TAIL.
La orden cat se utiliza para visualizar sobre la salida estándar el contenido de un fichero (se
supone de tipo texto). Para saber de qué tipo es un fichero (texto, ejecutable,...) utilizaremos
la orden file seguida del nombre del fichero del cuál queremos averiguar su tipo.
Probad:
$ cat /home/arq/.profile
podemos ver el fichero de configuración del Shell.
Si el fichero no cabe en pantalla podemos utilizar las combinaciones de teclas <CTRL> S
(para detener la salida) y <CTRL> Q (para reanudarla). Otra opción más elegante es utilizar
" | more " a continuación del comando para visualizar pantalla tras pantalla. Consultad las
páginas del manual (man more) para ver alguna de las opciones del comando more y
practicad algunas de ellas, pues también puede ser utilizado en solitario.
La orden cat permite listar varios ficheros secuencialmente. Por ejemplo:
$ cat fichero1 fichero2
lista en primer lugar el fichero1 y luego el fichero2.
Una aplicación muy útil de cat es concatenar ficheros. Si queremos concatenar los dos
ficheros anteriores en un nuevo fichero llamado fichero3:
$ cat fichero1 fichero2 > fichero3
En el directorio de trabajo hay dos ficheros llamados marco1.txt y marco2.txt. Visualizad
su contenido y concatenadlos en un tercer fichero que llamareis marcoxx.txt, donde xx = nº
de usuario de la práctica.
La orden tail permite visualizar el final de un fichero. Por defecto visualiza las 10 últimas
líneas. Ejemplo:
$ tail .profile
lista las 10 últimas líneas del fichero .profile. Si queremos listar las últimas 5 líneas:
$ tail -5 .profile
y si queremos visualizar a partir de la línea 5:
$ tail +5 .profile
Existen unos parámetros que permiten indicar el número de líneas que queremos visualizar.
Al igual que en comando anterior consultad las páginas del manual y probad distintas
opciones.
La orden head es complementaria de la anterior, pues permite visualizar el comienzo de un
fichero. Por defecto visualiza las 10 primeras líneas. Se utilizan argumentos muy parecidos
a los de la orden tail. Leed el man y comprobad las distintas opciones.
FIN DE LA PRÁCTICA 1
6
Descargar