Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


GUIA LINUX PARA PRINCIPIANTES, Guías, Proyectos, Investigaciones de Informática y Tecnologías de la Información

GUIA LINUX PARA PRINCIPIANTES CON LOS COMANDOS BASICOS

Tipo: Guías, Proyectos, Investigaciones

2025/2026

Subido el 17/02/2026

maria-8th
maria-8th 🇪🇸

1 documento

1 / 50

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Introducción a
GNU/Linux
PID_00270626
Gerard Farràs Ballabriga
Tiempo mínimo de dedicación recomendado: 4 horas
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32

Vista previa parcial del texto

¡Descarga GUIA LINUX PARA PRINCIPIANTES y más Guías, Proyectos, Investigaciones en PDF de Informática y Tecnologías de la Información solo en Docsity!

Introducción a

GNU/Linux

PID_

Gerard Farràs Ballabriga

Tiempo mínimo de dedicación recomendado: 4 horas

Gerard Farràs Ballabriga

Ingeniero técnico en Informática de sistemas por la Universidad Autóno- ma de Barcelona (UAB). Ingeniero en Informática y máster en Socie- dad de la información y el conoci- miento por la Universitat Oberta de Catalunya (UOC). Actualmente tra- baja como profesor en una escue- la de secundaria y formación pro- fesional. Anteriormente ha desarro- llado su actividad profesional en el área de sistemas de información de un centro tecnológico y también co- mo profesional autónomo ( freelan- ce ) trabajando como administrador de sistemas y desarrollador web.

El encargo y la creación de este recurso de aprendizaje UOC han sido coordinados

por el profesor: Julià Minguillón Alfonso (2020)

Primera edición: febrero 2020 © Gerard Farràs Ballabriga Todos los derechos reservados © de esta edición, FUOC, 2020 Avda. Tibidabo, 39-43, 08035 Barcelona Realización editorial: FUOC

Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada, reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea este eléctrico, químico, mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita de los titulares de los derechos.

1. Introducción

El objetivo de este documento consiste en ofrecer una introducción al sistema

operativo GNU/Linux para especialistas en tratamiento de datos.

GNU/Linux es un sistema avanzado, con muchas herramientas dispo-

nibles y posibilidades de automatización, estable, además de gratuito y

con licencia de software libre.

Por estos motivos, se recomienda a los estudiantes el aprendizaje de este sis-

tema operativo. Ciertamente, sería posible hacer la mayoría de operaciones

con otros sistemas, pero consideramos que este es el más adecuado. Por otro

lado, el aprendizaje sobre el funcionamiento de un sistema operativo se pue-

de realizar desde múltiples perspectivas (por ejemplo, poniendo el foco en el

funcionamiento interno del sistema, en su rendimiento o en su seguridad). No

obstante, el objetivo de este documento es ofrecer unas primeras pinceladas

iniciales sobre qué es GNU/Linux y el enfoque en los comandos necesarios

para el tratamiento de datos masivos, así que dejaremos de lado el resto de

perspectivas.

El objetivo pedagógico de este documento consiste en ofrecer una in-

troducción a los sistemas GNU/Linux para usuarios no experimentados

y en ofrecer a los estudiantes una guía para que puedan emplear este

tipo de sistemas para las tareas relacionadas con la ciencia de datos.

Nuestra recomendación para conseguir este objetivo sería disponer de un sis-

tema GNU/Linux (la manera más sencilla es empleando una máquina virtual)

y leer, en paralelo, este documento con objeto de ir probando todos los co-

mandos. Los usuarios más experimentados emplearán otros métodos para el

aprendizaje. Son los usuarios más neófitos los que necesitarán una guía inicial

para empezar. En todo caso, no se trata de memorizar comandos: a medida

que se usen, se recordarán por repetición. Así, pues, se recomienda instalar el

sistema, leer este documento y hacer algunas primeras pruebas. El orden de

lectura tampoco es excesivamente importante: se pueden leer y probar aparta-

dos concretos, no es necesario que la lectura sea lineal. A medida que el apren-

dizaje avance, esta guía perderá interés.

Usuarios experimentados

Los usuarios experimentados emplearán otros métodos pa- ra el aprendizaje, por ejemplo, utilizando los manuales inter- nos de la máquina, búsquedas avanzadas en internet y más «ensayo-error»

