Showing posts with label Shell Script. Show all posts
Showing posts with label Shell Script. Show all posts

Thursday, 7 September 2017

Shell Scripting Interview Questions and Answer

Shell Scripting Interview Questions and Answer

Question: How to Check if a directory exist?
DIRECTORY='directoryname'
if [ -d "$DIRECTORY" ]; then
  echo "Directory is found"
else
  echo "Directory is Not found"
fi



Question: How to concatenate two string variable?
str1='Web'
str2='Technology'
fullStr="$str1 $str2";
echo $fullStr; #Web Technology 



Question: What do you mean by echo file1.txt > file2.txt?
> is used to redirect output.
echo file1.txt > file2.txt

It just redirect the output to file2.txt


Question: What do you means by 2>&1?
0 is stdin
1 is stdout
2 is stderr
>& is the syntax to redirect a stream to another file descriptor

So, Its saying display the error on stdout


Following two do same thing.
echo test 1>&2
OR
echo test >&2




Question: What is scp and why use? Give example?
SCP is used to copy the file/dir from one server to another server.
Example:
scp -r user@your.server.example.com:/path/to/source /home/user/destination/




Question: What is command to copy a file?
cp file1.txt \another\folder\file1.txt



Question: What is command to move a file?
mv file1.txt \another\folder\file1.txt



Question: How to count number of words in file?
 wc -w file.txt



Question: How to append in file from source file?
 cat sourcefile.txt >> destinationfile.txt
It will add the content in destinationfile.txt from sourcefile.txt



Question: How to search a string and then delete that line?
 sed '/removeTxt/d' ./file
It will remove the line having content removeTxt and print the output to console.



Question: How to set a variable to the output from a command?
 OUTPUT="$(ls -1)"
echo "${OUTPUT}"



Question: How to convert a string in lowercase?
a="Hello World!" 
echo "$a" | tr '[:upper:]' '[:lower:]' #hello world!



Question: What is use of export command?
export command is used to make the available of variable in child process.
Example 
export name=test

Now name variable will be accessible in child process.



Question: How to print date in yyyy-mm-dd format?
YYYY-MM-DD format
echo `date +%Y-%m-%d`
YYYY-MM-DD HH:MM:SS format
echo `date '+%Y-%m-%d %H:%M:%S'`



Question: How to reverse the lines?
tac file1.txt
It will revere the lines and display in console output.


Question: How to redirect output to file?
 ls -l 2>&1 | tee -a errorfile.txt

It will store error and output(both) in error_file.txt


Question: How to determine whether a Linux is 32 bit or 64 bit?
uname -m

Output
x86_64 ==> 64-bit kernel
i686   ==> 32-bit kernel



Question: How to compare two directories?
diff --brief -r dir1/ dir2/
diff -qr -r dir1/ dir2/



Question: When do we need curly braces around shell variables?
When you want to expand the variable (like foo) in the string.
For Example you want to make $foobar.
echo "${foo}bar"




Wednesday, 6 September 2017

Unix Shell Scripting Tutorial - page 8

Unix Shell Scripting Tutorial - page 8

Question: What are two different way to executing a file?
Script file with name script8.sh
myname='Arun kumar';
echo $myname 

Way #1
sh script8.sh

After executing this script, if we run echo $myname it will not print anything because $myname is not in scope.

Way #2
source script8.sh

After executing this script, if we run echo $myname it will print because $myname is in scope.


Question: How to get input from user?
echo "Enter your name?"
read name
echo "Your name is '$name'"



Question: How to include configuration file in main file?
use source to include file.
source config.sh
myname='Arun kumar';
echo $myname 



Question: Give example of for?
for  table in {2..20..2}
do 
echo "$table,"
done

Output 2,4,6,8,10,12,14,16,18,20


Question: What is difference between while and until?
 Until loop always executes at least once. while executes till it returns a zero value and until loop executes till it returns non-zero value.

Question: Give example of function with parameters?
function fname(){
    echo $1; #first argument
    echo $2; #second argument
    echo $3; #third argument
}

fname a b c


Question: Give example of Switch case?
FRUIT="kiwi"

