Bash scripting

It's vital to automate repetitive tasks with bash.

"" everything in between is considered except $ ` '' every enclosed characters literally

command substitution user=$(whoami) echo $user

` backtick discouraged for substitution

arguments (ls -l /var/log) after ls is the arguments $1 $2

echo $? - shows the exist status of last run

Reading user input read answer echo $answer

read -p 'Username: ' username (helps us specify a prompt) read -sp 'Password:' password (-s user input silent)

If, else, Elif statements read -p "what's your age to enter:" value if [ $value -lt 18> ] then echo "your not allowed to enter" elif [$value -gt 60 ] then echo "great work!" else echo "Welcome to the club!" fi

Boolean Logical operations [ AND OR] Pipe | output becomes input in next command user2=kali grep $user2 /etc/passd && echo "$user2 found!" || echo "$user2 not found!"

Loops - For for for-name in do done

example for ip in $(seq 1 10); do echo 10.11.1.$ip done for i {1..10} do echo 10.11.1.$i; done

while [ ] do done

function function_name { commands... }

grep "href=" index.html | grep ".domain" | grep -v "www.\domainname.com | awk -F "http://" ]{print 2}' | cut -d "/" -f 1

better solution with Regex (regular expression) grep -o '[^/]*..domainname.com' index.html | sort -u > output.txt

convert all domains to ips

for url in $(cat list.txt); do host $url; done | grep "has address" | cut -d " " -f 4 | sort -u

searchsploit afd windows -w -t | grep http | cut -f 2 -d "|"

download all exploits

for e in $(searchsploit afd windows -w -t | grep http | cut -f 2 -d "|") do exp_name=$(echo $e | cut -d "/" -f 5) url=$(echo $e | sed 's/exploits/raw/') wget -q --no-check-certificate $url -O $exp_name done

sudo nmap -A -p80 --open 10.0.0.0/24 -oG nmap-scan_10.0.0.0-254 cat nmap-scan_10.0.0.0-254 | grep 80 | grep -v "Nmap" | awk '{print $2}' for ip in $(cat nmap-scan_10.0.0.0-254 | grep 80 | grep -v "Nmap" | awk '{print $2}': do cutycapt --url=$ip --out=$ip.png; done

cat pngtothml.sh

simple script to show all png files in a html page

echo " " > web.html ls -la *.png | awk -F : '{ print $1": <IMG SRC=""$1""$2"" width=600> "}' >>web.html echo "" >> web.html firefox web.html

Last updated

Was this helpful?