diff --git a/code/bash/aliases.sh b/code/bash/aliases.sh
new file mode 100644
index 0000000000000000000000000000000000000000..b326077fee9b3e451a62cb72158ea59c621ac1cf
--- /dev/null
+++ b/code/bash/aliases.sh
@@ -0,0 +1,7 @@
+alias cf="clang-format --style=WebKit -i"
+alias C="clang++ -std=c++20 -stdlib=libc++"
+alias Cm="clang++ -std=c++20 -stdlib=libc++ -fmodules -fimplicit-module-maps"
+alias G="g++ -std=c++20 -pedantic -Wall"
+alias Gm="g++ -std=c++20 -fmodules-ts -pedantic -Wall"
+alias Gh="g++ -std=c++20 -fmodules-ts -xc++-system-header"
+
diff --git a/code/bash/pathutils.sh b/code/bash/pathutils.sh
new file mode 100644
index 0000000000000000000000000000000000000000..be5c3a41e411c8da41cc1a27f954138308f72507
--- /dev/null
+++ b/code/bash/pathutils.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+
+# ***********************************************
+#  Programming in C++
+#  09 -- 13 May 2022
+#  Jülich Supercomputing Centre
+# ***********************************************
+
+rmspecial() {
+    sed -e 's/[]\/()$*.^|[]/\\&/g' <<< "$1"
+}
+
+# Usage:
+# prepend_path NAME_OF_PATH_ENV_VAR LOCATION_TO_PREPEND
+prepend_path() {
+    local pathtochange prevpath
+    pathtochange=$1
+    prevpath=${!pathtochange}
+    if [ -d "$2" ]; then
+        [[ ":${prevpath}:" != *":$2:"* ]] && prevpath="$2:${prevpath}"
+    fi
+    eval "export ${pathtochange}=${prevpath}"
+}
+
+# Usage:
+# remove_path_element NAME_OF_PATH_ENV_VAR LOCATION_TO_REMOVE_FROM_IT
+remove_path_element() {
+    local pathtochange prevpath toremove
+    pathtochange=$1
+    prevpath=${!pathtochange}
+    toremove=$(rmspecial $2)
+    prevpath=$(eval "echo ${prevpath} | sed -e 's#$toremove:##'")
+    prevpath=$(eval "echo ${prevpath} | sed -e 's#:$toremove##'")
+    eval "export ${pathtochange}=${prevpath}"
+}
+
+# Usage:
+# pathadd /a/b/c/bin
+pathadd() {
+    prepend_path PATH $1
+}
+# Usage:
+# pathrm /a/b/c/bin
+pathrm() {
+    remove_path_element PATH $1
+}
+libpathadd() {
+    prepend_path LD_LIBRARY_PATH $1
+    prepend_path LD_RUN_PATH $1
+    prepend_path LIBRARY_PATH $1
+}
+libpathrm() {
+    remove_path_element LD_LIBRARY_PATH $1
+    remove_path_element LD_RUN_PATH $1
+    remove_path_element LIBRARY_PATH $1
+}
+
+incpathadd() {
+    prepend_path CPATH $1
+}
+incpathrm() {
+    remove_path_element CPATH $1
+}
+cmpathadd() {
+    prepend_path CMAKE_PREFIX_PATH $1
+}
+cmpathrm() {
+    remove_path_element CMAKE_PREFIX_PATH $1
+}
+
+