case "$FRUIT" in
   "apple") echo "Apple is good for health." 
   ;;
   
   "banana") echo "I like banana." 
   ;;
   
   "kiwi") echo "New Zealand is famous for kiwi fruit." 
   ;;
esac


Question: What does do eval? Give example eval
execute the statement.
name='name_variable'
name_variable='This is value'
echo $name; #name_variable
echo \${$name}; #${name_variable}
eval echo \${$name}; #This is value

Monday, 4 September 2017

Unix Shell Scripting Tutorial - page 7

Unix Shell Scripting Tutorial - page 7

Question: What is meaning of first line in unix?
#!/bin/bash

This indicates that the script should be run in the bash shell regardless of which interactive shell.


Question: What sign is used in unix for comment a line?
Pound Sign

Pound sign (#), is used to comment a line.

# echo "this is comment" 



Question: When to use single quote OR Double quote?
Single quote: When you are assigning string without variable, then you should use single quote.
Double quote: When you are assigning string with variable, then you should use Double quote.


Question: What's wrong in following variable?
strVar = "Hello World! How are you?" 
echo $strVar;

There should not be space before and after the equal sign (=). Correct code are below:
strVar="Hello World! How are you?" 
echo $strVar;



Question: Give sample example of If else?
if condition1
then
 statement1
 statement2
 statement3
 
else
 statement4
 statement5
fi



Question: Give sample example of If elseif?
if condition1
then
 statement1
 statement2
 statement3
 
elif condition2
then
 statement4
 statement5
 
elif condition3
then
 statement6
 statement7
 statement8
fi



Question: Give list of Operator used in unix shell scripting?
Operator Results number of operands
-noperand non zero length1
-zoperand has zero length1
-dthere exists a directory whose name is operand1
-fthere exists a file whose name is operand1
-eqthe operands are integers and they are equal2
-neqthe opposite of -eq2
=the operands are equal (as strings)2
!=opposite of = 2
-ltoperand1 is strictly less than operand2 (both operands should be integers)2
-gtoperand1 is strictly greater than operand2 (both operands should be integers)2
-geoperand1 is greater than or equal to operand2 (both operands should be integers)2
-leoperand1 is less than or equal to operand2 (both operands should be integers)2



Friday, 1 September 2017

Unix Shell Scripting Tutorial - page 6

Unix Shell Scripting Tutorial - page 6

Question: How can we search in file using Regular expression?
We use grep command.
grep "search string" filename.txt



Question: How to search a string in file?
grep "search string" filename.txt

search string is text searched in filename.txt. By Default its case sensitive.


Question: How to search a case-insensitive string in file?
use -i to search case insensitive.
grep -i "search string" filename.txt



Question: How to search a string in mutiple file?
separate the filename by space.
grep -i "search string" filename.txt filename2.txt filename3.txt 



Question: How to search a string in file using regular expression? Use regex character for example .* used to search all
grep -i "textname .*" filename.txt 

It will return all after the textname.


Question: What are the basic Regex characters?
  1. ? The preceding item is optional and matched at most once.
  2. * matched zero or more times.
  3. + matched one or more times.
  4. {n} matched exactly n times.
  5. {n,} matched n or more times.
  6. {,m} matched at most m times.
  7. {n,m} matched at least n times, but not more than m times.



Question: How to search a words in file?
Use -w to search words.
grep -iw "textname" filename.txt 

It will not search textnameA.


Question: How to search and return next line?
grep -A 3 -i "textname" filename.txt

It will search and return next 3 lines after search.
You can use -B to return Before 3 lines.


Question: How to search recursively in folder? Use -r to search recursive.
grep -r "textname" 



It will search in current folder and sub-folder.


Question: How to find number of matches ? Use -c to return number of matches.
grep -c "textname" fiename.txt

It will return number of matches in number.


Question: What are the Performance Tools in unix?
  1. nice/renice: Runs a program with modified scheduling priority.
  2. netstat: Prints network connections, routing tables and interface statistics.
  3. time: give resource usage
  4. uptime: This is System Load Average.
  5. ps: Current process list
  6. vmstat: Virtual Memory stats
  7. top: Top Task List



Question: What is syslog?
Syslog is a way for network devices to send event messages to a server. Also known as Syslog server.
SysLog is stored in /etc/syslogd OR /etc/syslog.
syslog.conf have following configuration.
*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice           /var/log/messages
lpr.info                     /var/log/lpr.log
mail.*                       /var/log/mail.log
ftp.*                        /var/log/ftp.log
mark.*                       /dev/console



Question: What is command for logging?
logger [-i] [-f file] [-p priority] [-t tag] [message]



Thursday, 31 August 2017

Unix Shell Scripting Tutorial - page 5

Unix Shell Scripting Tutorial - page 5

Question: What are the directory structure of unix?
  1. /: This is the root directory which should contain only the directories.
  2. /bin: Executable files are located here.
  3. /dev: Device drivers
  4. /etc: configuration files, valid user lists, groups, ethernet and hosts etc
  5. /lib: shared library files and sometimes other kernel-related files.
  6. /boot: files for booting the system.
  7. /home: home directory for users and other accounts
  8. /mnt: Used to mount other temporary file systems like CD/pendrive
  9. /proc: Contains all processes marked as a file by process number.
  10. /tmp: Holds temporary files used between system boots.
  11. /user: Used for miscellaneous purposes.
  12. /var: Typically contains log and print files.
  13. /sbin: Contains binary (executable) files.
  14. /kernel: kernel files



Question: How to create a new Group?
groupadd mynewgroup



Question: How to modify group name?
groupmod -n new_modified_group_name old_group_name



Question: How to delete group?
groupdel new_modified_group_name



Question: How to add a existing user to a group?
usermod -a -G mynewgroup username

-G Its for secondary group.
-g Its for primary group.


Question: How to change a User's Primary Group?
usermod -g groupname username  



Question: How to list groups of loggined user?
groups



Question: How to list groups of other user?
groups username



Question: How to Create a New User and Assign a Group?
useradd -G examplegroup username



Question: How to assign a user multiple groups?
usermod -a -G group1,group2,group3 username



Wednesday, 30 August 2017

Unix Shell Scripting Tutorial - page 4

Unix Shell Scripting Tutorial - page 4

Question: What are man pages?
Unix's version of Help files are called man pages.


Question: Can we perform regular expression in unix?
Yes, We can do.
We can do using sed.
Full form of SED is stream editor.
For Example(s)
cat /etc/passwd | sed -n '1,3p'

REGEX_DATE='^\d{2}[/-]\d{2}[/-]\d{4}$'
echo "$1" | grep -P -q $REGEX_DATE
echo $?



Question: What are character meaning in regular expression?
  1. ^a: Start with a
  2. a$: End with a
  3. .: Match any single character.
  4. *: Match zero OR more occurances.
  5. [abcd]: Any character from a,b,c and.
  6. \: Skip the effects of special character.
  7. [a-z]: Match a-z any character.
  8. [a-z0-9]: March a-z OR 0-9 any character.
  9. [[:alnum:]]: Alphanumeric [a-z A-Z 0-9]
  10. [[:alpha:]]: Alphabetic [a-z A-Z]
  11. [[:blank:]]: Blank characters (spaces or tabs)
  12. [[:cntrl:]]: Control characters
  13. [[:digit:]]: Numbers [0-9]
  14. [[:graph:]]: Any visible characters (excludes whitespace)
  15. [[:lower:]]: Lowercase letters [a-z]
  16. [[:print:]]: Printable characters (non-control characters)
  17. [[:space:]]: Whitespace
  18. [[:punct:]]: Punctuation characters
  19. [[:upper:]]: Uppercase letters [A-Z]
  20. [[:xdigit:]]: Hex digits [0-9 a-f A-F]



Question: Can we execute multiple command in single statement?
Yes, We can execute multiple commands in single statement.
For Example
sed -e 'command1' -e 'command2'  -e 'command3'  -e 'command4' 



Question: What are the most comman commands?
  1. cat filename: Displays a filename.
  2. cd dirname: Moves you to the identified directory.
  3. cp file1 file2: Copies one file/directory to the specified location.
  4. file filename: Identifies the file type
  5. head filename: Shows the beginning of a file
  6. less filename:
  7. ls dirname: Display the content of directory.
  8. mv file1 file2: Rename a file
  9. tail filename: Display the end of file
  10. touch filename: Create a blank file.
  11. whereis filename: Display the location of file
  12. :
Question: What is use of df command?
Its used to display the disk space usages.
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/xvda1      20509288 15036052   5372988  74% /
devtmpfs         2015996       64   2015932   1% /dev
tmpfs            2024996        0   2024996   0% /dev/shm
/dev/xvdf      103081248 44579524  53258844  46% /var/lib/mysql
/dev/xvdg      103081248 89393356   8445012  92% /mnt



Question: What is use of du command?
Its used to display how much space is taking by each directory.


Question: What mount command used for?
mount point is a directory to access your data (files/folders) which is stored in your disks.


Question: What unmount command used for?
To unmount (remove) the file system from your system.
For Example
umount /dev/cdrom



Question: What are the different type of users in unix?
  1. Root User: It is super admin who have all the access and no need to any further permission.
  2. System accounts: It have access of system-specific components like mail accounts and the sshd accounts.
  3. User accounts: User accounts provide interactive access to the system. Users are typically assigned to these accounts and usually have limited access files and directories.



Question: What are the main administrator files?
  1. /etc/passwd: Keeps the user account and password info.
  2. /etc/shadow: Holds the encrypted password.
  3. /etc/group: It have group information.
  4. /etc/gshadow: secure group account information



Monday, 28 August 2017

Unix Shell Scripting Tutorial - page 3

Unix Shell Scripting Tutorial - page 3

Question: What are special variable in unix?
Special variable are those variable which are reserved by unix shell. For Example $$ is special variable and it return the current process id.


Question: How to use array variable in for loop?
Yes, we can define.
NUMS="1 2 3 4 5 6 7 8 9"
for NUM in $NUMS
do
   Q=`expr $NUM % 2`
   if [ $Q -eq 0 ]
   then
      echo "Number is an even number!!"
      continue
   fi
   echo "Found odd number"
done



Question: Give example of while with break?
a=2
while [ $a -lt 10 ]
do
   echo $a
   if [ $a -eq 5 ]
   then
      break
   fi
   a=`expr $a + 1`
done

Once $a will reach to 5, then it will break the statement.
output
2
3
4
5



Question: How to print the special character as string?
Use the Backslash before the special character, It will print. For Example:
echo \$;



Question: What is Output Redirection?
We use > notation to Output Redirection.
who > users
If a command has its output redirected to a file and the file already contains some data, that data will be lost.

We can use >> to append in file, it will not lost the data.
who >> users


Question: What are the Redirection Commands?
  1. pgm > file: Output of pgm is redirected to file.
  2. pgm < file: Program pgm reads its input from file.
  3. pgm >> file: Output of pgm is appended to file.
  4. n > file: Output from stream with descriptor n redirected to file
  5. n >> file: Output from stream with descriptor n appended to file
  6. n >& m: Merges output from stream n with stream m.



Question: How to create a custom function?
# Create a new function with name of Hello
Hello () {
   echo "Hello World! How are you?"
}

# Call the function
Hello



Question: How to create a custom function with parameter?
# Define your function here
Hello () {
   echo "Hello World! How are you?"
   echo "First parameter: $1";
   echo "Second parameter: $2";    
}

# Invoke your function
Hello first second

Output
Hello World! How are you?
First parameter: first
Second parameter: second



Thursday, 24 August 2017

Unix Shell Scripting Tutorial - page 2

Unix Shell Scripting Tutorial - page 2

Question: What are special variable in unix?
Special variable are those variable which are reserved by unix shell. For Example $$ is special variable and it return the current process id.


Question: List the special variable?
  1. $$: Give the current process ID.
  2. $0: File name of current script.
  3. $n: $1 will give first argument, $2 will give 2nd argument.
  4. $#: The number of arguments supplied to a script.
  5. $*: Return all the arguments.
  6. $?: The exit status of the last command executed.
  7. $!: Process number of last command



Question: Can we define array variables?
Yes, we can define.
NAME01="Name 1"
NAME02="Name 2"
NAME03="Name 3"
NAME04="Name 4"
NAME05="Name 5"



Question: How to define array variable and use them?
Define Array variable
NAME01="Name 1"
NAME02="Name 2"
NAME03="Name 3"
NAME04="Name 4"
NAME05="Name 5"

Use single variable
echo $NAME[2];


Print each and every variable
for i in NAME01 NAME02 NAME03 NAME04 NAME05
do
  echo $i;
done



Question: How to print array in single line?
echo  ${NAME[*]};

Question: How to use Relational Operators?
  1. -eq: Equal
  2. -ne: Not Equal
  3. -gt: Greater than
  4. -lt: Less than
  5. -ge: Greater than OR Equal to
  6. -le: Less than OR Equal to



Question: How to use Boolean Operators?
  1. !: Not
  2. -o: OR
  3. -a: And



Question: Give an example of while?
a=1
while [ $a -lt 10 ]
do
   echo $a
   if [ $a -eq 5 ]
   then
      break
   fi
   a=`expr $a + 1`
done



Question: What is Substitution?
The shell performs substitution when it encounters an expression that contains one or more special characters.


Question: Give few example of Variable Substitution?
Variable substitution enables the shell programmer to manipulate the value of a variable based on its state.
Examples
${var}

${var:-word}
If var is null, word is substituted for var.
${var:=word}
If var is null, var is set to the value of word.
${var:?message}
If var is null, message is printed to standard error.
${var:+word}
If var is set, word is substituted for var.


Question: What are the Metacharacters?
metacharacters have special meaning while using them in any Shell Script and causes termination of a word unless quoted.


Following are the meta characters.
    
        * ? [ ] ' " \ $ ;  ( ) | ^ 
    



Wednesday, 23 August 2017

Unix Shell Scripting Tutorial - page 1

Unix Shell Scripting Tutorial - Step 1

Question: How to create file shell script file?
echo "Hello World? How are you all?";



Question: How to make a file executable?
chmod a+rx script1.sh



Question: How to run execute file?
Just with name, you can execute.
script1.sh



Question: How to add comment in shell script files?
Use hash(#) before the line for comment.
chmod a+rx script1.sh



Question: How to use variable in shell script file?
name="Manoj"
echo "My Name is : $name"



Question: What is variable convention?
The name of a variable can contain only letters (a to z or A to Z), numbers ( 0 to 9) or the underscore character ( _).


Question: How to define read only variable?
readonly version="10.2"
echo "Version is : $version"



Question: How to unset variable?
name="Manoj"
unset name;



Question: What are different type of variable?
  1. Local Variables: A local variable is a variable that is present within the current instance of the shell.
  2. Environment Variables: An environment variable is available to any child process of the shell. Some programs need environment variables in order to function correctly.
  3. Shell Variables: A shell variable is a special variable that is set by the shell.



Question: How to use Escape Characters?
Use slash \ for Escape the character;

echo "Hello \"User\""; // Hello "User"
echo "Slash \\" ;// Slash \



Question: How to use expression in shell script file?
Use expr enclosed with caret (~), For Example
myvar=10;
result=`expr 10 * 5`
echo "Multiple: $result";

myvar=10;
result=`expr 10 + 5`
echo "Additon: $result";

myvar=10;
result=`expr 10 -5`
echo "Subtract: $result";

Question: How to use loop?
for i in 1 2 3 4 5
do
  echo "Number $i"
done



Question: How to use if else condition?
if [ 2 = 3 ]
then
  echo "Both are equal"
else
  echo "Both are not equal"
fi



Question: How to use if else elseif condition?
if [ 2 = 3 ]
then
  echo "Both are equal"
elseif [ 2 > 3 ]
  echo "2 is greater than 3"
  else
  echo "2 is less than 3"
fi



Question: How to read from user?
echo "What is your name?"
read name
echo "Your name is $name"


Question: How to search a folder with name?
find ~ -type d -name "*foldername*" -print