Kategorie: Linux

VI oder VIM beenden

Um den bei vielen Linux und Unix Installationen und Tools (wie bspw. git) standardmäßig genutzten VI Editor zu beenden muss man mit der „ESC“-Taste in den Kommandomodus wechseln (am besten mehrfach drücken um ggf. schon eingegeben Kommandos abzubrechen) . Und dort dann „:q“ eingeben und Enter drücken.
Dies beendet VIM wenn vorher nichts geändert wurde. Wurde etwas am Text der geöffneten Datei geändert und man will dies speichern so nutzt man den Befehl „:wq“. Will man die Änderungen verwerfen und VI verlassen, so hilft „:q!“.

NVIDIA CUDA on Ubuntu: unsupported GNU version! gcc versions later than 5 are not supported!

After installing CUDA on Ubuntu, compiling CUDA applications with nvcc results in an error similar to this:

In file included from /usr/local/cuda-8.0/bin/../targets/x86_64-linux/include/cuda_runtime.h:78:0,
from <command-line>:0:
/usr/local/cuda-8.0/bin/../targets/x86_64-linux/include/host_config.h:119:2: error: #error — unsupported GNU version! gcc versions later than 5 are not supported!
#error — unsupported GNU version! gcc versions later than 5 are not supported!
^~~~~}}}

Ubuntu comes with a more up-to-date GCC then CUDA can handle. To solve this issue we install GCC 4.9:

sudo apt install gcc-4.9 g++-4.9

Now GCC 4.9 and the up-to-date GCC are installed on the system. To be able to use the up-to-date GCC without CUDA, one can setup and use the „update-alternatives“ system for GCC. In this case we replace the default GCC 6 compiler:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9

Now we can list the available compilers with

update-alternatives --list gcc

and set the GCC 4.9 as default with

update-alternatives --set gcc /usr/bin/gcc-4.9

Shell: Ausgabe aller Zeilen einer Datei bis auf die ersten x

Wenn man alle Zeilen einer Datei bis auf die ersten x auf der Konsole ausgeben möchte, kann man tail nutzen. Normalerweise kann man damit die letzten 10 Zeilen tail namesliste.txt bzw. die letzten Y Zeilen mit tail -n Y namesliste.txt ausgeben.

Wenn man jedoch alles bis auf die ersten x Zeilen einer Datei ausgeben möchte, so kann man tail -n +(x+1) nutzen. In diesem Modus gibt tail ab der hinter dem + stehenden Zeile alles aus – daher x+1.

Turbo Modus der CPU unter Linux an- und ausschalten

Wenn die Frequenzen der CPU über den „intel_pstate“ Treiber¹ gesteuert werden und der Turbo Modus im BIOS angeschaltet ist, kann man den Turbomodus für alle CPUs / Cores mit dem folgenden Befehl ausschalten:

echo "1" > /sys/devices/system/cpu/intel_pstate/no_turbo

Und mit diesem Befehl wieder anschalten:

echo "0" > /sys/devices/system/cpu/intel_pstate/no_turbo

Dies hilft beim Energiesparen und verlängert die Akkulaufzeit von Notebooks.

¹ Dies ist der Fall,wenn cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver „intel_pstate“ ausgibt.

Composer global verwenden

In der Dokumentation zu Composer wird erläutert, wie man global auf composer.phar zugreifen kann, ohne permanent php composer.phar ins Terminal eingeben zu müssen:

[…]

You can place the Composer PHAR anywhere you wish. If you put it in a directory that is part of your PATH, you can access it globally. On unix systems you can even make it executable and invoke it without directly using the php interpreter.

After running the installer following the Download page instructions you can run this to move composer.phar to a directory that is in your path:

mv composer.phar/usr/local/bin/composer

Note: If the above fails due to permissions, you may need to run it again with sudo.

Note: On some versions of OSX the /usr directory does not exist by default. If you receive the error „/usr/local/bin/composer: No such file or directory“ then you must create the directory manually before proceeding: mkdir -p /usr/local/bin.

Note: For information on changing your PATH, please read the Wikipedia article and/or use Google.

Now just run composer in order to run Composer instead of php composer.phar.