micharbet / CLE

Command Live Environment
GNU General Public License v2.0
25 stars 4 forks source link
bash bashrc colors customizable tweaks zsh zshrc

Command Live Environment

Enhanced shell experience

CLE is a resource that can be loaded upon interactive shell startup. It makes regular work with command line easier by adding fancy features named below:

CLE is compatible with bash and zsh, one resource file for both shells.

1. CLE setup and basic usage

All the mentioned functionality is encoded into single file and no other executables are needed. Download and run this file by sourcing into the current shell context using a trailing dot:

`wget http://git.io/clerc`
`. clerc`

Now The CLE is activated and you can configure this environment to be persistent with the command:

`cle deploy`

CLE copies itself to $HOME/.cle-YOURLOGIN/rc and adds two lines into .bashrc ev. .zshrc if you run Z-shell. Then it will be started upon each login. Note, this is the one and only installation step you need to perform. Typically you'll only install this on your workstation's account. Do not deploy CLE as root! It would work, and no harm is expected, however it's not recommended. In case you insist on using the root account as your working account, please read the document 'TipsAndTweaks.md' and find the corresponding section.

lssh utility (ssh wrapper)

The CLE is able to pass itself over ssh to a remote system. Use the wrapper called lssh instead of the regular 'ssh' command for a login into a remote account and CLE will be copied over then started seamlessly:

`lssh username@remote.host`

lsu, lsudo, lksu utilities (su/sudo/ksu wrappers)

Those wrappers serve the same purpose as the original su, sudo and ksu utilities, however they add CLE to the sessions.

lscreen - GNU screen wrapper

This wrapper is a workaround to the original GNU screen to allow using CLE inside a screen session. By default lscreen searches for yours opened and/or detached session and jumps into it if found. Otherwise it creates a new screen. Another added value is a configuration file with a nice status line and shortcuts such as Ctrl-Left/Right to switch between windows.

Other utilities

Find more helpful information directly from command line:

2. Compatibility

CLE has been tested on various systems containing bash version 3.x 4.x and zsh. It works with different flavors of basic utilities (GNU vs. BSD). Strict attention was paid to highly multiplattform compatibility.

Tested systems include the following:

It also works well with at least the following terminal emulators:

3. Requirements

Generally a basic OS installation should be sufficient. Some systems, however, might require you to add missing utilities. Truly necessary utilities are:

4. Why 'CLE' and bit of history

My shell environment has been developed over the years of work with command line, where I always tried to have an easily distinguished prompt. It was possible in diferent ways. Basically, I have been editing the shell resource files .bashrc, .kshrc and manually transferring them to each new server and account. Those files may still exist on some old boxes and in scattered backup files. You all probably have something similar.

CLE itself begun as customized .bash resource file itself and a set of utilities. This version worked without 'lssh', instead required installation prior first use on remote account or update if anything changed. The setup was simplified with the 'cle' script but the installation was still a necessary step. Also, .bashrc changes might be unwelcome to other administrators. However this was first, primitive 'life' in command line.

Evolution continues. I removed the setup necessity in an ingenious way - by passing the resource file compressed and base64 encoded through a shell variable to the remote system. To be honest, I was inspired by the 'sshrc' project. Result: no setup, no tweaks on the remote site no harm to the current environment and consistent environment over all sessions!

The only thing you need is a working CLE on your workstation from where you can manage the world :-) Everywhere you go you can now use the same customizable environment! Use lssh instead of ssh or lsu instead of su - root or lsudo' in place ofsudo bash`. Those are live wrappers that initiate CLE sessions. In biology terms, the environment can spread own DNA giving the word 'live' it's true meaning. Or at least closer. [1]

CLE versions have no numbers but rather names. As of 2016 following releases were issued:

Also while CLE is big tweak itself, it tries to respect users and their own settings. Initial versions used to be pushy, defining a lot of aliases, of course those I liked. Wrong! I learned people use their own so I removed them. Shell history as well. There's rich history and tweaks to the regular one have been minimalized. The motto is: "Less tweaks, more options!"

[1] CLE is not a virus :-) It doesn't run itself on any host. Everything is under the users' (your) control and responsibilty

5. LICENSE

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Find complete text in the file LICENSE.md or at the following URL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html