Respecto a la licencia pública general GNU GPL,

2

es la licencia para software

libre más utilizada, que permite hacer copias, distribuirlas (tanto en versiones

comerciales como las que no lo son) y modificar el código fuente, siempre

que cualquier modificación se continúe distribuyendo con la misma licencia.

Lo que no permite la licencia GPL es la distribución de software ejecutable

sin disponer del código fuente correspondiente. Richard Stallman, de la Free

Software Foundation, fue el primer autor del proyecto GNU, que otorgaba a los

destinatarios de un programa de ordenador los derechos correspondientes al

software libre. Se trata de una licencia copyleft , lo que significa que los trabajos

derivados se tienen que distribuir con los mismos términos.

Figura 1. Fotografía de Linus Torvalds recibiendo un premio en 2018

Fuente: imagen extraída de la Wiquipedia (en.wikipedia.org/wiki/Linus_Torvalds).

(2)GNU GPL, GNU General Public License.

Free Software Foundation

La Free Software Foundation (FSF) es una organización sin ánimo de lucro global que tie- ne como objetivo la promo- ción del software libre (en el sentido de otorgar libertad al usuario).

3. Entorno gráfico contra línea de comandos

La mayoría de sistemas operativos actuales se utilizan con entornos de venta-

nas (por medio de interfaces gráficas de usuario),^3 aunque siguen mantenien-

do la posibilidad de ser utilizados por medio de terminales. El uso de un ter-

minal es ciertamente más complicado y menos intuitivo para los usuarios no

experimentados, pero otorga más flexibilidad. Además, hay tareas que sola-

mente se pueden realizar empleando comandos de terminal. La gran ventaja

del uso de terminales consiste en la posibilidad de automatización de tareas

por medio de scripts (guiones de secuencias). Otra ventaja consiste en el hecho

de que hay multitud de herramientas que funcionan solamente por medio de

terminal, y no con software basado en ventanas.

(3)En inglés GUI, Graphical User In- terface.

Figura 2. Captura de pantalla del escritorio de una máquina con la distribución Ubuntu en entorno gráfico

Este escritorio concreto contiene dos pantallas diferentes.

Así, pues, el alumnado deberá familiarizarse con el uso de terminales en sis-

temas operativos GNU/Linux. Una vez instalado un sistema operativo GNU/

Linux en modo gráfico, hay que buscar solamente la aplicación de «Terminal»

en la barra de aplicaciones. El resto del manual que escribimos a continuación

se basará en los detalles de este entorno.

Cuando abrimos el terminal, observaremos que aparece una cadena de texto

similar a la siguiente:

usuario@nombreMaquina:$

Consejo

Aconsejamos trabajar en una instalación similar con entorno gráfico, pero será necesario aprender a utilizar los coman- dos de terminal.

1988 tar -xvf docs.tar 1989 exit 1990 hostclear 1991 clear 1992 clear 1993 clear 1994 history 1995 history | more

Y se pueden ejecutar de nuevo empleando un identificador del comando (el

número que lo acompaña), precedido de un signo de exclamación. Por ejem-

plo:

usuario@nombreMaquina:$!

De manera similar, se pueden ejecutar comandos que ya se han ejecutado an-

teriormente de manera directa empleando el carácter «!» con las primeras le-

tras del comando que se desee ejecutar. Por ejemplo:

usuario@nombreMaquina:$ !wge

Finalmente, con la combinación de teclas «control» + «r», aparece un buscador

de comandos en el que se pueden introducir letras concretas de comandos

también anteriores:

(reverse-i-search)'c': clear

4. Usuarios del sistema

El sistema operativo puede integrar varios usuarios. Durante el proceso de ins-

talación, el asistente solicitará el nombre de usuario y la contraseña para, al

menos, un usuario, además de la contraseña para el usuario administrador

(que, en entornos GNU/Linux se denomina root ). Así, pues, en un sistema ope-

rativo estándar, se dispondrá de, como mínimo, dos usuarios, un usuario root

y otro usuario normal.

La información de todos los usuarios se aloja en el fichero «/etc/password», que

contiene los campos siguientes, donde el carácter «:» actúa como delimitador.

