In this tutorial I will show a few useful commands when working with linux shell.
Check Directory Exists:
if [ -d /opt/test/ ]; then echo 'Directory Exists' fi
Check Directory Not Exists:
if [ ! -d /opt/test/ ]; then echo 'Directory Does Not Exist' fi
Check File Exists:
if [ -f /opt/test/test.log ]; then echo 'File Exists' fi
Check File Not Exists:
if [ ! -f /opt/test/test.log ]; then echo 'File Does Not Exist' fi
Lowercase Variable:
val='TEXT' echo "${val,,}"
Echo Variable:
This will print the value of “test”. Notice we use double quotes.
test='My Test Val' echo "$test"
Echo String:
echo 'My test string'
Split:
This will split on the comma into an array list and then loop through it.
test='test 1,test 2' split_test=(${test//,/ }) for val in "${split_test[@]}" do echo $val done
Date:
This will print the date in the format YYYY-MM-dd
my_date="$(date +Y-%m-%d)" echo "$my_date"
Remove Space From Variable:
VAL='test string' echo "${VAL//\ /}"
Increment Variable:
index=0 index=$((index+1))
Substring
VAL='test string' echo "${VAL:4:4}"
If value is equal to
VAL='hello' if [ "$VAL" == 'hello' ] ; then echo 'Is Equal' fi
If with OR
VAL='hello' if [ "$VAL" == 'hello' ] || [ "$VAL" != 'hi' ] ; then echo 'Is Hello' fi
If Variable is Empty
VAL='' if [ -z "$VAL" ] ; then echo 'Is Empty' fi
Append to File
echo 'Hi' >> file_to_log_to.log
Write to File
echo 'Hi' > file_to_log_to.log
While Loop: Increment to 10
This will loop till the value is 9 then exit.
i=0 while [ $i -lt 10 ]; do echo "$i" done
whoami
USER=$(whoami)
If Variable Contains Text
VAL='my Test String' if [[ "${VAL,,}" == *"test"* ]] ; then echo "Found test" fi
Color Coding
NoColor=$'\033[0m' READ=$'\033[0;31m' GREEN=$'\033[0;32m' YELLOW=$'\033[1;33;40m' printf "%s Variable Not Set %s\n" "${RED}" "${NoColor}"
Get Log to a logfile and console
SOME_COMMAND 2>&1 | tee -a "${LOG_FILE_PATH}"
Read a JSON config
JSON=$(cat "/path/to/json/file.json") export MY_VAR=$(echo "${JSON}" | python -c 'import json,sys;obj=json.load(sys.stdin);print(obj["MyKey"])')
Extract tar to Folder
sudo tar -xvf /the/location/file.tar -C /to/location/ --force-local --no-same-owner
Update Certificates
This will update certificates. After you put a certificate in /usr/local/share/ca-certificates/
update-ca-certificates
PipeStatus
somecommand RETURN_CODE=${PIPESTATUS[0]}