Short Answer:
- Open Terminal Preferences
- Select the Startup tab
- Select "Shells open with: Command", and use "/usr/bin/bash" as the command.
Important: Do not use "/bin/bash" as the startup command. If "/usr/bin/bash" does not exist on your system, create a symbol link: sudo ln -s /bin/bash /usr/bin/bash
To verify the fix:
- Open a new Terminal windows.
- "Last Login:" should not be displayed
- Open the inspector (Command + I) and select the Info tab.
- The command should read
login -pfq username /usr/bin/bash
Important: If the login command does not include the -q parameter, then you have not fixed the problem.
Details:
Terminal uses /usr/bin/login to launch each new window/shell. By default, /usr/bin/login will display the date of your last login. To get this last login date, it searches the ASL (Apple System Log) database at /var/log/asl/. These log files can be very heavily fragmented and it's this file fragmentation that causes the delay when opening a new window or tab.
To see this in action, run sudo opensnoop | grep login in a Terminal window, then open a new Terminal window.
To prevent /usr/bin/login from doing this ASL search, you must pass the -q parameter. The only way Terminal will pass the -q parameter is when you specify a custom shell command in the Preferences.
Note: .hushlogin does not prevent /usr/bin/login from doing the ASL search. This can be confirmed by using the opensnoop command above.
.bash_profile(also check~/.profileby the way). Also: note you can start typing while bash is loading, and usually what you type will be copied to the command prompt once it's ready. – Abhi Beckert Feb 26 '12 at 0:44