Merkzettel für die Kommandozeile

Die Kommandozeile ist eine treue Begleiterin meiner Arbeit. Für einige Kommandos habe ich mir Aliase angelegt, andere benutze ich jeden Tag und kann sie mir daher gut merken, doch es gibt auch andere, die ich nur ab und an verwende und bei denen ihr mir nie so ganz sicher bin. Zwei davon halte ich heute hier fest, um nächstes Mal direkt zu wissen wo ich nachschauen kann.

Benutzername und Passwort erzeugen

Um die Entwicklung eines Projekts mit Kund*innen oder Koleg*innen abzustimmen, verwende ich ab und zu einen durch ein Passwort geschützten Bereich auf meinem Server. Benutzernamen und Passwort verwalte ich in einer htaccess-Datei, die das Passwort nicht als Klartext, sondern als Hash, enthält. Eine solche Benutzernamen-Passwort-Kombination lässt sich über das Kommando htpasswd ganz einfach in der Shell erzeugen. Die Ausführung des Kommandos kann über Parameter angepasst werden. Das folgende Kommando erzeugt eine Benutzername-Passwort-Kombination, die direkt in der Shell ausgegeben wird:

htpasswd -nmb BenutzerName G4nz5ichere5Pa$$w0rt

Die verwendeten Parameter bedeuten folgendes:

-n
Ergebnis nicht in eine Datei ablegen, sondern in der Shell ausgeben.
-m
Hash des Passworts mittels MD5 erzeugen
-b
Passwort der Eingabe nutzen, und nicht extra danach fragen.

Wird das letzte -b weggelassen fragt die Shell nach dem Passwort, wodurch dieses nicht im Klartext auf dem Bildschirm erscheint. Dieses Vorgehen ist auch deswegen sicherer, da sich das Passwort nicht im Verlauf der Shell befindet, und daher nicht ausgelesen werden kann. Eine etwas sichere Methode zur Erstellung einer Benutzername-Passwort-Kombination sieht demensprechend so aus:

htpasswd -nm BenutzerName

Wie bereits angedeutet fragt die Shell nach der Bestätigung des Kommandos das Passwort ab – dieses wird auch bei der Eingabe nicht angezeigt – nach wiederholter Eingabe des Passworts erscheint die erzeugte Kombination in der Shell und kann in die htpasswd-Datei kopiert werden.

Eine kurze Dokumentation zur Verwendung des Kommandos kann über den Parameter --h in der Shell ausgegeben werden:

htpasswd --h

Die erzeugte Benutzername-Passwort-Kombination lässt sich auch direkt in eine Datei schreiben. Das ist sowohl lokal als auch direkt auf dem Server mittels SSH-Tunnel möglich. Bisher kopiere ich die neu angelegten Kombinationen von Hand in die Datei, vielleicht ändere ich das aber demnächst.

Mit externen Repositories arbeiten

Alle meine Projekte versioniere ich per Git, und seit ich Git For Humans von David Demaree gelesen habe, mache ich das meist in der Shell. Kürzlich wollte ich die URL eines externen Repositories verändern, weshalb ich kurz etwas dazu schreiben möchte.

Zunächst ist es wichtig zu sehen welche externen Repositories mit meinem Projekt verbunden sind. Das erledigt:

git remote -v

Dieses Kommando zeigt eine Liste der entfernten Repositories an, die aus den Namen, den URLs und den verfügbaren Kommandos besteht. Fällt mir nun auf, dass ein externes Repository fehlt, kann ich es über folgendes Kommando hinzufügen:

git remote add origin ssh://user@server.net/home/user/repos/mein-repo.git

Falls schon ein anderes externes Repository mit diesem Namen angelegt ist, bekomme ich einen Fehler, worauf entweder das Bestehende umbenannt, oder das neue externe Repository anders benannt werden kann:

git remote rename origin destination

origin wäre hier der bisherige Name, destination entsprechend der Neue.

Falls sich an der URL des externen Repository etwas verändert, sei es der Benutzername, der Pfad oder der Name des Repos, kann die URL folgendermaßen angepasst werden:

git remote set-url origin user@server.net/home/user/repos/mein-repo.git

Ausführliche Erläuterungen rund um die Arbeit mit entfernten Repositories finden sich in der Git-Dokumentation.

Reagiere darauf

*