0% encontró este documento útil (0 votos)
110 vistas15 páginas

Linux Comandos

Este documento describe comandos básicos de Linux para manipular archivos y directorios. Explica la estructura de directorios en Linux y conceptos como inodos y metacaracteres. También cubre comandos como cat para visualizar archivos, cp para copiar, mv para mover y renombrar, y rm para eliminar archivos y directorios.
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)
110 vistas15 páginas

Linux Comandos

Este documento describe comandos básicos de Linux para manipular archivos y directorios. Explica la estructura de directorios en Linux y conceptos como inodos y metacaracteres. También cubre comandos como cat para visualizar archivos, cp para copiar, mv para mover y renombrar, y rm para eliminar archivos y directorios.
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

Modulo S.O. en Red.

LINUX

TEMA 1 : Sistema de Ficheros


TRABAJAR CON LA SHELL
Se accede al intérprete de comandos bash a través del icono (monitor y concha) de la barra de tareas y
por las consolas virtuales <ALT> F1 a F6.
Los comandos se introducen según la sintaxis: comando [-opciones] archivos
Se ejecutarán al pulsar <intro>.
Se puede acceder al historial al pulsar las flechas de arriba y abajo.
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. Los nombres en
mayúsculas son distintos al mismo en minúsculas. Pueden ser largos
Se pueden usar metacaracteres, también llamados comodines o wildcards, son caracteres que tienen un
significado especial para el shell.

> Redireccionamiento 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 que se introduzca el carácter especificado.
2> Redirección de la salida de error.
| Inteconexió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], o bien por un conjunto
de caracteres ([123]).
; Ejecución secuencial de órdenes
& Ejecución paralela o desatendida (background)
\ Anula interpretación de un carácter especial
`---` Fuerza la ejecución de órdenes de shell
# Introduce comentarios

ARCHIVOS y DIRECTORIOS

La estructura de archivos en Linux es la siguiente:

bin boot dev etc home lib sbin root opt proc mnt tmp usr var srv

Directorio Descripción
/bin Archivos ejecutables o del sistema para el arranque
/boot Ubicación del kernel e información de arranque
/dev Archivos de dispositivos ó drivers
/etc Archivos de configuración del sistema
/home Ubicación de los directorios de usuario
/sbin Comandos ejecutables sólo por el administrador y necesarios durante el arranque
/home Directorio de usuarios
/lib Librerías del sistema
/opt Lugar donde se instala el software opcional, paquetes grandes
/proc Sistema de archivos de procesos ó estructura virtual de ficheros

1
Modulo S.O. en Red. LINUX

/tmp Ficheros temporales


/mnt Directorio reservado para el montaje de dispositivos
/usr Archivos de configuración y programas usados por el sistema y aplicaciones
/var Archivos de configuración e históricos del sistema
/srv Contiene los directorios www y ftp, donde se ubica el inicio de apache y ftp anónimo

Conceptos básicos sobre ficheros. Manipulación.

Un fichero es una secuencia de bytes, y que forma parte de una estructura llamada Sistema de Ficheros.

Atendiendo a su contenido pueden ser de dos tipos :


 Fichero Ascii o de texto. Pueden ser leídos y exportados fácilmente a otros sistemas
operativos.
 Ficheros binarios o no Ascii. Normalmente son los ejecutables.

Atendiendo a su utilización, pueden ser de tres tipos :


 Ordinarios. Se utilizan para almacenar la información (texto, Datos o programas) de los
usuarios o del propio sistema.
 Directorios. Se utilizan para referenciar un conjunto de ficheros y/o directorios.
 Drivers o Controladores. Se utilizan para simular o referenciar a dispositivos físicos.