En concreto, la información que almacena cada línea es la siguiente:

  • el nombre de usuario,
  • la contraseña cifrada (en las distribuciones actuales esta información está

en el fichero «/etc/shadow», así que ya no reside aquí),

  • un número identificador de usuario,
  • el identificador del grupo al cual pertenece el usuario,
  • el nombre completo,
  • la carpeta con los ficheros del usuario (se denomina técnicamente la home ),

y

  • el software que actuará de intérprete de los comandos (en el caso de esta

asignatura «/bin/bash»).

Por ejemplo:

usuario@nombreMaquina:$ cat /etc/passwd | grep usuario usuario:x:1000:1000:usuario,,,:/home/usuario:/bin/bash

Con el comando id podemos conocer el identificador de usuario, y también

los grupos a los que pertenece:

usuario@nombreMaquina:$ id uid=1000(usuario) gid=1000(usuario) grupos=1000(usuario),4(adm),24(cdrom),27(sudo),30(dip), 46(plugdev),113(lpadmin),128(sambashare)

El usuario administrador que dispone de todos los permisos del sistema se

denomina root y tiene el identificador «0». Es posible «suplantar» al usuario

administrador con los comandos sudo y su. A continuación mostramos un

par de ejemplos:

usuario@nombreMaquina:$ sudo apt-get install xboard #Comando que accederá como root (con autenticación previa e instalará por medio de los repositorios de software el paquete xboard). Este comando solamente ejecutará una instrucción como superusuario.

Recomendación

Se recomienda a todos los usuarios que siempre empleen un usuario concreto (por ejem- plo, «usuario») y que no se acostumbren a trabajar habitualmente con el usuario root. Sin

5. El sistema de ficheros

El sistema operativo GNU/Linux dispone de un sistema de ficheros para

el almacenamiento de la información y los datos estructurado por me-

dio de carpetas y ficheros.

A diferencia de los sistemas basados en Microsoft Windows, GNU/Linux no

utiliza unidades tipo «C:», «D:» o «E:» para referirse a espacios de almacena-

miento, sino que toda la estructura cuelga de una carpeta inicial ( / ). De ahí

cuelga todo el árbol de carpetas y subcarpetas. A continuación mostramos al-

gunas de las carpetas que acostumbran a incluir la mayoría de sistemas GNU/

Linux:

Carpeta Contenido

/bin Contiene los ficheros ejecutables esenciales para los usuarios (los binarios).

/boot Contiene los ficheros estáticos de arrancada del sistema.

/dev Contiene los dispositivos tipo puertos USB, dispositivos de alma- cenamiento, entre otros.

/etc Contiene ficheros de configuración de software.

/home Contiene las carpetas de los usuarios. Cada usuario dispone de una carpeta dentro de esta «home», de la cual es propietario y responsable (por ejemplo, en «/home/usuario» están todos los fi- cheros del usuario «usuario»).

/lib Contiene librerías compartidas para el software.

/lost+found Contiene ficheros recuperados.

/media￿o￿/mnt Carpeta con el punto de montaje de los dispositivos extraíbles.

/opt Carpeta con software opcional.

/proc Contiene ficheros del kernel e información de los procesos que se ejecutan en el sistema.

/root «home» del usuario root. Tal como hemos comentado anterior- mente, este usuario es el administrador del sistema.

/sbin Contiene ficheros ejecutables para la administración del sistema.

/tmp Contiene ficheros temporales.

/usr Contiene ficheros ejecutables (binarios) de los usuarios.

/var Contiene ficheros de datos variables.

A continuación veremos algunos primeros comandos de terminal para navegar

por medio de esta estructura de carpetas.

pwd^4 es la herramienta que muestra en qué carpeta reside el usuario en ese

momento. Se trata de una herramienta de cariz solamente informativo, que

mostrará al usuario en qué carpeta está y no ejecuta ninguna otra acción. Por

ejemplo:

usuario@nombreMaquina:$ pwd /home/usuario

ls es una herramienta para listar los ficheros que están en un directorio. Las

opciones más utilizadas son las siguientes:

  • a mostrará todos los ficheros (los ficheros que se inician con un punto.

están ocultos y no se ven con un ls normal).

  • l proporciona detalles con un formato de lista largo.
  • t ordena por fecha de modificación, primero el más nuevo.
  • S ordena las entradas por medida, de mayor a menor.
  • r invierte el orden.

