GNU/Linux

Unidad de Apoyo para el Aprendizaje

Iniciar

Introducción


Un sistema operativo hace referencia al conjunto de programas y datos que administra los recursos tanto de hardware (dispositivos) como de software (programas de aplicación y datos) de un sistema de cómputo y/o comunicación; además, funciona como interfaz entre la computadora y el usuario o las aplicaciones.

En la actualidad existen diversos sistemas operativos, dependiendo del dispositivo en donde se ejecute. Para equipos de escritorio y laptops están Windows, GNU/Linux, Mac OS, entre otros. Para el caso de dispositivos móviles se encuentran Android, iOS, Windows Phone, entre otros. Cada uno de ellos tiene diferentes versiones y distribuciones que se ajustan a los diversos equipos de cómputo y comunicación en los que trabajan.

En cuanto a la interfaz con el usuario, hay de tipo texto y de tipo gráfico. En la actualidad, es común trabajar con la interfaz gráfica, ya que facilita mucho seleccionar la aplicación a utilizar; inclusive esta selección se hace “tocando la pantalla” (técnica touch); sin embargo, cuando se desarrollan proyectos en donde se elaborarán documentos y programas, es necesario el uso de dispositivos de entrada y salida (hardware) y aplicaciones en modo texto (software).



Utilizar comandos básicos de navegación y manejo de archivos, mediante el sistema operativo GNU/Linux, para conocer su funcionamiento.

Sistema Operativo GNU/Linux

GNU/Linux es un sistema operativo tipo UNIX de libre distribución para computadoras personales, servidores y estaciones de trabajo.

El sistema está conformado por el núcleo (kernel) y un gran número de programas y bibliotecas. Muchos programas y bibliotecas han sido posibles gracias al proyecto GNU; por lo mismo, se conoce a este sistema operativo como GNU/Linux.

Un software libre es aquél que se puede adquirir de manera gratuita, es decir, no se tiene que pagar algún tipo de licencia a alguna casa desarrolladora de software por su uso; además, que un software sea libre también implica que viene acompañado del código fuente, es decir, se pueden realizar cambios en el funcionamiento del sistema, si así se desea.

Linux se distribuye bajo la Licencia Pública General de GNU, por lo tanto, el código fuente tiene que estar siempre accesible y cualquier modificación o trabajo derivado debe tener esta licencia.


La Licencia Pública General de GNU o GNU General Public License (GNU GPL) es una licencia creada por la Free Software Foundation en 1989 y está orientada principalmente a proteger la libre distribución, modificación y uso de software.

Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios.

El kernel o núcleo de Linux se puede definir como el corazón del sistema operativo. Es el encargado de que el software y el hardware del equipo se puedan comunicar. Los componentes de un sistema operativo, de forma general, son los siguientes:

  • Gestor de memoria.

  • Administrador y planificador de procesos.

  • Sistema de archivos.

  • Administración de E/S.

Comúnmente, estos componentes se encuentran en el kernel o núcleo del sistema operativo.

Capas de un sistema operativo GNU/Linux.

Capas de un sistema operativo GNU/Linux.



En la figura anterior se puede observar que entre el kernel y las aplicaciones existe una capa que permite al usuario comunicarse con el sistema operativo y, en general, con la computadora, a través de programas que ya vienen instalados en las distribuciones de GNU/Linux (Debian, Ubuntu, Fedora, etc.), y trabajan ya sea en modo gráfico o en modo texto. Uno de estos programas es el shell.

La estructura de GNU/Linux para el almacenamiento de archivos es de forma jerárquica, por lo que la carpeta o archivo base es root (raíz), la cual se representa con una diagonal (/). De este archivo raíz parten todos los demás. Los archivos pueden ser carpetas, archivos de datos, aplicaciones, programas, etc.

Parte del sistema de archivos jerárquico en GNU/Linux

(s. a.) (s. f.). Parte del sistema de archivos jerárquico en GNU/Linux [esquema]. Tomado de http://stevenblogsso.blogspot.mx/2015/05/sistemas-de-ficheros-y-organizacion-de.html

Mac OS X


Esquema



También puedes revisar la historia de Mac OS aquí

. Mac 1984

(s. a.) (2006). Mac 1984 [fotografía]. Tomada de https://commons.wikimedia.org/wiki/File:Macintosh_128k_transparency.png



