I consider myself to be “decent to okay” at bash scripting. I’ve even got bash scripts in enterprise production environments. This video helped _clarify_ and illuminate so many individual features and (sometimes conflicting) syntaxes. Not only do I have new knowledge, but the information that was already in my head is more cohesive. Absolute A+ content.
I have been through long courses of bash scripting and in that only I have seen all these topics covered, covering so much in a less than 30mins is really awesome. I request you to make more of like this plz.
This was beautiful my friend. Your calming voice and the methodical breakdown of the code is Buddhist in nature. Incredible work. And I now second the merch thing.
this vid is amazing. I'm not very inclined to learn shell scripts, like bash or powershell; but the pacing, the background song, the edit and your explanation turn it like a "reading session". i felt like i was reading a really good book, with no hurry and pay the most attention i could
A couple of errors/things that may be confusing: 13:53 - The internal logical AND and OR are wrong for double brackets. They would be correct for single brackets, though. 20:07 - The for loop is incorrect and prints 1[@]. The correct syntax would be `for item in "${my_arr[@]}"` 21:00 - Not an error, but this while loop will fail after the first iteration with the previously mentioned "strict mode", because ((counter++)) will return non-zero and exit the script.
Was skeptical I would learn anything new, but there were several juicy fresh bits! Very cohesive, wish I had seen this years ago haha. Valuable content for the community
So glad I found your channel as I'm struggling to wrap my head around the awkwardness of writing bash scrips for my studies right now. Will definitely reference parts of this video again during the two weeks I have for my current assignment! Thank you! ❤
Nice mic, damn 😅 Even better video! It's actually as relaxing as it is perfectly dense and presented. I think any more in any direction of brevity or speed, it wouldn't work. You hit that Cinderella slipper of YT education. Normally, music in the background drives me nuts. I loved it!
Hey, you did an amazing job. This was more than helpful, it was enjoyable. I believe that you have an excellent combination here, summarizing information but also lifting a bit the curtain to understand the underlying structure is really valuable for this type of content. Keep up and I am sure that you will get more acknowledgment from everyone in a near future!
You're the best. I followed along and made a "quick reference" guide for myself as I continue to learn how to use Bash and Linux/Ubuntu. It's not as scary as I thought it would be, trying to learn all this. Thank you for making it much more approachable! One question: Is there is significant difference between csh and bash? My advisor only uses csh, while, I want to learn more bash/tcsh, since I've read that the latter is a bit more dynamic compared to csh. Is this true?
I'm glad to hear it! And I think the choice really comes down to personal preference. There will be some differences in syntax and a few features here and there, but the majority of the work you'll be doing in the scripting is going to be very similar, as it'll be heavily command driven. I think the real reason to opt for bash is its ubiquity. Almost every unix system will have bash pre-installed, whereas very few have csh/tcsh (not that its hard to install). I personally use zsh as my main shell, but still for any scripts I write I'll tell it to use bash so it'll run on any of my systems.
I'll add that Bash is used in Unix, Linux and Windows. If you are going professional with these skills, bash would be the most useful/ubiquitous by far.
I’m glad you like it, I did spend some time trying to find the right tunes. And I’ve looked into it but I’ve been lazy about getting some samples. But I’ll do so, as it seems like a decent number of people are interested.
You've got a great way of explaining the structure & modularity of using bash and "glue" together its userland utilities. You'd be awesome for teaching python and rust I'd bet! Thanks so much for making the video. BTW, how did you get those lines of code to highlight while you're explaining? Also, never saw "#!/usr/bin/env" syntax before ... it even works in FBSD.
Thanks! And I’ve only dabbled with Rust, but I will have some more programming videos soon. And I used reveal.js which has a line highlight capability for code blocks.
Fantastic video. I'll definitely be showing this to others who may need help with bash scripting. It's also worth pointing out that a lot of these (but not all) commands and syntaxes can be applied to ksh/mksh, dash and POSIX shell, and zsh too!
I do not know if someone address this but during 13:54 there is an syntax error in internals, instead of [[]] you have to use [], because -a/-o are for POSIX standard
15:11 isn't it a convention to print (Y/n) with a capital Y only if "yes" is the default option if the user enters nothing (i.e., simply presses return)? Because your script would treat that as a "no", which could be confusing.
I keep it pretty simple with just oh-my-zsh and then when I’m doing the video recording I set these export PROMPT='> ' export RPROMPT="" That way it gets rid of all of the extra noise. But on my day to day I don’t keep it like this since it gets rid of some useful info.
I got lost in the weeds pretty quickly, this is over my head. I should look for a longer video with a deeper explanation of each step. Thanks anyway. By the comments it looks like some were able to get it fairly quickly. I'm afraid that I am not one of those people. The search continues........
I’m sorry to hear that. Was there any part in particular that was causing trouble or was it just moving too fast in general? FYI I’m working on a site right now that will be a companion to my videos that’ll have exercises and such to help aid in the learning process, so once it is up and ready it’ll hopefully help.
I'm curious as to how you use videos like this? Personally, I massively benefited from it by actively trying and exploring each of the points raised. It took me well over an hour to get to 7 minutes. Even the opening use of env taught me tons because I stopped and ran env as a command, studied its output, discovered there was env at /bin and usr/bin, compared the output of env to the which bash command. I explored everything that way, making notes and creating working examples that illustrated variations of usage. This one hour video is a ten hour course that is worth 10 years of bumbling along (as I have spent the last decade doing). I agree the presentation has to engage and not grate your personal style preferences (in which regard it was a perfect fit for me) but style alone will not make you learn, exploration and discovery is the key to that, preferably with a pro guide like this fellow.
It comes down to the portability. You have to hardcode some full path, but not every machine will have bash at the same location, whereas env is almost always at /usr/bin/env.
I'm very much a generalist. Most of my "professional" career has been in the DevOps space, but I've been programming for over 15 years (though only half of that with any degree of skill lol) and I try and learn everything.
Perfect material, perfect music, perfect voice! One think, please a bit slower and pauses a bit longer, cuz content sounds squashed. Thank you so much!
I consider myself to be “decent to okay” at bash scripting. I’ve even got bash scripts in enterprise production environments. This video helped _clarify_ and illuminate so many individual features and (sometimes conflicting) syntaxes. Not only do I have new knowledge, but the information that was already in my head is more cohesive. Absolute A+ content.
That is great to hear!
I never knew I needed a “Guided Bash Meditation”
Pro tip: light a couple candles, put on a nice essential oil diffuser. Saje has a scent called “nerd forest” that’s perfect for this.
@@RickGladwin Nerd forest is great, you can find it right next to "Mystical autism"
*Gnuided Bash Meditation
If you made Bash Pro Shop merch, I would instantly buy it. I have never bought merch before, but it would be worth the investment.
I second this. Only stopped for the title
For real. That graphic would be great on a shirt or a hat.
Same
Agreed
I agree
I have been through long courses of bash scripting and in that only I have seen all these topics covered, covering so much in a less than 30mins is really awesome. I request you to make more of like this plz.
It's interesting that not a lot of creators go in-depth into she'll scripting. It's so useful and portable
Shell scripting is easy n powerful
@@leo25cm
I feel like I’m listening to late night FM radio.
This was beautiful my friend. Your calming voice and the methodical breakdown of the code is Buddhist in nature. Incredible work. And I now second the merch thing.
Thanks!
I feel like I’m learning and meditating at the same time. This is wonderful. Subscribed
You are better than all of the other programming teachers on YT. Please make more videos. This is such good content.
This is easily one of the best tutorials I have ever watched! Thank you!
this vid is amazing. I'm not very inclined to learn shell scripts, like bash or powershell; but the pacing, the background song, the edit and your explanation turn it like a "reading session". i felt like i was reading a really good book, with no hurry and pay the most attention i could
Glad you enjoyed it!
Slay! Today I learned that my years of bumbling along struggling with bash were avoidable. This content is gold. Thank you. 💯👏
A couple of errors/things that may be confusing:
13:53 - The internal logical AND and OR are wrong for double brackets. They would be correct for single brackets, though.
20:07 - The for loop is incorrect and prints 1[@]. The correct syntax would be `for item in "${my_arr[@]}"`
21:00 - Not an error, but this while loop will fail after the first iteration with the previously mentioned "strict mode", because ((counter++)) will return non-zero and exit the script.
I implore @UA-cam to please address this very bad and lazy ai driven content
Was skeptical I would learn anything new, but there were several juicy fresh bits! Very cohesive, wish I had seen this years ago haha. Valuable content for the community
Glad to hear it!
So glad I found your channel as I'm struggling to wrap my head around the awkwardness of writing bash scrips for my studies right now. Will definitely reference parts of this video again during the two weeks I have for my current assignment! Thank you! ❤
I had some trouble understanding how the positional variables worked until I saw the ffmpeg example and then it clicked! Thanks!
You keep hitting it out of the park. Another amazing video. Holy hell.
Telling me that bash is a command syntax language unravels much of the mystery behind why my scripts have sucked. Thanks
Seriously awesome thumbnail (and also really great video).
I would 100% impulse buy Bash Pro Shop merch.
Thanks a lot!
I'm learning bash little by little and this video and the last one hit the spot
I’m glad to hear it!
Nice mic, damn 😅
Even better video! It's actually as relaxing as it is perfectly dense and presented. I think any more in any direction of brevity or speed, it wouldn't work. You hit that Cinderella slipper of YT education. Normally, music in the background drives me nuts. I loved it!
Thanks!
This has to be one of the most soothing videos I've ever watched.
Hey, you did an amazing job. This was more than helpful, it was enjoyable. I believe that you have an excellent combination here, summarizing information but also lifting a bit the curtain to understand the underlying structure is really valuable for this type of content. Keep up and I am sure that you will get more acknowledgment from everyone in a near future!
This video is gold and hits all the right spots
Thank you for teaching me. This is top grade knowledge that you are teaching us.
In the function statement you can also use the “return” keyword “return” or “return n”.
Please don’t stop making videos. ❤. Keep it up! Too good.
You have covered alot in just 30 minutes ..Thank you.
Excellent, the level and pace are spot on for me. thanks!
Really unique Editing style ... feels calming and mental rush just boils down! ... Subscribed! for your efforts !
Thanks!
Thank you so much for this well explained and well structured tutorial, it is more than appreciated!
You're the best. I followed along and made a "quick reference" guide for myself as I continue to learn how to use Bash and Linux/Ubuntu. It's not as scary as I thought it would be, trying to learn all this. Thank you for making it much more approachable!
One question: Is there is significant difference between csh and bash? My advisor only uses csh, while, I want to learn more bash/tcsh, since I've read that the latter is a bit more dynamic compared to csh. Is this true?
I'm glad to hear it!
And I think the choice really comes down to personal preference. There will be some differences in syntax and a few features here and there, but the majority of the work you'll be doing in the scripting is going to be very similar, as it'll be heavily command driven.
I think the real reason to opt for bash is its ubiquity. Almost every unix system will have bash pre-installed, whereas very few have csh/tcsh (not that its hard to install).
I personally use zsh as my main shell, but still for any scripts I write I'll tell it to use bash so it'll run on any of my systems.
I'll add that Bash is used in Unix, Linux and Windows. If you are going professional with these skills, bash would be the most useful/ubiquitous by far.
This is the ABS (Advanced Bash Scripting) Guide speed run.
Also if you stick to the Bash test, that is `[[ ... ]]`, you don't need to put variables inside quotes, not on the left side of a comparison.
dank content the middle school teachers need to steal this and create some yung engineers
This was superb. The music choice was fantastic if conscious, because it helped immensely with focus.
Also Bash Pro Shop merch when?
I’m glad you like it, I did spend some time trying to find the right tunes.
And I’ve looked into it but I’ve been lazy about getting some samples. But I’ll do so, as it seems like a decent number of people are interested.
You've got a great way of explaining the structure & modularity of using bash and "glue" together its userland utilities. You'd be awesome for teaching python and rust I'd bet! Thanks so much for making the video. BTW, how did you get those lines of code to highlight while you're explaining? Also, never saw "#!/usr/bin/env" syntax before ... it even works in FBSD.
Thanks! And I’ve only dabbled with Rust, but I will have some more programming videos soon.
And I used reveal.js which has a line highlight capability for code blocks.
Fantastic video. I'll definitely be showing this to others who may need help with bash scripting.
It's also worth pointing out that a lot of these (but not all) commands and syntaxes can be applied to ksh/mksh, dash and POSIX shell, and zsh too!
The title got me, there’s one that just opened near my place😂😂😂😂😂❤
This is amazing. Please make more videos like this.
Can I put this design on a hat for Christmas gifts? Absolute gold
Yeah feel free
more videos exactly like this. fundamentals of linux is great stuff.
this is GOLD, THANK YOU!
This is golden!!! What font do you use for the terminal?
Thanks! And its IBM Plex Mono (www.programmingfonts.org/#plex-mono)
nice, you acually explained all about bash, thanks.
thanks a ton!! can you please make video or if possible share reference sites for learning docker and k8s.
Hey, I've been thinking about doing guide videos for those. I've got a couple others in the works right now, but I can definitely do that.
Dude your content is amazing, keep it up!
I do not know if someone address this but during 13:54 there is an syntax error in internals, instead of [[]] you have to use [], because -a/-o are for POSIX standard
Ah good catch, not sure how I missed that.
Love the music brother.
This production quality is too high, the channel will blow up soon.
such an awesome explaination! thank you for this
2:07 Thus far into this video the music is close to superb along 👏👏
What color Schema is that? Looks beautiful
I believe it is GitHub Dark.
you're wild, man. Great channel!
15:11 isn't it a convention to print (Y/n) with a capital Y only if "yes" is the default option if the user enters nothing (i.e., simply presses return)? Because your script would treat that as a "no", which could be confusing.
Good catch. You’re correct, I should’ve had it the other way around
Really awesome! Thank you so much and see you in the next one too.
Wonderful vid! Looking forward to more!
This video is an expected pleasure
whats the zshell interface/custom form you use? I'd love to try it.
I keep it pretty simple with just oh-my-zsh and then when I’m doing the video recording I set these
export PROMPT='> '
export RPROMPT=""
That way it gets rid of all of the extra noise. But on my day to day I don’t keep it like this since it gets rid of some useful info.
Great videos looking forward to the next one.
Can you make another such great bash scripting video?❤
So many pro-tips and nuanced demos, thank you! Also great voice tbf.
thx for the video! I’m sure learning this will help me in the future
"bash pro shop" .. great phrase
Super helpful thank you!
I’m glad to hear it!
Can you pls tell me what is the font you use in this video? The # sign look so unique
I’m using IBM Plex Mono font for the code and Syne for the titles.
This was very helpful thank you so much 🎉🎉
Great video! Need more! 👏
I got lost in the weeds pretty quickly, this is over my head. I should look for a longer video with a deeper explanation of each step. Thanks anyway. By the comments it looks like some were able to get it fairly quickly. I'm afraid that I am not one of those people. The search continues........
I’m sorry to hear that. Was there any part in particular that was causing trouble or was it just moving too fast in general?
FYI I’m working on a site right now that will be a companion to my videos that’ll have exercises and such to help aid in the learning process, so once it is up and ready it’ll hopefully help.
I'm curious as to how you use videos like this? Personally, I massively benefited from it by actively trying and exploring each of the points raised. It took me well over an hour to get to 7 minutes. Even the opening use of env taught me tons because I stopped and ran env as a command, studied its output, discovered there was env at /bin and usr/bin, compared the output of env to the which bash command. I explored everything that way, making notes and creating working examples that illustrated variations of usage. This one hour video is a ten hour course that is worth 10 years of bumbling along (as I have spent the last decade doing). I agree the presentation has to engage and not grate your personal style preferences (in which regard it was a perfect fit for me) but style alone will not make you learn, exploration and discovery is the key to that, preferably with a pro guide like this fellow.
Bash is cow complete! cowsay "Thanks! You have another subscriber."
Thanks for this awesome video/resource
This man is a legend. I always thought bash was a hard and weird language. Now I realize it's not that hard, but still weird as mentioned. Thanks! :D
I’m glad to hear it!
Awesome video, so much content, so well explained. Love the added process at the end
premium content, very nice :)
How is hardcoding the path to "env" any better than hardcoding the path to "bash"?
It comes down to the portability. You have to hardcode some full path, but not every machine will have bash at the same location, whereas env is almost always at /usr/bin/env.
PLEASE make a hat with Bash Pro Shop on it. I would buy it so fast
Haha I’d love to but I imagine I’d be inviting trouble. But I’ll look into it.
Very useful thanks.
fantastic video! this ends up being a good refresher video too!
What tool did ya use to visualise these ?
Nothing fancy, just used revealjs with some custom styling
thanks for sharing. here is the comment for the algo!
Hi, other very new people to Linux! I accidentally typed user/bin/env instead of usr/bin/env. If your hello world isn't running, that might be why.
I did wonder why the /usr/bin/env was so common in scripts.
Good Job !
great video, subscribed
What font did you use btw?
For the code it is IBM Plex Mono. The titles are syne
Nice useful video. 👏
Thank you sir!
Lmao love the thumbnail 😂
This video is awesome
What is your background?
I'm very much a generalist. Most of my "professional" career has been in the DevOps space, but I've been programming for over 15 years (though only half of that with any degree of skill lol) and I try and learn everything.
I love this n you
Thank you
Subscribed Brother!
Really interesting. and concise, kudos!!!
I need a tshirt with that thumbnail
Thanks! More of this please! 🙂
Perfect material, perfect music, perfect voice!
One think, please a bit slower and pauses a bit longer, cuz content sounds squashed.
Thank you so much!
Nice voice
what's that font?
The code font is ibm plex mono and the title font is syne
@@CODE_IS_EVERYTHING thanks
Gracais
🎉🎉🎉🎉