Toda la información del comando ls se puede consultar en la página del ma-

nual de la herramienta, accesible con el comando:

usuario@nombreMaquina:$ man ls

También es posible ver un resumen de los parámetros disponibles empleando

el comando:

usuario@nombreMaquina:$ ls –-help

Algunos ejemplos sencillos:

usuario@nombreMaquina:# ls CCA0.aux CCA0.synctex.gz CCA0.tex CCA1.tex

usuario@nombreMaquina:# ls -l total 16 -rw-r--r-- 1 root root 454 de ma 5 21:01 CCA0.aux -rw-r--r-- 1 root root 3803 de ma 5 21:01 CCA0.synctex.gz -rw-r--r-- 1 root root 3497 de ma 5 21:01 CCA0.tex -rw-r--r-- 1 root root 3497 de ma 10 19:22 CCA1.tex

cd es la herramienta para cambiar de la carpeta actual. Si el usuario está en

«/home/usuario/» y, ejecutando ls observamos que hay una carpeta que se

denomina «PACS», será posible acceder a ella usando el comando cd PACS.

Para regresar a la carpeta anterior, habrá que ejecutar cd ..

Es posible acceder directamente a la home del usuario usando el comando cd

sin emplear ningún parámetro. Por ejemplo:

usuario@nombreMaquina:/Projects$ pwd

(4)Proviene del acrónimo Print Wor- king Directory.

tmpfs 7,9G 81M 7,8G 2% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 7,9G 0 7,9G 0% /sys/fs/cgroup tmpfs 1,6G 16K 1,6G 1% /run/user/ tmpfs 1,6G 40K 1,6G 1% /run/user/

ln es una herramienta para crear enlaces entre ficheros (se trata del concepto

de accesos directos de Windows). Acostumbraremos a realizar soft links. Por

ejemplo:

usuario@nombreMaquina:$ ln -s /etc/passwd contraseñas.txt #Este comando creará en la carpeta actual un fichero contraseñas.txt que será un acceso directo a /etc/passwd. usuario@nombreMaquina:$ ls -l lrwxrwxrwx 1 usuario usuario 11 de ju 22 11:13 contraseñas.txt -> /etc/passwd

El primer carácter de la línea anterior es una «l», que indica que se trata de

un enlace ( link ).

chown es la herramienta que hay que utilizar para cambiar el propietario de

un fichero. Cada fichero pertenece a un propietario y también a un grupo

propietario. Examinemos el ejemplo siguiente:

usuario@nombreMaquina:$ touch hola.txt #Con este comando crearemos un fichero hola.txt. usuario@nombreMaquina:$ ls -l hola.txt #Y con este otro comando veremos quién es el propietario. -rw-r--r-- 1 usuario usuario 0 de ju 22 11:15 hola.txt

El primer «usuario» se refiere al usuario propietario del fichero. El segundo

se refiere al grupo propietario. En los ficheros «/etc/passwd» se pueden ver el

listado de usuarios existentes en un sistema. En el fichero «/etc/group» está el

listado de los grupos. En este caso concreto, hay un grupo que se denomina

igual que el usuario, aunque no siempre es así.

Con el comando siguiente estableceremos el cambio de propietario y de grupo

propietario del fichero «hola.txt». Para traspasar un fichero para que sea pro-

piedad de root , habrá que emplear la herramienta sudo, que permite ejecutar

comandos como si fuéramos root.

usuario@nombreMaquina:$ sudo chown root:root hola.txt usuario@nombreMaquina:$ ls -l hola.txt -rw-r--r-- 1 root root 0 de ju 22 11:15 hola.txt

chmod es la herramienta empleada para cambiar los permisos de ficheros. En

entornos GNU/Linux, hay tres permisos y tres tipos de usuario:

Permisos Usuarios

«r» de lectura «u», el propietario del fichero

«w» de escritura «g», el grupo propietario

«x» de ejecución «o» para el resto

Para un fichero, «ejecutar» significa poder ejecutar el programa que hay den-

tro. Para un directorio, el permiso de ejecución es necesario para hacer cual-

quier cosa dentro de la carpeta.

usuario@nombreMaquina:$ ls -l script.sh -rw-r--r-- 1 usuario usuario 0 de ju 22 11:15 script.sh

