Bash

Have a look at the Oneliners Page for more examples to include in your aliases etc.

Aliases

Aliases can be frowned upon, but I find these useful

alias ip='ip --color=auto'

Cut delimit tab

cut -d$'\t'

Assigning default values to shell variables with a single command in bash

If the variable is same, then

: "${VARIABLE:=DEFAULT_VALUE}"

assigns DEFAULT_VALUE to VARIABLE if not defined.

  • The colon builtin (:) ensures the variable result is not executed
  • The double quotes (“) prevent globbing and word splitting.

Also see Section 3.5.3, Shell Parameter Expansion, in the Bash manual.

Check port openings from bash script:

“timeout 2s bash -c ’ /dev/null && echo true || echo false”
Can be used like below in bash script (uses exitcodes from either timeout or bash)

if [[ $(timeout 2s bash -c '</dev/tcp/google.dk/443' 2> /dev/null && echo true || echo false) == true ]]
then
    echo true
    # do something
fi

or

IS_ENABLED=$(timeout 2s bash -c '</dev/tcp/google.dk/443' 2> /dev/null && echo true || echo false)

Check content or return NA:

If “/etc/testfile.conf” exists then $VAR til contain that content or NA if not. Can be used in a bash script like eg. if one need to transfer value from previous running script saved in a file.

VAR=$(cat /etc/testfile.conf 2> /dev/null || echo NA)

Using a automatic config file with bash

Will read a file with the same name as it’s self ($0), but with .conf

#!/bin/bash
config_file="${0%.sh}.conf"
test -s ${0%.sh}.conf
if [ $? -ge 1 ]
then
        echo "$vars_file is empty!, edit ${0%.sh}.conf"
        touch ${0%.sh}.conf
        exit 0
fi

while read config_file
do
        declare "${config_file%=*}=${config_file##*=}"
done < <(cat ${0%.sh}.conf)

## continue your script from here ##

Ex of .conf file.

testing1=data1
testing2=data2

will be read as $testing1 and $testing2 and can be used as such in the main bash script.

Moving the cursor:

Ctrl + a   Go to the beginning of the line (Home)
Ctrl + e   Go to the End of the line (End)
Ctrl + p   Previous command (Up arrow)
Ctrl + n   Next command (Down arrow)
 Alt + b   Back (left) one word
 Alt + f   Forward (right) one word
Ctrl + f   Forward one character
Ctrl + b   Backward one character
Ctrl + xx  Toggle between the start of line and current cursor position

Editing:

Ctrl + L   Clear the Screen, similar to the clear command

 Alt + Del Delete the Word before the cursor.
 Alt + d   Delete the Word after the cursor.
Ctrl + d   Delete character under the cursor
Ctrl + h   Delete character before the cursor (Backspace)

Ctrl + w   Cut the Word before the cursor to the clipboard.
Ctrl + k   Cut the Line after the cursor to the clipboard.
Ctrl + u   Cut/delete the Line before the cursor to the clipboard.

 Alt + t   Swap current word with previous
Ctrl + t   Swap the last two characters before the cursor (typo).
Esc  + t   Swap the last two words before the cursor.

ctrl + y   Paste the last thing to be cut (yank)
 Alt + u   UPPER capitalize every character from the cursor to the end of the current word.
 Alt + l   Lower the case of every character from the cursor to the end of the current word.
 Alt + c   Capitalize the character under the cursor and move to the end of the word.
 Alt + r   Cancel the changes and put back the line as it was in the history (revert).
ctrl + _   Undo

History:

Ctrl + r   Recall the last command including the specified character(s)
           searches the command history as you type.
           Equivalent to : vim ~/.bash_history. 
Ctrl + p   Previous command in history (i.e. walk back through the command history)
Ctrl + n   Next command in history (i.e. walk forward through the command history)

Ctrl + s   Go back to the next most recent command.
           (beware to not execute it from a terminal because this will also launch its XOFF).
Ctrl + o   Execute the command found via Ctrl+r or Ctrl+s
Ctrl + g   Escape from history searching mode
      !!   Repeat last command
    !abc   Run last command starting with abc
  !abc:p   Print last command starting with abc
      !$   Last argument of previous command
 ALT + .   Last argument of previous command
      !*   All arguments of previous command
^abc­^­def   Run previous command, replacing abc with def

Last modified: Thu Nov 13 23:28:14 2025