Esquema

Interfaz de línea de comandos (CLI) o shell


El shell de GNU/Linux permite introducir órdenes (comandos) y ejecutar programas en el sistema operativo. Todas las órdenes de UNIX/Linux son programas que están almacenados en el sistema de archivos y se les denomina comandos; por lo tanto, todo en GNU/Linux se puede controlar mediante comandos.

El shell de GNU/Linux permite introducir órdenes, denominadas comandos, y ejecutar programas en el sistema operativo; todas las órdenes o comandos son programas que están almacenados en el disco rudo de la máquina. Debido a que los sistemas operativos GNU/Linux y Mac OS están basados en UNIX, pueden tener acceso al shell para introducir comando.

Comandos básicos


Para trabajar en GNU/Linux utilizando comandos se debe abrir una “terminal” o “consola”, que es una ventana en donde aparece la “línea de comandos”, en la cual se escribirá la orden o comando. La terminal permite un mayor grado de funciones y configuraciones, respecto a un entorno gráfico para manipular aplicaciones o realizar acciones.

El proceso de abrir una terminal varía, dependiendo del entorno gráfico. Por lo general, hay un área de “aplicaciones” en donde se selecciona terminal o consola.

Escritorio de Ubuntu en donde se indica la terminal

Algunas distribuciones permiten buscar aplicaciones. En Ubuntu, en el ícono de aplicaciones en la barra de búsqueda, se puede escribir “terminal”, si es que no está a la vista el ícono.

Ventana de aplicaciones

Con la terminal abierta es posible introducir comandos del sistema operativo.

Terminal abierta en Ubuntu

Terminal en una distribución Ubuntu.



La sintaxis que siguen los comandos es la siguiente:

comando [-opciones] [argumentos]

Esto es, el nombre del comando, seguido de algunas banderas (opciones) para modificar la ejecución del mismo y, al final, se puede incluir un argumento (ruta, ubicación, archivo, etcétera), dependiendo del comando. Tanto las opciones como los argumentos son opcionales.

Algunos ejemplos son los siguientes:

Comando ls

El comando ls permite listar los elementos que existen en alguna ubicación del sistema de archivos de Linux. Por defecto lista los elementos que existen en la ubicación actual; Linux nombra la ubicación con punto (.) por lo que:

ls

y

ls .

}

Realizan exactamente lo mismo.

El comando ls realiza acciones dependiendo de las banderas que utilice, por ejemplo, si se utiliza la opción I se genera un listado largo de la ubicación actual:

ls—I

Es posible listar los elementos que existen en cualquier ubicación del sistema de archivos, para ello hay que ejecutar el comando especificado como argumento la ubicación donde se desean listar los elementos. Si queremos ver los archivos que se encuentran en la raíz, usamos:

ls/

Para ver los usuarios del equipo local, revisemos el directorio home que parte de la raíz(/):

ls/home

Tanto las opciones como los argumentos se pueden combinar para generar una ejecución más específica:

ls—I /home

GNU/Linux proporciona el comando man, el cual permite visualizar la descripción de cualquier comando así como la manera en la que se pueda utilizar.

man ls


Antes de revisar otros comandos es importante aprender a “navegar” por el sistema de archivos de Linux en modo texto. Si se desea ver la lista de los archivos del directorio usr, se debe escribir el comando:

ls /usr

Esto es, el argumento se inicia con /, indicando que es el directorio raíz, seguido de usr, que es el nombre del directorio. Cuando se especifica la ubicación de un archivo partiendo de la raíz, se dice que se está indicando la “ruta absoluta” del archivo.

Existe otra forma de especificar la ubicación de un archivo: empleando la “ruta relativa”.

El carácter punto (.) se utiliza para indicar la ubicación actual; el doble punto (..) se utiliza para hacer referencia al directorio “padre”. De esta forma, si se desea listar los archivos que dependen del directorio padre, se escribe el siguiente comando:

ls ..
o
ls ../

Se pueden utilizar varias referencias al directorio padre para ir navegando por el sistema de archivos, de tal manera que se realice la ubicación de un archivo a través de una ruta relativa; por lo tanto, si la cuenta del usuario depende de la carpeta home, la ruta relativa para listar los archivos del directorio usr es…

