Skip to content

Bash

History

Ctrl+R will open the search history window.
You may now use Ctrl+R again to search for the previous match.

Edit current line in EDITOR

Ctrl-X, Ctrl-E: will open the current line in EDITOR.

Terminal title

echo -ne "\033]0;MY_NEW_TITLE\007"

Arrays

    arr=(1 2 3)
    echo ${arr[0]}
    echo ${arr[@]}
    echo ${arr[*]}
    echo ...
    copy=("${arr[@]}")

Cursor

Hide cursor

tput civis

Cursor movement

  • Position the Cursor: \033[;H Or \033[;f puts the cursor at line L and column C.
  • Move the cursor up N lines: \033[A
  • Move the cursor down N lines: \033[B
  • Move the cursor forward N columns: \033[C
  • Move the cursor backward N columns: \033[D

  • Clear the screen, move to (0,0): \033[2J

  • Erase to end of line: \033[K

  • Save cursor position: \033[s

  • Restore cursor position: \033[u

Escape

escape1() { rul1='s:\:\\:g' rul2="s:':'\\'':g" /bin/echo -nE "$1" | sed "$rul1;$rul2;" }

escape() { # bashism: last part is to "cancel" empty, single argument #builtin printf ' %q' "$@" | cut -c2- | sed "s:^''$::"

    # pure sh version for alpine and zimit and...
    if [ "$*" != "" ]; then
            while [ $# -gt 0 ]; do
                    /bin/echo -nE "'`escape1 "$1"`' "
                    shift
            done
    fi | sed 's: $::'

    echo

}