Comandos Básicos de Consola / Terminal CLI para Windows
Introducción
La interfaz de línea de comandos (CLI) es una herramienta que permite a los usuarios interactuar con el sistema operativo o software mediante la escritura de comandos en una terminal o consola. A diferencia de las interfaces gráficas de usuario (GUI), donde se interactúa con el sistema mediante clics y ventanas, en la CLI se ingresan instrucciones directamente como texto.
Uso de minúsculas en los comandos: Es recomendable escribir siempre los comandos en minúsculas, ya que la mayoría de los sistemas basados en Unix, como Linux y macOS, diferencian entre mayúsculas y minúsculas.
Diferencias en el manejo de nombres de archivos y carpetas:
- En Windows, los nombres de archivos y carpetas no distinguen entre mayúsculas y minúsculas, por lo que
archivo.txt
yArchivo.txt
se consideran el mismo archivo. - En Linux y macOS, los nombres de archivos y carpetas sí distinguen entre mayúsculas y minúsculas, lo que significa que
archivo.txt
yArchivo.txt
son archivos diferentes.
Uso del slash (/) para referirse a directorios:
- En sistemas Unix (Linux y macOS), es recomendable agregar una barra inclinada (
/
) al final de un nombre de directorio para evitar confusiones. - Ejemplo:
proyectos/
indica que "proyectos" es un directorio y no un archivo.
también se debe tener en cuenta que para referirse a un directorio se debe usar el slash (/) al final de su nombre, p.ej proyectos/
.
Ventajas del Uso de la CLI
- Mayor rapidez y eficiencia en la ejecución de tareas repetitivas.
- Automatización de procesos mediante scripts.
- Acceso avanzado a configuraciones del sistema que no siempre están disponibles en la interfaz gráfica.
- Menor consumo de recursos, ya que no depende de elementos visuales.
pwd (Print Working Directory)
El comando pwd en sistemas operativos tipo Unix, como Linux y macOS, se utiliza para mostrar la ruta absoluta del directorio en el que se encuentra el usuario en la terminal.
Uso de pwd
Simplemente se debe escribir el comando en la terminal:
pwd
Ejemplo de Salida
Si el usuario está en la carpeta /home/usuario/proyectos
, al ejecutar pwd
, la terminal mostrará:
/home/usuario/proyectos
Casos de Uso de pwd
- Ver la ubicación actual en el sistema de archivos.
- Evitar confusión al navegar entre directorios.
- Uso en scripts para obtener la ubicación actual y trabajar con rutas absolutas.
Opciones útiles de pwd
-
pwd -L
: Muestra el directorio actual con enlaces simbólicos (por defecto). -
pwd -P
: Muestra la ruta real sin enlaces simbólicos.
ls (LiSt)
El comando ls se utiliza en sistemas Unix/Linux y macOS para listar el contenido de un directorio en la terminal. Es una de las herramientas más básicas y esenciales en la interfaz de línea de comandos (CLI).
Formato ls
ls [opciones] [ruta_de_directorio] [nombre_de_los_archivos]
Usos ls
-
ls
, muestra el listado de archivos en el directorio de trabajo actual. -
ls c:\usuario\proyecto
, muestra el listado del directorioproyecto
. -
ls ..
, muestra el contenido del directorio padre, es decir el nivel superior. -
ls -d */
, lista sólo directorios o carpetas. -
ls *
, presenta todos los archivos incluyendo los que están dentro de los subdirectorios. -
ls -R
, revela todos los archivos incluyendo los que hay en todas las subcarpetas hasta el último. -
ls -s
, exhibe los archivos junto a su tamaño. -
ls -l
, presenta los archivos en formato largo o más detallado. -
ls -a
, desplega todos los archivos y carpetas incluyendo los ocultos. -
ls -t
, muestra los archivos y carpetas ordenados por de su fecha de modificación en orden descendente (de mayor a menor). -
ls -tr
, muestra los archivos y carpetas ordenados por de su fecha de modificación en orden ascendente (de menor a mayor). -
ls > output.txt
, el listado obtenido con el comandols
se guarda en el archivooutput.txt
. -
ls --help
, muestra la ayuda del comandols
.
Ejemplos de uso ls
- Listar archivos con detalles completos:
ls -l
Salida esperada:
-rw-r--r-- 1 usuario grupo 2048 Feb 15 10:30 archivo.txt drwxr-xr-x 2 usuario grupo 4096 Feb 14 08:12 documentos/
- Listar todos los archivos, incluyendo los ocultos:
ls -a
Salida esperada:
. .. .oculto archivo.txt documentos/
ls -lS
Esto ordena los archivos de mayor a menor tamaño.
ls -R
Esto muestra todos los archivos dentro de los subdirectorios.
El comando ls
es fundamental para la navegación y gestión de archivos en la terminal, y su uso combinado con opciones avanzadas permite optimizar el flujo de trabajo en sistemas Unix/Linux y macOS.
cd (Change Directory)
El comando cd se utiliza en sistemas Unix/Linux y macOS para cambiar de directorio dentro de la terminal. Es una de las herramientas fundamentales para la navegación en la interfaz de línea de comandos (CLI).
Formato cd
cd [opciones] [ruta_de_directorio]
Ejemplos de uso cd
- Ir a un directorio específico: Esto cambia al directorio llamado "documentos", siempre que se encuentre dentro del directorio actual.
cd documentos/
- Regresar al directorio anterior: El doble punto
..
indica el directorio padre. Con este comando, se sube un nivel en la jerarquía de directorios.cd ..
- Regresar al directorio raíz (
/
): Esto lleva al usuario al directorio raíz del sistema.cd /
- Ir al directorio personal del usuario (
home
): El símbolo~
representa el home del usuario, generalmente/home/nombre_usuario/
en Linux,/Users/nombre_usuario/
en macOS oC:\Users\Nombre-de-usuario
en Windows.cd ~
- Regresar al directorio anterior (no confundir con el directorio padre): Este comando cambia al directorio en el que el usuario estaba antes de ejecutar el último
cd
.cd -
- Acceder a un directorio mediante una ruta absoluta: En este caso, se accede al directorio "proyectos" usando su ruta completa.
cd /home/usuario/proyectos/
- Acceder a un directorio mediante una ruta relativa: Si el usuario está en
/home/usuario/
, este comando lo llevará a/home/usuario/proyectos/
.cd proyectos/
- Muestra la ayuda de este comando:
cd --help
mkdir (Make Directory)
El comando mkdir se utiliza en sistemas Unix/Linux y macOS para crear directorios (carpetas) desde la terminal. Es una herramienta fundamental en la administración de archivos y directorios en la interfaz de línea de comandos (CLI).
Formato mkdir
La sintaxis general del comando mkdir es:
mkdir [nombre_de_directorio]
Esto crea un nuevo directorio en la ubicación actual.
Ejemplos de Uso mkdir
- Crear un solo directorio: Este comando crea un directorio llamado "proyectos" en el directorio actual.
mkdir proyectos
- Crear varios directorios a la vez: Esto creará tres directorios llamados "carpeta1", "carpeta2" y "carpeta3" en la ubicación actual.
mkdir carpeta1 carpeta2 carpeta3
- Crear un directorio en una ubicación específica: Este comando creará el directorio "nuevo_proyecto" dentro de "/home/usuario/documentos/".
mkdir /home/usuario/documentos/nuevo_proyecto
- Crear un directorio con una subcarpeta (opción
-p
): La opción-p
(parents) permite crear directorios anidados sin necesidad de hacerlo uno por uno. En este caso, si "proyectos" y "clienteX" no existen,mkdir
los creará automáticamente junto con "documentos".mkdir -p proyectos/clienteX/documentos
- Verificar que el directorio se creó: Después de ejecutar
mkdir
, se puede usar ls para comprobar que el directorio ha sido creado:ls -l
Opciones Útiles de mkdir
- mkdir -p: Crea directorios anidados sin errores si ya existen.
- mkdir -v: Muestra un mensaje con cada directorio creado.
- mkdir -m MODE: Establece permisos específicos al crear el directorio.
- mkdir -m 755 carpeta_segura: Esto crea un directorio con permisos 755 (propietario con permisos de lectura, escritura y ejecución; otros solo lectura y ejecución).
touch
El comando touch
en sistemas Unix/Linux y macOS se utiliza principalmente para crear archivos vacíos o actualizar la fecha y hora de modificación de un archivo sin modificar su contenido. Es una herramienta útil en la administración de archivos dentro de la interfaz de línea de comandos (CLI).
Formato touch
touch [nombre_del_archivo]
Si el archivo no existe, el comando lo crea vacío. Si el archivo ya existe, simplemente actualiza su fecha de modificación sin cambiar su contenido.
Ejemplos de uso touch
- Crear un archivo vacío: Este comando creará un archivo llamado "documento.txt" en el directorio act
touch documento.txt
- Crear varios archivos a la vez: Esto creará los archivos "archivo1.txt", "archivo2.txt" y "archivo3.txt" en el directorio actual.
touch archivo1.txt archivo2.txt archivo3.txt
- Actualizar la fecha y hora de un archivo existente: Si "informe.txt" ya existe, su fecha de modificación se actualizará a la fecha y hora actual sin modificar su contenido.
touch informe.txt
- Cambiar la fecha de modificación a una fecha específica: Esto cambia la fecha de modificación de "archivo.txt" a 28 de febrero de 2024 a las 15:30.
touch -t 202402281530 archivo.txt
- Evitar la creación del archivo si no existe (solo actualizar la fecha): Si el archivo no existe, no se creará. Si existe, se actualizará su fecha de modificación.
touch -c archivo.txt
Opciones Útiles de touch
- touch -c: No crea el archivo si no existe, solo actualiza la fecha de modificación si ya existe.
- touch -m: Solo modifica la fecha de modificación del archivo, sin cambiar la de acceso.
- touch -a: Solo cambia la fecha de acceso sin modificar la de modificación.
- touch -t [[CC]YY]MMDDhhmm[.ss]: Especifica una fecha y hora personalizada.
- touch -t 202402281530 archivo.txt : Esto cambia la fecha de modificación de "archivo.txt" a 28 de febrero de 2024 a las 15:30.
- touch -d "2023-12-01 10:00:00" reporte.txt : Esto cambia la fecha de "reporte.txt" a 1 de diciembre de 2023 a las 10:00 AM.
rm (ReMove)
El comando rm
se utiliza para eliminar archivos y directorios. Su uso puede ser peligroso porque los archivos eliminados con rm
no se envían a la papelera, sino que se borran de manera permanente.
Formato rm
rm [opciones] [ruta_de_directorio]/[nombre_del_archivo]
Usos rm
-
rm -f c:\usuarios\respaldo\index.css
, se hace la eliminación del archivoindex.css
sin pedir confirmación alguna. -
rm -i index.css
, pide la confirmación antes de la eliminación del archivoindex.css
. -
rm -r c:\usuarios\respaldo\
o-R
, se elimina el directorio derespaldo
recursivamente, es decir, se elimina el directorio con todo su contenido incluyendo subcarpetas y archivos. -
rm -d c:\usuarios\respaldo\
, borra el directoriorespaldo
, si y sólo si, está vacío, de lo contrario mostrará un error. -
rm -v c:\usuarios\respaldo\
, Muestra los archivos eliminados.
Ejemplos de Uso rm
- Eliminar un archivo específico: Borra el archivo
archivo.txt
en el directorio actual.rm archivo.txt
- Eliminar varios archivos: Elimina
archivo1.txt
yarchivo2.txt
.rm archivo1.txt archivo2.txt
- Eliminar todos los archivos con cierta extensión: Elimina todos los archivos con extensión
.log
en el directorio actual.rm *.log
- Eliminar un directorio y su contenido: Elimina
carpeta
junto con todos sus archivos y subdirectorios.rm -r carpeta
- Forzar la eliminación sin confirmación: Elimina carpeta de forma recursiva y sin pedir confirmación. ¡Cuidado con este comando, puede borrar archivos importantes de forma irreversible!.
rm -rf carpeta
- Confirmar antes de eliminar: Pregunta antes de eliminar
archivo.txt
.rm -i archivo.txt
Consejos de Seguridad rm
- Antes de usar
rm -rf
, verificar conls
qué se va a eliminar. - Se puede usar
trash-cli
como alternativa segura para mover archivos a la papelera en lugar de eliminarlos permanentemente.
cp (CoPy)
Este comando cp se utiliza para copiar archivos y directorios. Permite duplicar archivos en la misma ubicación o moverlos a otra ubicación, manteniendo el original intacto.
Formato cp
cp [opciones] origen destino
-
origen
: Archivo o directorio que se desea copiar. -
destino
: Ubicación donde se copiará el archivo o directorio.
Usos cp
-
cp -i index.html c:\usuario\proyecto
, copia el archivo index.hml en el directorio c:\usuario\proyecto pero si el archivo ya existe se pide la confirmación. -
cp -r c:\usuario\proyecto c:\usuario\respaldo
, se copia recursivamente el contenido de la carpeta proyecto en la respaldo, o sea, incluyendo todas las subcarpetas y los archivos. -
cp -f origen destino
, Se fuerza la copia sobrescribiendo archivos sin pedir confirmación. -
cp -v origen destino
, muestra cada archivo/directorio que se esta copiando. -
cp c:\usuario\archivo_viejo.txt c:\usuario\archivo_nuevo.txt
, renombra el archivo_viejo.txt con archivo_nuevo.txt quedando ambos archivos en el mismo directorio, ambos son iguales, se puede borrar el original, archivo_viejo.txt sin consecuencias. -
cp -p informe.pdf \home\usuario\respaldo\
, Se copia el archivoinforme.pdf
a la carpeta\home\usuario\respaldo\
, manteniendo sus permisos y fecha de modificación. -
cp c:\usuario\archivo_viejo.txt c:\usuario\archivo_nuevo.txt
, renombra el archivo_viejo.txt con archivo_nuevo.txt quedando ambos archivos en el mismo directorio, ambos son iguales, se puede borrar el original, archivo_viejo.txt sin consecuencias. -
cp -u datos.csv \home\usuario\respaldo\
: Copia el archivodatos.csv
al directorio\home\usuario\respaldo\
, pero evitando sobrescribirlo si ya existe una versión más reciente en el destino.cp -u datos.csv \home\usuario\respaldo\
clear
Este comando se usa para limpiar la terminal, eliminando el contenido visible en pantalla y dejando una interfaz limpia.
Formato clear
clear
Alternativas a clear
- Limpiar la pantalla sin perder el historial:
printf "\033c"
- Limpiar el historial de la sesión actual y la pantalla:
history -c && clear
history
Se utiliza para mostrar el historial de comandos ejecutados en la terminal. Esto permite revisar, reutilizar o administrar comandos previamente utilizados.
Formato history
history [opciones] [n]
- Si se usa sin argumentos, muestra todos los comandos almacenados en el historial.
- n permite limitar la cantidad de comandos mostrados.
Ejemplos de uso history
- Mostrar todo el historial de comandos: Muestra una lista numerada con todos los comandos ejecutados en la sesión actual.
history
- Mostrar solo los últimos n comandos: Muestra los últimos 10 comandos ejecutados.
history 10
- Buscar un comando en el historial: Muestra todas las líneas del historial que contienen el comando
ls
.history | grep "ls"
Ctrl + R
y escribir una parte del comando. - Reejecutar un comando del historial: Se puede ejecutar un comando directamente usando su número en la lista.
!100
Para ejecutar el último comando usado:!!
- Eliminar un comando específico del historial: Elimina el comando número
50
del historial.history -d 50
- Limpiar completamente el historial: Borra todos los comandos almacenados en el historial de la sesión actual.
history -c
- Guardar el historial actual en el archivo de historial: Guarda los cambios en el archivo ~/.bash_history, donde se almacena el historial de comandos.
history -w
Ubicación del historial
El historial de comandos se guarda en el archivo oculto ~/.bash_history. Se puede ver con:
cat ~/.bash_history
El comando history
es útil para reutilizar comandos, depurar errores o automatizar tareas mediante scripts.