Reporte S.O.
Reporte S.O.
Reporte S.O.
INTRODUCCION A LINUX
ALUMNOS:
TORRES HERNANDEZ OSCAR OSVALDO
AYALA HERNANDEZ EDUARDO
GONZALEZ PLIEGO GEORGE EDUARDO
PROFESOR:
SISTEMAS OPERATIVOS
4CV2
Desarrollo de la Practica
Ubuntu 10.4
En el escritorio se encuentran dos entornos:
• GNOME (Es el que utiliza Ubuntu)
• KDE
• Súper usuario o Administrador (el login siempre es root). Sólo existe un usuario en unix y en
linux. Siempre tiene el signo de #
• Usuarios regulares. Tiene el signo de $ ó >
• Usuarios sin privilegios. Tiene el signo de $ ó >
~$ cat
Muestra el contenido del archivo en pantalla en forma continua, el prompt retornará una vez mostrado
el contenido de todo el archivo. Permite concatenar uno o mas archivos de texto.
Sintaxis: cat nom_archivo.
~$ clear
Limpia la pantalla, y coloca el prompt al principio de la misma.
Sintaxis: clear.
~$ df
Muestra los sistemas de ficheros montados.
Sintaxis: df
~$ du
Sirve para ver lo que me ocupa cada directorio dentro del directorio en el que me encuentro y el tamaño
total.
Sintaxis: du
~$ echo
Muestra un mensaje por pantalla.
Sintaxis: echo “Cadena”.
~$ history
Lista los más recientes comandos que se han introducido en la ventana. Es utilizado para repetir
comandos ya tipeados, con el comando !.
Sintaxis: history
~$ ifconfig
Nos sirve para obtener información de la configuración de red.
Sintaxis: ifconfig.
~$ job
Lista los procesos que se están ejecutando en segundo plano.
Sintaxis: jobs
~$ kill
Permite interactuar con cualquier proceso mandando señales.Kill (pid) termina un proceso y Kill -9
(pid) fuerza a terminar un proceso en caso de que la anterior opción falle.
Sintaxis: kill [opciones] PID.
~$ more
Muestra el archivo en pantalla. Presionando enter, se visualiza linea por linea. Presinando la barra
espaciadora, pantalla por pantalla. Si desea salir, presiona q.
Sintaxis: more nom_archivo.
~$ nano
Editor de texto para consola (sustituye a pico)
~$ pwd
Muestra el directorio actual de trabajo.
Sintaxis: pwd.
~$ tail
Este comando es utilizado para examinar las últimas líneas de un fichero.
Sintaxis: tail -count nom_archivo.
~$ top
Muestra los procesos que se ejecutan en ese momento, sabiendo los recursos que se están
consumiendo(Memoria,CPU,…).Es una mezcla del comando uptime,free y ps.
Sintaxis: top.
~$ vi
Permite editar un archivo en el directorio actual de trabajo. Es uno de los editores de texto más usado
en UNIX.
Sintaxis: vi nom_archivo.
~$ wc
Cuenta los caráteres, palabras y líneas del archivo de texto.
Sintaxis: wc nom_archivo.
Directorios
• / (raíz): Es el nivel más alto dentro de la jerarquía de directorios. De aquí cuelgan el resto de
carpetas, particiones y otros dispositivos. Es por esto que donde se instala el sistema, se
selecciona la partición deseada y se le indica que el punto de montaje es justamente /.
• /bin (binarios): Los binarios son los ejecutables de Linux. Aquí tendremos los ejecutables de
los programas propios del sistema operativo, entre ellos comandos como cp, mv, cat, chown,
etc. No es el único directorio que contiene ejecutables como veremos más adelante.
• /boot (arranque): Aquí nos encontramos los archivos necesarios para el inicio del sistema,
desde los archivos de configuración de Grub Lilo, hasta el propio kernel del sistema.
• /dev (dispositivos): Linux se basa en la simpleza y en el tratamiento homogéneo de la
información. Linux trata los dispositivos como si fueran un fichero más para facilitar el flujo de
la información. En esta carpeta tenéis los dispositivos del sistema, por ejemplo los usb, sda (o
hda) con sus respectivos números que indican las particiones, etc.
• /etc (etcétera): Aquí se guardan los ficheros de configuración de los programas instalados, así
como ciertos scripts que se ejecutan en el inicio del sistema. Los valores de estos ficheros de
configuración pueden ser complementados o sustituidos por los ficheros de configuración de
usuario que cada uno tiene en su respectivo “home” (carpeta personal).
• /home (hogar): Este hogar no es más que un directorio que a su vez contiene otros, uno por
cada usuario dado de alta en el sistema. Dentro de dichos directorios es donde el usuario tiene
su carpeta personal, donde están los ficheros de configuración de usuario, así como los archivos
personales del mismo que puede crear, modificar y eliminar bajo su propio criterio.
• /lib (bibliotecas): Contiene las bibliotecas (tambien mal conocidas como librerías) del sistema,
así como módulos y controladores (drivers).
• /lost+found (perdido y encontrado): Es una carpeta que nos podemos encontrar en todas las
particiones. Cuando por cualquier circunstancia se cierra mal el sistema (un apagón por
ejemplo), cuando éste se reinicie comprobaréis que se llamará al programa fsck para restaurar la
integridad del sistema de ficheros. En esta carpeta encontraremos la información que se mal-
guardó debido a la incidencia.
• /media (media/medios): Es donde se montan las unidades extraíbles como los dispositivos
USB, disqueteras, unidades de CD/DVD y en algunas distros, como Ubuntu, las particiones
adicionales.
• /mnt (montajes): Es un directorio que se suele usar para montajes temporales de unidades.
• /opt (opcionales): Destinado para guardar paquetes adicionales de aplicaciones.
• /proc: Información para la virtualización del sistema de ficheros de Linux.
• /root: Es el /home del administrador. Es el único /home que no está incluido -por defecto- en el
directorio anteriormente mencionado.
• /sbin (binarios de sistema): Son los ejecutables de administración, tales como mount, umount,
shutdown…
• /srv (servicios): Información del sistema sobre ciertos servicios que ofrece (FTP, HTTP…).
• /sys (sistema): Información sobre los dispositivos tal y como los ve el kernel Linux.
• /tmp (temporales): Es un directorio donde se almacenan ficheros temporales. Cada vez que se
inicia el sistema este directorio se limpia.
• /usr: Es el directorio padre de otros subdirectorios de importancia:
• /usr/bin: Conjunto de ejecutables de la mayoría de aplicaciones de escritorio entre otras
(por ejemplo firefox).
• /usr/include: Los ficheros cabeceras para C y C++.
• /usr/lib: Las bibliotecas para C y C++.
• /usr/local: Es otro nivel dentro que ofrece una jerarquía parecida al propio diretorio /usr.
• /usr/sbin: Otra serie de comandos administrativos para el sistema.
• /usr/share: Archivos compartidos como ficheros de configuración, imágenes, iconos,
etc.
• /usr/src: Tiene en su interior el código fuente para el kernel LInux.
• var: Ficheros de sistema como el buffer de impresión, logs…
• /var/cache: Se almacenan datos cacheados para las aplicaciones.
• /var/lib: Información sobre el estado actual de las aplicaciones, modificable por las
propias aplicaciones.
• /var/lock: Ficheros que se encargan de que un recurso sólo sea usado por una aplicación
determinada que ha pedido su exclusividad, hasta que ésta lo libere.
• /var/log: Es uno de los subdirectorios más importantes ya que aquí se guardan todo tipo
de logs del sistema.
• /var/mail: Los correos de los usuarios.
• /var/opt: Datos usados por los paquetes almacenados en /opt.
• /var/run: Información sobre el sistema desde que se inició.
• /var/spool: Datos esperando a que sean tratados por algún tipo de proceso.
• /var/tmp: Otro fichero temporal.
Permisos
En cualquier sistema operativo necesitamos que los ficheros que guardamos en nuestro disco puedan
tener una serie de propiedades que nos permitan verlos, modificarlos o ejecutarlos para los usuarios que
nosotros definamos. La idea es definir, para cada fichero o directorio, a qué usuario y grupo pertenece
y qué permisos tiene para cada uno de ellos y para el resto de usuarios del sistema. Ejecutando “ls -l”
veremos como por cada archivo del directorio donde estemos aparece una línea parecida a la siguiente:
Carácter 1:
Esta entrada nos indica si es un fichero o un directorio. En caso de ser un fichero aparece el carácter
“-”, mientras que para los directorios aparece una “d”.
Caracteres 2,3,4:
Nos indican, respectivamente, los permisos de lectura, escritura y ejecución para el propietario del
fichero. En caso de no tener el permiso correspondiente activado encontramos el carácter “-” y sino“r”,
“w” o “x” según si lo podemos leer (Read), escribir (Write) o ejecutar (eXecute). En el tercer carácter,
además, podemos encontrarnosuna “s”, que nos indica si el archivo es de tipo Set User Id, que quiere
decir que al ejecutarlo obtendrá los permisos del propietario del fichero. Si sólo tiene el permiso “x”,
cuando el programa se ejecuta lo hace con los permisos de quién lo haya lanzado.
Caracteres 5,6,7:
Estos caracteres tienen exactamente el mismo significado que anteriormente pero haciendo referencia a
los permisos dados para los usuarios del grupo al que pertenece el fichero.
Caracteres 8,9,10:
Igual que en el caso anterior pero para todos los demás usuarios del sistema.
Después de estos 10 caracteres encontramos un número que nos indica el número de enlaces fuertes
que tiene el fichero. Para los directorios, este número indica cuántas carpetas hay dentro de él además
de los enlaces fuertes que tiene(cuando no hay ninguno, el número es 2 debido a la gestión interna del
Sistema Operativo).
A continuación vemos el propietario y el grupo del archivo, seguido del tamaño (en bytes) que ocupa y
la fecha de la ultima modificación. En todos los ficheros se guarda su fecha de creación, ultimo acceso
y modificación, que podemos manipular con el comando touch. Al final está el nombre del fichero,
dónde se diferencian minúsculas de mayúsculas y podemos tener todo tipo de caracteres sin ningún
problema.
Para cambiar los permisos de un determinado archivo podemos utilizar el comando chmod. Debemos
tener en cuenta que sólo el propietario del archivo (o el root) puede cambiar estos permisos ya que sino
todo el mecanismo no tendría ningún sentido. Podemos utilizar este comando de muchas formas
diferentes, pero las dos más frecuentes son las siguientes:
La primera forma de utilizarlo es del estilo “chmod XXX nombreArchivo”.Las “X” deben ser tres
números entre 0 y 7. El primer número indica los permisos que queremos establecer para el usuario, el
segundo para el grupo y el tercer para los demás. Para interpretar correctamente los permisos que
daremos utilizando los números del 0 al 7 debemos utilizarla representación binaria del número en
cuestión, de forma que el primer dígito indicará el permiso de escritura, el segundo el de lectura y el
tercero el de ejecución. En cada caso un 0, indica que nos e da el permiso en cuestión y el 1 que sí.
En la siguiente tabla podemos ver esta relación:
Representación decimal Representación binaria Significado
0 .0000 ----
1 .0001 ---x
2 .0010 --w-
3 . 0011 --wx
4 .0100 -r--
5 .0101 -r-x
6 . 0110 -rw-
7 . 0111 -rwx
La otra forma de utilizar el comando es indicando de forma explícita qué permiso queremos dar o
quitar del fichero. La forma de hacerlo es indicando, primero, si nos referimos a los permisos del
usuario, grupo o a todos los otros con las letras “u”,“g” u “o” respectivamente. Seguidamente debemos
añadir un “+” o “-” según si queremos añadir o eliminar el atributo, que indicaremos con “r”, “w”, “x”
o “s” (éste ultimo para el SetUserId). Además, podemos hacer todas las combinaciones posibles,
refiriéndonos a más de un permiso y/o usuarios. Por ejemplo, “chmod go+r gpl.txt” dará el permiso de
lectura al grupo y a todos los otros usuarios para el fichero gpl.txt.
Para cambiar el propietario de un fichero existe el comando chown, que sólo lo puede utilizar el root
por razones de seguridad. Para cambiar el grupo de un determinado archivo se puede utilizar el
comando chgrp. Como podemos suponer, cuando un usuario crea un nuevo archivo, el sistema pone
como propietario el usuario que lo ha creado y perteneciente al grupo primario del mismo usuario. Los
permisos que se ponen por defecto al crear un nuevo archivo los podemos configurar con el comando
umask, que le debemos pasar la misma notación de tres números decimales entre 0 y 7 que veíamos
anteriormente pero complementados. Por ejemplo, si queremos que nuestros ficheros se inicialicen con
los permisos “rw-r--r--” deberíamos escribir “umask 133”.
La otra forma de utilizar el comando es indicando de forma explícita qué permiso queremos dar o
quitar del fichero. La forma de hacerlo es indicando, primero, si nos referimos a los permisos del
usuario, grupo o a todos los otros con las letras “u”,“g” u “o” respectivamente. Seguidamente debemos
añadir un “+” o “-” según si queremos añadir o eliminar el atributo, que indicaremos con “r”, “w”, “x”
o “s” (éste ultimo para el SetUserId). Además, podemos hacer todas las combinaciones posibles,
refiriéndonos a más de un permiso y/o usuarios. Por ejemplo, “chmod go+r gpl.txt” dará el permiso de
lectura al grupo y a todos los otros usuarios para el fichero gpl.txt.