martes, 24 de junio de 2025

Sistemas Operativos 3.- Operaciones Básicas en Linux

¿Te pierdes entre tantos temas? 📚✨ Descubre todo lo que ofrece este blog en un solo vistazo [👉 Ver índice completo]

Comandos Básicos de Linux: Guía para Principiantes


2.1 Comandos Básicos de Linux

En este capítulo vamos a desarrollar una pequeña chuleta para poder manejarnos básicamente a través de la terminal de Linux.


Manejo de Directorios

pwd - print working directory

Este comando muestra la ruta completa del directorio actual en el que estás trabajando.
Es útil cuando navegas por muchas carpetas y necesitas saber exactamente dónde estás ubicado dentro del sistema de archivos.

comando pwd

cd - change directory

Por defecto, la secuencia de entrada en linux, nos sitúa en nuestro directorio de entrada o de trabajo (un  directorio  llamado  igual que  el  usuario,  dentro  del  directorio  /home).  Pero  al  igual  que  otros  sistemas operativos podemos cambiar de directorio mediante el mandato cd directorio. Si  no  introducimos  ningún  nombre  de  directorio,  el  mandato cd, sin  argumentos  vuelve  a  nuestro directorio de trabajo. Si queremos volver al directorio de nivel superior basta con utilizar cd ..

Comportamientos comunes:

  • Ir al directorio Personal (home):

    cd 

Que es equivalente a:

   cd ~

  • Cambiar a un subdirectorio:

    cd nombre_directorio

  • Volver al directorio anterior (última ubicación)

    cd -

  • Subir un nivel en el árbol de directorios:

    cd ..

  • Ir al directorio raíz del sistema:

    cd /

El nombre de un fichero o de un directorio se puede referenciar de forma relativa o absoluta.

  • Forma relativa: El nombre hace referencia a ficheros o directorios desde el directorio en el que nos encontramos.
  • Forma absoluta: El nombre hace referencia a todo el camino desde la raíz. Ejemplo: si nos encontramos en nuestro directorio de entrada y queremos ir al directorio /etc

Relativa: Referencia desde tu ubicación actual (ej. cd Documentos).

ruta relativa

Absoluta: Referencia desde la raíz (ej. cd /home/usuario/Documentos).

ruta absoluta

mkdir - make directory

Para crear un directorio (carpeta) es necesario utilizar la orden mkdir nombresDeDirectorio

  • Si queremos crear un solo directorio:

crear un directorio

  • Si queremos crear varios directorios:
crear varios directorios

  • Crear una estructura de directorios anidados (incluye carpetas padre sino existen)

crear directorios recursivos si no existe el padre

rmdir - Remove Directory

Para borrar un directorio es necesario utilizar la orden rmdir nombresDeDirectorio, es necesario que ese directorio este vacío. ⚠️ Si el directorio contiene archivos o subdirectorios, rmdir no lo eliminará. En ese caso, se debe usar rm -r, pero recuerda utilizarlo con precaución.

eliminar directorios

Comandos Básicos

date

Permite consultar la fecha y hora del sistema.

comando date

who / whoami

who: este comando muestra los usuarios conectados a la máquina.

comando who

whoami: Muestra tu nombre de usuario.

comando whoami

ls (Listar archivos)

Este comando muestra el contenido de un directorio. Este comando tiene varias opciones:

ls: Muestra contenido del directorio actual.

ls

Opciones útiles:

ls -a: Muestra además los archivos ocultos (aquellos cuyo nombe empieza con un ".")

ls -a

ls -F: para saber que archivos de un directorio son archivos normales, cuales directorios y cuales enlaces. (los que terminan con / = directorio, los que terminan con * = ejecutable -código- y los que terminan con @ son enlaces simbólicos) .

ls -f

ls -t: Ordena por fecha (más reciente primero).

ls -t

ls -t -r: muestra primero la información más antigua.

ls -t -r

ls -R:
muestra toda la información del directorio en el que me encuentro.

ls -R

ls -l: nos muestra más información (el nombre con sus características) sobre el contenido del del directorio donde me encuentro.

ls -l

Por ejemplo, para el fichero anterior llamado “fichero1” muestra una fila con siete columnas:
Columna 1 - está compuesta por dos partes: 
  • El primer carácter que nos informa sobre el tipo de información que es:
                        -    fichero ordinario
                        d   directorio
                        l     enlace simbólico
  • los 9 siguientes caracteres nos indican los permisos, estos caracteres se agrupan de tres en tres. Los tres primeros son los permisos para el propietario (r w -), los tres siguientes los permisos para el grupo (r --) y los tres últimos los permisos para el resto de usuarios (---). Los permisos pueden ser de lectura (r), escritura (w) y ejecución (x)
