112

I've been digging through iTerm2's settings but I can't seem to find a way to make it launch Zsh instead of Bash, does anybody know the proper way to do this inside iTerm2?

I ask this because I come from Mac Terminal, and it easily lets you choose what to run at startup, but I can't seem to find something straight forward with iTerm2.

I searched Google for it, but for some reason I can only find oh-my-zsh references, nothing related to un-modded iTerm2.

I appreciate any help you can provide, thanks. :)

yang xiu
  • 3
  • 1
greduan
  • 4,770
  • 6
  • 45
  • 73

4 Answers4

192

Change your default shell to /bin/zsh by running the chsh -s /bin/zsh command.

Nishant
  • 4,659
  • 2
  • 27
  • 43
Adam Batkin
  • 51,711
  • 9
  • 123
  • 115
74

Although the change with chsh -s $(which zsh) worked perfectly for me, my iTerm2 wouldn't automatically open new terminals with zsh.

Instead I went to iTerm2 -> Preferences -> Profiles -> Default and in the General Tab set the Command to /usr/local/bin/zsh instead of Login shell.

Update: With the current version of iTerm (as of 2.1.1) it perfectly worked for me by changing the default shell (shown above) only.

Thomas Fankhauser
  • 5,039
  • 1
  • 33
  • 32
  • 2
    I voted this up because the hint is nearly complete. Anyway the command has to be `login -fp [username]`. Substitute [username] with your local user. Otherwise iTerm will quit immediately after start. – Marschal Feb 28 '15 at 22:15
  • 1
    @Marschal You are correct. I also did the same mistake and upvoted the above answer and my iTerm started quitting the moment I made the change. – Hussain K Jul 09 '18 at 11:30
  • Saved the day. I had accidentally `rm -rf /usr` and so bash was gone, I was able to get a shell to try to fix the ordeal. – Ismail Jan 20 '20 at 08:28
  • 1
    DO NOT USE THIS ANOTHER IMMEDIATELY! CRASH! I restore my default profile at[~/Library/Preferences/com.googlecode.iterm2.plist] by my TimeMachine. And thanks to @Marschal give the right answer. – fish Oct 05 '21 at 02:23
  • 1
    I had to use `/bin/zsh` instead of `/usr/local/bin/bash` to avoid iterm from crashing – Sukanya Pai Oct 14 '22 at 19:21
7

The following also worked for me:

Preferences -> Profiles -> General Tab -> Command -> Choose "Custom Shell" -> write "zsh"

Restart iTerm2.

I still keep bash for Terminal as the default shell.

T_T
  • 1,202
  • 16
  • 22
5

Similar to above answer: Editing my zsh profile that I created, on General tab, in the "Send text at start:" field, I have "clear; pwd; ls; zsh;" this leaves me with a window showing me what I want to see and lastly starting zsh.

Jeff Hacker
  • 121
  • 2
  • 3