TODOS deberían aprender BASH - Bash PARTE 1
HTML-код
- Опубликовано: 6 сен 2024
- 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:
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 👌
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.
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
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
:(
Esta muy bueno para levantar minitas en las fiestas del trabajo. Si ves que se aburre aléjate de ahí!!!! jajajaja
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
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?
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
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
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.
Me encanta como explicas las cosas con claridad, competencia y sin tantos rodeos.
Gracias por compartir tus conocimientos.
Saludos desde Medellín, Colombia.
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
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
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!
muy bueno pelado, como siempre... falto el como agregarlo al cron, pero quedara para el " TODOS deberían aprender BASH 2" supongo. abrazooooo
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.
gracias, tenia años de no usar bash, pero ahora que estoy retomando, me fue muy útil tu video
Podría sonar obvio este tipo de videos, sin embargo, estas perlas son necesarias. Excelente Pelado.
Un abrazo.
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 ;)
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
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."
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.
Como siempre impecables tus videos, una sola observacion. El scripting de Windows es powershell, batch es de DOS y Windows aun lo soporta. Saludos
Espectacular este video lo muestro a mis alumnos de linux server!!! para arrancar la cursada de programacion
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
Excelente video brother y esa tematica al final quedó brutal.
como ha comentado alguien también , tienes mucha habilidad para explicar las cosas, sigue asi like siempre!!!!
Pelado Nerd... como no me habia aparecido en mis videos ya? Suscripto ya mismo!
super cool Pelado!!!
Excelente video!
Con muchas ganas de más partes, justo algunas cosas que quería conocer las encontré en tu video :D
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
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.
Buenísimo video, no hay que tenerle miedo a los scripts
Jaja buenísimo el video, sobretodo tu didáctica. Y al final lo de batch de D.O.S. Mortal !
Buena introducción a Bash :D
Gracias Pelado !
Pfff manera de explicar, hermano! Genial, gracias por tu contenido!
Que recuerdos de la carrera :). Un hurra por vim!
Un crack pelao.. Siempre revisito tus tutoriales.
Muy buen video, estoy buscando videos sobre script de bash que sirvan para aplicar en el desarrollo web, pero hasta ahora no tuve éxito.
Excelente! Esperamos la segunda parte pela!
sabes que con esto estas despertando una curiosidad de todo lo que puedo hacer.....voy a romper todo
Windows desde la versión 10 tiene un subsistema de Linux...si no me equivoco te instala un Ubuntu
Muy buena explicación, gracias por compartir conocimiento.
Bien Pelado, me hiciste recordar mis scripts en SCO Open Server, RHEL.
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.
Esta explicado súper sencillo, enhorabuena
cada contenido es muy validos, gracias
Uy este video es oro puro.... Lastima que estudie bash en la uní el año pasado...
God bless the dolape...
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
grande pelado!
muy bueno !!! lo miro para ver el remate !!!
WSL rápido y fácil....antes de meterse con VBox y tener que hacer una instalación de SO
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.....
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 :)
Cuando, subiras tu curso de Bash en Platzi
Muy buen video, genial explicación!!!
Muchas gracias !!!!
Hola, me encantan tus videos! super didácticos, podrías hacer alguno explicando el comando awk y/o sed?
ABZ!
buen video tio pelao :D
Sabes una bocha Pablo. Gran produccion
Muy buen video, necesito más vídeos de bash
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;
BASH, es un entorno de Shell, que es capaz de ejecutar comando Unix/Linux, interpretando lenguaje de scripts. Ahora bien, la metodología de programación, te dice de manera lógica, como se tiene que construir las llamadas a la api de programación La programación Shell-Script existe y adema intrínseca a Unix, aparte de que pueda programar en C. Es un lenguaje de programación, para mi es un pseudolenguaje de programación. (Bash es un intérprete de órdenes que generalmente se ejecuta en una ventana de texto donde el usuario escribe órdenes en modo texto.) INTERPRETE DE COMANDOS, COMO PHP INTERPRETA SU LENGUAJE, Y LO IMPRIME EN HTML EN UNA PAGINA WEB... Los Interpretes de comandos, interpretan, lo que tu les digas mediante un lenguaje o codigo logico, que KSH, BASH o CSH entiendan... (me quedo con Interprete de comandos, pero shell... :-))
Si alguna persona os sale este error: línea 3: curl: orden no encontrada; significa que debeis instalar curl.
Hola, muy buen video. En el caso de windows se puede con el emulador (MobaXterm). Va genial para hacer los scripts.
Pero que buen video bro,gracias, por eso es que te seguira yendo bien bro!
Hola pelado, te agradezco el video, super util y sencillo de entender!!! Una consulta, que teclado usas?
A partir de Win 10 viene un Ubuntu instalado con el Windows con el que probé algunas cosas de este video y funcionan bien.
Cómo en termux utiliza Bash para el cambio del banner entre otras o estoy mal 😁🤘
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
Excelente video Pelado sos un crack..
👍👊
Excelente vídeo, gracias!
me encantan los finales xd
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!
Ahora que todos los *nix modernos usan python, por qué no usar algo un poco más moderno? Implementé un CLI con xonsh en un virtualenv hace tiempo para mejorar mis scripts y me gustó el resultado. Me gusta bash para scripts sencillos pero conforme avanza la complejidad es pesado mantenerlos y modificarlos
muy básico, pero muy didáctico.
gracias !!
Buen video, alguna bibliografía que puedas recomendar para bash?
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.)
Te voy a enviar un vídeo mio para que aprendas a tocar el saxofón en 15 minutos
Hola, recomendarías algún libro en concreto para iniciarse en Bash de básico a medio o de básico a avanzado?
Gracias amigo! saludos!
Bash se puede encontrar como subsistema de linux a partir de windows 10
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
jaja tanto tiempo haciendo cosas aprendidas desde google sin saber que eran o para que...gracias pelado xD
como se hace para que su vim se vea así?
gracias pelado, por enseñarnos bash en este video
Para Windows, no vale instalar Git Bash y ya?
Para Windows son mucho más poderosos los scripts de PowerShell 😊
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
sos un genio
ahora hablas de cron y de los script de bash y lo bordas.
y ya si me resuelteves los problemas q tengo con la ejecucuion de variables de entorno , "source" para ejecutar el bash el cron q va a su rollo y demás me potencias mi Raspberry y haces q mis script no escriban tanto en un archivo de texto.
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.
como se copia la linea??? con que combinacionde tecla?
Mirate mí video de Vim
Genial!!
cuanto hacía que no escuchaba decir "signo pesos"