Columna 2 - número de enlaces duros.
Columna 3 - indica el nombre del propietario del fichero.
Columna 4 - grupo al que pertenece el usuario propietario del fichero.
Columna 5 - muestra el tamaño de fichero en bytes.
Columna 6 - Hace referencia a la hora en que el fichero fue modificado por última vez o creado.
Columna 7 - nombre del fichero

ls -i: Muestra el número de inodo de cada archivo.

ls -i


touch

Sirve para crear fichero en blanco.

Caracteres comodines

A veces es interesante referenciar ficheros que tengan en su nombre características comunes. “Todos los ficheros que empiezan por la letra c...”. En Linux esto se consigue utilizando caracteres especiales (llamados metacaracteres o comodines) que representan otras cosas:

  • El carácter asterisco '*' representa a cualquier cadena de caracteres arbitraria incluyendo la cadena vacía. (para buscar)
  • La interrogación '?' representa a cualquier carácter simple. (para buscar)
  • Los corchetes '[' ']' pueden contener un grupo o rango de caracteres y corresponden a un carácter simple. (para buscar)
  • Las llaves ‘{‘,’}’ deben contener diferentes alternativas, constituidas por un carácter o un grupo de caracteres, separadas todas ellas por comas. (para buscar / crear). Los dos puntos '..' entre {} en expansión de secuencias se usa para generar rangos automáticamente bien sean números o letras. Por ejemplo, vamos a crear varios ficheros:
touch

Visualización de Archivos

cat

La orden cat se utiliza para visualizar sobre la salida estándar el contenido de un fichero. Lógicamente el tipo de ficheros a visualizar debe ser de texto, ya que si utilizamos la orden con un fichero ejecutable la salida sería ilegible. Para visualizar el fichero de texto llamado prueba:

cat1

La orden cat permite listar varios ficheros secuencialmente. Si tenemos dos ficheros llamados prueba1 y prueba2, el siguiente comando nos permite hacerlo:

cat 2

Una aplicación muy útil de cat, es concatenar ficheros. Por ejemplo, si queremos concatenar los dos ficheros anteriores en un nuevo fichero llamado prueba3 bastaría con ejecutar lo siguiente:

cat2

Si queremos añadir al final de un fichero el contenido de otro:

cat3

En Linux, los caracteres > y >> se utilizan para redirigir la salida de un comando a un archivo, pero con una diferencia clave en su comportamiento:

1. > (Redirección estándar)
Sobrescribe el contenido del archivo.
Si el archivo no existe, lo crea.
Si el archivo existe, lo borra y escribe el nuevo contenido.

⚠️ ¡Cuidado!
Si usas > sobre un archivo existente, pierdes su contenido anterior.

2. >> (Redirección con anexado)
Añade el contenido al final del archivo (sin borrar lo anterior).
Si el archivo no existe, lo crea.

more

Una orden alternativa a cat es la orden more que da más control que la anterior, ya que automáticamente lista un fichero y cuando llena la terminal (lista tantas líneas como el tamaño de la terminal) se para, esperando que pulsemos una tecla (intro para continuar mostrando el contenido del fichero línea a línea o el espacio mostrar el contenido hasta que se vuelva a llenar de nuevo la terminal).

more   [ opciones]    nombre_del_fichero

La orden more tiene varias opciones interesantes:

• Con la opción -n, lista el fichero presentando de n en n líneas y no con el número de líneas que posee nuestra pantalla.

• Con el modificador +n, lista el fichero a partir de la línea n

more

more -n

more +

tail

La orden tail permite visualizar el final de un fichero (por defecto 10 líneas). El formato de este comando es:   

tail  [-numlineas]   nombrefichero

tail

La opción -f del comando tail es increíblemente útil porque te permite seguir los cambios en los archivos en tiempo real. Imagina que tienes un archivo que se está actualizando constantemente, como un archivo de registro (log) de un sistema o una aplicación; con tail -f, no solo verás las últimas líneas existentes, sino que el comando permanecerá activo y mostrará automáticamente cualquier nueva línea que se añada al archivo a medida que suceda. Esto es especialmente práctico para monitorizar la actividad en vivo, diagnosticar problemas o simplemente ver cómo crece un archivo sin tener que abrirlo y cerrarlo repetidamente.

Gestión de Archivos: copia, movimiento y renombrado de ficheros.

cp (Copiar)

Si queremos copiar un fichero utilizamos el mandato cp. Por ejemplo, para copiar el fichero llamado “fichero” al directorio dir1, con el mismo nombre:

Archivos: cp origen destino.

CP

Para copiar el fichero llamado “fichero” al directorio dir1 y llamarlo fich, en vez del nombre que tiene actualmente:
cp cambiando el nombre

