-> ls : List all the file or folder present in the current directory. Option: * -l : List all the file and folder with permission, owner, and group details in form of vertically alinged list. * -a : Display hidden (.)dotfile as well. -> pwd : Print the current directory, present on the terminal. -> date : Print the current date and time. -> chmod : Used to change the permission of file or folder Symbol Meaning : * a : For all (including owner, group and others) * u : For owner * g : For group * o : For others * r : read permission ( number 4 ) * w : write permission ( number 2 ) * x : execute permission ( number 1 ) Option : * a+x : Add execute permission for all. * a-x : Remove execute permission for all. * 755 : rwx - user , r-x - group, r-x - others How to use? chmod a+x "file/folder name" chmod 755 "file/folder name" -> echo : To Print argument on the terminal Option: * -n : Not to add newline. * ".." : String to print * $PATH : variable ( environment variable, etc. ) -> $PATH environment variable : Store the paths which help in invoking executable, script, etc, without specifying whole path, where its present. How to add path to $PATH? export PATH=$PATH:$(pwd) or full path to intended directory. -> SHABANG (#!/bin/bash) Tells to use this interpreter to run the script. Same as /bin/bash ./script -> Variables : To stores data and can be changed. 1. Explicit Defination : VAR=value COUNT=5 PATH=/var/lib 2. Read command : read VAR read COUNT read PATH Option : * -p : to print the parameter before read. How to use? read -p "Your name: " NAME * -s : to hide the input to be taken. Best use for password. How to use? read -sp "Your age: " AGE 3. Command Substitution : To store the output of the command executed to the variable. How to use? VAR=$(pwd) or VAR=`pwd` How to use variables? Use $variableName for using variables. -> For Math Calculation : 1 . let let RESULT=NUMBER+5 let NUMBER++ let NUMBER-- let NUMBER+=5 let NUMBER-=5 2. (( )) RESULT=$(( NUMBER + 5 )) 3. [] RESULT=$[ NUMBER + 5 ] 4. expr RESULT=$(expr $NUMBER + 5) RESULT=`expr $NUMBER + 5` RESULT=`expr 2 + 3` 5. bc ( used for floating point number ) RESULT=`echo "$NUMBER * 1.9" | bc` -> Argument : $0 - script name $1 - first argument $2 - second argument $n - nth argument "$@" - all argument, expands as "$1" "$2" "$3" and so on. "$*" - all argument as string, "$1c$2c$3", where c is IFS (Internal field separator), which is usally whitespace. $# - arguments count -> Redirecting and piping: Redirecting * STDIN (0) - Standard input (data provided to program) * STDOUT (1) - Standard output (what program prints, defaultly to the terminal) * STDERR (2) - Standard error (what error message program prints, defaultly to terminal) examples: cat file1.txt > output_from_cat.txt cat file1.txt 1>output_from_cat.txt cat file1.txt 2>error.txt cat file1.txt 1>output_from_cat.txt 2>error.txt cat file1.txt &> output_from_cat.txt (from both 1 and 2) cat file1.txt 1> output_from_cat.txt 2>&1(redirecting error to output) cat file1.txt >> output_from_cat.txt(adding output instead of replacing it) Piping output of preceeding program is input to succeeding program. Program1 | Program2 examples: cat file.txt | wc -l cat file.txt | head -5 | tail -3 | wc -l -> Exit Status echo $? $? will give a return value of previous command. It's the return value, called EXIT STATUS. Successfully exiting give 0 value otherwise non-zero value. We can exit script using exit command. exit command can be used with number 0 - 255.