Command not found: compdef

Nach der Installation von Angular unter macOS erschient im Terminal beim Start folgende Meldung:

/dev/fd/12:18: command not found: compdef

Hintergrund ist das bei der Installation von Angular die Konfigurationsdatei .zshrc der Shell angepasst wurde:

# Load Angular CLI autocompletion.
source <(ng completion script)

Um das Problem zu lösen, kann die betreffende Änderung in der Konfigurationsdatei entfernt werden. Alternativ kann die generelle Autovervollständigung vor dem Laden der Angular-Autovervollständigung aktiviert werden:

# Init command-line completion
autoload -Uz compinit
compinit

Anschließend sollte die entsprechende Meldung nicht mehr auftreten.

PHP-Version in der Shell bei all-inkl einstellen

Beim Webhoster all-inkl wird bei den größeren Paketen ein SSH-Zugang zu einer Shell mit angeboten. Mit diesem Zugang ist es unter anderem möglich PHP auf der Konsole auszuführen. Standardmäßig geschieht dies über den Befehl php. Aktuell nutzt der Befehl die Version 7.0.33 von PHP. Soll stattdessen eine höhere Version genutzt werden, so kann die symbolische Verknüpfung entsprechend verändert werden:

ln -sfv /usr/bin/php73 /usr/bin/php

Damit würde der Befehl php nun auf ein PHP in Version 7.3 zeigen. Neben der Version 7.3 sind noch weitere Versionen verfügbar:

/usr/bin/php56
/usr/bin/php70
/usr/bin/php71
/usr/bin/php72
/usr/bin/php73

Auch ohne Änderung der symbolischen Verknüfung kann die gewünschte PHP-Version verwendet werden, indem sie direkt aufgerufen wird:

/usr/bin/php72 update.php

In diesem Fall würde das Skript update.php mit der PHP-Version 7.2 ausgeführt werden.

Autostart-Ordner unter Windows 10 öffnen

Unter Windows 10 ist es relativ schwierig eine neue Autostart-Verknüpfung anzulegen, da der Autostart-Ordner nicht mehr im Startmenü auftaucht.

Über den Ausführen-Dialog wird der Befehl definiert

Abhilfe schafft ein Befehl, welcher über den Ausführen-Dialog genutzt werden kann. Dieser Dialog kann über die Tastenkombination Windows + R aufgerufen werden. In den Dialog wird anschließend der Befehl:

shell:startup

eingetragen. Durch diesen Befehl wird ein Explorer geöffnet, welcher auf den Autostart-Pfad:

C:\Users\nutzername\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

zeigt. In diesen Ordner können anschließend die Verknüpfungen für die Autostarts hinterlegt werden.

Shell-Befehle Stück für Stück erklärt

Befehle in der Linux-Shell sind für viele Leute meist ein Buch mit sieben Siegeln. Während ein:

cat example.txt | grep "error"

für die meisten Nutzer noch verständlich ist, wird es bei komplexeren Befehlszeilen doch recht unübersichtlich. Für diese Fälle gibt es den Webdienst explainshell.com.

Die Befehlszeile wird Stück für Stück erklärt

Dieser Dienst splittet die einzelnen Befehle und erklärt sie mit Hilfe der Informationen der sogenannten man-Pages. Diese wurden geparst und sind als Datenbasis hinterlegt. Mit Hilfe einer Heuristik werden die einzelnen Befehle erklärt. Der Quelltext für den Dienst, welcher in Python geschrieben wurde, ist auf GitHub zu finden. Lizenziert ist das Projekt unter der GPL3 und damit freie Software.

Git auf dem Server

Möchte man auf einem Ubuntusystem einen Git Server aufsetzen, so ist dies relativ schnell erledigt. Zuerst muss dafür „git“ mittels:

apt-get install git

installiert werden. Danach wird der passende Nutzer für die Git Repositories angelegt:

adduser git

Nun kann man ein bestehendes Repository zu diesem Server hochladen. Auf dem Server wird in den Kontext des Nutzers „git“ gewechselt und dort ein passender Ordner sowie ein „rohes“ Git Repository angelegt:

su git
mkdir testproject.git
cd testproject.git
git init --bare

Dem lokalen Git Repository wird mittels:

git remote add origin :testproject.git

ein neuer Remote zugewiesen. Sollte bereits ein „remote“ für „origin“ existieren, so wird dieser mit:

git remote rm origin

entfernt. Anschließend kann das lokale Repository an den Server übertragen werden und auf Updates überprüft werden:

git push origin master
git pull origin master

Wenn gewünscht kann man nun noch verhindern das man sich mittels des „git“ Accounts auf dem Server anmelden kann. Dazu muss die Datei „/etc/passwd“ editiert werden. Für den Nutzer „git“ wird die Shell dabei von „/bin/bash“ in „/usr/bin/git-shell“ geändert. Anschließend kann man sich mit dem Account nicht mehr an der Shell anmelden.