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]}