ls ../../usr

Con los primeros dos puntos se hace referencia al directorio home; con los siguientes dos puntos se refiere al directorio raíz y, finalmente, se escribe el nombre del directorio usr.

Comando touch

El comando touch permite crear un archivo de texto; su sintaxis es la siguiente:

touch nombre_archivo[.ext]

En GNU/Linux no es necesario agregar una extensión al archivo creado; sin embargo, es recomendable hacerlo para identificar el tipo de archivo creado.

Comando mkdir

El comando mkdir permite crear una carpeta; su sintaxis es la siguiente:

mkdir nombre_carpeta

Para crear una carpeta en nuestra cuenta, que tenga como nombre “tareas”, se escribe el siguiente comando:

mkdir tareas

Comando cd

El comando cd permite ubicarse en una carpeta; su sintaxis es la siguiente:

cd nombre_carpeta

Por lo que, si queremos situarnos en la carpeta “tareas” creada anteriormente, se escribe el comando:

cd tareas

Ahora, si deseamos situarnos en la carpeta de inicio de nuestra cuenta, que es la carpeta padre, escribimos el comando:

cd ..

Comando pwd

El comando pwd permite conocer la ubicación actual (ruta); su sintaxis es la siguiente:

pwd

Comando find

El comando find permite buscar un elemento dentro del sistema de archivos; su sintaxis es la siguiente:

find . –name cadena_buscar

Al comando find hay que indicarle en qué parte del sistema de archivos va a iniciar la búsqueda. En el ejemplo anterior, la búsqueda se inicia en la posición actual (uso de .); además, utilizando la bandera –name permite determinar la cadena a buscar (comúnmente es el nombre de un archivo).

Si queremos encontrar la ubicación del archivo tareas, se escribe el siguiente comando:

find . –name tareas

Comando clear

El comando clear permite limpiar la consola; su sintaxis es la siguiente:

clear

Comando cp

El comando cp permite copiar un archivo; su sintaxis es la siguiente:

cp archivo_origen archivo_destino

Si queremos una copia del archivo datos.txt, con nombre datosViejos.txt, en el mismo directorio, entonces se escribe el comando.

cp datos.txt datosViejos.txt

Ahora, si requerimos una copia de un archivo que está en la carpeta padre en la ubicación actual y con el mismo nombre, entonces podemos emplear las rutas relativas de la siguiente forma:

cp ../archivo_a_copiar .

Es muy importante indicar como archivo destino al punto (.), para que el archivo de copia se ubique en el directorio actual.

Comando mv

El comando mv mueve un archivo de un lugar a otro, en el sistema de archivos; su sintaxis es la siguiente:

mv ubicación_origen/archivo ubicación_destino

El comando mueve el archivo desde su ubicación origen hacia la ubicación deseada (destino).

Si queremos reubicar un archivo que está en la carpeta padre en el directorio actual y con el mismo nombre, entonces podemos emplear las rutas relativas de la siguiente forma:

mv ../archivo_a_reubicar .

Este comando también puede ser usado para cambiar el nombre de un archivo; simplemente se indica el nombre actual del archivo y el nuevo nombre:

mv nombre_actual_archivo nombre_nuevo_archivo

Comando rm

El comando rm permite eliminar un archivo o un directorio; su sintaxis es la siguiente:

rm nombre_archivo
rm nombre_carpeta

Cuando la carpeta que se desea borrar contiene información, se debe utilizar la bandera –f para forzar la eliminación. Si la carpeta contiene otras carpetas, se debe utilizar la opción –r para realizar la eliminación recursiva.

Editor visual [interfaz de GNU/Linux]


El editor vi (visual interface) es un editor de texto de pantalla completa que maneja en memoria el texto entero de un archivo.

Es el editor clásico de UNIX; está en todas las versiones. Puede usarse en cualquier tipo de terminal con un mínimo de teclas.

El editor vi posee tres modos operativos.

Comandos

En este modo se ejecuta el editor cada vez que abre un archivo. Permite introducir comandos.

Este modo permite capturar caracteres dentro del documento.

Este modo permite escribir comandos en la última línea (al final de la pantalla).

Modo de comando

