Introducción al entorno de Linux (Ubuntu) - stefano-sosac/arquitectura-de-computadoras GitHub Wiki

LINUX (GNU/LINUX) es un sistema operativo tipo UNIX que cuenta con numerosas distribuciones. Este sistema es de código abierto y cuenta con una comunidad amplia para sistemas de cómputo y sistemas embebidos en general. Tal como sucede con otros sistemas operativos, las distribuciones de LINUX pueden ser utilizadas a través de una interfaz gráfica o por línea de comandos, siendo la segunda de interés para el curso. En esta sección se darán los comandos básicos que permiten una interacción con el terminal a través de Ubuntu, así como los requerimientos mínimos para la compilación y ejecución de programas en C y Python.

Comandos básicos en el terminal

  1. pwd: (print working directory) Imprime el directorio de trabajo. En terminos sencillos te muestra la ruta o directorio en la cual te encuentras cuando estás en una terminal linux.

  2. cd: (change directory) Si se coloca solo, dirige al directorio raíz. Adicionalmente, se puede combinar con otras rutas para dirigirse a otros directorios:

  • cd ~ : ir al directorio home
  • cd ~/papers: ir a /home/user/papers
  • cd ~arqui: ir a /home/arqui
  • cd dir: ir al directorio dir (relativo)
  • cd /dir1/dir2/dir3:} ir al directorio dir3 (absoluto)
  • cd - }: regresar al último directorio
  • cd .. : subir una jerarquía de directorio
  1. mkdir nombre-directorio: (make directory) Crea un directorio con el argumento de entrada el que se quiere crear. Ejemplo: \textit{mkdir prueba} crearía el directorio prueba.

  2. rmdir nombre-directorio: (remove directory) Borra el directorio.Considerar que antes de borrar un directorio, éste se debe encontrar vacío, de lo contrario se mostrará un mensaje de error. Ejemplo \textit{rmdir prueba} borrará el directorio prueba.

  3. tree: Muestra una estructura de árbol de directorios a partir del directorio actual de trabajo.

Manejo de archivos en linux

Linux maneja básicamente archivos ordinarios, directorios y archivos especiales. Linux maneja tres tipos de archivos/directorios: \vspace{3mm}

  1. Archivo ordinario: También llamado regular. Consiste en textos, imágenes, instrucciones de programas (código fuente), entre otros.

  2. Directorios: Se manejan internamente como si fueran archivos (archivos de directorio), cuyo contenido es conocido por el file system driver [^1].

  3. Archivos especiales: Tienen un significado especial y generalmente están asociados a los dispositivos entrada y salida (I/O devices) o de comunicación entre procesos (pipes).

Así mismo, existen comandos de utilidad que permiten interactuar con estos archivos o directorios:

  • find: Busca a partir del directorio que se le indique, y en forma descendente, cualquier archivo (por nombre, tamaño, permisos, etc.). Se pueden emplear comodines como el * (cualquier grupo de caracteres de longitud mayor o igual a 0) y el ? (un solo carácter).

Ejemplo:

find / -name ing.h -print

Este comando debería buscar desde el directorio raíz y en forma descendente todos los archivos que contengan los caracteres “ing.h” al final del nombre, y una vez hallados imprime su ubicación.

  • cp: Copia archivos
cp <nombre_archivo_original> <nombre_archivo_copia>
  • rm: (remove) Elimina archivos.
rm <nombre_archivo>
  • ls: (list) Muestra el contenido del directorio de trabajo o de cualquier otro directorio que se le indique. Si se le invoca sin argumentos, muestra los nombres de los archivos sin ninguna otra información:
ls

Pero si se desea una descripción más detallada puede usarse la opción –l:

ls -l

Esta opción muestra un listado de archivos en formato largo, en el directorio actual (a menos que se indique alguno como argumento).

  • chmode: (change mode) permite definir los permisos de un archivo respecto a tres tipos de usuario (usuario, grupos, otros). Se suele usar dos formas para expresar los permisos:
    1. La octal asigna los permisos mediante valores en base 8. Ejemplo: chmod 600 ejemplo. Esto significa que el grupo de usuarios tiene permisos de lectura y escritura, que el grupo no tiene permisos y que otros tampoco tiene permisos.
Número Permisos Descripción
0 --- sin permisos
1 --x ejecución
2 -w- escritura
3 -wx escritura y ejecución
4 r-- lectura
5 r-x lectura y ejecución
6 rw- lectura y escritura
7 rwx todos los permisos
  1. Ejemplo: chmod a+rw archivo
Tipo de usuario u Usuario
g Grupo
o Otros
Operación + Añade permiso
- Remueve permiso
= Asigna permiso
Tipo de permiso r (reading) lectura
w (writing) escritura
x (execution) ejecución
  • chown: permite cambiar el usuario o grupo propietarios de un determinado archivo. El uso más directo para asignar la propiedad de un archivo a un usuario es: chown usuario archivo. Si además del usuario, se desea también modificar el grupo propietario del archivo, se emplea: chown usuario:grupo archivo

  • mv: Permite renombrar archivos o mover archivos entre directorios.

    1. mv archivo_a_renombrar nuevo_nombre
    2. mv archivo_a_copiar ruta_destino
  • cat: Examina el contenido de un archivo. Ejemplo: cat prueba.txt

Finalmente, siempre será posible observar todas las funciones de un comando utilizando el comando help. Para ello debe colocar el comando, dejar un espacio, colocar dos guiones y la palabra help. Ejemplo: cat --help.

[^1]:Software que se encarga de administrar y organizar el contenido de archivos en el sistema operativo.