TODOS deberían aprender BASH - Bash PARTE 1
ฝัง
- เผยแพร่เมื่อ 26 ม.ค. 2025
- Hoy aprendemos cómo usar Bash con un par de ejemplos simples y vemos también unos más complejos donde vemos el poder de este lenguaje.
Descarga VirtualBox: www.virtualbox...
Descarga Ubuntu Server: ubuntu.com/dow...
--
Repo con todos los archivos que uso: github.com/pab...
Merchandising Pelado Nerd: merch.peladone...
Micrófono: Rode VideoMicro + Zoom H1N
Cámara: Sony A7 Mark III
Lente: Sony 28-70mm 3.5
Laptop: Macbook Pro 16'' 2019
Puedes encontrar todos mis links en peladonerd.com - วิทยาศาสตร์และเทคโนโลยี
Jefe: Necesitamos limpiar una carpeta que se llena de log... pero que antes de limpiarlos los copie a otra carpeta para tener el "historico" y que el nombre de la carpeta sea la fecha asi sirve de referencia... Ahhh esto es en Windows Server...
Yo: No se diga más...
(847 signos % despues)
Yo: Acá esta el BAT :S
@echo on
IF NOT EXIST "C:\Logs\%date:~6,4%%date:~3,2%%date:~0,2%%Time:~0,2%%Time:~3,2%" MD "C:\Logs\%date:~6,4%%date:~3,2%%date:~0,2%%Time:~0,2%%Time:~3,2%"
CD "C:\Logs\%date:~6,4%%date:~3,2%%date:~0,2%%Time:~0,2%%Time:~3,2%"
for /R C:\pewpewmadafakas %%A in (*.log) do copy "%%A" "%%~nxA"
CD "C:\pewpewmadafakas"
Del *.log
No es por llevarte la contraria, BATCH es especial por decirlo de alguna manera, y no lo recomiendo si puedes evitarlo pero... por si alguien lo necesita:
// usa variables...
SET "source=C:\pewpewmadafakas"
SET "dest=C:\Logs\%date:~6,4%%date:~3,2%%date:~0,2%"
IF NOT EXIST "%dest%" MKDIR "%dest%"
// mueve todo, en lugar de copiar y luego eliminar uno a uno
MV "%source%\*.log" "%dest%\"
// O usando forfiles para filtrar solo los logs antiguos, mas de una semana
FORFILES /P "%source%" /M "*.log" /D -7 /C "cmd /C mv @path %dest%\"
Y así puedes sacar la fecha y hora y tratarla luego como variables con mucha más facilidad. Uso guión como separador de fecha y punto para la hora. No podemos usar barra '/' o dos puntos ':' en nombres de ficheros. Las comillas alrededor en plan SET "nombre=valor" es un truquito para cuando los valores pueden contener espacios. No es necesario en este caso pero para trabajar con rutas es vital.
SET YYYY=%date:~6,4%
SET MM=%date:~3,2%
SET DD=%date:~0,2%
SET "today=%YYYY%-%MM%-%DD%"
SET hh=%time:~0,2%
SET mm=%time:~3,2%
SET "now=%hh%.%mm%"
Y como nota adicional, esto funciona según la región en la que estés. Los ingleses tienen la mala manía de poner el mes antes del día.
Si %date% te devuelve 31/12/2021 a la española, el %date:~6,4% lo que está haciendo es recortar los últimos 4 caracteres de esa variable, empezando desde la posición 6.
@@DavidCastillaGil Muy muy buenooooo....!!!!
jajajajaa, si hacer eso esta re facil con bashcript siendo que date recibe parametros de formateo de salida la cual se asigna a una variable y se usa para crear la carpeta.
"En los últimos tiempos veremos cosas horribles", dice la Biblia. La profecía se está cumpliendo D:
Buenísimo el video! Tenes una habilidad increíble para explicar de manera clara y rápida cosas que otros necesitan 1 hora para poder transmitir. Ojalá sigas haciendo más videos de bash. Gracias!!!
Tenes toda la razón, este muchacho explica muy bien. Hace 1 año trabajo como desarrollador, claro esta que soy malisimo, pero veo que también soy malo por que, no encontré gente que explique bien
una buena practica, en vez de indicar el ejecutable en duro al inicio del archivo es usar "#!/usr/bin/env bash" (sin comillas), así el script invoca a bash (en este caso) independiente de la ruta donde esté, ya que en algunos OS suele cambiar las rutas de las apps base 👌
Al fin después de muchos años entiendo que es el #! al principio de los scripts! En aquel momento creí que estaba "importando perl" al script. Todos los días se aprende algo nuevo, gracias pelado!
Gracias.
me acaban de descartar desde una entrevista por no saber de scripting,
y me siento ..uff mal y avergonzado
aun siendo yo consciente de tener claro que no se y por decisión propia no haber aprendido, por enfocarme en otras cosas y dominarlas,
creo que es hora de empezar con estos videitos
:(
Nunca jamás jamacito olvidar:
#!/bin/bash -ex
El "-e" Garantiza que si una línea de tu script falla se cancele todo el script, esto ayuda muchísimo debido a que es común que falle 1 línea y que tu script continúe ignorando ese error y dejando la cagada. Y el "-x" muestra por pantalla el comando que ejecuta. Pelade salvemos vidas 🤣
No sabía esto, gracias.
Muchas gracias mi loco, esto vale millones
Mejor aún usaría, _Bash Strict Mode_ y lo de env lo hace un poco más portable:
#!/usr/bin/env bash
set -euo pipefail
buenisima gracias
Que buen aporte, gracias.
Pelado, llevo décadas usando Bash, lo utilizo para automatizar copias de seguridad de bases de datos y la verdad que no hay nada mas fácil y efectivo, ya sabes “lo bueno y breve……dos veces bueno”. Gracias por reivindicar la programación de los sinclair🎉
Tu no has programado dos lineas en tu vida diciendo la mamarrachada que acabas de decir del uso de bash en bases de datos
De los primeros en verlo. Hace más de 3 años que utilizo Linux cómo sistema principal, ya lo había utilizado antes, en mi trabajo actual todos tenemos Ubuntu. Muchas gracias Pablo por todos tus vídeos. Saludos desde Colombia
Maximo respeto Pelado. Estoy viendo este video y ya tengo algo de experiencia en infra, y con tan solo unos minutos me despejaste varias dudas
Es bueno ver estos video ya que creo que explicas muy bien. Soy de España y me agrada ver como explicas con la sencillez que lo haces. Los comentarios del final de los videos son muy originales , sigue asi
Estaba viendo un curso en linea de mas de 5 horas, el profe me aburrio, me vine a Pelado Nerd y hasta me siento con mas energia. Grande Pablo!
Espectacular este video lo muestro a mis alumnos de linux server!!! para arrancar la cursada de programacion
Use mucho Bash scrip entre 2007- 2012 me creaba scripts para automatizar mi trabajo en telecomunicaciones. Mis compañeros no llegaban a entender como hacía 10 veces más trabajo en menos tiempo que ellos hasta que compartí mis scripts 😅
compártamelos XD
Que tipo de scrip generaste?
gracias, tenia años de no usar bash, pero ahora que estoy retomando, me fue muy útil tu video
Esta muy bueno para levantar minitas en las fiestas del trabajo. Si ves que se aburre aléjate de ahí!!!! jajajaja
Jaja buenísimo el video, sobretodo tu didáctica. Y al final lo de batch de D.O.S. Mortal !
Podría sonar obvio este tipo de videos, sin embargo, estas perlas son necesarias. Excelente Pelado.
Un abrazo.
buenisimo!!! jajja el viejo DOS de MS nos dio de morfar a muchos, el .bat era parte esencial...habia que montar una diskettera, decirle que utilice mas memoria, hacer varias tareas del arranque , poner el driver del mouse, de la placa de red, conectar a la novell y todo con el autoexec.bat
Sos un crack viejo, muchas gracias por compartir tu conocimiento y por cierto, en un momento pensé que ibas a escribir soy un dolapex, no me esperaba pelade jajaja
Es mi lenguaje multiproposito favorito muchos trabajos exigen Python o Go lo cierto es que no me he enfrentado nunca a un problema donde bash no sea suficiente para mi automatización, sería bueno ver en qué casos usar los demás
yo personalmente prefiero python, en parte porque no conocía Bash, pero es más legible a primera vista. La diferencia que más me ha llamado la atención es que a la hora de usar el comando "echo" ("print" en python) hay que usar unos paréntesis rodeando lo que se quiere mostrar en pantalla y, en el caso de que se quiera poner literalmente, unas comillas. es decir, un "hello world" es: print ("hello world") Y pasar por pantalla una variable junto con una introducción sería: print ("tu variable vale" MiVariable) Donde al modificar la variable, cambia directamente el resultado en pantalla.
Excelente video brother y esa tematica al final quedó brutal.
thumbs up por usar vim :-) Te recomiendo usar #!/usr/bin/env intérprete (donde intérprete puede ser bash, zsh, python, perl, whatever). La razón es que no hay seguridad que bash esté en /bin, y con Python en particular, podrías estar en un virtualenv y hardcodear el path del intérprete te rompería el script.
muy bueno pelado, como siempre... falto el como agregarlo al cron, pero quedara para el " TODOS deberían aprender BASH 2" supongo. abrazooooo
Como siempre impecables tus videos, una sola observacion. El scripting de Windows es powershell, batch es de DOS y Windows aun lo soporta. Saludos
como ha comentado alguien también , tienes mucha habilidad para explicar las cosas, sigue asi like siempre!!!!
Excelente video!
Con muchas ganas de más partes, justo algunas cosas que quería conocer las encontré en tu video :D
SALUDOS AMIGO PUEDES RESPONDERME EN ESTA MISMA SEMANA ES SOBRE LA EJECUCIÓN DE CRON SE PUEDE EJECUTAR UNA APLICACIÓN O UN PROGRAMA EN AUTOMÁTICO COMO EJEMPLO UN ARCHIVO PDF POR EJEMPLO ??
Que recuerdos de la carrera :). Un hurra por vim!
Un crack pelao.. Siempre revisito tus tutoriales.
BashScript es una gran manera de automatizar procesos, yo hice un pequeño script que me permite formatear memorias usb desde la terminal con un menu intuitivo.
Después de bajar VirtualBox pueden bajar los SO que quieran desde OSBoxes. Después de bajadas las imágenes las copian al directorio de VirtualBox y el SO está presto para trabajar. También están las "imágenes" para VMware.
sabes que con esto estas despertando una curiosidad de todo lo que puedo hacer.....voy a romper todo
Buenísimo video, no hay que tenerle miedo a los scripts
Pfff manera de explicar, hermano! Genial, gracias por tu contenido!
Bien Pelado, me hiciste recordar mis scripts en SCO Open Server, RHEL.
Excelente! Esperamos la segunda parte pela!
En The Odin Project hay una sección dedicada a la consola que tiene documentación excelente acerca de Bash y la consola en general, si están buscando algo al respecto les sería muy útil
super cool Pelado!!!
Esta explicado súper sencillo, enhorabuena
NO ENTIENDO. soy programador de hace mas de 35 años, y NUNCA NADIE ME PUDO EXPLICAR COMO HACER UN SCRIPT EN BASH. COMO HICISTE. TE ENTENDI PERFECTAMENTE. (tengo que perder el pelo???) MUCHAS GRACIAS Y MUY CLARO. MUY MERECIDO EL LIKE Y LA SUBSCRIPCION
cada contenido es muy validos, gracias
muy bueno !!! lo miro para ver el remate !!!
Sabes una bocha Pablo. Gran produccion
Amigo eres un genio!, te agradecería si pudieras realizar videos de lo básico para monitorear servidores con ansible o terraform, si pudieras también en centos, Saludos!
Gracias por el aporte Pablo, estaría genial que dieras directos estar en la plataforma morada. Saludos
Muy buena explicación, gracias por compartir conocimiento.
Buena introducción a Bash :D
Según Wikipedia, sobre #! "The name shebang for the distinctive two characters may have come from an inexact contraction of SHArp bang or haSH bang, referring to the two typical Unix names for them."
Se puede hacer algo si uso windows pero quiero unsar bash?
en windows podemos usar el wls2 para usar bash, o a unas malas git bash
Realmente aunque Bash no sea un lenguaje sino que interpreta comandos y sentencias de shell, sí que tiene sintaxis extra que no tiene el propio 'sh' (dash por ejemplo), que suele ser un shell POSIX puro más minimalista y más rápido que Bash.
A partir de Win 10 viene un Ubuntu instalado con el Windows con el que probé algunas cosas de este video y funcionan bien.
Muy buen video, estoy buscando videos sobre script de bash que sirvan para aplicar en el desarrollo web, pero hasta ahora no tuve éxito.
Para Windows, no vale instalar Git Bash y ya?
Gracias Pelado !
Buenísimo como siempre Pablo! Como sugerencia, podría estar interesante un vídeo de LXC, para que luego en vídeos cómo esté poder usar un container con Ubuntu por ej. en lugar de una VM. Ví el otro día un vídeo de K8s the hard way, y usaban LCX para ello, muy interesante :)
Buen video, alguna bibliografía que puedas recomendar para bash?
como se hace para que su vim se vea así?
Pero que buen video bro,gracias, por eso es que te seguira yendo bien bro!
Cómo en termux utiliza Bash para el cambio del banner entre otras o estoy mal 😁🤘
Windows desde la versión 10 tiene un subsistema de Linux...si no me equivoco te instala un Ubuntu
Muy buen video, excelente explicación !
Cuando, subiras tu curso de Bash en Platzi
Te voy a enviar un vídeo mio para que aprendas a tocar el saxofón en 15 minutos
buen video tio pelao :D
¿bash que no es un lenguaje de control de sistemas solamente?
Excelente video Pelado sos un crack..
👍👊
Hola, me encantan tus videos! super didácticos, podrías hacer alguno explicando el comando awk y/o sed?
ABZ!
Otros vídeos han sido de gran ayuda, esperaba un vídeo más denso pero no es así, esta vez no ha llegado a mis expectativas.
Pelado Nerd... como no me habia aparecido en mis videos ya? Suscripto ya mismo!
Hola pelado, te agradezco el video, super util y sencillo de entender!!! Una consulta, que teclado usas?
Muy buen video, necesito más vídeos de bash
Hola, recomendarías algún libro en concreto para iniciarse en Bash de básico a medio o de básico a avanzado?
Muy buen video y muchas gracias. Una pregunta, dentro del script yo podría ejecutar una función que notifique a un API? lo pregunto porque no sé si se necesite algún permiso extra o configuración especial para enviar datos a url externas.
Si claro. Sin problemas, podes hacer cualquier cosa que podes hacer desde la terminal
muy básico, pero muy didáctico.
gracias !!
el bang es por el "!", en ingles le llaman asi porque su nombre original es muy largo... lo aprendí de David Malan en CS50, -dato curioso;
Hola, muy buen video. En el caso de windows se puede con el emulador (MobaXterm). Va genial para hacer los scripts.
como se copia la linea??? con que combinacionde tecla?
Mirate mí video de Vim
Si alguna persona os sale este error: línea 3: curl: orden no encontrada; significa que debeis instalar curl.
grande pelado!
Uy este video es oro puro.... Lastima que estudie bash en la uní el año pasado...
God bless the dolape...
Excelente, pero me hubiera gustado ejemplos con un BASH que me ayude a copiar cientos de archivos .log de respaldo en varias carpetas y varios servidores.....
Excelente vídeo, gracias!
Podré seguir el vídeo con WSL?
Si 👍🏼
Usando la consola de cmder no hay que configurar nada xD
me encantan los finales xd
jaja tanto tiempo haciendo cosas aprendidas desde google sin saber que eran o para que...gracias pelado xD
Para usuarios de Windows pueden usar el subsistema Linux
Bash se puede encontrar como subsistema de linux a partir de windows 10
cuanto hacía que no escuchaba decir "signo pesos"
Y bat en Windows...?
Excelente Pelado como siempre!! Te hago una consulta, me recomendas alguna pagina para hacer cursos sobre bash scripting o algo parecido? Mil agradecido con la contribucion que haces a la comunidad IT!
NetworkChuck tambien subió un video de BASH D: coincidencia? no lo creo
hace rato que lo quiero hacer, pero si, vi su video para sacar un par de ideas :)
@@PeladoNerd seria excelente un ejemplo un poco mas complejo de donde se usa BASH :D
El pela subió antes! 4 hs después Chuck saco el bash ep2 ;)
WSL rápido y fácil....antes de meterse con VBox y tener que hacer una instalación de SO
Poco volumen en el vídeo. Favor mejorar gracias
gracias pelado, por enseñarnos bash en este video
En windows usando la consola de cmder Lee todos los comandos de Linux sin configurar nada
Pero estamos en lo cierto, SHELL PUEDE SER "LENGUAJE DE PROGRAMACION" O "INTERPRETE DE COMANDOS" (¿Que es Shell Scripting? Es la técnica (habilidad / destreza) de diseñar y crear Script (archivo de automatización de tareas) mediante un Shell (preferiblemente) de un Sistema Operativo, o un Editor de Texto (Gráfico o Terminal). Este es un tipo de lenguaje de programación que generalmente es interpretado.)
bash es de mis lenguuajes favoritos junto a python como sysadmin
Gracias amigo! saludos!
disculpe la primer linea, dice que interprete usar si se ejecuta, pero Ud lo interpreta, osea, si Ud crea un archivo con x, osea ejecutable el SO ejecutara el interprete que dice la primer linea, sino sera' el que trae por defecto, pero si interpreta la linea, si la lee con argumento de bash, no es necesaria