How would I hide the computer name in the prompt while using the terminal?
At the moment it shows both username and computer name like so:
It would save some space by removing anwarchoukah@anwars-mbp
, seeing as I actually know who I am:)
How would I hide the computer name in the prompt while using the terminal?
At the moment it shows both username and computer name like so:
It would save some space by removing anwarchoukah@anwars-mbp
, seeing as I actually know who I am:)
Open up .zshrc
, find the line reading export PS1
or maybe export PROMPT
.
Remove the variable that is used for the hostname, could be %m or %M.
You can use colors and also have a prompt (or some information) on the right side.
PS1="%1d %& # "
would show you current working directory –
Metalline Try to add export DEFAULT_USER=$USER
to your .zshrc
file
$USER
instead of "$(whoami)"
–
Triplicity $USER
or whoami
I set it to my normal logged in user and now I only get the user@host when su'd into another account. This is perfect for me! –
Tetragonal fizsh
frontend of ZSH, in the file ~/.fizsh/fizsh-prompt.zsh
, I modified the two lines including _fizsh_prompt="%n@%m...
to _fizsh_prompt="%n...
. –
Battleship On MacOS 10.15 Catalina:
/private/etc/zshrc
in a text editor# Default prompt
PS1="%n@%m~ %& # "
For example, you can:
"%n@%m"
to get rid of both the username and computer name"%n"
to get rid of the user name "%m"
to get rid of the machine namePS1="%1d %& # "
would show you current working directory –
Metalline ~/.zshrc
=> export PS1="apple@apple-pro %1~ %# "
=> then source ~/.zshrc
to reload your terminal –
Marniemaro step 1. one your .zshrc
file by vim .zshrc
step 2. go to end of your file.
Paste this code:
careful indent again your code
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}
EDIT - explaining what this does
This will remove the machine@user name from the prompt IF: - you are not logged in as the default user - you are not in an ssh client shell
For most people, not needed, but if you regularly ssh to other machines and have multiple terminals open (eg remote sys admin type work) then this is extremely useful so when you look at your terminal you know which machine and user you are logged in as inside that terminal.
If you don't need/manage that type of complexity then use one of the other answers to just modify your export PROMPT/PS1 value.
* WARNING *
If you are using a custom shell or theme, this might not work and although the prompt will no longer show your computer and username it will keep throwing the error:
prompt_context:2: command not found: prompt_segment
For example, you can see with this (very popular) powerlevel9k it does not work. This is because the Powerlevel9k theme uses it's own magic and you simply add commands to your ~/.zshrc file to get the same result, eg:
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context)
More info on that here.
Open up .zshrc
, find the line reading export PS1
or maybe export PROMPT
.
Remove the variable that is used for the hostname, could be %m or %M.
You can use colors and also have a prompt (or some information) on the right side.
PS1="%1d %& # "
would show you current working directory –
Metalline For the macOS I like this approach
put in .zshrc
PS1="%n$ "
The terminal will look like
username$
Just add prompt_context() {}
to .zshrc
Unfortunately none of the .zshrc
changes worked for me.
Machine : Mac M1, Big Sur 11.4
So this is what worked.
I Navigated to where the ZSH themes were installed, opened my theme, agnoster
in TextEdit, and modified the configuration where it chooses what do display, which by default is $username@%m
.
Note : %m
here is the machine name.
Here is a screenshot of delta. Yellow is what I did, Green is the default setting from github version of agnoster
theme.
Voila this worked. Now to me it just displays the machine name, as I intended.
Hope that helps. Many links and SOF posts only made me click that solution.
Set DEFAULT_USER
in ~/.zshrc
file to your regular username. You can get your exact username value by executing whoami
in the terminal.
Something like this:
export DEFAULT_USER=username
If you are using PowerLevel9k theme, there is a variable POWERLEVEL9K_CONTEXT_TEMPLATE
that can change the view of your hostname and computer name.
The default option is %n@%m
,
to hide hostname:
Open the .zshrc
file using sudo nano ~/.zshrc
Add the line
POWERLEVEL9K_CONTEXT_TEMPLATE="%n"
at the end of .zshrc file
Save the file.
For hiding the computer name without removing the current directory name instruction. Add this in .zshrc
PS1="%n@ %1~ %# "
And run this
source ~/.zshrc
And restart the terminal!!!
Maybe this will help you [ Open Profile => Shell ]
PS1="~ $: ";clear;
Just add this to your ~/.zshrc
file:
export DEFAULT_USER=\`whoami`
Install Oh My Zsh
is the easiest solution for me:
One liner install:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Result:
robbyrussell
and this theme settings does that change for you. People are wondering for those changes in another theme or without theme! –
Jeremiad username@machinename
is a task. Installing OMZ does that automatically for you because it uses a theme, one I mentioned above, and that theme has this property where it hides them for you. But it may be a challenge for other themes in the package. For eg. the one OP has asked is agnoster
. Nevermind, here is how I achieved a desired change, in Answer below. –
Jeremiad If you're using Powerlevel10k, then you can run p10k configure
and configure the output a bit.
My username and computer-name was gone after having gone through it. It feel less hacky, than the other solutions here.
I don't know why I can't find a simplified solution.
So here is the simplified one.
Just jump into the themes directory,
# ~/.oh-my-zsh/themes
Select the theme, as I have been using
# vim agnoster.zsh-theme
Just remove %m
to remove and also you can remove the username too.
Once done, Just run
#zsh
To reflect the changes, Enjoy :)
open zshrc
file finder, by clicking going to path /Users/{YourUserName}/.zshrc
and add below line in the top of file.
export DEFAULT_USER="$(whoami)
Thanks to Wes Bos' amazing video series Command Line Power User , I managed to find the answer.. It's pretty simple. Stuff like that is set in the ZSH theme.
Open up .zshrc
, change the theme from ZSH_THEME="agnoster"
(which is what I was using) to something else.
Wes Bos has made a lovely theme called Cobalt2 which does exactly what I was looking for :)
I've now changed it to ZSH_THEME="cobalt2"
ZSH_THEME
, which is not necessary for modifying the prompt. –
Salespeople PS1
(or maybe PROMPT
; they are synonyms). This value is what is displayed as your main prompt. See man zshmisc
, especially the section "SIMPLE PROMPT ESCAPES", to see how various special character sequences are displayed when they appear in the value of PS1
. –
Salespeople © 2022 - 2024 — McMap. All rights reserved.
~/.oh-my-zsh/themes
folder, open the theme you are using, comment out the line containsprompt_context
or something similar. Or try to remove$USER@%m
from the theme file. – Corriecorriedale/Users/{YourUserName}/.zshrc
and add below line in the top of file.export DEFAULT_USER="$(whoami)
– Ambroseambrosi