Frage Wie kann ich meine Eingabeaufforderung (Bash) verkürzen?


Derzeit ist es:

michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$

Außerhalb der Umbenennung meiner Maschinen- und Verzeichnisstruktur ...

Wie könnte ich etwas mehr wie:

michael:controllers$

148
2018-06-02 18:48


Ursprung


askubuntu.com/questions/816068/... - nazar2sfive


Antworten:


Um es nur für die aktuelle Terminal-Instanz zu ändern

Einfach eingeben PS1='\u:\W\$ ' und drücke Enter.


Um es "permanent" zu ändern

In deinem ~/.bashrc, finde den folgenden Abschnitt:

if ["$ color_prompt" = ja]; dann
    PS1 = '$ {debian_chroot: + ($ debian_chroot)}} \ [\ 033 [01; 32m \] \ u \ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $ '
sonst
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u \ \ h: \ w \ $'
fi

Entferne das @\hund ersetzen Sie die \w mit einem Großbuchstaben \W, so dass es wird:

if ["$ color_prompt" = ja]; dann
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ W \ [\ 033 [00m \] \ $ '
sonst
    PS1 = '$ {debian_chroot: + ($ debian_chroot)}} \ u: \ W \ $'
fi

Speichern, beenden, Terminal schließen und ein anderes starten, um das Ergebnis zu sehen.


Tons mehr Optionen!

  • Sehen Hier für ein umfangreicheres Howto mit vielen weiteren Optionen
  • Sehen diese Antwort Verwenden Sie ein kleines Python-Skript, um die Eingabeaufforderung so festzulegen, dass die Verkürzung nur auftritt, wenn Sie sich tief in einer Verzeichnisstruktur befinden.

213
2018-06-02 19:04



Sie können auch viele Informationen haben ... und dann eine Wagenrückgabe am Ende wie in unix.stackexchange.com/q/88780/10043 - Michael Durrant
Gibt es eine Möglichkeit, dies global zu machen? Mit anderen Worten, wenn ich zu einem anderen Benutzer sudo, diese Einstellung übertragen, aber nur für mich selbst (d. H. Nicht für den Benutzer, wenn sie normalerweise ihr Konto verwenden)? - ctote
Um eine gemeinsame .bashrc zu haben, die sowohl unter Linux als auch unter OSX funktioniert, bin ich seither auf unix.stackexchange.com/a/127800/10043 - Michael Durrant
d.h. HOST='\033[02;36m\]\h' HOST=' '$HOST parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; } TIME='\033[01;31m\]\t \033[01;32m\]' LOCATION=' \033[01;34m\]pwd | sed "s # (/ [^ /] \ {1, \} / [^ /] \ {1, \} / [^ /] \ {1, \} /). * (/ [^ /] \ { 1, \} / [^ /] \ {1, \}) / \ {0,1 \} # \ 1_ \ 2 # g "' BRANCH=' \033[00;33m\]$(parse_git_branch)\[\033[00m\]\n\$ ' PS1=$TIME$USER$HOST$LOCATION$BRANCH PS2='\[\033[01;36m\]>' - Michael Durrant
aber sehen Sie sich die Antwort für den tatsächlichen Code an. - Michael Durrant


Führen Sie diesen Code im aktuellen Terminal aus

PROMPT_DIRTRIM=3

Jetzt werden in der Bash-Eingabeaufforderung nur die letzten 3 Verzeichnisnamen angezeigt. Sie können 1 wählen, um nur das aktuelle Verzeichnis anzuzeigen. Weitere Informationen sind verfügbar in der GNU-Dokumentation.

Der Effekt:

/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists# 

Wenn Sie es dauerhaft machen wollen, fügen Sie die folgende Zeile hinzu ~/.bashrc am Anfang:

PROMPT_DIRTRIM=3

oder eine andere Zahl größer als Null.


83
2018-05-02 06:49



Nur eine Randnotiz: Dies erfordert Bash 4. - Stefan Lasiewski
Schön ... Ich habe dafür eine bach_alias hinzugefügt (mit einer Funktion) promptdir() { PROMPT_DIRTRIM=$1; } nur um das Leben leichter zu machen ... - dgoosens


Dies ist meine bevorzugte Eingabeaufforderung:

hinzugefügt in ~/.bashrc 

PS1='[\u@\h \W]\$ '    

es sieht aus wie das:

[user@hostname dirname]$

(mit einem Leerzeichen nach dem $ Schild)


15
2017-10-10 03:08



Wie würde ich einen Abstand zwischen jedem Wort hinzufügen? Kann ich es auch färben? - Dani Springer


Persönlich bevorzuge ich es, nur den aktuellen Ordner in der Bash-Eingabeaufforderung zu sehen. Ich kann das mit folgendem Befehl tun:

PS1='\W\$ '

Wenn Sie möchten, dass es nach jedem Start wirksam wird, fügen Sie den obigen Befehl in Ihre ~ / .bashrc ein.


6
2018-05-20 11:01





Ich weiß, dass das super alt ist, aber da niemand vorgeschlagen hat, einen Alias ​​zu erstellen, dachte ich mir, dass ich posten würde. Verwenden Bash Prompt Escape Sequences Ich habe einen Alias ​​gemacht shorten 

Im ~/.bash_aliases Hier sehen Sie die $ Blue-Variable, um die Farbe der Eingabeaufforderung zu setzen, die Sie je nach Vorliebe weglassen oder ändern können. Ich lösche auch das Terminal, wenn ich kürze anrufe.

alias c='clear'

alias shorten='PS1="$Blue$USER:\W$ "&& c'

So erreichen Sie die gewünschte Eingabeaufforderung des OP:

alias shorten='PS1="$USER:\W$ "'

Ich habe Farben definiert in ~/.bashrckopieren und einfügen von https://wiki.archlinux.org/index.php/Color_Bash_Prompt. Nebenbei bemerkt, was ist mit Ansi-Code-Farben? Ich bin verwirrt, wenn ich es nur ansehe.

Blue='\e[0;34m'         # Blue

1
2017-10-26 21:03



Eine Schritt-für-Schritt-Anleitung dafür wäre so nützlich, da ich keine Ahnung habe, wie ich zu .bash_aliases komme. Vielen Dank - Kayote
"." Präfix bezeichnet ein verstecktes Verzeichnis oder eine versteckte Datei. Die Tilde "~" ist die Kurzform der Variable $ HOME. Also, "~ / .bash_aliases" ist nur die Kurzform von "/home/$USER/.bash_aliases". Um ".bash_aliases" zu öffnen, können Sie entweder ein Terminal öffnen und "gedit /home/$USER/.bash_aliases" oder "gedit ~ / .bash_aliases" eingeben oder in Ihrem Home-Verzeichnis ctrl-h eingeben, um versteckte Dateien anzuzeigen und die Datei direkt zu öffnen . Ich hoffe, das hilft. Sie können auch eine Google-Suche nach nützlichen Aliasen durchführen. - Allie Carver