4ae1e1
4ae1e1

Reputation: 7634

How to suppress (or customize) Mac Terminal shell prompt

Currently in my Terminal, every shell prompt looks like ComputerName: FooDir UserName$. The UserName part simply wastes too much space out of my precious 80 columns. Is there a way to suppress it?

Upvotes: 44

Views: 41055

Answers (4)

Parag Kutarekar
Parag Kutarekar

Reputation: 1055

2019 onwards, MacOS default shell is Z Shell. To customize command prompt, add a file named .zshrc in user home and put following line that sets a PS1 environment variable with desired prompt format:

export PS1="[%n]%~> "

Open new terminal Command prompt snapshot

This is result of following format expansion:

  • %n User name
  • %~ Current directory

See full list of available expansions here.

Upvotes: 3

L3viathan
L3viathan

Reputation: 27273

The prompt is defined by the environment variable PS1 which you can define in .bash_profile.

To edit it, open or create the (hidden) file .bash_profile:

nano .bash_profile

and add a line that says

export PS1=""

Between the quotation marks, you can insert what you would like as your terminal prompt. You can also use variables there:

  • \d – date
  • \t – time
  • \h – hostname
  • \# – command number
  • \u – username
  • \W – current directory (e.g.: Desktop)
  • \w – current directory path (e.g.: /Users/Admin/Desktop)

The default prompt for common Linux distributions would be \w $, which evaluates to ~ $ in your home directory or e.g. /Users $ somewhere else. There are also website (like this one) that can help you with building your prompt.

If you want to remove the UserName part, your choice would be \h: \w$.

Once you made your changes, save the file with Control+o, Return, Control+x.

Upvotes: 72

Sheharyar
Sheharyar

Reputation: 75740

Here's an excellent article with a full list of Variables and Colors:

Customize your Shell Command Prompt

For a simple, minimalistic prompt, you can try this. Add the following line to your .bash_profile or simply test it first by running it in your terminal:

export PS1="\[\033[0m\]\w\$ "

It'll look something like this:

Simple Terminal Prompt

Here's my Prompt (source), also very simple:

export PS1="\[\033[1;97m\]\u: \[\033[1;94m\]\w \[\033[1;97m\]\$\[\033[0m\] "

enter image description here

Upvotes: 14

user2472826
user2472826

Reputation: 19

Your answer can be found right here:http://www.hypexr.org/bash_tutorial.php#vi at about the middle of the page. :)

Upvotes: 1

Related Questions