April 2024
Welcome to our collection named ConfigShell. ConfigShell offers you scripts and helper routines that were created over the last 40 years. The first routines started still on SunOS and Ultrix. Some of you might still remember. The scripts are supposed to run under Linux, OSX, *BSD, and other UNIX variants. These days, the scripts are only tested with Linux and OSX.
Overall, all ConfigShell elements are under the MIT license. Furthermore, it splits into 3 parts:
- 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
The basic ConfigShell can be used without the sub-modules.
ConfigShell contains only scripts and / or configuration files. There are no binaries included with ConfigShell. This may be different for the optional git submodules such as ConfigLinux and ConfigDarwin. ConfigShell can be used without the git submodules. The submodules only extend the functionality of ConfigShell; they are not required for the functionality of ConfigShell.
ConfigShell offers
- Shell enhancements
- Nice shell defaults for bash The same kind of shell default for the fish shell
- Shell shortcut commands
- 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
- Kubernetes (K8s) and EKS (AWS K8s) utilities
- 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