Häufigkeit der Dateiendungen in einem Verzeichnis analysieren

Gerade bei größeren Projekten oder gewachsenen Verzeichnisstrukturen stellt sich manchmal die Frage, welche Dateitypen in dem Verzeichnis enthalten sind. Im Terminal lässt sich diese Frage mit dem Befehl:

find . -type f | awk -F. 'NF>1 {print $NF}' | sort | uniq -c | sort -nr

beantworten. Als Ergebnis erhält der Nutzer eine Liste mit der Häufigkeit und den Änderungen:

478 toml
380 txt
141 lua
56 ini

Zu Berücksichtigen ist das Dateien ohne Endung vollständig ignoriert werden, bei Dateinamen mit mehreren Punkten (z. B. backup.tar.gz) wird ausschließlich die letzte Endung berücksichtigt und zudem erfolgt keine Vereinheitlichung der Groß- und Kleinschreibung, sodass beispielsweise JPG und jpg als unterschiedliche Endungen behandelt werden.

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.