En Unix, las normas para el nombrado de ficheros son las siguientes :


 Un nombre de Fichero puede tener de 1 a 14 caracteres.
 No se permiten los caracteres : / ? * [ ] ‘ “ ` $ # | \ ; & { } .....etc ni caracteres de control.
 Unix distingue entre mayúsculas y minúsculas. Se recomienda utilizar siempre minúsculas.
 No existe extensión. Pueden haber varios puntos. Se recomienda utilizar nombres con un
punto y a continuación algo que indique el tipo de fichero de que se trata.

Soporte de los Ficheros.

Un fichero posee varios componentes : Nombre, Contenido e Información propia (fecha de creación,
fecha de último acceso, permisos, dirección de almacenamiento, etc...).

En Unix la información relativa a los ficheros está en las Tablas de Nodos de Indices. También llamadas
INODES o NODOS-I.

Las tablas de inodes soportan la información administrativa de los ficheros, son gestionadas
directamente por el sistema y son creadas al crear un Sistema de Ficheros, bien sea en la instalación o
al crear otro.

Un inode es un registro de esta tabla y contiene información administrativa de cada fichero :


 Identificador de Grupo.
 Identificador de Usuario.
 Permisos.
 Fecha y hora de la última modificación.
 Fecha y hora del último acceso.
 Número de enlaces.
 Tipo de fichero (ordinario, directorio, driver de caracteres, driver de bloques).
 Puntero hacia los bloques de disco que contienen la información contenida en el fichero.

El tamaño de los inodos se asigna en la instalación. Normalmente los inodos van cada 4096 bytes,
2048, 1024. Su elección dependerá del espacio en disco disponible. A menor espacio en disco se debe
elegir, menor tamaño de inodo, ya que cada vez que se crea un fichero, por pequeño que sea, se usa uno.
Por defecto 1 inodo = 4096 bytes. Con este tamaño de inodo los bloques tienen 102424 bytes.

2
Modulo S.O. en Red. LINUX

4.3 Ordenes básicas de manipulación y Gestión de Ficheros.

cat. Visualiza el contenido de los ficheros.


Sintaxis : cat [-opciones] fichero1 fichero2 .......
El funcionamiento de esta orden es el siguiente : Lee secuencialmente cada archivo de entrada y lo
escribe en la salida estándar, la referencia de la orden concatenar establece un grupo de archivos en una
sola salida. Otros usos de esta orden permiten : crear, copiar, concatenar o encolar los datos contenidos
en los ficheros.
Opciones :
-b. Numera todas las líneas de salida, menos las que están en blanco, comenzando por 1.
-n. Numera todas las líneas de salida.
-s Reemplaza múltiples líneas en blanco adyacentes en una sola línea.
-v Muestra los caracteres de control.
-T Muestra las tabulaciones con ^I.

Variantes en el uso de cat, redireccionamientos :


cat Sin ninguna entrada produce el efecto eco.
cat fichero Es el uso normal de esta orden. Muestra el contenido en la salida estándar.
cat > fichero Crea un fichero con lo que se escriba desde el terminal. Se termina con ^d.
cat fichero1 > fichero2 Copia fichero1 en fichero2. Si había algo en fichero2 desaparecerá.
cat fichero1 fichero2 > fichero3 Concatena fichero1 y fichero2 y los almacena en
fichero3, permaneciendo invariables los dos primeros.
cat fichero1 >> fichero2 Encola o añade fichero1 en fichero2, el primero permanece
intacto.

cp. Copia ficheros. El nombre del fichero puede contener el camino absoluto desde el raiz para copiar
entre subdirectorios.
Sintaxis : cp [-opciones] origen destino
cp [-opciones] origen1 origen2 directorio_destino
La segunda sintaxis de ‘cp’, copia varios archivos en un directorio dado.
Los permisos asignados del archivo también se copian.
Si el destino es un directorio, entonces son copiados sin cambiar el nombre. Si se quiere copiar en el
propio directorio es necesario especificar otro nombre, y si este fichero existe su contenido será
reemplazado.
Opciones :
-a Mantiene la misma estructura y atributos del archivo original.
-b Crea copias de seguridad de archivos que van a ser sobreescritos o borrados.
-r Copia directorios recursivamente.
-u No copia archivos si ya existen.
-v Imprime el nombre de cada archivo antes de ser copiado.

mv. Cambia el nombre a un fichero o directorio.


Sintaxis : mv [-f] fichero1 fichero2
mv [-f] fichero1 fichero2 ..... directorio
En la primera sintaxis fichero1 es el nombre original de un archivo o directorio y fichero2 es el nuevo
nombre.
La segunda sintaxis de ‘mv’ permite mover ficheros entre directorios.
La opción -f ejecuta la tarea sin hacer preguntas.

rm. Elimina archivos o directorios.


Sintaxis : rm [-opciones] fichero1 fichero2 ......
Si el nombre del fichero es un directorio obligatoriamente debe utilizarse la opción ‘-r’.
Opciones :
-f . Borra archivos sin formular preguntas.
-r. Permite aceptar nombres de directorios como argumentos, y realiza un borrado recursivo del
mismo. Atención a esta opción que puede ser peligrosa.
-i. Borra archivos solicitando confirmación para cada uno antes de borrarlo.

3
Modulo S.O. en Red. LINUX

cmp : Compara el contenido de dos archivos.


Sintaxis : cmp [-opciones] archivo1 archivo2
Este comando compara los dos archivos especificados. Por defecto informa sobre la localización de la
primera diferencia, si existe. Si los archivos son iguales, no aparece ningún comentario. Si son
diferentes, indicará el octeto y el número de línea donde se encuentra la diferencia. La orden facilita los
códigos siguientes : 0 si los archivos son idénticos, 1 si son diferentes, 2 si un archivo es inaccesible o
no se ha especificado correctamente.
Opciones :
-l. Imprime el número del octeto en decimal, y los octetos diferentes en octal por cada
diferencia encontrada.
-s. No imprime las diferencias encontradas.

find : Busca ficheros recursivamente a partir del nodo que se especifique.


Sintaxis : find nodo_ruta criterio_nombre_expresión acción
El nodo-ruta especifica a partir de dónde buscar los archivos (camino).
El criterio indica cómo seleccionar los archivos, si es por el nombre solamente o es por otro criterio
cualquiera.
La acción es referida a, qué hacer con los ficheros seleccionados.
Criterios :
-name fichero. Busca ficheros con nombre fichero.
-type f. Busca ficheros ordinarios.
-type d. Busca directorios.
-user nombre. Busca ficheros cuyo propietario sea nombre.
-group nombre. Busca ficheros cuyo grupo sea nombre.
-links +n. Busca ficheros con más de n enlaces.
-atime -n. Busca ficheros a los que se ha accedido hace menos de n días.
Acciones :
-print. Visualiza el nombre y la ruta del fichero.
-exec comando {}\; El comando se ejecuta por cada archivo comparado. Se utiliza la
notación {} para indicar dónde debe aparecer el nombre del archivo en el comando ejecutado.
El comando debe terminarse por una barra inclinada inversa seguida de punto y coma.
Ejemplos :
find / -name fic -exec ls -l {}\; Busca ficheros llamados fic y ejecuta un listado largo de ellos.
De tal forma que, el comando ls se ejecuta con el argumento -l y cada archivo se pasa a ls en la
posición dónde se encuentran {}.
find / -name fic -type f -user bin -print Busca en todo el disco duro los ficheros
ordinarios que se llamen fic y tengan como propietario a user y visualiza su nombre y la ruta.

ln : Establece un enlace o vínculo entre dos ficheros . De manera que al actualizar uno de ellos los
cambios se producirán en los dos.
Sintaxis : ln [-opciones] fichero_exitente fichero_nuevo
Opciones :
-v. Imprime el nombre del archivo antes de enlazarlo.
-f. Borra archivos existentes en destino.
-s. Crea un enlace simbólico, como un acceso directorio
-d Crea un enlace a directorio

4.4 Organización de Directorios.

Los directorios están organizados en grafos (árbol).


Los ficheros almacenados en un directorio pueden ser de cualquier tipo : ficheros ordinarios, directorios
o ficheros drivers.
Hay un directorio que no posee antecedente o padre. Es el directorio raíz. Su símbolo es el carácter /.
Cada fichero se puede referenciar unívocamente expresando un camino hacia él, desde el directorio raiz
(camino absoluto).
Un fichero se puede referenciar desde el subárbol actual (camino relativo).
El carácter ‘/’ está reservado para la construcción de caminos y por tanto, no podrá formar parte de un
nombre de fichero.

4
Modulo S.O. en Red. LINUX

Cualquier directorio contiene dos ficheros por defecto que a su vez son directorios :
 . el propio directorio.
 .. el directorio padre o antecedente al actual.
Un fichero puede hacerse accesible desde más de un directorio mediante enlaces o cambiando la ruta de
búsqueda (Path)
Unix se organiza en Sistema de ficheros, que es el conjunto de directorios y su información necesaria,
desde su instalación. Es importante no modificar esa organización par el buen funcionamiento del
sistema, ya que, el sistema reconoce internamente determinados caminos por defecto a ficheros internos
del sistema.
Cada una de las fracciones del árbol de directorios puede ser a su vez un Sistema de Ficheros (file
system), ello posibilita la integración de la información entre sistemas o dispositivos, haciendo coincidir
esa unidad con un nodo del sistema de ficheros, árbol principal.
En la práctica, un sistema de ficheros se maneja como una unidad lógico-física, y por tanto, se suele
asignar un sistema de ficheros a cada unidad, pero no necesariamente debe ser así.

4.5 Organización de Directorios 2. Gráficos comparativos.

Estructura Jerárquica. Punto de vista del usuario :

bin var dev etc lib home usr

primi1 primi2 primi3


ttyS hda tty lp0

ejemplos bin

La estructura Jerárquica viene determinada por el contenido de los directorios.


La lista de directorios que hay que recorrer desde el directorio raíz se denomina vía o ruta. En
el gráfico anterior, la vía de acceso al directorio ‘ejemplos’ , sería : /home/primi1/ejemplos

Estructura Jerárquica. Punto de vista de Unix.

Directorio raíz Directorio dev Directorio home


1 . 2 . 3 .
1 .. 1 .. 1 ..
2 dev 34 ttyp1 278 primi1
3 home 108 hda1 987 os2
4 etc

Nº Inodo Nombre Directorio

Directorio ejemplos Directorio primi1 Directorio os2


583 . 278 . 987 .
278 .. 3 .. 3 ..
408 ejemplo1 39 .profile
922 ejemplo2 583 ejemplos

Estructura Jerárquica. Enlaces. Punto de vista Usuario : home

primi1 primi2 primi3

ejem1 ejemplo

5
Modulo S.O. en Red. LINUX

ejemplos bin

ejem1
Punto de vista Unix :
Directorio ejemplos Directorio primi2 Directorio primi3
583 . 278 . 987 .
278 .. 3 .. 3 ..
408 ejemplo2 39 .profile 922 ejemplo
922 ejem1 922 ejem1

En la figura ‘ejem1’ y ‘ejemplo’ son ficheros enlazados. Hacen referencia al mismo fichero. Esto es, si el
usuario altera los contenidos de ‘ejemplo’, los dos ficheros llamados ‘ejem1’ observarán estas
modificaciones.

4.6 Ordenes básicas en la gestión de directorios.

pwd : Muestra el nombre del directorio actual.


Sintaxis : pwd

cd : Cambia el directorio actual.


Sintaxis : cd [directorio]
Directorio es un argumento opcional. Si no se especifica al acción por defecto es cambiar al directorio de
usuario.

mkdir : Crea uno o varios directorios especificados.


Sintaxis : mkdir [-opciones] directorio1 directorio 2 .......
Opciones :
-m modalidad. Establece los permisos de directorio a modalidad en el momento de creación.

rmdir : Elimina directorios que están vacíos.


Sintaxis : rmdir [-p] directorio1 directorio2 .......
Opciones :
-p. Muestra al finalizar la ejecución de la orden, un resumen sobre los directorios que se han
borrado y los que no.

Organización de Usuarios.

Como hemos podido comprobar hay una organización de directorios y otra que es el sistema de ficheros.
Pues bien, superpuesta a estas dos organizaciones hay una tercera que es la organización de usuarios del
sistema.
Los objetivos de la organización de usuarios son :
 Protección de uso de la Información, evitando de esta forma usos indebidos.
 Adaptación del entorno de trabajo de cada usuario a sus necesidades específicas.

El Unix es un sistema multiusuario, de manera que, un usuario puede ser entendido como ‘Una unidad
de uso del sistema’.
Cada usuario del sistema tiene asociado, asignado por el administrador del sistema (root) :
 Un identificador o nombre de Usuario : Login.
 Una clave de acceso al entorno : Password.
 Un directorio de trabajo : Home (La casa de ese usuario)
 Un buzón de comunicación con otros usuarios : mail.

6
Modulo S.O. en Red. LINUX

 Un fichero de configuración de su entorno de trabajo : .profile (debe estar situado en el


directorio home)
 Pertenece a un grupo de usuarios para compartir recursos.
 Un shell asignado en el momento de la creación del usuario por parte del Administrador del
sistema o superusuario.
Unix reserva identificadores numéricos de usuario desde el 0 hasta el 500 para los usuarios del propio
sistema. En otras versiones de Unix solamente hasta el 200.
El usuario 0 llamado superusuario (root) es el que tiene los máximos derechos de acceso y ejecución.
Cada grupo tiene asociado un identificador de grupo. Los identificadores numéricos de grupo, desde el 0
hasta el 100 (hasta el 50 en otras versiones), están reservados al sistema operativo. Los usuarios creados
por defecto se les asigna el grupo 100 y el nombre es users , group en otras versiones.
Para cada usuario existe una casa (home), que es su directorio de trabajo. Cuando un usuario accede al
sistema accede a este directorio. Un usuario puede crear más directorios hijos de este.
Los directorios de trabajo de cada usuario, en el sistema Linux, están situados en el directorio home
(/home/nombre_usuario). En otros sistemas, como en el SCO System V, están situados en el directorio
usr (/usr/nombre_usuario).

Los ficheros de configuración .profile, /etc/profile, .bashrc y /etc/[Link]

El fichero ‘.profile’ es un shell-script de inicialización del entorno de usuario. Un shell-script o script


es un fichero que contiene órdenes de shell, permitiendo explotación batch o por lotes.
Uno de los mejores ejemplos de script es, precisamente el .profile, que cada usuario posee
individualmente en su directorio home.
El fichero .profile es un script estándar ejecutado por el sistema durante el acceso de un usuario. Se
utiliza para configurar las sesiones de trabajo de acuerdo con las preferencias propias de cada usuario y
para definir o crear algunas variables de entorno que las órdenes que utiliza ese usuario esperan
encontrar. Cada usuario debe mantener este fichero según sus necesidades.
Aunque parece que solamente se ejecuta el script ‘.profile’ del usuario, la realidad es que se ejecutan
dos.
El script /etc/profile es propiedad del sistema y se ejecuta antes del .profile de cada usuario. Se utiliza
para preparar el entorno de todos los usuarios, de acuerdo con unas características globales. Por tanto
afecta a todos los usuarios.
El fichero /etc/profile puede ser leído por los usuarios. Cualquier modificación de este fichero la debe
realizar el Administrador del sistema, porque modificará el entorno de todos los usuarios globalmente.

El archivo .bashrc al igual que .profile es un archivo de configuración de usuario. Con la diferencia que
se ejecuta cada vez que el usuario abre una sesión de terminal, tipo ventana.

El archivo /etc/[Link] al igual que su homólogo /etc/profile se lanza cada vez que se ejecuta el
bash.

Para el inicio visual, existe un directorio denominado .config, situado en cada directorio de usuario,
donde se almacena las opciones de inicio de cada sesión gnome. Si se quiere ejecutar un script desde el
arranque visual, se debe usar la opción al respecto Aplicaciones/Herramientas del Sistema/Preferencias/
Aplicaciones al inicio. Estas aplicaciones se ubican en el archivo [Link] situado en el
directorio .config/autostart de cada usuario.

Derechos de uso de ficheros. Permisos.

Para que un usuario pueda acceder a un determinado fichero, es necesario que tenga habilitado el
permiso de acceso. Se puede tener alguno de ellos, todos o ninguno.
Los permisos de acceso o derechos de uso de ficheros son :
r . Permiso de lectura. Significa que se puede mirar el contenido. Si se trata de un directorio que se
puede ver la lista de ficheros de ese directorio.
w . Permiso de escritura. Significa que se puede cambiar el contenido. Si es un directorio que se pueden
borrar y crear ficheros dentro de ese directorio.
x . Permiso de ejecución. Se puede ejecutar el fichero, este permiso es imprescindible si se quiere
ejecutar un script. Si es un directorio, quien tiene el permiso, entonces significa que se pueden buscar y
copiar ficheros de ese directorio.

7
Modulo S.O. en Red. LINUX

Las entidades que disfrutan de estos derechos son :


u . Usuario. También conocido como propietario, es el usuario que creó el fichero.
g . Grupo. Grupo al que pertenece el propietario. El grupo determina el dominio.
o . Otros. Son los demás usuarios que no pertenecen a este grupo.

Los permisos son atributos de cada fichero, están almacenados en la tabla de inodes. Los atributos de un
fichero se pueden conocer mediante la orden : ls -l . Orden que muestra el listado largo de los
ficheros del directorio y que produce la siguiente salida por pantalla :

drwxr-xr-x 2 root bin 2048 Oct 22 21:48 bin/


drwxr-xr-x 2 root root 1024 May 10 00:29 boot/
drwxr-xr-x 2 root root 8192 Nov 3 00:44 dev/
drwxr-xr-x 41 root root 16384 Jan 1 1970 dosc/
drwxr-xr-x 9 root root 2048 Nov 3 00:44 etc/
drwxr-xr-x 4 root root 1024 Oct 22 21:12 home/

Dejemos la primera columna para el final y pasemos a estudiar con detalle esta salida :
2ª columna. Muestra el número de enlaces que tiene un fichero o directorio.
3ª columna. Muestra el propietario del fichero.
4ª columna. Indica a qué grupo pertenece el fichero.
5ª columna. Es el tamaño en bytes del fichero o directorio.
6ª columna. Es la fecha, y en algunos caso la hora, de la última modificación.
7ª columna. Es el nombre del fichero o directorio.
Volvamos a la primera columna. Muestra los atributos de cada fichero. Están representados mediante
una cadena de 10 caracteres.
Los atributos de los ficheros son de dos tipos :
 Tipo de fichero. Está representado en el primer carácter.
 Permisos. Se representan por los siguientes nueve caracteres.

La cadena de atributos tiene la siguiente estructura :


Tipo Usuario/Propietario Grupo propietario Otros
- r w x r w x r w x
El primer carácter de la cadena representa el tipo de fichero, que puede ser :
 El ‘-‘ (guión) indica que se trata de un archivo ordinario.
 La ‘d’ indica que es un fichero de entrada a un directorio.
 La ‘b’ indica que es un fichero driver de bloques (disquetera).
 La ‘c’ indica que es un fichero driver de caracteres.
 Existen otros que varían según la versión de Unix. Para conocerlos se deberá consultar el
manual del administrador del sistema concreto.

Los restantes nueve caracteres son una representación simbólica de los derechos de uso o permisos de
ese fichero, relativos a las tres entidades que disfrutan de esos derechos, usuario, propietario, grupo y
otros.
Estos nueve caracteres se dividen en tres grupos, de tres caracteres cada uno, para representar los
derechos de lectura, escritura o ejecución de cada entidad, que no son excluyentes.
Cada uno de estos grupos podrá tener, en las posiciones correspondientes :
 El ‘- ‘ (guión) representa que no está habilitado el permiso.
 La ‘r’ indica que tiene habilitado el permiso de lectura.
 La ‘w’ indica que tiene habilitado el permiso de escritura.
 La ‘x’ indica que tiene habilitado el permiso de ejecución.
Los derechos de uso de ficheros son, por tanto, combinaciones entre los tres tipos de permisos y las tres
entidades que los disfrutan.

Veamos un ejemplo. Tenemos un fichero cuyo listado largo muestra :


-rwxr-x--- 4 primi1 users 1024 Oct 22 21:12 prueba
El fichero ordinario ‘prueba’ tiene los siguientes permisos :

8
Modulo S.O. en Red. LINUX

 El propietario, que es primi1, puede : leer, modificar ejecutar el programa.


 Los miembros del grupo del propietario, que es users, solo pueden leer y ejecutar el
programa.
 Los otros usuarios del sistema, no pueden acceder al fichero prueba.
Además tiene 4 enlaces, fue modificado por última vez el 22 de Octubre del presente año a las 21 :12
horas y tiene un tamaño de 1024 bytes.

Ordenes básicas de gestión de usuarios.

who : Muestra los identificadores de los usuarios que actualmente están trabajando con el sistema.
Sintaxis : who [-opciones]
La acción por defecto de esta orden es proporcionar una lista de quienes son los usuarios, que están
conectados al sistema en ese momento.
Opciones :
-u Informa de los usuarios que están actualmente en el sistema.
-q Muestra sólo el nombre de los usuarios conectados y el número total de ellos.
-T Indica si el terminal permite que los usuarios envíen mensajes al mismo. ‘A+’ indica que se
puede escribir en el terminal. ’A-‘ indica que no se puede escribir en el mismo.
Existe una variante de who que es : who am i . Que como la traducción literal indica ‘quién soy
yo’, muestra el usuario que ejecuta esta orden.

tty : Informa del nombre del dispositivo del terminal con el que actualmente está trabajando o prueba si
la entrada estándar es un terminal .
Sintaxis : tty [-s]
La acción por defecto es mostrar el nombre del dispositivo del terminal. Con la opción ‘-s’ tty
comprueba si la entrada estándar es o no un terminal.

su : Cambia a un entorno de trabajo de otro usuario.


Sintaxis : su [nombre de usuario]
La acción por defecto es cambiar al superusuario. En ambos casos preguntará la clave de acceso a ese
usuario.

chown : Cambia el usuario propietario de uno o varios ficheros.


Sintaxis : chown [-opciones] propietario fichero1 fichero2 .......
Opciones :
-R Cambia de forma recursiva la propiedad de los directorios y sus contenidos.
-v Describe en detalle los cambios de propiedad.
-c Describe en detalle sólo los archivos cuya propiedad cambia.
La propiedad del archivo, en Linux, sólo la puede cambiar el superusuario.

chgrp : Cambia el grupo propietario de los ficheros especificados.


Sintaxis : chgrp [-opciones] nuevo_grupo fichero1 fichero2 ..........
Opciones :
-R Cambia de forma recursiva la propiedad de los directorios y sus contenidos.
-v Describe en detalle los cambios de propiedad.
-c Describe en detalle sólo los archivos cuya propiedad cambia.
No se puede cambiar la propiedad de grupo un archivo a no ser que sea el propietario del mismo o el
superusuario.

chmod : Cambia los permisos de acceso a uno o varios ficheros o directorios.


Sintaxis : chmod [-opciones] modalidad fichero1 fichero2 ..........
Opciones :
-R Cambia de forma recursiva los permisos de los directorios y sus contenidos.
-v Describe en detalle los permisos cambiados.
-c Describe en detalle sólo los archivos cuyos permisos cambian.
Existen dos formas de cambiar la modalidad a un archivo :
Modo simbólico : Existen tres niveles en el cambio de permisos, representados por : u,g,o,a. Dónde ‘u’
representa al propietario, ‘g’ representa al grupo , ‘o’ representa a los otros usuarios del sistema y ‘a’ los
representa a todos. Para agregar un permiso se utiliza el signo + , par eliminar un permiso se usa el

9
Modulo S.O. en Red. LINUX

signo - y para dejar como estaba el permiso el signo =. De tal forma que, si queremos dar permiso de
todo a un fichero, la forma sería :
chmod u+r+w+x, g+r+w+x, o+r+w+x fichero ó chmod a+rwx fichero ó chmod +x fichero
En este último caso lo único que estamos haciendo es darle permiso de ejecución al fichero. Es
necesario recordar que un script no se puede ejecutar si no tiene activado este permiso.
También se puede dar permisos o quitar de forma selectiva, por ejemplo :
chmod u+w, g-wx, o=r fichero De esta forma damos permiso de escritura al propietario. Le
quitamos al grupo los permisos de escritura, ejecución y a los otros les dejamos como están.

Modo octal : Esta es conocida también como modalidad numérica, consiste en dar 3 números, en otras
ocasiones 4. Cada número, en octal , establece un byte en el campo de modalidad almacenado en la
tabla de inode del sistema de archivos. Veamos como podemos calcular y utilizar esta modalidad :
Queremos obtener los siguientes permisos : rwxr—r-x para representar estos permisos en octal
tenemos que realizar los siguientes cálculos :
r w x r - - r - x

2 =4 2 =2 2 =1 2 =4 0 0
2 1 0 2
2 =4 0
2
2 =1
0

4+2+1=7 4+0+0=4 4+0+1=5


La orden que habría que dar para dar estos permisos sería : chmod 745 fichero ó directorio.

umask : Cambia la máscar de creación de ficheros. Se entiende por tal a un número de tres dígitos, en
octal, cada unos de los cuales pertenece a un grupo de permisos
Sintaxis : umask [d1d2d3]
La acción por defecto que realiza es mostrar la máscara actual. La máscara queda activa hasta que
finaliza la sesión de trabajo. El cálculo de estos tres dígitos se realiza de idéntica forma que en chmod,
con la única diferencia que en esta orden hay que dar el número octal de los permisos que queremos
quitar. De tal forma que para poner los permisos :
rwxr-xr-- Tenemos que dar el número octal 023 Veamos cómo ;
r w x r - x r - -

0 0 0 0 2 =2 0 1
0 2 =2 2 =1
1 0

0+0+0=0 0+2+0=2 0+2+1=3


Recordar que el permiso de ejecución para que sea visible, o tenga sentido debe ser un fichero ejecutable.

Dispositivos.

Hasta ahora se han estudiado los ficheros ordinarios y los directorios, pero existe un tercer tipo de
ficheros. Los ficheros driver o controladores de dispositivos, o dispositivos.
La idea de fichero de dispositivo es una idea original de Unix. La definición podría ser la interfaz o
conexión entre un dispositivo físico (hardware) y el sistema operativo, necesaria para la realización de
operaciones con ese dispositivo. Unix la realiza mediante un fichero, que representa un canal de E/S.
En Unix, toda operación de E/S se realiza sobre un fichero de dispositivo. Por ejemplo, la orden :

tty muestra /dev/tty01


lo que devuelve es el nombre del canal de E/S asociado al terminal donde se ha ejecutado esta orden. Es
decir, devuelve el nombre del fichero de dispositivo que representa ese terminal. En realidad, cuando
escribamos sobre este fichero se estará escribiendo en el terminal. Este fichero se encuentra en /dev ,
como todos los ficheros de dispositivo. Al ejecutar la siguiente orden :
ls /dev/tty*
aparecerán todos los ficheros de dispositivo relativos a terminales. Nótese que el primer carácter de los
atributos es una c, ya que son ficheros de dispositivo de caracteres.
Existen dos tipos de ficheros de dispositivos, porque existen dos tipos de dispositivos periféricos :
 Dispositivos de caracteres, (El atributo es una ‘c’) se accede carácter a carácter. Son los
terminales, impresoras, líneas telefónicas, etc.

10
Modulo S.O. en Red. LINUX

 Dispositivos de bloques, (el atributo es una ‘b’) se accede bloque a bloque. Son los
dispositivos de almacenamiento : cintas, discos o disquetes. Los dispositivos de bloque
permiten su utilización como sistema de ficheros. Al ejecutar la orden :
ls /dev/fd*
aparecerán todos los ficheros de dispositivo relativos a las unidades de disquetes. Obsérvese
que, los ficheros /dev/fd* tiene una ‘b’ como primer carácter de los atributos.
Otros dispositivos importantes de este tipo son los /dev/sd*. Es decir sda, sdb, sdc, etc y sus
variantes sda1, sda2, etc. Estos dispositivos son los discos duros tipos sata, anteriormente eran
hda y eran dispositivos tipo ide. Estos se refieren sda al primer disco duro, sdb al segundo, etc.
si aparece un número es el número de partición.
De tal manera que /dev/sda2 es el primer disco duro, segunda partición y /dev/sdb1 es el
segundo disco duro, primera partición.
Los ficheros de dispositivo tienen permisos como cualquier otro fichero y algunos tienen como
propietario el usuario actual.

Procesos

Proceso es el resultado de la ejecución de un programa.


Los procesos describen el estado actual de la máquina. Un proceso es creado desde otro proceso. Los
procesos tienen una estructura jerárquica en árbol, como los directorios, veamos un esquema de esto:

PID= 0
sched

PID= 1
Inicializa sistema PPID= 0
init

Proceso que hace refe- PID= 23


rencia a un terminal. getty getty getty login PPID= 1

PID = 45
bash PPID= 23
Valida conexión login

PID = 87
bash PPID= 45
Intérprete de comandos bash

ls -l
Cuando termine la ejecución el shell
recupera el control.

Un proceso en marcha genera procesos hijos, cada uno de los cuales se encarga de gestionar distintos
aspectos del sistema, y que a su vez, generan otros procesos hijos, hasta llegar a los generados por los
usuarios.

El proceso sched es padre de init pero también lo es de otros.


A su vez init crea y mantiene los procesos permanentes del sistema : bash, cron, gettys, xinetd, etc
Las órdenes de usuario son procesos subordinados o hijos del proceso shell, de ese usuario.

Dos tipos de procesos:


 Procesos del sistema o demonios. Son programas residentes que no ejecuta el usuario. Existen los
permanentes y los transitorios.
 Procesos de usuario. Son los procesos asociados a los comandos ejecutados por el usuario .

Principales Procesos Del Sistema.

Scheduler Es el primer proceso en ejecutarse cuando se arranca la máquina. Planifica el tiempo


compartido. Gestiona los recursos de la máquina. Arranca los procesos del kernel e init.

11
Modulo S.O. en Red. LINUX

init. Se encarga de arrancar y mantener en ejecución los procesos permanentes del


sistema(normalmente del 1 al 7), de acuerdo con el contenido del fichero /etc/inittab que lanza los
scripts del directorio /etc/init.d.
Los niveles de ejecución son:
0 parada del sistema.
1 monousurio (también –S)
2 multiusuario sin red.
3 multiusuario con red
4 reservado
5 multiusuario con red y xwindow.
6 Reinicio del sistema.

Kswapd. Se encarga de gestionar la memoria virtual o swap.

Bdflush. Gestiona las entradas y salidas a los Discos y buffers (memorias intermedias)

Getty. Se encarga de gestionar las líneas de los terminales.

Cupsd Se encarga de gestionar el spool ó colas de impresión.

Login. Programa que valida la entrada y lanza el shell.

Cron. Este proceso ejecuta trabajos planificados.

Xinetd. Proceso encargado de la red y de los servicios asociados.

Otros: nmdb y smbd demonios samba. [Link], telnet. Squid Servidor proxy. Httpd servidor apache.
Xmd Sistema xwindows, etc.

Comandos De Procesos

top Lista todos los procesos así como diversos detalles de éstos (memoria consumida
CPU utilizada). Con la tecla <q> saldremos
ps Muestra los procesos activos.
-u. Muestra más detalles, como el propietario del proceso, la memoria utilizada el porcentaje de CPU
usado.
-a Procesos de usuarios y terminales.
-e Muestra todos los procesos incluidos demonios
-f Formato largo

kill. [señal] pid .Orden para eliminar procesos.


-l Muestra una lista de los nombres de señal que pueden ser utilizados.
-9 Envía señal tipo TERM con lo que matará el proceso.
killall [señal] nombre_proceso. Orden para eliminar procesos.
pstree Muestra el árbol de procesos, útil para saber las dependencias de procesos padres e hijos.

Resumen de comandos:

ls Lista los archivos existentes en un directorio.


-F. Diferencia directorio(/), ejecutables(*) y links(@)
--color. Diferentes colores para directorios, ejecutables, links.
-s. Muestra tamaño
-a. Muestra los archivos ocultos del tipo .archivo
-l. Listado largo (permisos, número de links, propietario, grupo, tamaño, fecha y nombre
archivo)
-R Realiza un listado recursivo, es decir, incluyendo subdirectorios.
mv <nombre> <nuevo-nombre> Mueve o renombra un archivo o directorio.
cp <archivo> <destino> Copia un archivo a un directorio dado.

12
Modulo S.O. en Red. LINUX

rm <archivo> Borra ficheros.


-r. Borra directorios recursivamente
-i. Pide confirmación
ln <nombre> <destino-del-link>
Crea links a archivos al estilo accesos directos.
-s. Soft-links -h. Hard-links
mkdir <nombre> Crea un directorio.
rmdir <directorio> Borra directorio (sólo si está vacío).
cd <directorio>
Cambia de directorio. Si no se le pasa ningún parámetro, nos devolverá a nuestro directorio HOME.
pwd Muestra la ruta del directorio actual.
chmod <usuarios> <nuevos-permisos> <archivo>
Cambia los permisos de acceso a ficheros. Los <usuarios> pueden ser «u» propietario, «g» grupo al que
pertenece, «o» otros y «a» todos. Los <nuevos-permisos> podrán ser + o -, «r» lectura, «w» escritura o
«x» ejecución.
chown [opciones] nuevo_usuario archivo(S)
Cambia el usuario propietario de un archico.
chgrp [opciones] nuevo_grupo archivo Cambia de grupo a un archivo.
du Muestra información del espacio ocupado por un directorio. Opciones:
–s solo visualiza un total
Con las opciones –b, –k , etc , proporciona el dato en bytes, Kbytes, etc.
dmesg Muestra los mensajes del kernel al arrancar el sistema.
echo <cadena> Muestra una cadena dada por pantalla
clear borra la pantalla.
passwd cambia el password o contraseña de un usuario.
date muestra y cambia la fecha y hora del sistema
uname muestra el sistema Unix/Linux que se está utilizando. La opción –a muestra más inormación.

Busquedas Y Paginadores

more <archivo>
Muestra un archivo por pantalla pagina a pagina. Con «Intro» pasará línea a línea, con «Espacio»
adelanta una página, «b» retrasa página, «/<cadena>» busca una cadena en el fichero, «n» repite la
búsqueda y «q» finaliza.
less <archivo>
Parecido a more pero mas intuitivo, completo y además permite el uso de cursores.
find nodo -name "<archivo>"
Busca un archivo dado (admite comodines) recursivamente. Otras opciones que admite pueden ser
-print, -user o -size.

Herramientas De Disco Y Compresores

mount -t <sist. ficheros> /dev/<dispositivo> <directorio-de-montaje>


Habilita el uso de diferentes dispositivos como disqueteras, CD-ROM, etc. que usen sistemas de ficheros
propios para poder ser manejados transparentemente como si se tratara de un directorio más.
umount opciones punto_de_montaje Desmonta dispositivos.
fdisk /dev/<dispositivo>
Manejador de particiones Linux. Si ejecutamos sin parámetros actuará sobre el primer disco duro. Con
la opción –l podemos ver los discos y particiones instaladas.
Las distintas acciones que se pueden realizar se pueden ver con 'h'.
Las más destacadas son 'n' que añade una nueva partición, 'd' que borra una partición y 'w' que guarda
los cambios realizados sobre las particiones.
mke2fs /dev/<dispositivo>
Crea un sistema de ficheros de tipo ext2 en el dispositivo señalado. Al estilo de format bajo DOS.
mkfs.ext3 (ó ext4) /dev/sd.. Formatea la unidad con el sistema de archivos indicado.
e2fsck [opciones] <dispositivo>
Chequea y repara un sistema de ficheros ext2.
-f Fuerza la comprobación del sistema.

13
Modulo S.O. en Red. LINUX

-p repara automáticamente.
-y asume yes para todas las preguntas
-v Mustra detalles
-n No realiza cambios..
reiserfsck Chequea y repara un sistema de ficheros reiser.
df Muestra información sobre el espacio ocupado de los sistemas de ficheros montados.
-T muestra también el sistema de archivos con el que se formateado la partición

tar Empaquetador de archivos.


-cvf <[Link]> <origen>. Empaqueta en el fichero <[Link]> los ficheros que le
pasemos.
-xvf <[Link]>. Extrae los ficheros en el directorio actual.
-p Mantiene los permisos originales de los ficheros.
-z Usa el gzip para comprimir o descomprimir al mismo tiempo que se crea o extrae del
archivo tar.
-t muestra el contenido de un archivo tar sin extraer nada.
-C <directorio> Especifica un directorio distinto del actual.

gzip Compresor de archivos.


-c <archivo>. Comprime el archivo dado.
-9 <archivo>. Comprime el archivo con la máxima compresión.
-d <[Link]> Descomprime el archivo en el directorio actual.

En Linux no existen las extensiones para los archivos, pero por acuerdo se han implementado las
siguientes para identificar el tipo de archivo y su contenido:
.tar Extensión que identifica un archivo que contiene formato tar.
.gz Extensión que identifica a un archivo que contiene información comprimida con el gzip.
.tgz ó .[Link] Extensión que identifica a un archivo empaquetado con tar y comprimido con el gzip.

VARIABLES ENTORNO

env Indice 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.

Apagar El Sistema

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.

Otros Comandos

alias nombre=’comando’ . Los alias permiten asignar nombres alternativos a comandos existentes o
nuevos. Por defecto muestra todos los alias.
Ejemplo: ll Es el alias de ls –l.

unalias nombre alias . Elimina un alias.


free Muestra el tamaño total y el usado de la memoria RAM y la swap. Las opciones –b -k -m
proporciona el dato en bytes, Kbytes y megabytes respectivamente.
mc midnigth comander. Es una navegador visual estándar para línea de comandos de directorios y
archivos para sistemas tipo unix.

Prácticas.

1.- Preparar el entorno de trabajo. Si no lo has hecho todavía realiza los siguientes pasos :

14
Modulo S.O. en Red. LINUX

 Cambia el password que puso el administrador del sistema por uno particular.
 Cambia los permisos de tu directorio para que nadie pueda acceder a él.
 Crea el fichero .profile o modifícalo con al menos lo siguiente : máscara propia de creación
de ficheros, borrar la pantalla, etc.
 Crea un subdirectorio bin , para que contenga los script que creemos.
2.- Comandos de uso común :
 Obtén la relación de usuarios conectados. Y averigua quién eres.
 Muestra en pantalla la fecha y la hora actual.
 Averigua cual es la identificación de tu terminal (fichero de dispositivo)
 Pon la orden, en un terminal diferente, para borrar la terminal identificada anteriormente.
 Averigua qué sistema Unix estás utilizando.
 Comprueba qué hace la orden : echo.
3.- Crear dos ficheros que se llamen prueba1 y prueba2. Visualizarlos.
4.- Unir ambos ficheros en un tercer prueba3.
5.- Añadir texto a prueba3 y visualizarlo.
6.- Añadir el contenido de prueba1 al fichero prueba3.
7.- Crear un directorio dirprueba, acceder a él y comprobar con la orden apropiada su situación.
8.- Copiar todos los ficheros de prueba creados a dirprueba. Comprobar si se ha copiado correctamente.
9.- Renombrar el fichero prueba3 como [Link].
10.- Borrar todos los ficheros prueba del directorio home, con una sola orden. Para ello debes saber que
el metacaracter * representa a cualquier cadena.
11.- Mover todos los ficheros prueba del directorio dirprueba a tu directorio de trabajo. Comprobar el
cambio y volverlo a dejar como estaba.
12.- Crea un enlace del fichero [Link] del directorio dirprueba con el fichero prueba3 del
directorio de trabajo del usuario.
13.- Sin moverse del directorio actual hacer un listado de, solamente los directorios, que hay en el
directorio raíz, con el comando ls. Comprobar si ha funcionado.
14.- Con el permiso de otro usuario accede a su entorno de trabajo, sin pasar por login. Comprueba
quién eres y después vuelve a tu usuario.
15.- Eliminar nuestros propios permisos de acceso del fichero prueba1. Intentar visualizarlo después.
16.- Restaurar solamente el permiso de lectura del fichero anterior y visualizarlo.
17.- Sin modificar los permisos, intentar borrar o añadir información al fichero. Restaurar el permiso de
escritura y repetir la misma operación.
18.- Buscar en todo el sistema de ficheros el fichero passwd. Visualizarlo.
19.- Realiza los pasos para que otro usuario pueda acceder a nuestro directorio pero no pueda tocar
ningún fichero.
20.- Realiza los pasos necesarios para copiar el fichero [Link] de un usuario a otro. Son estos :
 Cambiar permisos del usuario receptor. ¿Quién puede hacerlo ?
 Copiar el fichero. ¿Quién puede hacerlo ?
 Cambiar los permisos para que pueda ser usado por éste.
 Cambiar el propietario del fichero para que pueda ser usado por éste. Si no
podemos pedírselo al administrador del sistema.
 Cambiar los permisos del usuario receptor cerrando su entorno de trabajo.
21.- Borrar el directorio dirprueba y todo su contenido y los ficheros prueba, si queda alguno, creados en
esta sesión de trabajo.
22.- Despedir la sesión de Unix.

15

También podría gustarte