Install#
Dependencies#
Restsh works only inside the Bash shell and requires standard GNU core utilities like awk, sed, grep, etc.
Debian is the preferred distribution and used in the examples.
Further dependencies are:
curl >= v7.76.0
jq >= 1.7
openssl
whiptail (newt)
Prepare your environment#
Restsh runs in any current Linux environment, WSL2, Docker and also on macOS. The Bash shell is required.
Windows: Install WSL2#
Install Windows Subsystem for Linux (Windows Feature)
Start an administrative Power Shell
wsl --install -d Debian
Warning
Restsh is not compatible with GitBash.
Linux#
Most packages should be already installed on a standard Linux installation.
awk
bash
coreutils
curl
gettext-base
git
grep
jq
newt (whiptail)
openssh-client
openssl
sed
yq
Warning
Restsh is not compatible with the BusyBox utilities that are used by e.g. Alpine Linux.
apt-get install curl gettext-base git jq openssl pandoc whiptail yq
macOS#
The required packages must be installed using Homebrew.
brew install bash curl yq jq coreutils findutils gnu-sed gawk grep newt
Then adjust the PATH accordingly:
PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"
PATH="/opt/homebrew/opt/findutils/libexec/gnubin:$PATH"
PATH="/opt/homebrew/opt/curl/bin:$PATH"
PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"
PATH="/opt/homebrew/opt/gawk/libexec/gnubin:$PATH"
PATH="/opt/homebrew/opt/grep/libexec/gnubin:$PATH"
PATH="/opt/homebrew/opt/curl/bin:$PATH"
PATH="/opt/homebrew/bin:$PATH"
Clone the repository#
Personally, I manage all my Git repositories in a git folder in my home directory.
mkdir ~/git
cd ~/git
With HTTPS
git clone https://github.com/AxiansITSecurity/Restsh.git restsh
With SSH
git clone git@github.com:AxiansITSecurity/Restsh.git restsh
Setup#
Change your working directory into the cloned folder and run the setup script.
cd restsh
restsh/restsh.setup init
This adjusts your .bashrc and creates the .restsh-config folder in your home directory.
You have no aliases for restsh and restsh.setup.
Your .bashrc should now have entries like:
export RESTSH_CONFIG_PATH=/home/juergen/.restsh-config
alias restsh="/home/juergen/git/Restsh/restsh/restsh.start"
alias restsh.setup="/home/juergen/git/Restsh/restsh/restsh.setup"
Re-open the terminal or run . ~/.bashrc.
The RESTSH_CONFIG_PATH environment variable defines the folder for configuration files. Subfolders are supported.