La orden cp también copia directorios. Para esto utilizamos el modificador recursivo –R . Por ejemplo,si queremos copia el directorio dir1 (y todo su contenido) al directorio2

Directorios: cp -R dir1 dir2 (copia recursiva)

cp -R


mv (Mover/Renombrar)

El cometido de la orden mv es mover ficheros entre diferentes directorios. Si se usa sobre el mismo directorio el efecto obtenido consiste en cambiar el nombre al fichero. Por ejemplo, cambiamos el nombre del fichero “prueba” por “pruebilla”:

mv

Para mover el fichero “pruebilla” al directorio dir1:

mover archivo

Los permisos del fichero copiado o movido son los mismos que los del fichero original

rm (Eliminar) ⚠️ ¡Mucho cuidado con este comando!

La orden rm suprime un fichero de un directorio o un directorio completo. Con la opción –R borra un directorio con todo su contenido. ¡Ojo! Esta orden es muy peligrosa, utilízala con precaución. Para borrar un fichero:

rm archivo

Para borrar un directorio este tiene que estar vacío o utilizamos la opción -R si queremos borrar el directorio y todo lo que tiene dentro:

rm -r

Otras Órdenes Útiles para trabajar con ficheros.

sort

Ordena la información de un fichero. Esta orden la podemos utilizar con diferentes formatos:

sort nombre_fichero   - muestra el contenido del fichero ordenado

sort


sort -o fich1 fich2 - mete en fich1 el contenido del fich2 ordenado

sort -o

wc (Contar)

Sirve para contar líneas, palabras y bytes de un fichero. 

Muestra esta información de la siguiente forma:

numero de líneas     numero de palabras   numero de bytes       nombre del fichero

wc  [opciones]  nombrefichero

Opciones de esta orden:

-c - solo muestra el número de bytes

-l - solo muestra el número de líneas

-w - solo muestra el número de palabras

wc

split 

El mandato split divide un fichero de texto en partes. La sintaxis es de la forma:

    split   [-líneas]   nombre    [prefijo]

División por defecto: el prefijo por defecto es x, y el número de líneas 1000 (crea ficheros xaa, xab, xac, xad... con 1000 líneas cada uno).

Si dividimos nuestro fichero llamado “fichero” en ficheros de 3 líneas, se crean 7 ficheros

split

cut (recortar)

El mandato cut recorta columnas o campos de un fichero. 

La sintaxis en este caso es como sigue:

cut [opciones] nombre 

Las opciones pueden ser:

  • Cortando columnas. Opción -c 
  • Cortando campos (por defecto, cut asume que los campos se encuentran separados por tabuladores). Opción –f 
  • Indicar de forma explícita el carácter usado como separador entre campos. Opción –d

cut -c
En este ejemplo vemos como se cogen de cada línea del fichero los caracteres que están en la columna 2 y en la 7.
cut -f

En el ejemplo anterior los datos han sido separados por tabuladores. Al usar la orden cut -f le hemos dicho que recorte de cada fila los datos que estén antes de la primera, segunda y cuarta tabulación.


En este último ejemplo le he pedido que utilizando como separador el espacio en blanco " " que recorte lo que este antes del primer y tercer separador.


grep (Buscar)

El mandato grep permite realizar búsquedas de líneas que contengan texto que identifique a un objetivo o patrón que se especifica. Se pueden utilizar para extraer información de los archivos, buscar líneas que se relacionen con un elemento particular y para localizar archivos que contengan una palabra clave particular. La forma general del mandato es la siguiente:

grep [opciones] expresión [fichero]

Si se quiere buscar más de una palabra (una frase) separadas por espacios en blanco, o se utilizan caracteres comodín, es necesario encerrar la expresión entre comillas. 

Algunas de las opciones de este mandato son:

  • -i   La búsqueda no es sensible a mayúsculas/minúsculas
  • -n  Muestra el número de línea donde se ha encontrado la coincidencia y también la línea.
  • -l   Muestra los nombres de los ficheros, pero no las líneas.
  • -v   Muestran las líneas donde no se produce la coincidencia.
grep

Enlaces.

Aunque los enlaces duros y blandos los vimos en el post anterior merece la pena volver a repasarlos. 

El comando ln sirve para crear enlaces.

ln  -s  f1  simbo1f1 crea un enlace bando (simbólico) llamado simbo1f1 al fichero f1.

Recuerda que los enlaces simbólicos son como los accesos directos en Windows.

ln  f1  enla1f1 crea un enlace duro llamado enla1f1 al fichero f1. Los enlaces duros son como diferentes nombres para un mismo archivo. (no valen para directorios)

enlaces


Conclusión

Estos comandos son esenciales para trabajar en Ubuntu o cualquier distribución Linux. Practícalos en la terminal para familiarizarte con ellos.

No hay comentarios:

Publicar un comentario