Ändern Sie im Terminal den Text vor $


13

Im Terminal kann ich immer sehen, auf welchem ​​Pfad ich mich befinde:

macbook-romeo:School romeovs$ echo "example command"

was ich sehr nützlich finde. Aber auch hier gibt es eine Menge unnötiger macbook-romeoDinge : ist nicht nützlich, da ich immer auf meinem Macbook bin (duh). Andererseits romeovsist es sehr nützlich (dies ist mein Benutzername).

Gibt es ein Problem beim Bearbeiten der hier gezeigten Elemente? z.B

22:50 - School - Romeo$ echo "example"

wo 22:50ist die aktuelle zeit (Dies ist natürlich nur ein Beispiel, ich werde keine Zeit brauchen, ich möchte, dass der Text etwas minimalistischer ist).

Antworten:


10

Dieser OSX Daily-Artikel enthält einige detaillierte Anweisungen zur Vorgehensweise. Kurz gesagt, Sie müssen Ihre ~/.bash_profileDatei und die PS1-Variable ändern.

Unten finden Sie eine Liste möglicher Variablen, die Sie angezeigt haben können:

  • \ d - Aktuelles Datum
  • \ t - Aktuelle Zeit
  • \ h - Hostname
  • # - Befehlsnummer
  • \ u - Benutzername
  • \ W - Aktuelles Arbeitsverzeichnis (dh: Desktop /)
  • \ w - Aktuelles Arbeitsverzeichnis, vollständiger Pfad (dh: / Users / Admin / Desktop)

11

Sie müssen die .bashrc-Datei in Ihrem Home-Verzeichnis ändern .

Öffnen Sie das Terminal und gehen Sie wie folgt vor:

  • cd ~
  • touch .bashrc
  • open .bashrc

Fügen Sie die folgende Zeile am Ende Ihrer .bashrc-Datei hinzu

export PS1 = '\ t - \ W - \ u \ $'

  • Speichern Sie die Datei und schließen Sie Ihren Editor
  • Gehen Sie zurück zum Terminal und geben Sie den folgenden Befehl ein:

    Quelle .bashrc

Boom! Sie sollten jetzt Ihre gewünschte Eingabeaufforderung haben! (Wenn gewünscht Eingabeaufforderung war Ihr gegebenes Beispiel)


Als ich das tat, bekam ich folgendes MBP-15:~ Daniel$ source .bashrc -bash: export: = ': kein gültiger Bezeichner -bash: export:\t - \W - \u$ ': not a valid identifier MBP-15:~ Daniel$
Daniel Compton

@ DanielCompton Vielen Dank für den Hinweis, ich habe meine Antwort aktualisiert, damit dies funktioniert. :)
Macaco

4

Dies wird durch die Shell-Variable $ PS1 gesteuert

Sie können diese Variable je nach verwendeter Shell vorübergehend oder dauerhaft mit einem .login- oder .profile-Skript auf einen beliebigen Wert einstellen.

Schauen Sie sich die folgende Ausgabe für Beispiele an:

Last login: Fri Oct 21 21:59:28 on ttys000

Dans-MacBook-Air:~ stuffe$ echo $PS1

\h:\W \u\$

Dans-MacBook-Air:~ stuffe$ PS1="Hello World $"

Hello World $PS1=`date`

Fri 21 Oct 2011 22:03:23 BSTsleep 60

Fri 21 Oct 2011 22:03:24 BSTPS1="`date +%H:%M` $"

22:04 $PS1="\h:\W \u\$"

Dans-MacBook-Air:~ stuffe$

Die Möglichkeiten sind endlos. Es gibt etwas, das Sie auch mit PS2 tun können, aber ich denke, das wird nur wirksam, wenn Sie root sind - Details sind verschwommen, mein Unix ist lange her und basiert auf Solaris, nicht Mac OS X, aber die Grundlagen sind dieselben.

Zusätzliche Informationen: Wie in anderen Antworten vorgeschlagen, können Sie Flags wie \ h und \ W usw. verwenden. Sie können jedoch auch die Ausgabe fast aller Befehle verwenden, indem Sie die "Back Ticks" (lustige einfache Anführungszeichen) verwenden in meinem Datumsbeispiel oben verwendet). Befehle in Back-Ticks werden ausgeführt und die Ausgabe ersetzt, sodass Sie alles einfügen können, auch wenn es kein eingebautes Flag gibt, selbst für scheinbar dumme Dinge, was auch immer Sie sich vorstellen können. Möchten Sie den Zeitpunkt des letzten Eintrags in eine Fehlerprotokolldatei aufnehmen? Verwenden Sie etwas wie:

PS1="`tail -1 $LOGFILE | awk '{print $1}'` $ "

(Lesen Sie die letzte Zeile der Datei, auf die von $ LOGFILE verwiesen wird, und drucken Sie die erste Spalte unter der Annahme eines Standardfeldtrennzeichens.) usw. usw. Wenn Sie sie ausführen können, können Sie sie einschließen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.