Placeholder Image

Subtitles section Play video

  • (bell ringing)

  • - Now it's time to work on our shell access.

  • So what I've always done prior to this video

  • is use just the built-in terminal that comes with Mac OSX,

  • and I kind of don't need very much more than that

  • because I am not that sophisticated.

  • I just type basic Git commands or node commands in there,

  • but I have learned recently that

  • there is a particular application called iTerm.

  • Let me pull up the URL for that.

  • And this is a Mac OSX terminal replacement.

  • There are equivalent terminal replacements for Windows.

  • I'll try to include some links in the video description

  • when I get good suggestions.

  • And you can see that it has a lot of extra features.

  • It's free.

  • I believe it's, I don't know if it's open source.

  • That would be an interesting question.

  • There's a bug tracker, and it is,

  • it looks like it's licensed under GPL version two.

  • Okay, great.

  • So I encourage you to kind of click through

  • and look at the different features.

  • But really it's just has a lot of customization

  • for searching, for hotkeys, for that kind of stuff.

  • So it has more features.

  • We'll see that as I use it.

  • So I have that here.

  • Now, something that I've always wanted,

  • I look over other programmers and I see their console,

  • and it's all like color coded.

  • And if they use Git, maybe you don't know what Git is,

  • but you're learning about it.

  • It says things like you're in a Git repository

  • and what branch you're in in that repository,

  • just gives you information as you're going.

  • So there's many ways to configure your terminal

  • in terms of styles and transparency and color

  • and features and what you can type.

  • Something that I learned about recently is a shell.

  • So by the way, this shell that it's

  • running right now is bash.

  • Bash is the default shell of Mac OSX.

  • And remember when I was talking about

  • this important concept called PATH.

  • When you start a shell it's going to load the PATH

  • from the configuration files for that shell,

  • and I'm realizing something.

  • I'm going to show you a completely

  • different way to live your life.

  • I apologize for this being so Mac OSX specific,

  • but one of the things that you want,

  • the Mac doesn't want you to like get

  • into your actual configuration files by default.

  • If I go here it just wants me to look at my recent files

  • or things people are AirDropping at me.

  • I don't want to do that.

  • (laughing)

  • I want to get to my user home directory

  • which has all this configuration stuff.

  • So one thing I could do if I'm in the terminal prompt

  • and I know I need to configure it still

  • I type, I can type pwd and I can see, ah,

  • this is the directory that I'm currently in

  • in the terminal, in the console.

  • I'm in Users/temporarytrain.

  • This is actually where I want to be.

  • That's where all the user configuration stuff for me,

  • the temporarytrain, that particular login

  • of this computer is.

  • So I can now say open dot,

  • and it's going to open that directory in the Finder.

  • And look at this.

  • But there's not, there's just,

  • this is not a way to live.

  • (laughing)

  • Look at all this.

  • There's a list of all this stuff here.

  • But there's all these files that are hidden.

  • And those files that are hidden

  • are things that are actually controlling your PATH

  • for when you get stuck and need

  • to fix your Python configuration

  • because this is broken or that is broken.

  • You need to get into those files.

  • So something that you can do is if I just Google

  • like show hidden files Mac

  • I'm going to see this nice little command here,

  • defaults write com.apple.finder Apple,

  • I can do this.

  • And I can go in here.

  • I can put that in.

  • And then if I go back to the Finder,

  • I'm not going to see the hidden files,

  • and I apologize this is so low.

  • There might be a way for me to make this bigger.

  • I'm not going to worry about that right now.

  • I can just zoom into it.

  • What I need to do is relaunch the Finder.

  • So I can do command option escape

  • and then here click on relaunch.

  • It's going to relaunch the Finder.

  • And then I can come back here

  • and I can hit open again.

  • And suddenly look at all this stuff,

  • .vscode, all the configuration stuff

  • for vscode and the extensions,

  • that's actually where it is.

  • .npm, these are all where my user,

  • or my global but user, anyway,

  • all the node configuration stuff is, .config.

  • And this, by the way, .bash_history.

  • The current shell that I'm using is called bash.

  • So everything that I've ever typed in,

  • within reason, is in here, bash_sessions.

  • And what I'm looking for is bash profile or .profile.

  • I think it doesn't exist yet, maybe by default.

  • But there's usually a profile file

  • that has a lot of PATH settings and different things

  • for when you start up.

  • So now it's time that I've shown you this,

  • time for me to install a different,

  • I'm going to use a different shell.

  • Instead of bash I'm going to use one called zsh.

  • So if I look,

  • and by the way, googling it the first thing

  • I come up with is Oh My Zsh,

  • as well as livestream of The Coding Train

  • from four hours ago.

  • Have I really been doing it this long?

  • Oh my god, and a bunch of other videos

  • that are probably better than mine.

  • So I encourage you to find out more information about zsh.

  • A really easy way to install it is

  • through this tool called Oh My ZSH,

  • and I can actually just scroll down here

  • and get it, this website changed since yesterday.

  • I can grab this command.

  • This is a special command to run a curl.

  • A curl is a way of grabbing a file.

  • And the file that I'm going to grab is a shell script,

  • install.sh, and sh is going to execute it.

  • So this is basically like grabbing someone's

  • shell script from GitHub and executing it.

  • So you want to be careful when you do this kind of stuff.

  • But I'm going to trust Oh My ZSH, why am I saying c?

  • And I'm going to run it.

  • Oh no, sh command not found?

  • Oh, you know what it is?

  • Sorry everybody, this is very tricky.

  • You got to be careful here.

  • I added an extra.

  • I copy pasted it with the dollar sign.

  • That's not good.

  • So it's not going to be able to run it.

  • So I thought like oh maybe I'm missing something,

  • but I've got to really get it only,

  • I just want to copy and paste this part.

  • Easy to make these kind of mistakes.

  • And by the way I'm hitting command k a lot,

  • which clears the console.

  • So now we try this.

  • Wget was not found?

  • That's weird that I don't have wget.

  • Oh, right, I meant to do it with curl.

  • Curl is a thing that I have.

  • So now I'm going to do that.

  • There we go.

  • It's running.

  • Okay, so it needs to do some stuff to my computer

  • that I need to give it authorization for.

  • So I need to type in my password,

  • which I have none for this temporary account,

  • but you should have a password, you should never do this.

  • I'm going to delete this user after this video is over.

  • Empty passwords are not allowed.

  • I'll be right back.

  • (clapping)

  • Okay, I'm back.

  • I changed and I made a password.

  • So let me try running that again.

  • I already have it installed.

  • Hmm.

  • But it didn't actually work.

  • This is a thing that you won't run into,

  • but I might as well keep it in

  • because these are the kinds of things that happen.

  • Let's try removing it.

  • So,

  • look at this, this is actually easy

  • because I've already enabled my,

  • I've already enabled my hidden files.

  • So I can actually just go right here.

  • If I hadn't done that I wouldn't be able to find this.

  • And I can hit delete.

  • So I'm just going to delete that.

  • That's uninstalling it.

  • And now I should be able to do this again.

  • And it's running it.

  • It wants my password.

  • Now it got my password and boom,

  • all the sudden Oh My ZSH,

  • things are color coded.

  • Look at this, I've got this beautiful little green arrow

  • and this nice little blue tilde.

  • Woops, I don't know where I went just now.

  • And now, ah, sorry.

  • iTerm come back.

  • I now have iTerm and I am running zsh.

  • Now notice this has changed it for the computer.

  • I didn't link it to iTerm.

  • If I go and run my terminal I'm also now running using zsh.

  • And you can switch back to bash

  • and there's all sorts of ways to do that,

  • but I'm not going to bother.

  • I'm happy with zsh.

  • And it comes with, Oh My ZSH comes

  • with a kind of default theme and set of configurations.

  • I would love to maybe at some point go into more,

  • and I'm sure a lot of you can write in the comments

  • little tips and tricks of things you love to use,

  • but I'm just going to, enjoy the wonder of the internet

  • and get all of this stuff made for free.

  • Oh My ZSH is Z shell, it stands for Z shell,

  • so I should say Z shell.

  • Okay, so one thing that I really want to do

  • which has nothing to do with Z shell

  • is that I want to go into the preferences

  • and I'm going to go under profiles and under text,

  • and there's all these sort of things you can configure,

  • but I'm just going to change the font

  • to something much bigger so on The Coding Train

  • people can see it.

  • Let's make it 36.

  • That's probably too big but it never hurts.

  • And there we go.

  • So already things look different.

  • Let's look at some things that are new.

  • So I can still type pwd and I can see this is where I am.

  • I can also type cd.

  • Now most terminal shells will have things

  • like autofill if you hit tab.

  • This configuration has kind of a wonderful thing

  • where if I hit tab it actually shows me all of the options.

  • Like and I can actually tab through them.

  • So I want a cd Desktop.

  • So now I'm on the desktop, look it's showing me where I am.

  • Now I can hit ls and I can see sketch.js.

  • I can still say code sketch.js,

  • and it filled it in but if I'd gone code

  • I can see like oh look at this,

  • it's trying to figure out things that I might want to say.

  • Anyway, I'm not that experienced with this,

  • but I can run code sketch.js and it opened that up there,

  • so there I am again.

  • All right so what I want to do is move on

  • to look at how this shell configuration

  • works with say, running node stuff

  • as well as something, I'll add it right here,

  • is Git and GitHub.

  • That's really sort of a key thing that I use in my workflow.

  • Before I do that I probably should have

  • mentioned this in the beginning,

  • you want to be careful about doing this.

  • If you had a lot of stuff already

  • configured on your machine,

  • we just put a whole new shell,

  • it's going to do all sorts of wonky stuff to your PATH.

  • So maybe, so you should always

  • be careful doing these kind of things.

  • Good news is, let's show you how

  • to fix stuff if it's broken.

  • So if I go back to this directory,

  • the key file, this is just my user directory,

  • the key file here that I care about now is .zshrc.

  • This has all of my essentially

  • configuration settings for Z shell.

  • And so if I want to edit that file,

  • I can just say code and I can get to it.

  • By the way, this tilde always means go to my home directory.

  • So tilde slash which would really be like Users,

  • temporarytrain, but I can get there always

  • by just doing tilde,

  • and then now I want to say .z

  • and I want this one.

  • I'm going to do this

  • and now I'm going to see this file in Visual Studio Code.

  • And you can see this is the theme that it's using.

  • You can change it and look at this,

  • if you come from bash you might have to change your PATH.

  • So this is something,

  • this idea of saying export PATH

  • is a way of adding things to your PATH.

  • Like so maybe you had this like Python install

  • that you need to make sure you installed it

  • with anaconda or something,

  • you might say like HOME anaconda,

  • I mean this isn't right,

  • like python bin or something, colon.

  • This is the way of always adding something to your PATH.

  • Oh I want this thing to be in my PATH

  • and I want to join it with a dollar sign PATH

  • being everything else that's already in PATH.

  • PATH is basically a variable.

  • So if I were to do this I have now added, in theory,

  • a bunch of things that I might have had before.

  • I can hit save and now I can come back here.

  • I can always look at what the path is by saying echo $PATH.

  • And you can see this is what it is.

  • Did it actually get this other stuff?

  • I'm not sure.

  • Sometimes you need to say source tilde dot,

  • this like reloads that file.

  • And then I can look at path again.

  • And you can see oh it like added other stuff.

  • Yes it did.

  • So all the user stuff is now in there as well.

  • So if you edit that file you can either restart terminal

  • or say source to make it happen again.

  • Now I'm probably missing like hundreds of details

  • trying to give you an overview of the things

  • that I end up doing all the time.

  • But this is a place you shouldn't be afraid to mess with.

  • You can always back it up, save it,

  • find other settings from the internet,

  • that type of thing.

  • So in the next video I want to look specifically at

  • working with Git commands

  • in the shell and how that works.

  • (upbeat, fun music)

(bell ringing)

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it