Linux
Directorios y sistemas de archivos
En Linux y Unix todo es un fichero. Los directorios son ficheros, los ficheros son ficheros, y los dispositivos son ficheros. A veces a los dispositivos se les llama nodos, pero siguen siendo ficheros.
Los sistemas de ficheros de Linux y Unix se organizan en una estructura jerárquica, de tipo árbol. El nivel más alto del sistema de ficheros es / o directorio raíz. Todos los demás ficheros y directorios están bajo el directorio raíz. Por ejemplo, /home/jebediah/cheeses.odt muestra la ruta completa al fichero cheeses.odt que está en el directorio jebediah, que a su vez está bajo el directorio home, que por su parte está bajo el directorio raíz (/).
Por debajo del directorio raíz (/) hay un importante grupo de directorios común a la mayoría de las distribuciones de GNU/Linux. A continuación hay una lista de los directorios que aparecen normalmente bajo el directorio raíz (/):
/bin- aplicaciones binarias importantes/boot- Ficheros de configuración del arranque, núcleos y otros ficheros necesarios para el arranque (boot) del equipo./dev- los ficheros de dispositivo/etc- ficheros de configuración, scripts de arranque, etc./home- directorios personales (home) para los diferentes usuarios./initrd- usado cuando se crea un proceso de arranque initrd personalizado./lib- librerías del sistema (libraries)/lost+found- proporciona un sistema de "perdido+encontrado" (lost+found) para los ficheros que existen debajo del directorio raíz (/)/media- particiones montadas (cargadas) automáticamente en el disco duro y medios (media) extraíbles como CDs, cámaras digitales, etc./mnt- sistemas de archivos montados manualmente en el disco duro./opt- proporciona una ubicación donde instalar aplicaciones opcionales (de terceros)/proc- directorio dinámico especial que mantiene información sobre el estado del sistema, incluyendo los procesos actualmente en ejecución/root- directorio personal del usuario root (superusuario); también llamado "barra-root"./sbin- binarios importantes del sistema/srv- puede contener archivos que se sirven a otros sistemas/sys- archivos del sistema (system)/tmp- temporary files/usr- aplicaciones y archivos a los que puede acceder la mayoría de los usuarios/var- archivos variables como archivos de registros y bases de datos
¿Qué Son Los comandos Linux?
Los comandos de Linux te permiten controlar tu sistema desde la interfaz de línea de comandos (CLI) en lugar de utilizar tu ratón o trackpad. Son instrucciones de texto introducidas en el terminal para indicarle a tu sistema exactamente qué hacer.
Los comandos que ingreses en el terminal de Linux distinguen entre mayúsculas y minúsculas y siguen una sintaxis como “comando -opciones argumentos“. Puedes combinarlos para tareas complejas mediante pipelines y redirecciones.
Algunas cosas clave para saber sobre los comandos de Linux:
- Son sensibles a mayúsculas y minúsculas; por ejemplo, “ls” y “LS” significan cosas diferentes.
- Siguen una sintaxis específica como “comando -opciones argumentos“.
- Se pueden combinar para realizar operaciones complejas mediante pipelines y redirecciones.
- Te proporcionan un control detallado sobre tu sistema, algo difícil de lograr con interfaces gráficas.
- Te permiten automatizar tareas mediante scripts de shell y procesamiento por lotes.
- Se pueden utilizar para acceder a recursos del sistema como el sistema de archivos, red, memoria y CPU.
- Forman la base de la interacción con servidores y sistemas operativos Linux.
Comandos de Administración de Archivos en Linux
La gestión de archivos es una tarea común en la línea de comandos de Linux. Aquí tienes comandos esenciales para archivos:
1. ls – Listar Contenidos de Directorio
El comando ls es uno de los comandos de Linux más utilizados. Lista el contenido de un directorio, mostrando todos los archivos y subdirectorios contenidos en su interior.
Sin opciones o argumentos, ls mostrará el contenido del directorio de trabajo actual. Puedes pasar un nombre de ruta para listar archivos y carpetas en esa ubicación en su lugar.
Sintaxisis:
ls [opciones] [directorio] |
Algunas de las opciones más útiles de ls incluyen:
- -l – Muestra los resultados en formato largo, mostrando detalles adicionales como permisos, propiedad, tamaño y fecha de modificación para cada archivo y directorio.
- -a – Muestra archivos y directorios ocultos que comienzan con . además de los elementos no ocultos.
- -R – Lista de forma recursiva todo el contenido de los subdirectorios, descendiendo indefinidamente en carpetas secundarias.
- -S – Ordena los resultados por tamaño de archivo, comenzando por el más grande.
- -t – Ordena por marca de tiempo, el más reciente primero.
Ejemplo:
ls -l /home/user/documentos |
Esto listaría el contenido de la carpeta “documents” en un formato largo.
Ejemplo de resultado:
total 824-rwxrwx--- 1 user user 8389 Jul 12 08:53 report.pdf-rw-r--r-- 1 user user 10231 Jun 30 16:32 presentation.pptxdrwxr-xr-x 2 user user 4096 May 11 09:21 images-rw-rw-r-- 1 user user 453 Apr 18 13:32 todo.txt |
Este resultado muestra una lista detallada con permisos, tamaño, propietario y marca de tiempo para cada archivo y directorio. El formato de lista larga proporcionado por la opción -l brinda información útil sobre los archivos de un vistazo.
El comando ls te brinda un control flexible sobre la lista de contenido del directorio y es uno de los comandos que utilizarás constantemente al trabajar en Linux.
2. cd – Cambiar de Directorio
El comando cd se utiliza para navegar entre directorios. Te permite moverte desde el directorio de trabajo actual a una nueva ubicación en el sistema de archivos.
Cuando ejecutas el comando cd por sí mismo, te llevará al directorio de inicio. También puedes pasar una ruta específica para cambiar a ella. Por ejemplo:
- cd /usr/local – Cambia al directorio /usr/local
- cd .. – Te mueve un nivel atrás hacia el directorio principal
- cd ~/pictures – Cambia a la carpeta pictures en tu directorio de inicio
Sintaxisis:
cd [directorio]
Ejemplo:
cd /home/user/documents
Esto cambiaría el directorio de trabajo a la carpeta “documents” dentro de /home/user. Usar cd es esencial para poder acceder y trabajar con archivos en diferentes ubicaciones de manera conveniente.
3. mkdir – Crear un Nuevo Directorio
El comando mkdir te permite crear una nueva carpeta. Simplemente, específicas el nombre del directorio a crear.
Sintaxis:
mkdir [opción] <directorio>
Esto creará un directorio llamado por ejemplo “nuevoproyecto” en el directorio de trabajo actual.
Algunas opciones útiles de mkdir:
- -p – Crea directorios principales de forma recursiva según sea necesario.
- -v – Muestra un resultado detallado que indica los directorios creados.
Ejemplo:
mkdir -v ~/project/codeEsto crearía el subdirectorio “code” bajo “project” en la carpeta de inicio del usuario, con un resultado detallado que muestra el directorio creado
4. rmdir – Eliminar Directorio
Para eliminar un directorio vacío, utiliza el comando rmdir. Ten en cuenta que rmdir solo puede eliminar directorios vacíos, y necesitaremos el comando rm para eliminar los que tengan algún contenido.
Sintaxis:
rmdir [opciones] <directorio>
Algunas opciones para rmdir incluyen:
- -v – Muestra un resultado detallada al eliminar directorios.
- -p – Elimina directorios principales de forma recursiva según sea necesario.
Ejemplo:
rmdir -v ~/project/code
Esto eliminaría el subdirectorio “code” bajo “project” mientras muestra un resultado detallado.
5. touch – Crear Un Nuevo Archivo Vacío
El comando touch se utiliza para crear instantáneamente un nuevo archivo vacío. Esto es útil cuando necesitas un archivo vacío para llenarlo con datos más tarde.
La sintaxis básica de touch es:
touch [opciones] /nombredearchivo
Algunas opciones útiles para touch incluyen:
- -c – No crea el archivo si ya existe. Evita sobrescribir archivos existentes accidentalmente.
- -m – En lugar de crear un nuevo archivo, actualiza la marca de tiempo en un archivo existente. Esto se puede usar para cambiar la hora de modificación
Por Ejemplo:
touch /home/user/nuevoarchivo.txt
El comando anterior crea un nuevo archivo vacío llamado “nuevoarchivo.txt” en el directorio /home/user. Si nuevoarchivo.txt ya existe, actualizará las marcas de acceso y modificación en el archivo en su lugar.
6. cp – Copiar Archivos y Directorios
El comando cp copia archivos o directorios de una ubicación a otra. Requiere pasar una ruta de origen y un destino.
La sintaxis básica de cp es:
cp [opciones] /origen/ /destino/
Algunas opciones útiles de cp:
- -r – Copia directorios de forma recursiva, descendiendo a subdirectorios para copiar su contenido también.
- -i – Solicita confirmación antes de sobrescribir archivos existentes en el destino. Evita sobrescribir datos accidentalmente.
- -v – Muestra un resultado detallado que indica los detalles de cada archivo mientras se copia. Útil para confirmar exactamente lo que se copió.
Por Ejemplo:
cp -r /home/user/documents /backups/
Esto copiaría de forma recursiva el directorio /home/user/documents y todo su contenido al directorio /backups/. La opción -r es necesaria para copiar directorios.
El comando cp es una de las utilidades de administración de archivos más utilizadas para copiar archivos y directorios en Linux, y te encontrarás usando este comando con bastante frecuencia.
7. mv – Mover o Renombrar Archivos y Directorios
El comando mv se utiliza para mover archivos o directorios a una ubicación diferente o renombrarlos. A diferencia del comando anterior, los archivos de la ruta de origen se eliminan después de haber sido movidos al destino.
También puedes usar el comando mv para renombrar archivos, ya que solo necesitas cambiar las rutas de origen y destino al antiguo y nuevo nombre.
La sintaxis de mv es:
mv [opciones] /origen/ /destino/
Opciones útiles de mv:
- -i – Solicitar antes de sobrescribir archivos existentes en la ubicación de destino. Esto evita sobrescribir datos accidentalmente.
- -v – Producir un resultado detallado que muestre cada archivo o directorio a medida que se mueve. Útil para confirmar exactamente lo que se movió.
Por Ejemplo:
mv ~/folder1 /tmp/folder1
Esto moverá folder1 desde el directorio de inicio (~) al directorio /tmp/. Echemos un vistazo a otro ejemplo de cómo usar el comando mv para renombrar archivos.
mv folder1 folder2
Aquí, “folder1” es renombrado a “folder2.”
8. rm – Eliminar Archivos y Directorios
El comando rm elimina archivos y directorios. Úsalo con precaución porque los archivos y directorios eliminados no se pueden recuperar.
La Sintaxis es:
rm [opciones] /nombre/
Opciones útiles de rm:
- -r – Elimina directorios de forma recursiva, incluyendo todos los contenidos dentro de ellos. Necesario al eliminar directorios.
- -f – Forzar la eliminación y suprimir todas las solicitudes de confirmación. ¡Peligroso sin posibilidad de recuperación!
- -i – Solicitar confirmación antes de eliminar cada archivo o directorio. Proporciona seguridad contra borrado accidental.
Por Ejemplo:
rm -rf temp
Esto eliminará de forma recursiva el directorio “temp” y todos sus contenidos sin solicitar confirmaciones (-f anula las confirmaciones).
Nota: El comando rm borra permanentemente archivos y carpetas, así que úsalo con extrema precaución. Si se usa con privilegios de sudo, también podrías eliminar por completo el directorio raíz y Linux dejará de funcionar después de reiniciar tu computadora.
9. find – Buscar Archivos en una Jerarquía de Directorios
El comando find busca de forma recursiva archivos en directorios que coincidan con los criterios dados.
La sintaxis básica de find es:
find [ruta] [criterio]
Algunos criterios útiles para find incluyen:
- -type f – Buscar solo archivos normales, omitiendo directorios.
- -mtime +30 – Buscar archivos modificados hace más de 30 días.
- -user jane – Buscar archivos pertenecientes al usuario “jane.”
Por Ejemplo:
find . -type f -mtime +30
Esto encontrará todos los archivos regulares mayores de 30 días en el directorio actual (indicado por el punto).
El comando find permite buscar archivos según todo tipo de condiciones avanzadas como nombre, tamaño, permisos, marcas de tiempo, propiedad y más.
10. du – Estimar el Uso del Espacio de un Archivo
El comando du mide el uso del espacio en disco para un directorio dado. Cuando se usa sin opciones, muestra el uso del disco para el directorio de trabajo actual.
La Sintaxis de du Es:
du [opciones] [ruta]
Opciones útiles de du:
- -h – Muestra los tamaños de archivo en un formato fácil de leer para humanos, como K para kilobytes en lugar de un recuento de bytes. Mucho más fácil de analizar.
- -s – Muestra solo el tamaño total para un directorio, en lugar de enumerar cada subdirectorio y archivo. Bueno para resúmenes.
- -a – Muestra tamaños individuales de archivos además de totales. Ayuda a identificar archivos grandes.
Por Ejemplo:
du -sh pictures
Esto imprimirá un tamaño total fácil de leer para el directorio “pictures.”
El comando du es útil para analizar el uso del espacio en disco de un árbol de directorios e identificar archivos que consumen espacio en exceso.
Comandos de Linux Para Búsqueda y Filtros
Ahora, exploremos comandos que te permiten buscar, filtrar y manipular texto directamente desde la línea de comandos de Linux.
11. grep – Buscar Texto Usando Patrones
El comando grep se utiliza para buscar patrones de texto dentro de archivos o salida. Imprime cualquier línea que coincida con la expresión regular dada. grep es extremadamente poderoso para buscar, filtrar y hacer coincidir patrones en Linux.
Aquí está la sintaxis básica:
grep [opciones] pattern [archivos]
Por Ejemplo:
grep -i “error” /var/log/syslog
Esto busca la palabra “error” en el archivo syslog, ignorando la sensibilidad a mayúsculas y minúsculas.
Algunas opciones útiles de grep:
- -i – Ignorar distinciones de mayúsculas y minúsculas en patrones.
- -R – Buscar de forma recursiva en subdirectorios.
- -c – Imprimir solo un recuento de líneas coincidentes.
- -v – Invertir la coincidencia, imprimir líneas que no coinciden.
grep te permite buscar archivos y generar palabras clave o patrones rápidamente. Es invaluable para analizar registros, buscar código fuente, hacer coincidir expresiones regulares y extraer datos.
12. awk – Escaneo de Patrones y Procesamiento de Lenguage
El comando awk permite un procesamiento de texto más avanzado basado en patrones y acciones especificadas. Opera de manera línea por línea, dividiendo cada línea en campos.
La sintaxis de awk es:
awk ‘pattern { acción }’ input-file
Por Ejemplo:
awk ‘/error/ {print $1}’ /var/log/syslog
Esto imprime el primer campo de cualquier línea que contenga “error”. awk también puede utilizar variables integradas como NR (número de registros) y NF (número de campos).
Las capacidades avanzadas de awk incluyen:
- Cálculos matemáticos en campos.
- Declaraciones condicionales.
- Funciones integradas para manipular cadenas, números y fechas.
- Control de formato de resultados.
Esto hace que awk sea adecuado para la extracción de datos, la generación de informes y la transformación del resultado de texto. awk es extremadamente potente, ya que es un lenguaje de programación independiente que te brinda un gran control como comando de Linux.
13. sed – Editor de Secuencias para Filtrar y Transformar Texto
El comando sed permite el filtrado y la transformación de texto. Puede realizar operaciones como buscar/reemplazar, eliminación, transposición y más. Sin embargo, a diferencia de awk, sed fue diseñado para editar líneas de una en una según las instrucciones.
La sintaxis básica de sed es:
sed options ‘commands’ input-file
Por Ejemplo:
sed ‘s/foo/bar/’ file.txt
Esto reemplaza “foo” con “bar” en archivo.txt.
Algunos comandos útiles de sed:
- s – Buscar y reemplazar texto.
- /pattern/d – Eliminar líneas que coincidan con un patrón.
- 10,20d – Eliminar líneas de la 10 a la 20.
- 1,3!d – Eliminar todo excepto las líneas 1 a 3.
sed es ideal para tareas como búsqueda/reemplazo masivo, eliminación selectiva de líneas y otras operaciones de edición de secuencias de texto.
14. sort – Ordenar Líneas de Archivos de Texto
Cuando trabajas con mucho texto o datos, o incluso con resultados grandes de otros comandos, ordenarlo es una excelente manera de hacer las cosas más manejables. El comando sort ordenará las líneas de un archivo de texto alfabética o numéricamente.
Sintaxis básica de sort:
sort [opciones] [archivo]
Opciones útiles de sort:
- -n – Ordenar numéricamente en lugar de alfabéticamente.
- -r – Invertir el orden de clasificación.
- -k – Ordenar según un campo o columna específica.
Por Ejemplo:
sort -n notas.txt
Esto ordenará numéricamente el contenido de notas.txt. sort es útil para ordenar el contenido de los archivos para un resultado o análisis más legibles.
15. uniq – Informar u Omitir Líneas Repetidas
El comando uniq filtra líneas duplicadas adyacentes de la entrada. Esto se usa a menudo en conjunto con sort.
Sintaxis básica:
uniq [opciones] [entrada]
Opciones:
- -c – Prefijar líneas únicas con el recuento de ocurrencias.
- -d – Mostrar solo líneas duplicadas, no las únicas.
Por Ejemplo:
sort datos.txt | uniq
Esto eliminará cualquier línea duplicada en datos.txt después de ordenarlo. uniq te da control sobre la filtración de texto repetido.
16. diff – Comparar Archivos Línea por Línea
El comando diff compara dos archivos línea por línea e imprime las diferencias. Se usa comúnmente para mostrar cambios entre versiones de archivos.
Sintaxis:
diff [opciones] archivo1 archivo2
Options:
- -b – Ignorar cambios en espacios en blanco.
- -B – Mostrar diferencias en línea, resaltando los cambios.
- -u – Mostrar diferencias con tres líneas de contexto.
Por Ejemplo:
diff original.txt actualizado.txt
Esto mostrará las líneas que difieren entre original.txt y actualizado.txt. diff es invaluable para comparar revisiones de archivos de texto y código fuente.
17. wc – Imprimir Recuento de Líneas, Palabras y Bytes
El comando wc (word count) imprime recuentos de líneas, palabras y bytes en un archivo.
Sintaxis:
wc [opciones] [archivo]
Opciones:
- -l – Imprimir solo el recuento de líneas.
- -w – Imprimir solo el recuento de palabras.
- -c – Imprimir solo el recuento de bytes.
Por Ejemplo:
wc reporte.txt
Este comando imprimirá el número de líneas, palabras y bytes en reporte.txt
Comandos de Redirección en Linux
Los comandos de redirección se utilizan para controlar las fuentes de entrada y resultados en Linux, lo que te permite enviar y agregar flujos de resultados a archivos, tomar entradas de archivos, conectar múltiples comandos y dividir los resultados en múltiples destinos.
18. > – Redirigir el Resultado Estándar
El operador de redirección > redirige el flujo de resultado estándar desde el comando a un archivo en lugar de imprimirlo en la terminal. Se sobrescribirá cualquier contenido existente en el archivo.
Por Ejemplo:
ls -l /home > homelist.txt
Esto ejecutará ls -l para listar el contenido del directorio /home.
Luego, en lugar de imprimir ese resultado en la terminal, el símbolo > captura ese resultado estándar y lo escribe en homelist.txt, sobrescribiendo cualquier contenido de archivo existente.
Redirigir el resultado estándar es útil para guardar los resultados de comandos en archivos para almacenamiento, depuración o encadenar comandos.
19. >> – Anexar Resultado Estándar
El operador >> agrega el resultado estándar de un comando a un archivo sin sobrescribir el contenido existente.
Por Ejemplo:
tail /var/log/syslog >> logfile.txt
Esto anexará las últimas 10 líneas del archivo de registro syslog al final de logfile.txt. A diferencia de >, >> agrega el resultado sin borrar el contenido actual de logfile.txt.
Anexar es útil para recopilar el resultado de comandos en un solo lugar sin perder datos existentes.
20. < – Redirigir la Entrada Estándar
El operador de redirección < alimenta el contenido de un archivo como entrada estándar a un comando, en lugar de tomar la entrada del teclado.
Por Ejemplo:
wc -l < miarchivo.txt
Esto envía el contenido de miarchivo.txt como entrada al comando wc, que contará las líneas de ese archivo en lugar de esperar la entrada del teclado.
Redirigir la entrada es útil para procesar por lotes archivos y automatizar flujos de trabajo.
21. | – Canalizar El Resultado a Otro Comando
El operador de pipe | envía el resultado de un comando como entrada a otro comando, encadenándolos.
Por Ejemplo:
ls -l | less
Esto canaliza el resultado de ls -l al comando less, que permite desplazarse por la lista de archivos.
La canalización se usa comúnmente para encadenar comandos donde el resultado de uno alimenta la entrada de otro. Esto permite construir operaciones complejas a partir de programas más pequeños y de propósito único.
22. tee – Leer desde la Entrada Estándar y Escribir en el Resultado Estándar y Archivos
El comando tee divide la entrada estándar en dos flujos.
Escribe la entrada en el resultado estándar (muestra el resultado del comando principal) y guarda una copia en un archivo.
Por Ejemplo:
cat archivo.txt | tee copia.txt
Esto muestra el contenido de archivo.txt en la terminal mientras lo escribe simultáneamente en copia.txt.
tee es diferente de solo redirigir, donde no ves el resultado hasta que abres el archivo al que lo redirigiste.
Comandos de Archivado
Los comandos de archivado te permiten agrupar varios archivos y directorios en archivos comprimidos para una portabilidad y almacenamiento más sencillos. Los formatos de archivo comunes en Linux incluyen .tar, .gz y .zip.
23. tar – Almacenar y Extraer Archivos de un Archivo
El comando tar te ayuda a trabajar con archivos de cinta (.tar). Te permite agrupar varios archivos y directorios en un único archivo .tar comprimido.
Sintaxis:
tar [opciones] /archivo
Opciones útiles de tar:
- -c – Crear un nuevo archivo .tar.
- -x – Extraer archivos de un archivo .tar.
- -f – Especificar el nombre del archivo en lugar de stdin/stdout.
- -v – Resultado detallado que muestra los archivos archivados.
- -z – Comprimir o descomprimir el archivo con gzip.
Por Ejemplo:
tar -cvzf images.tar.gz /home/user/images
Esto crea un archivo de archivo tar llamado imagenes.tar.gz que contiene la carpeta /home/user/images comprimida con gzip.
24. gzip – Comprimir o Expandir Archivos
El comando gzip comprime archivos utilizando codificación LZ77 para reducir su tamaño para almacenamiento o transmisión. Con gzip, trabajas con archivos .gz.
Sintaxis:
gzip [opciones] archivo
Opciones útiles de gzip:
- -c – Escribe el resultado en stdout en lugar de un archivo.
Write output to stdout instead of file. - -d – Descomprime el archivo en lugar de comprimirlo.
- -r – Comprime directorios de forma recursiva.
Por Ejemplo:
gzip -cr documents/
Este comando comprime de forma recursiva la carpeta documentos y muestra el resultado en stdout.
25. gunzip – Descomprimir Archivos
El comando gunzip se utiliza para descomprimir archivos .gz.
Sintaxis:
gunzip archivo.gz
Ejemplo:
gunzip documentos.tar.gz
El comando anterior extraerá el contenido original sin comprimir de documentos.tar.gz.
26. zip – Empacar y Comprimir Archivos
El comando zip crea archivos .zip que contienen archivos comprimidos.
Sintaxis:
zip [opciones] archivo.zip nombres-de-archivos
Opciones útiles de zip:
- -r – Comprimir de forma recursiva un directorio.
- -e – Encriptar contenido con una contraseña.
Ejemplo:
zip -re imagenes.zip fotos
Esto encripta y comprime la carpeta fotos en imagenes.zip.
27. unzip – Extraer Archivos de Archivos ZIP
Similar a gunzip, el comando unzip extrae y descomprime archivos de archivos .zip.
Sintaxis:
unzip archivo.zip
Ejemplo:
unzip imagenes.zip
El comando Ejemplo anterior extrae todos los archivos de imagenes.zip en el directorio actual.
Comandos de Linux Para Transferencia de Archivos
Los comandos de transferencia de archivos, te permiten mover archivos entre sistemas en una misma red. Esto es útil para copiar archivos hacia servidores remotos o descargar contenido desde el internet.
28. scp – Copiar de Forma Segura Entre Hosts
El comando scp (copia segura) copia archivos entre hosts a través de una conexión SSH. Todo el traslado de datos está cifrado para mayor seguridad.
La sintaxis de scp copia archivos desde una ruta de origen a un destino definido como usuario@host:
scp origen usuario@host:destino
Por Ejemplo:
scp imagen.jpg usuario@servidor:/uploads/
Esto copia de forma segura la imagen.jpg al directorio /uploads en el servidor como usuario.
scp funciona como el comando cp pero para la transferencia de archivos remotos. Utiliza SSH (Secure Shell) para la transferencia de datos, proporcionando cifrado para asegurar que no se expongan datos sensibles, como contraseñas, a través de la red.
La autenticación se maneja típicamente mediante claves SSH, aunque también se pueden usar contraseñas. Los archivos se pueden copiar tanto hacia como desde hosts remotos.
29. rsync – Sincronizar Archivos Entre Hosts
La herramienta rsync sincroniza archivos entre dos ubicaciones, minimizando la transferencia de datos mediante la codificación delta. Esto hace que sea más rápido sincronizar grandes árboles de directorios.
La sintaxis de rsync sincroniza el origen con el destino:
rsync [opciones] /origen /destino
Por Ejemplo:
rsync -ahv ~/documentos usuario@servidor:/backups/
El Ejemplo anterior sincroniza de forma recursiva la carpeta documentos con servidor:/backups/, mostrando resultado y legible.
Opciones útiles de rsync:
- -a – El modo de archivo sincroniza de forma recursiva y conserva permisos, tiempos, etc.
- -h – Resultado legible por los humanos
- -v – Resultado detallado
rsync es ideal para sincronizar archivos y carpetas con sistemas remotos y mantener copias de seguridad descentralizadas y seguras.
30. sftp – Programa de Transferencia de Archivos Segura
El programa sftp proporciona transferencias de archivos interactivas sobre SSH, similar a FTP regular pero cifrado. Puede transferir archivos hacia/desde sistemas remotos.
sftp se conecta a un host y acepta comandos como:
sftp usuario@host
get archivo-remoto archivo-local
put archivo-local archivo-remoto
Esto recupera el archivo-remoto del servidor y copia el archivo-local en el host remoto.
sftp tiene un shell interactivo para navegar por sistemas de archivos remotos, transferir archivos y directorios y gestionar permisos y propiedades.
31. wget – Recuperar Archivos de la Web
La herramienta wget descarga archivos a través de conexiones HTTP, HTTPS y FTP. Es útil para recuperar recursos web directamente desde la terminal.
Por Ejemplo:
wget https://ejemplo.com/archivo.iso
Esto descarga la imagen archivo.iso desde el servidor remoto.
Opciones útiles de wget:
- -c – Continuar la descarga interrumpida.
- –r – Descargar de forma recursiva.
- -O – Guardar con un nombre de archivo específico.
wget es ideal para la automatización de descargas y la creación de espejos de sitios web.
32. curl – Transferir Datos Desde o Hacia un Servidor
El comando curl transfiere datos hacia o desde un servidor de red utilizando protocolos compatibles. Esto incluye REST, HTTP, FTP y más.
Por Ejemplo:
curl -L https://ejemplo.com
El comando anterior obtiene datos desde la URL HTTPS y los muestra en el resultado.
Opciones útiles de curl:
- -o – Escribe el resultado en un archivo.
- -I – Muestra solo los encabezados de respuesta.
- -L – Sigue las redirecciones.
curl está diseñado para transferir datos a través de redes de manera programática.
Comandos de Permisos de Archivos
Los comandos de permisos de archivo, te permiten modificar los accesos de los usuarios al contenido. Esto incluye configurar permisos de lectura/escritura/ejecución, cambiar la propiedad y los modos de archivo predeterminados.
33. top – Mostrar Procesos de Linux
El comando top muestra información en tiempo real sobre los procesos de Linux, incluidos PID, usuario, % de CPU, uso de memoria, tiempo de actividad, y más. A diferencia de ps, actualiza la pantalla dinámicamente para reflejar el uso actual.
Por Ejemplo:
top -u mysql
El comando anterior monitorea procesos solo para el usuario “mysql”. Resulta útil para identificar programas que consumen muchos recursos.
34. free – Mostrar la Cantidad de Memoria Libre y Utilizada
El comando free muestra las cantidades totales, utilizadas y libres de memoria física y swap en el sistema. Esto brinda una visión general de la memoria disponible.
Por Ejemplo:
free -h
Algunas opciones para el comando free:
- -b -Mostrar resultado en bytes.
- -k – Mostrar resultado en KB en lugar de bytes predeterminados.
- -m – Mostrar resultado en MB en lugar de bytes
- -h – Imprimir estadísticas en un formato legible para humanos como GB, MB en lugar de bytes.
Esto imprime estadísticas de memoria en un formato legible para humanos (GB, MB, etc.). Es útil cuando deseas un resumen general de la capacidad de memoria.
35. sar – Recopilar e Informar Actividad del Sistema
La herramienta sar recopila y registra información de actividad del sistema en la CPU, memoria, I/O, red y más a lo largo del tiempo. Estos datos pueden analizarse para identificar problemas de rendimiento.
Por Ejemplo:
sar -u 5 60
Esto muestrea el uso de la CPU cada 5 segundos durante una duración de 60 muestras.
sar proporciona datos detallados del rendimiento histórico del sistema que no están disponibles en herramientas en tiempo real.
36. useradd – Crear un Nuevo Usuario
El comando useradd crea una nueva cuenta de usuario y un directorio de inicio. Establece el UID, grupo, shell y otros valores predeterminados para el nuevo usuario.
Por Ejemplo:
useradd -m juan
Useful useradd options:
- -m – Crea el directorio de inicio del usuario.
- -g – Especifica el grupo primario en lugar del predeterminado.
- -s – Establece el shell de inicio de sesión del usuario.
El comando anterior creará un nuevo usuario llamado “juan” con un UID generado y una carpeta de inicio creada en /home/juan.
37. top – Mostrar Procesos de
Linux
El comando top muestra
información en tiempo real sobre los procesos de Linux, incluidos PID, usuario,
% de CPU, uso de memoria, tiempo de actividad, y más. A diferencia de ps,
actualiza la pantalla dinámicamente para reflejar el uso actual.
Por
Ejemplo:
top -u mysql
El comando anterior monitorea
procesos solo para el usuario “mysql”. Resulta útil para identificar programas
que consumen muchos recursos.
38. nohup – Ejecutar un Comando
Inmune a las Desconexiones
El
comando nohup ejecuta procesos inmunes a las desconexiones, por lo
que siguen ejecutándose si cierras sesión o te desconectas.
Por
Ejemplo:
nohup python script.py &
El comando de ejemplo anterior
lanzará script.py desvinculado en segundo
plano e inmune a desconexiones. nohup se utiliza generalmente para
iniciar daemons y servicios en segundo plano persistentes.
39. vmstat – Informar
Estadísticas de Memoria Virtual
El
comando vmstat imprime informes detallados sobre la actividad de
memoria, swap, I/O y CPU. Esto incluye métricas como memoria usada/libre, swap
de entrada/salida, bloques de disco leídos/escritos y tiempo de CPU dedicado a
procesos/inactivo.
Por
Ejemplo:
vmstat 5
Otras
opciones útiles de vmstat:
·
-a – Mostrar memoria
activa e inactiva.
·
-s – Mostrar contadores de eventos y estadísticas de memoria
·
-S – Resultado en KB en lugar de bloques.
·
5 – Actualizar el resultado cada 5 segundos.
40. iostat – Informar Estadísticas de CPU e I/O
El
comando iostat supervisa y muestra métricas de utilización de la CPU
y I/O de disco. Esto incluye carga de CPU, IOPS, rendimiento de
lectura/escritura, y más.
Por Ejemplo:
iostat -d -p sda 5
Algunas
opciones de iostat:
·
-c – Mostrar información de utilización de la CPU.
·
-t – Imprimir una marca de tiempo para cada informe.
·
-x – Mostrar estadísticas extendidas como tiempos de servicio y
recuentos de espera.
·
-d – Mostrar estadísticas detalladas por disco/partición en lugar
de totales agregados.
·
-p – Mostrar estadísticas para dispositivos de disco
específicos.
Esto muestra estadísticas
detalladas de I/O por dispositivo para sda cada 5 segundos.
iostat ayuda a analizar el
rendimiento del subsistema de disco e identificar cuellos de botella de
hardware.
41. free – Mostrar la Cantidad
de Memoria Libre y Utilizada
El
comando free muestra las cantidades totales, utilizadas y libres de
memoria física y swap en el sistema. Esto brinda una visión general de la
memoria disponible.
Por
Ejemplo:
free -h
Algunas
opciones para el comando free:
·
-b -Mostrar resultado en bytes.
·
-k – Mostrar resultado en KB en lugar de bytes
predeterminados.
·
-m – Mostrar resultado en MB en lugar de bytes
·
-h – Imprimir estadísticas en un formato legible para humanos como
GB, MB en lugar de bytes.
Esto imprime estadísticas de
memoria en un formato legible para humanos (GB, MB, etc.). Es útil cuando
deseas un resumen general de la capacidad de memoria.
42. df – Informar del Uso del
Espacio en Disco del Sistema de Archivos
El comando df muestra
el uso del espacio en disco para sistemas de archivos. Muestra el nombre del
sistema de archivos, espacio total/usado/disponible y capacidad.
Por
Ejemplo:
df -h
43. uptime – Tiempo que el
Sistema ha Estado Encendido
El
comando uptime muestra cuánto tiempo ha estado encendido el sistema
Linux desde el último reinicio. Imprime el tiempo de actividad y la hora
actual.
Simplemente,
ejecuta el siguiente comando para obtener los datos de tiempo de actividad de
tu sistema:
uptime
44. reboot – Reiniciar o
Reiniciar el Sistema
El comando reboot reinicia el
sistema operativo Linux, cerrando sesión de todos los usuarios y reiniciando el
sistema de manera segura. Sincroniza los discos y apaga el sistema limpiamente
antes de reiniciar.
Por
Ejemplo:
reboot
Esto reinicia inmediatamente el
sistema operativo. reboot es una alternativa simple a shutdown -r.
Comentarios
Publicar un comentario