i inserta texto a la izquierda del cursor
a agrega texto a la derecha del cursor
x borra el carácter bajo el cursor
o añadir una línea en blanco
J borrar el final de línea (une dos líneas)
u deshacer la última edición
dd borra una línea
w avanza una palabra
b va al inicio de la palabra actual
e va al final de la palabra actual
h o flecha izquierda mueve el cursor un carácter a la izquierda
j o flecha abajo mueve el cursor una línea hacia abajo
k o flecha arriba mueve el cursor una línea hacia arriba
l o flecha derecha mueve el cursor un carácter a la derecha
ESC vuelve a modo comando

Modo última línea o reemplazo

:q sale del editor
:w guarda el archivo
:w nombreArchivo guarda el archivo como “nombreArchivo”
:w! nombreArchivo obliga el guardado del archivo
:wq guarda y cierra el archivo
:x guarda y cierra el archivo
:q! cierra el archivo sin guardar cambios
:/cadena busca cadena hacia adelante
:?cadena busca la cadena hacia atrás
:set number agrega número a las líneas
:set nonumber quita el número de las líneas
:set list muestra caracteres ocultos
:set nolist deshabilita set list
:s/lo que busco/lo que reemplazo/c reemplazar y confirmar
:s/lo que busco/lo que reemplazo/g reemplazar una línea
:%s/lo que busco/lo que remplazo/g reemplazar todo documento
:1,$s/lo que busco/lo que remplazo/g reemplazar todo documento

El editor vi permite crear cualquier tipo de archivo de texto plano: sql, txt, c, java, c++, php, html, jsp, sh, etc., además, permite ejecutar comandos propios de Linux dentro del modo última línea. La sintaxis para ejecutar un comando de Linux dentro del editor es la siguiente:

Ejemplo (vi)

vi permite crear y editar archivos de texto; su sintaxis es la siguiente:

vi nombre_archivo[.ext]

Por ejemplo, se puede crear un archivo de texto de la siguiente manera:

vi holaMundo.txt

La instrucción anterior abre el editor vi con el archivo holaMundo.txt.



Por defecto, vi se abre en modo comando. Para empezar a ingresar datos hay que cambiar a modo texto; para ello, se puede presionar la tecla i para insertar caracteres:



En este modo se puede escribir cualquier texto:



Para guardar los cambios se debe regresar al modo comando con la tecla ESC y en modo de última línea teclear :wq para guardar y cerrar el archivo.



Los pasos anteriores se deben realizar para guardar el texto del archivo y regresar al prompt (consola) del sistema.

vi puede abrir cualquier archivo de texto plano. Si el archivo existe, se edita el contenido. Si el archivo no existe se puede crear con el comando w. Se puede abrir el editor sin darle un nombre y, cuando se guarda el archivo, se puede nombrar al archivo de la siguiente manera: w nombre.ext.

ícono

Actividad. Manejo del sistema operativo GNU/Linux por comandos

Un sistema operativo es un conjunto de programas y datos que administran el hardware y el software de una computadora y como interfaz entre ésta y el usuario. Tal es el caso de GNU/Linux que puede ser ejecutado por medio de comandos

ícono

Autoevaluación. Comandos de GNU/Linux

Durante el estudio de la UAPA aprendiste a utilizar los comandos básicos de navegación y manejo de archivos en el sistema operativo GNU/Linux, así como su funcion. Ahora es momento de que verifiques tus conocimentos sobre el tema.


Fuentes de información

Básicas

Delgado, P. (s. f.). Integración de sistemas. Linux y su sistema gestor de ficheros (descripciones) [Figura 2]. Consultado en agosto de 2016 de http://todobytes.es/2014/09/integracion-de-sistemas-linux-y-su-sistema-gestor-de-ficheros-descripciones/

Huguet, O. V. y Doménech, S. (s. f.). Introducción a Linux [Figura 1]. Consultado en junio de 2015 de http://mural.uv.es/oshuso/81_introduccin_a_linux.html


Complementarias

Encyclopaedia Britannica. (2018). Mac OS Operating System. Consultado de https://www.britannica.com/technology/Mac-OS


Cómo citar


Solano, J. A. (2018). GNU/Linux. Unidades de Apoyo para el Aprendizaje. CUAED/Facultad de Ingeniería-UNAM. Consultado el (fecha) de (vínculo)