Kategorien
Technik

Bash-Prompt umgestalten

Wenn ich auf einem Linux-System unterwegs bin und auf der Bash das aktuelle Verzeichnis wissen möchte/muss, mache ich das meist ganz klassisch mit pwd (print working directory).

Auf meinem Uberspace soll das aber zukünftig direkt im Prompt (also der Eingabeaufforderung) der Bash stehen. Das kann man mit wenigen Handgriffen an der Umgebungsvariable PS1 ändern.

PS1

Der aktuelle Zustand wird mit echo $PS1 ausgelesen. Auf einem frisch eingerichteten Uberspace 7 bekommt man folgende Ausgabe (der User hat in diesem Beispiel den html-Ordner über den symbolischen Link im Home-Verzeichnis betreten):

[username@host html]$echo $PS1
[\u@\h \W]\$

Angezeigt wird im Prompt also der angemeldete User, gefolgt von einem @-Zeichen, dem Hostnamen, einem Leerzeichen sowie dem aktuellen Verzeichnis und einem $-Zeichen. Das alles steht in eckigen Klammern.

Ich möchte aber nun, dass nicht nur zusätzlich der komplette Pfad angezeigt wird. Wenn ich schon mal dabei bin, ändere ich auch gleich noch ein paar andere Dinge. Insgesamt soll mein Prompt auf dem Server diese Form haben:

username@FQDN pfad $

Der Username, gefolgt von einem @, dem FQDN (fully qualified domain name), einem Leerzeichen, dem kompletten Pfad, einem weiteren Leerzeichen, dem $-Zeichen und schließlich einem zusätzlichen Leerzeichen. Die eckigen Klammern sollen ebenfalls verschwinden.

Folgendes muss hierfür in die PS1 eingetragen werden:

PS1='\u@\H \w \$ '

Das Ergebnis schaut im html-Verzeichnis dann so aus:

username@host.uberspace.de ~/html $ 

Oder, wenn man das html-Verzeichnis nicht über den symbolischen Link im Home-Verzeichnis, sondern über die unterste Ebene des Systems betritt, eben so:

username@host.uberspace.de /var/www/virtual/username/html $ 

Eine Auflistung weiterer Variablen gibt es z.B. hier.

Das alles geht allerdings auch noch komplizierter. 😉

Mit Farben

Man kann den Prompt z.B. farblich gestalten. Die Form

username@host.uberspace.de:/var/www/virtual/username/html$

mit den Farben Grün und Hellblau würde sich so ganz gut machen:

PS1='\[\033[0;32m\]\u\[\e[m\]\[\033[0;32m\]@\[\e[m\]\[\033[0;32m\]\H\[\e[m\]:\[\033[1;34m\]\w\[\e[m\]\\$ '

Mir persönlich gefällt dieses Beispiel sogar noch besser als das weiter oben, also lasse ich es auch so. Ein paar Farben können ja nicht schaden. 👍

Man könnte den Prompt natürlich noch mehr umgestalten, etwa auch mit Hintergrundfarben, aber das wäre mir persönlich dann schon wieder zu unübersichtlich.

Änderungen dauerhaft nutzen

Die Änderungen an der Umgebungsvariablen PS1 gehen freilich verloren, wenn man sich neu im System einloggt.

Damit diese dauerhaft gespeichert werden, muss man einen Eintrag in der .bashrc im Home-Verzeichnis hinterlegen. Dieser könnte etwa so aussehen:

# Bash-Prompt
# Default auf diesem System war:
# [\u@\h \W]\$
PS1='\[\033[0;32m\]\u\[\e[m\]\[\033[0;32m\]@\[\e[m\]\[\033[0;32m\]\H\[\e[m\]:\[\033[1;34m\]\w\[\e[m\]\\$ '

Abschließend die .bashrc neu einlesen:

source ~/.bashrc

Alternativ könnte man sich natürlich auch einfach neu am Server anmelden.

Kategorien
Technik

Logfile-Analyse mit GoAccess auf einem Uberspace

Ich wollte mir heute nach langer Zeit mal einen aktuellen Überblick über die Crawler verschaffen, die meine Seite so ansteuern.

Da ich keine Zeit für und Lust auf Piwik Matomo habe, war ich auf der Suche nach einem schlanken Kommandozeilen-Programm, das direkt auf dem Server läuft und dort auf die access_log des Apache zugreift.

Fündig geworden bin ich in GoAccess. Auf einem Uberspace lässt sich das schnell in Betrieb nehmen.

Download und Konfiguration

Zuerst laden wir es im Home-Verzeichnis herunter, entpacken es, benennen den Ordner um und betreten diesen:

cd ~
wget https://tar.goaccess.io/goaccess-1.3.tar.gz
tar -xzvf goaccess-1.3.tar.gz
mv goaccess-1.3/ goaccess/
cd goaccess

Anschließend konfigurieren:

./configure – enable-geoip – enable-utf8 – prefix=/home/$USERNAME

Jetzt lässt sich GoAccess auch schon starten:

goaccess -a -p ~/goaccess/config/goaccess.conf -f /readonly/$USERNAME/logs/access_log

Nach dem Start des Programms muss man mit der SPACE-Taste nun noch Log-Format bestätigen, z.B. NCSA Combined Log Format. Nach der Bestätigung mit Enter wird das Dashboard gestartet.

Alias einrichten

Damit man nicht bei jedem Mal so viel tippen muss, richtet man sich noch einen Alias in der .bashrc ein:

nano ~/.bashrc

Der Alias könnte so ausschauen:

alias goaccess-log='goaccess -a -p ~/goaccess/config/goaccess.conf -f /readonly/$USERNAME/logs/access_log'

Jetzt noch die .bashrc neu einlesen:

source ~/.bashrc

Fertig. Das Programm lässt sich nun mit goaccess-log starten.

Kategorien
Technik

WordPress

Nachdem ich WordPress nun einige Tage getestet habe, wird es wohl in Zukunft auf meinem Server bleiben. Ganz wunderbar sind vor allem die ganzen Themes, die es jetzt schon gibt. Da kann man sich kaum entscheiden, welches man laufen lassen will. Also bitte nicht wundern, sollte sich das Design meiner Page täglich ändern. Wenn ich aber wieder mehr Zeit habe, werde ich auch mal ein eigenes erstellen.

Kategorien
Technik

Erster Eintrag

Willkommen in meinem Blog!

Mal schauen, was ich hier in Zukunft so alles reinschreibe.