Linux Comandos
Linux Comandos
LINUX
ARCHIVOS y DIRECTORIOS
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
Un fichero es una secuencia de bytes, y que forma parte de una estructura llamada Sistema de 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.
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
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.
3
Modulo S.O. en Red. LINUX
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
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í.
ejemplos bin
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.
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
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.
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
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 :
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.
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.
8
Modulo S.O. en Red. LINUX
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.
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
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
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 :
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
PID= 0
sched
PID= 1
Inicializa sistema PPID= 0
init
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.
11
Modulo S.O. en Red. LINUX
Bdflush. Gestiona las entradas y salidas a los Discos y buffers (memorias intermedias)
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
Resumen de comandos:
12
Modulo S.O. en Red. LINUX
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.
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
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
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.
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