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
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! ❤
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
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!
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.
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!
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'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.
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 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.
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.
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.
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'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.
Don't use bash for scripting. Too many non-obvious gotchas even pros don't always realize. For anything longer than 2 lines of code use python, perl, whatever.
😂😂 Scripting in Perl. I'd rather shoot myself in the face. Also, useless comment. Shellscripting is incredibly powerful and is used everywhere in cloud computing.
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
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!
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
This is easily one of the best tutorials I have ever watched! Thank you!
You are better than all of the other programming teachers on YT. Please make more videos. This is such good content.
Slay! Today I learned that my years of bumbling along struggling with bash were avoidable. This content is gold. 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!
Seriously awesome thumbnail (and also really great video).
I would 100% impulse buy Bash Pro Shop merch.
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! ❤
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!
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!
I had some trouble understanding how the positional variables worked until I saw the ffmpeg example and then it clicked! Thanks!
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 @RUclips to please address this very bad and lazy ai driven content
Telling me that bash is a command syntax language unravels much of the mystery behind why my scripts have sucked. Thanks
You keep hitting it out of the park. Another amazing video. Holy hell.
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!
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!
Please don’t stop making videos. ❤. Keep it up! Too good.
Thank you for teaching me. This is top grade knowledge that you are teaching us.
This video is gold and hits all the right spots
Excellent, the level and pace are spot on for me. thanks!
In the function statement you can also use the “return” keyword “return” or “return n”.
You have covered alot in just 30 minutes ..Thank you.
Really unique Editing style ... feels calming and mental rush just boils down! ... Subscribed! for your efforts !
Thanks!
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.
Thank you so much for this well explained and well structured tutorial, it is more than appreciated!
The title got me, there’s one that just opened near my place😂😂😂😂😂❤
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.
Can I put this design on a hat for Christmas gifts? Absolute gold
Yeah feel free
This is amazing. Please make more videos like this.
more videos exactly like this. fundamentals of linux is great stuff.
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.
This is the ABS (Advanced Bash Scripting) Guide speed run.
This is golden!!! What font do you use for the terminal?
Thanks! And its IBM Plex Mono (www.programmingfonts.org/#plex-mono)
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.
nice, you acually explained all about bash, thanks.
you're wild, man. Great channel!
Love the music brother.
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.
Really awesome! Thank you so much and see you in the next one too.
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!
such an awesome explaination! thank you for this
Dude your content is amazing, keep it up!
Great videos looking forward to the next one.
2:07 Thus far into this video the music is close to superb along 👏👏
Can you make another such great bash scripting video?❤
Wonderful vid! Looking forward to 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.
This production quality is too high, the channel will blow up soon.
thx for the video! I’m sure learning this will help me in the future
What color Schema is that? Looks beautiful
I believe it is GitHub Dark.
"bash pro shop" .. great phrase
This was very helpful thank you so much 🎉🎉
So many pro-tips and nuanced demos, thank you! Also great voice tbf.
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.
Bash is cow complete! cowsay "Thanks! You have another subscriber."
This video is an expected pleasure
Super helpful thank you!
I’m glad to hear it!
Thanks for this awesome video/resource
this is GOLD, THANK YOU!
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
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.
Awesome video, so much content, so well explained. Love the added process at the end
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 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!
Great video! Need more! 👏
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.
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.
fantastic video! this ends up being a good refresher video too!
thanks for sharing. here is the comment for the algo!
Very useful thanks.
Nice useful video. 👏
What tool did ya use to visualise these ?
Nothing fancy, just used revealjs with some custom styling
premium content, very nice :)
Good Job !
great video, subscribed
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.
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 need a tshirt with that thumbnail
Thanks! More of this please! 🙂
I did wonder why the /usr/bin/env was so common in scripts.
What font did you use btw?
For the code it is IBM Plex Mono. The titles are syne
Thank you sir!
Subscribed Brother!
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.
Really interesting. and concise, kudos!!!
Lmao love the thumbnail 😂
Don't use bash for scripting. Too many non-obvious gotchas even pros don't always realize. For anything longer than 2 lines of code use python, perl, whatever.
😂😂 Scripting in Perl. I'd rather shoot myself in the face. Also, useless comment. Shellscripting is incredibly powerful and is used everywhere in cloud computing.
Nice voice
I love this n you
Thank you
This video is awesome
what's that font?
The code font is ibm plex mono and the title font is syne
@@CODE_IS_EVERYTHING thanks
🎉🎉🎉🎉