 I am a long time user of ZSH and one of the reasons why I like ZSH so much is because it is very very customizable now it doesn't mean when I say that it doesn't mean that bash isn't customizable that's not true whatever you know whatsoever bash is very customizable but ZSH is easier to customize or at least I thought it was it turns out that there are just as many tools to customize bash as there are to customize ZSH now it is still a little bit trickier to get all of the cool features of ZSH on bash but it is possible today we're going to be taking at a tool called oh my bash now before you click away from the video if you haven't already I know that there are some people out there that are very opposed to anything that starts out with oh my especially if you are a ZSH user and you're a ZSH purist you'll know about oh my ZSH which is the antichrist to a lot of people it is a very it's the definition of bloatware okay a lot of people really don't like it if you use oh my ZSH for various reasons mostly because ZSH can do all those things without needing the extra stuff that oh my ZSH adds to ZSH so it does add cruft right but I being the lazy person that I am have always used oh my ZSH basically since the beginning of my ZSH days I've never had a problem with it it doesn't slow my terminal down whatsoever and I'm happy not having to do a lot of the work that I'd have to do if I didn't use it so on some of my VMs now that I'm using mostly VMs for my work I find myself using mostly bash now bash is good bash is great and I like bash but out of the box it's kind of boring so what I wanted to talk about today is oh my bash basically it is the bash version of oh my ZSH and it's pretty cool so let me show you how to install it and how to configure it let's go ahead and jump in so to install oh my bash you should come here to their github page which I'll link in the video description below it's very very easy now usually the last thing you'll ever want to do is run a bash script directly from the internet don't do that basically ever okay unless you're absolutely 100% sure the thing that you're going to be running on your computer is what's actually supposed to be run on your computer this is not the way you're supposed to do things but we're gonna do it anyways we're living on the edge so if you have curl installed which I do I'm going to take this one line I'm gonna go here and I'm going to copy it and I'm going to run it and basically that's all there is to it now what you've basically done here is added some configuration to your bash RC file that changes the way the prompt works and adds some ability for bash to have plugins just like ZSH now I'm gonna talk about the look and feel of the prompt first and we'll talk about themes because of those are the things that I prefer to you know deal with and then we'll talk a little bit about the plugins that are available because those are pretty interesting as well but they're more focused on people who use programming languages and things like that so let's talk about the changes that they've made to the bash RC file so if we them into bash RC oh before I should have mentioned this before you ran that one command but I apologize for that just know that when you run that one command that we just ran it will overwrite your bash RC file so if you have a bash RC file already you've overwritten it now the good news is is that it does if we do an LS here or an LS dash a here I should say you'll see a bash RC file that looks like this here this right here is your old bash RC file okay so if you have aliases in there or whatever they're not gone don't panic you can go back into this backup get those things out put them in the new bash RC easily enough I just wanted to mention that just in case you had a whole bunch of stuff in your bash RC file already and you're worried now that it's gone it's not gone it's just in the backup file it's okay so let's move let's go ahead and look at the bash RC file that they have created for us and you'll see a whole bunch of lines here a lot of them come commented out where I'm not gonna go through all of them but they basically what all this stuff here does is give you options for how your prompt works and how all my bash works and it's all well commented so you can go through it and basically know what everything here does there are a couple lines that we're going to deal with here today the first thing we're gonna take a look at is this line here OSH theme by default it looks like this right here okay this is what's called the font prompt and it's a cool looking prompt don't get me wrong it's kind of boring but it has that you know that has the time that the last line was run has your name and the host name and then it has the directory information just like you'd expect but the coolest part about oh my bash in my opinion is that it comes with themes now if you watch my channel for any amount of time you'll know that I love themes it's fantastic it just makes me so happy so I'm gonna show you some of the themes so we're gonna open this up this link here and as you can see there are just a lot of themes that it comes with and all of them are documented on this page here if you've used my ZSH in the past you'll notice that most of these are the exact same and sort of where they're actually all exactly the same I don't think that there's any I think they cross post them to both don't quote me on that but I'm pretty sure so there's agnostic there's accent all these prompts are built-in come pre-installed and you can use any of them and they're all fantastic so the one that I'm going to change this to just for simplicity's sake is called power lines I'm gonna change this word here to power line I'm gonna save and quit and then I'm going to go ahead and source dot bash RC like so and then you can see the prompt has changed to a power line prompt and that's the coolest part I think in my opinion about bash oh my bash it gives you an option to change the theme of your prompt now like I said you can do all of this stuff without all my bash it just takes work and if you're like me and you want to be lazy about it oh my bash gets you all the way there without any of that work it's fantastic now like I said there are other themes that you can use obviously so well let's just go ahead and take a look at something before I move on that power line and several the other ones are going to require to you to use certain fonts so there are power line fonts that you can use or you can use things like nerd fonts I'm using nerd font mono or power line no I'm using JetBrains mono nerd font I should say excuse me that's the one that I'm using you will have to have a font that includes icons in order for some of these themes to work so if you get a if you use this and you follow the instructions and your prompt looks really funky it's going to be because of the fonts install nerd fonts or at least a nerd font and then use it in your terminal and your font problem should go away so I'm actually going to change this to Agnoster just to see a different one it's going to be kind of the same that is that if we right if we go here and do source.bashrc again you have to spell things right that's what Agnoster looks like and like I said there are a ton of different themes that you can choose from a lot of them are kind of samey just to be honest with you but they do exist and there's a couple dozen of them and you can choose between any of them they're all worthwhile to try out so that's the theming aspect of Oh My Bash it's my favorite part and we could stop the video here but there are some of the things that I can show you namely plugins now plugins are things that I'm not really interested I don't use very many plugins in Oh My ZSH as well either but there are some that I use one of them is Git so if we go back to the bashrc file and then go to plugins or go back up here to the plugins it's right here by default they have a couple plugins are you able get and bash marks now they do have a page here all the plugins that they are have available most of these I don't see why you'd want to use them unless you have a specific need of them but they are here for you to use so there are plugins for Ansible, AWS, a battery plugin, gcloud plugin for Google Cloud I'm assuming one for Go one for NVM one for NPM things like that a lot of the stuff has to do with programming or things like that and it adds information to your prompt that's basically what a lot of these things do so if you're in a Git repository so if I go to my repo you can see that I'm in a Git repository here and it gives you icons right it shows you the status of the Git repository whether it's synced up or not and if you have existing commits or things that are stashed or whatever it will show that inside the prompt which is really nice that's what the Git plugin does and a lot of these plugins are exactly the same they give you information about the language that you're in or the project that you're in if it's on a if it has code from a certain language or whatever so it gives you extra information inside of your prompt another thing that oh my bash does is it allows you to set up custom completions now I'm not sure exactly how this works because I have not used it and I have not set it up because you do have to put some effort into actually creating them now there are some that are you know existing but if you want to have word completions inside of your shell you can use oh my bash to do that similar to what you'd get with auto complete and ZSH auto suggestions those plugins for ZSH or if you've used fish before fish comes with that kind of stuff pre-installed with bash you actually have to do a lot of stuff customized or custom and you can do that with oh my bash very easily just by creating a file it does give you information on how to do that here in the comment so it does have a list of completions that you can that already exists so things like composer conda Django Docker things like that interestingly it doesn't have completions for bash itself which is interesting I'm not exactly sure how their completions work so maybe that that's just not something that is you know something that would work but the idea there is that it does at least exist you can use it if you want now obviously there are other things that oh my bash does so I will link to their github page in the video description below as I said there is a wiki here that you can go through all of the features that it does have because it does add a whole bunch of other features to your bash RC file other than just themes but themes for the things that I really wanted to have so that's why I liked it so much that's all my bash now just to wrap up do you actually need this no of course not all the stuff that I've shown you here the even the plugins that all my bash has all that stuff is usually just script stuff that's functions things like that that add information to the prompt all that stuff can be done manually through your bash RC it just takes work well all my bash does is gets you there without having to do the work does it add some overhead probably I know I don't notice any slowdowns when I use on my zsh or my bash it just it works fine but if you are someone who notices very small lags maybe it does add some like I don't know I know people say that it does I've never noticed it but that's just something to keep in mind personally like I said I'm in it for the things I like my prompt to be very customized and while I still prefer zsh because there's more that can be done with it and there are more plugins and stuff like that for all my zsh and there's like power level 10,000 for zsh where there isn't for bash it is nice to know that if you are going to use bash you can use something like all my bash to make your prompt look nice and provide you some extra information in the form of like get in python and things like that so that is it for this video if you have thoughts on all my bash or any of this stuff you can leave those in the comment section below I know plugins or plug-in systems or things like you know all my bash and all my zsh are very controversial to some people if you have very opinionated opinions on this stuff I'd love to hear from you too I would love to hear from everybody you're wrong but I like all my zsh and you're not going to take it away from me that's just kind of the way things go anyways that's it for this video comments in the comment section below you can follow me on mastodon or Odyssey those links will be in the video description you can support me on patreon at patreon.com slash the Linux cast links for liberapay and YouTube will be in the video description as well thanks to everybody who does support me on patreon you guys are all absolutely amazing without you the channels should not be anywhere near where it is right now so thank you so very very much for your support I truly do appreciate it you guys are just absolutely amazing I but for my patrons just to let you know I'm aware that I'm behind on blog posts and the patreon on the podcast I will be getting some of that stuff up this evening so you guys probably won't see this it'll probably already be up by the time you see this video let's just put it that way hopefully I can start getting caught up on some of that stuff work is just kind of a pain but anyways that's it for this video thanks everybody for watching I'll see you next time