22nd June 2025
ConfigShell offers you scripts and helper routines that were created over the last 40 years to support your work with either bash, zsh, or fish. For security reasons, ConfigShell neither contains binaries nor encrypted data. ConfigShell is under the MIT license.
The origins of ConfigShell are from the late 1980's. The first bits were started still on SunOS, Ultrix, Xenix, and Microport UNIX. Some of you might still remember...
- Welcome to ConfigShell
- k8pod-get can get an argument now which is used to limit the output of k8pod-get with
grep -E
- k8logs supports now the -f options for
tail -f
mode if one pod is specified
Fixed a stupid error to upgrade your OS. You can easily do it using the cpu
script which actually calls cpkg upgrade
.
ela
and els
are new shell scripts with reasonable defaults for the eza ls-replacement. The eza is written in Rust and is not installed by ConfigShell.
Script to install often used applications to use a Fedora installation for software development and deployment.
Support for zig installation under /opt/zig
.
Starship is a prompt utility for bash, zsh, and fish. If starship is installed on a host with ConfigShell, then it is used. A timeout issue was existing under OSX for node JS. This is supposed to be fixed by this patch.
git-status-all
traverses the current directory tree; you can also specify directories as arguments. If a directory is a git repository, it shows it status, in particular versus a potential remote repository. The new option -u
tries to pull the latest version the current branch, if the branch is behind the remote one. This is great to upgrade you working environment.
ConfigShell is script-only.
I.e., it contains only scripts and / or configuration files. There are no binaries included in the ConfigShell repository. Furthermore, no encryption is used. So, you shall be able to see what every bit does.
This is different for the optional git submodules such as ConfigLinux and ConfigDarwin. ConfigShell can be used without the git submodules.
ConfigShell and also the modules are all under the MIT license.
Overall, all ConfigShell elements are under the MIT license. Furthermore, it splits into multiple parts. These parts are realised using git submodules:
- The basic ConfigShell is appropriate for all UNIX™-like operating systems
- A special git sub-module for Linux-specifics called ConfigLinux
- A special git sub-module for OSX-specifics called ConfigDarwin
- A git sub-module called PowerlineFonts
Again, the basic ConfigShell can be used without the sub-modules. These sub-modules may also contain binaries.
ConfigShell offers Daily Use shell support for the shells:
- bash (https://www.gnu.org/software/bash/) GPLv3 license
- fish (https://fishshell.com/) GPLv2 based
- zsh (https://zsh.org) MIT license, parts with GPL
- Documentation and version control support
-
LaTeX, Markdown, and Marp scripts. You can check the
/opt/ConfigShell/doc
directory. It contains one Markdown file. It is formatted using classical Markdown and LaTeX. Please, watch the difference. Both PDF files are created using a Makefile.If you want to try, just change the
README.md
a bit and say make (with ConfigShell: it is just anm
) in the/opt/ConfigShell/doc
directory. Afterwards, the reset everything just say:cd /opt/ConfigShell # make sure that you are in ConfigShell git reset --hard
-
git abbreviations
-
- Development-specific support
- Utilities for go programming
- Script for creating container images and EKS (AWS K8s) support
- Kubernetes (K8s) utilities
- git utilities such as git gee and overall versioning support (based on bumpversion)
- Connectivity and generic shell scripts
- tmux scripts
- route53 (AWS DNS) utility
- Additional helper routines like
eir
,rmbak
,8601
,ll
,lla
,llad
, and many others
Individual documents exist to introduce these enhancements. Please feel free to comment and to suggest improvements.
The ConfigLinux sub-module is to be installed as /opt/ConfigShell/ConfigLinux
. It contains enhancements like:
- Binaries
- signfile
- fast SHA256 calculator
- Terminal support
- gnome-terminal configurations
- icons for JetBrains applications for Linux X11/Wayland environments.
The ConfigDarwin sub-module is to be installed as /opt/ConfigShell/ConfigDarwin
. It contains enhancements like:
- Binaries
- signfile
- fast SHA256 calculator
- Terminal support
- Mac Terminal Profiles
- iTerm profiles
- Keyboard Maestro macro files for Unicode support to allow for typing Nordic or German letters and math-symbols like:
\->
becomes to →, and many more like this including\leadsto
\ae
becomes to ä\"a
also becomes to an ä\(c)
becomes to a ©- ...
The original ConfigShell can be found at https://github.com/engelch/ConfigShell
First check, if you can create a directory /opt/ConfigShell
. You can do this by executing:
mkdir /opt/ConfigShell
If this fails because of permissions, either speak with your system administrator for help or if you also have this role, do:
sudo mkdir /opt/ConfigShell
sudo chown <<yourUserName>> /opt/ConfigShell
Now, you should be able to install ConfigShell using the command:
git clone https://github.com/engelch/ConfigShell /opt/ConfigShell
ConfigShell requires that it is installed as /opt/ConfigShell
. Of course, this file can also be a symbolic link (s-link) to another directory.
The combination of upper- and lower-case characters is important. A more generic version existed before but as it increased the complexity of many scripts, this flexibility was removed.
To install the shell integration just execute:
/opt/ConfigShell/installDotFiles2home
This command is understood to be idempotent, i.e. you can run it multiple times.
We installed ConfigShell on many hosts. But, how to keep it up-to-date? Luckily, ConfigShell helps you with that. Just run the commands:
cd
[ ! -d .bashrc.d ] && mkdir .bashrc.d
cd .bashrc.d
ln -sf /opt/ConfigShell/bin/upgradeConfigShell.sh .
~/.bashrc.d/*.sh
are executed by fish AND bash. They are run in a sub-shell. Note: ~/.bashrc.d/*.rc
are sourced by bash only. This approach was chosen to avoid duplication of installation steps for bash and fish.
Now, every time you log in, it is checked whether this command was executed in the last 4 hours. If so, it just terminates. Otherwise, it pulls the actual version of ConfigShell.
If possible, log in to the host with a new terminal. On the local system, just open another shell.
You can contact me as Christian ENGEL via email: mailto:engel-ch@outlook.com