Con este comando observamos los permisos de este hola.txt. El usuario root

puede hacer rw- (puede leer y escribir, pero no ejecutar, el grupo propietario

puede solamente leer r-- y, finalmente, el resto de usuarios, pueden solamen-

te leer r--). El primer guion sirve para conocer de qué tipo de fichero se trata

(las carpetas contienen una «d» y los enlaces una «l», tal como hemos visto

previamente).

Para otorgar permiso de ejecución, podemos realizar lo siguiente:

usuario@nombreMaquina:$ chmod u+x script.sh

Y ahora:

usuario@nombreMaquina:$ ls -l script.sh -rwxr--r-- 1 usuario usuario 0 de ju 22 11:15 script.sh

El parámetro u del comando chmod se refería al usuario. De manera similar,

podríamos haber empleado g para el grupo y o para los otros.

Hay otra manera de emplear el comando chmod. Consideramos que los per-

misos consisten en tres números (observamos que hay tres permisos para tres

objetos –usuario, grupo y el resto). Consideramos ahora estos permisos en bi-

nario (un «0» si no se le otorga y un «1» si se le otorga). De binario, traspasa-

mos a decimal.

Por ejemplo:

  • 7 se escribe en binario 111.
  • 5 se escribe en binario 101.
  • 1 se escribe en binario 001.

Es posible establecer permisos empleando esta codificación:

usuario@nombreMaquina:$ chmod 751 fichero.txt usuario@nombreMaquina:$ ls -l fichero.txt -rwxr-x--x 1 usuario usuario 0 de se 16 06:44 fichero.txt

En este caso, el usuario «usuario» puede realizar todas las operaciones (leer, escribir y ejecutar), que se leería como 111 y en binario corresponde al número 7, el grupo «usuario» solamente leer y ejecutar (r-w), que en binario se leería 101 y corresponde al número 5 y, finalmente, el resto de usuarios solamente ejecutar (--x), que en binario se leería 001 y corresponde al número 1.

El comando para la creación de la base de datos se tiene que realizar como root :

usuario@nombreMaquina:$ sudo updatedb

Hay que ejecutar este comando a menudo. Idealmente, se pone en el Cron

para que se ejecute de manera automática.

Con la base de datos construida, ya es posible buscar ficheros:

usuario@nombreMaquina:$ locate mkpasswd /usr/bin/grub-mkpasswd-pbkdf /usr/bin/mkpasswd /usr/share/man/man1/grub-mkpasswd-pbkdf2.1.gz /usr/share/man/man1/mkpasswd.1.gz

7. Manipulación de ficheros

En este apartado trataremos el tema de la manipulación de ficheros por medio

de las herramientas de un terminal con GNU/Linux.

Primero empezaremos indicando en qué consisten los descriptores￿de

ficheros : se trata de enteros positivos que representan ficheros abiertos.

En el supuesto de que el sistema disponga de cincuenta ficheros abiertos, ha-

brán cincuenta descriptores que apunten a estos. Dado que en los sistemas

operativos basados en Unix todo es un fichero, los procesos incorporan des-

criptores￿«especiales» :

Descriptor Tarea Operador

stdin Un descriptor de fichero que representa la entrada de datos de los procesos y al que se le asigna el entero 0.

stdout Un descriptor de fichero que apunta dónde se publican los resultados de las ejecuciones y al que se le asigna el entero 1.

stderr Un descriptor que apunta en el fichero dónde se incor- poran los errores y al que se le asigna el 2.

En el ejemplo siguiente, el resultado del comando ls se redirige a un fichero

externo:

usuario@nombreMaquina:$ ls -l > ficheros.txt

Hay que tener en cuenta que, en el supuesto de que «ficheros.txt» ya existiera,

se sobrescribiría y se perdería la información que contuviera. En el supuesto

de que se desee agregar información al ya existente, habría que emplear el

operador >>.

Por ejemplo, el comando siguiente agregaría a «ficheros.txt» el resultado del

comando pwd:

usuario@nombreMaquina:$ pwd >> ficheros.txt

La entrada estándar también se puede modificar empleando el carácter <. Por

ejemplo:

usuario@nombreMaquina:$ sort < listado.txt

Operadores

Con los operadores es posible sobrescribir los descriptores.