Thursday, April 16, 2015

Linux interview questions & answers

UNIX or Linux operating system has become default Server operating system and for whichever programming job you give interview you find some UNIX command interview questions there. These UNIX command interview questions are mostly asked during Java development and Support role interviews on various investment banks mostly because most of electronic trading systems or stock trading system works on Unix servers. As we know that high volume low latency systems which wants to take advantage of little bit of volatility in market for Equity , Futures and options or Foreign exchange trading need a stable server side operating system and Redhat Linux is doing great job there. with the advent ofAlgorithmic trading this speed factor becomes more important so getting someone who has good knowledge of operating system and commands on which these trading system runs is definitely required. but these UNIX command interview questions are equally applicable for any job interview which requires some work on Unix Operating System. With the growing use of Linux in form of RedHat, Solaris and IBM AIX its must to keep you familiar with essential Linux commands available on various platforms. 
Image result for linux interview questions 
Long back I had once asked one of my friend why are you preparing Unix Command interview questions if you going for a Java Interview and he told me that this job doesn't only require knowledge of Java but also knowledge of Unix, Linux, SQL and other scripting language , which is quite true. After that I thought to collect various UNIX command interview questions asked to Java developers or trading system support interviews and this is the result of that compilation. This list of UNIX command interview questions are by means complete and would be great if you guys contribute some genuine and good Unix Command Interview questions and answers asked during interviews. I have divided the questions on three categories for sake of managing and keeping this list of Unix Interview questions up to date.

Beginners UNIX Interview Questions Answers
1. Write command to list all the links from a directory?
In this UNIX command interview questions interviewer is generally checking whether user knows basic use of "ls" "grep" and regular expression etc
You can write command like:
ls -lrt | grep "^l"

2. Create a read-only file in your home directory?
This is a simple UNIX command interview questions where you need to create a file and change its parameter to read-only by using chmod command you can also change your umask to create read only file.
touch file
chmod 400 file
3. How will you find which operating system your system is running on in UNIX?
By using command "uname -a" in UNIX

4. How will you run a process in background? How will you bring that into foreground and how will you kill that process?
For running a process in background use "&" in command line. For bringing it back in foreground use command "fg jobid" and for getting job id you use command "jobs", for killing that process find PID and use kill -9 PID command. This is indeed a good Unix Command interview questions because many of programmer not familiar with background process in UNIX.

5. How do you know if a remote host is alive or not?
You can check these by using either ping or telnet command in UNIX. This question is most asked in various Unix command Interview because its most basic networking test anybody wants to do it.

6. How do you see command line history in UNIX?
Very useful indeed, use history command along withgrep command in unix to find any relevant command you have already executed. Purpose of this Unix Command Interview Questions is probably to check how familiar candidate is from available tools in UNIX operation system.

7. How do you copy file from one host to other?
Many options but you can say by using "scp" command. You can also use rsync command to answer this UNIX interview question or even sftp would be ok.

8. How do you find which process is taking how much CPU?
By using "top" command in UNIX, there could be multiple follow-up UNIX command interview questions based upon response of this because “TOP” command has various interactive options to sort result based upon various parameter.

9. How do you check how much space left in current drive ?
By using "df" command in UNIX. For example "df -h ." will list how full your current drive is. This is part of anyone day to day activity so I think this Unix Interview question will be to check anyone who claims to working in UNIX but not really working on it.

10. What is the difference between Swapping and Paging?
Swapping:
Whole process is moved from the swap device to the main memory for execution. Process size must be less than or equal to the available main memory. It is easier to implementation and overhead to the system. Swapping systems does not handle the memory more flexibly as compared to the paging systems.
Paging:
Only the required memory pages are moved to main memory from the swap device for execution. Process size does not matter. Gives the concept of the virtual memory. It provides greater flexibility in mapping the virtual address space into the physical memory of the machine. Allows more number of processes to fit in the main memory simultaneously. Allows the greater process size than the available physical memory. Demand paging systems handle the memory more flexibly.
Intermediate UNIX Interview Questions Answers
1. What is difference between ps -ef and ps -auxwww?
This is indeed a good Unix Interview Command Question and I have faced this issue while ago where one culprit process was not visible by execute ps –ef command and we are wondering which process is holding the file.
ps -ef will omit process with very long command line while ps -auxwww will list those process as well.

2. How do you find how many cpu are in your system and there details?
By looking into file /etc/cpuinfo for example you can use below command:
cat /proc/cpuinfo

3. What is difference between HardLink and SoftLink in UNIX?
I have discussed this Unix Command Interview questions  in my blog post difference between Soft link and Hard link in Unix

4. What is Zombie process in UNIX? How do you find Zombie process in UNIX?
When a program forks and the child finishes before the parent, the kernel still keeps some of its information about the child in case the parent might need it - for example, the parent may need to check the child's exit status. To be able to get this information, the parent calls 'wait()'; In the interval between the child terminating and the parent calling 'wait()', the child is said to be a 'zombie' (If you do 'ps', the child will have a 'Z' in its status field to indicate this.)
Zombie : The process is dead but have not been removed from the process table.

5. What is "chmod" command? What do you understand by this line “r-- -w- --x?
 This explains the file permission of a particular file/directory.

6. There is a file some where in your system which contains word "UnixCommandInterviewQuestions” How will find that file in Unix?
By using find command in UNIX for details see here 10 example of using find command in Unix

7. In a file word UNIX is appearing many times? How will you count number?
grep -c "Unix" filename

8. How do you set environment variable which will be accessible form sub shell?
By using export   for example export count=1 will be available on all sub shell.

9. How do you check if a particular process is listening on a particular port on remote host?
By using telnet command for example “telnet hostname port”, if it able to successfully connect then some process is listening on that port. To read more about telnet read networking command in UNIX

10. How do you find whether your system is 32 bit or 64 bit ?
Either by using "uname -a" command or by using "arch" command.

Advanced UNIX Interview Questions and Answers
1. How do you find which processes are using a particular file?
By using lsofcommand in UNIX. It wills list down PID of all the process which is using a particular file.

2. How do you find which remote hosts are connecting to your host on a particular port say 10123?
By using netstat command execute netstat -a | grep "port" and it will list the entire host which is connected to this host on port 10123.

3. What is nohup in UNIX?
nohup is a POSIX command to ignore the HUP (hangup) signal. The HUP signal is, by convention, the way a terminal warns dependent processes of logout. Output that would normally go to the terminal goes to a file called nohup.out if it has not already been redirected.
4. What is ephemeral port in UNIX?
Ephemeral ports are port used by Operating system for client sockets. There is a specific range on which OS can open any port specified by ephemeral port range.

5. If one process is inserting data into your MySQL database? How will you check how many rows inserted into every second?
Purpose of this Unix Command Interview is asking about "watch" command in UNIX which is repeatedly execute command provided with specified delay.

6. There is a file Unix_Test.txt which contains words Unix, how will you replace all Unix to UNIX?
You can answer this Unix Command Interview question by using SED command in UNIX for example you can execute sed s/Unix/UNIX/g fileName.

7. You have a tab separated file which contains Name, Address and Phone Number, list down all Phone Number without there name and Addresses?
To answer this Unix Command Interview question you can either you AWK or CUT command here. CUT use tab as default separator so you can use
cut -f3 filename.

8. Your application home directory is full? How will you find which directory is taking how much space?
By using disk usage (DU) command in Unix for example du –sh . | grep G  will list down all the directory which has GIGS in Size.

9. How do you find for how many days your Server is up?
By using uptime command in UNIX

10. You have an IP address in your network how will you find hostname and vice versa?
This is a standard UNIX command interview question asked by everybody and I guess everybody knows its answer as well. By using nslookup command in UNIX, you can read more about Convert IP Address to hostname in Unix here.

I hope this UNIX command interview questions and answers would be useful for quick glance before going for any UNIX or Java job interview. Please share any interesting UNIX command interview you have come across and I will add into this list. If you are going for any Unix interview on brokerage firm or stock trading company or any Investment bank you can have a quick look here, though most of questions you might already know but its good to review it. if you like this you can see my other unix command tutorial for beginners as well 
10 Examples of tar command in UNIX and Linux
tar command in UNIX or Linux is one of the important command which provides archiving functionality in unix. we can use UNIX tar command to create compressed or uncompressed archive files by using either gzip or bzip2. In this unix tar command tutorial we will see examples of unix tar command related to basic archiving task e.g. How to create tar archive in Unix and Linux, How to extract files from tar archive in unix, How to view contents of tar file in Unix and Linux or how to update and existing tar file in Unix. Examples of tar command in unix are kept simple and easy to understand and master each of basic task using unix tar command.
I thought about this article when I written how to be productive in UNIX and UNIX command tutorial and Example for beginners but somehow it gets delayed and now I am happy to see this published. 
Ok enough introduction now let's see some real life examples of tar command in Unix and Linux:

How to use tar command in Unix
Using tar command in UNIX is simple and it has similar syntax like any other UNIX command. below is the syntax of tar command in UNIX:

tar  [options] [name of tar file to be created] [list of files and directories to be included]

This syntax of tar command is for easy understanding you can also check detailed syntax by using command "tar --usage" in unix machine.
tar command examples in Linux

Unix tar command line options
---------------------------------------
In this section of UNIX tar command tutorial we will see some useful options of tar command in Linux and we will use this options on our example to understand usage of this option along-with tar command.

c -- create, for creating tar file
v -- verbose, display name of files including,excluding from tar command
f -- following, used to point name of tar file to be created. it actually tells tar command that name of the file is "next" letter just after options.

x -- extract, for extracting files from tar file.
t -- for viewing content of tar file
z -- zip, tells tar command that create tar file using gzip.
j –- another compressing option tells tar command to use bzip2 for compression
r -- update or add file or directory in already existed .tar file
wildcards -- to specify patters in unix tar command
How to create tar archive or tar file in Unix
-------------------------------------------------------
Most of use use either winzip or winrar in windows machine to zipping or creating archives of content so when we move to command line interface like Unix or Linux we struggle without those tools. UNIX tar command is similar to winzip or winrar and you can use UNIX tar command to create both compressed or uncompressed (zipped) archives in UNIX.

In this example of tar command we will create tar file including all the files and directories or selected files and directories in Unix.

here is our directory

stock_trader@system:~/test ls -lrt
total 0
-r--r--r--  1 stock_trader Domain Users 0 Jul 15 11:42 equity
drwxrwxrwx+ 1 stock_trader Domain Users 0 Jul 15 14:33 stocks/
-r--r--r--  1 stock_trader Domain Users 0 Jul 15 15:30 currency

it has two files and one directory. now we will create a tar file with all these contents.

stock_trader@system:~/test tar -cvf trading.tar *
currency
equity
stocks/
stocks/online_stock_exchanges.txt

You see unix tar command is creating tar file with name "trading" with contents shown above. just to review here "-c" is used to create tar file "v" is used to be verbose and "f" is used to tell tar file name. You can see the tar file here

stock_trader@system:~/test ls -lrt
-r--r--r--  1 stock_trader Domain Users   0 Jul 15 11:42 equity
drwxrwxrwx+ 1 stock_trader Domain Users   0 Jul 15 14:33 stocks/
-r--r--r--  1 stock_trader Domain Users   0 Jul 15 15:30 currency
-rw-r--r--  1 stock_trader Domain Users 10K Jul 18 12:29 trading.tar


How to view contents of tar file in Unix or Linux
-------------------------------------------------------------
In earlier example of tar command in Unix or Linux we have created a uncompressed tar file called "trading.tar" now in this example we will see the actual content of that tar file.

stock_trader@system:~/test tar -tvf trading.tar
-r--r--r-- stock_trader/Domain Users 0 2011-07-15 15:30 currency
-r--r--r-- stock_trader/Domain Users 0 2011-07-15 11:42 equity
drwxrwxrwx stock_trader/Domain Users 0 2011-07-15 14:33 stocks/
-rwxrwxrwx stock_trader/Domain Users 0 2011-07-15 14:33 stocks/online_stock_exchanges.txt

here option "t" is used to display content of tar file in unix while options "v" and "f" are for "verbose" and "following". now you can clearly see that all the files which we wanted to be included in tar file are there.
 How to extract contents from a tar file in Unix
-----------------------------------------------------------
In this example of unix tar command we will see how to extract files or directories from a tar file in unix or Linux. We will use same trading.tar file created in earlier example. In this example we will create a directory "trading" and extract contents of trading.tar on that directory.

stock_trader@system:~/test/new ls -lrt
total 12K
-rw-r--r-- 1 stock_trader Domain Users 10K Jul 18 12:37 trading.tar

Now the directory is empty just trading.tar file

stock_trader@system:~/test/new tar -xvf trading.tar
currency
equity
stocks/
stocks/online_stock_exchanges.txt

This unix tar command will extract content of trading.tar in current directory. "x" is used for extracting. "v" is again for verbose and optional parameter in all our example.

stock_trader@system:~/test/new ls -lrt
-r--r--r--  1 stock_trader Domain Users   0 Jul 15 11:42 equity
drwxr-xr-x+ 1 stock_trader Domain Users   0 Jul 15 14:33 stocks/
-r--r--r--  1 stock_trader Domain Users   0 Jul 15 15:30 currency
-rw-r--r--  1 stock_trader Domain Users 10K Jul 18 12:37 trading.tar

Now you can see that all the files and directories which were included in tar file (stocks, equity and currency) has been extracted successfully.
How to create tar file in Unix with just specified contents
-------------------------------------------------------------------------
In above example of tar command in unix we have created tar file with all the contents available in current directory but we can also create tar file with selective content as shown in above example.

Now in our current directory we have both files and directories and we just want to include two files equity and currency in our tar file.

stock_trader@system:~/test ls -lrt
-r--r--r--  1 stock_trader Domain Users   0 Jul 15 11:42 equity
drwxrwxrwx+ 1 stock_trader Domain Users   0 Jul 15 14:33 stocks/
-r--r--r--  1 stock_trader Domain Users   0 Jul 15 15:30 currency
-rw-r--r--  1 stock_trader Domain Users 10K Jul 18 12:29 trading.tar
drwxr-xr-x+ 1 stock_trader Domain Users   0 Jul 18 12:46 new/

stock_trader@system:~/test tar -cvf equitytrading.tar equity currency
equity
currency

you see only two files equity and currency are included in our tar file.
How to create compressed tar file using gzip in Unix
------------------------------------------------------------------
In our previous example of Linux tar command we have created uncompressed tar file but most of the time we also need to create compressed tar file using gzip or bzip2. In this example of tar command in Linux we will learn about creating tar file using gzip.

stock_trader@system:~/test tar -zcvf trading.tgz *
currency
equity
stocks/
stocks/online_stock_exchanges.txt

you see creating tar file with gzip is very easy just use "-z" option and it will crate a gzip tar. .tgz or tar.gz extension is used to denote tar file with gzip. size of a compressed tar file is far less than uncompressed one.

stock_trader@system:~/test ls -lrt
-r--r--r--  1 stock_trader Domain Users   0 Jul 15 11:42 equity
drwxrwxrwx+ 1 stock_trader Domain Users   0 Jul 15 14:33 stocks/
-r--r--r--  1 stock_trader Domain Users   0 Jul 15 15:30 currency
-rw-r--r--  1 stock_trader Domain Users 219 Jul 18 13:01 trading.tgz

you can also view contents of gzip tar file by using earlier command in combination of "z" option and same is true for extracting content from gzip tar. below examples of unix tar command will show how to view contents of .tgz or .tar.gz file in unix.

stock_trader@system:~/test tar -ztvf trading.tgz
-r--r--r-- stock_trader/Domain Users 0 2011-07-15 15:30 currency
-r--r--r-- stock_trader/Domain Users 0 2011-07-15 11:42 equity
drwxrwxrwx stock_trader/Domain Users 0 2011-07-15 14:33 stocks/
-rwxrwxrwx stock_trader/Domain Users 0 2011-07-15 14:33 stocks/online_stock_exchanges.txt

Similarly we can extract contents from a .tgz or .tar.gz file as shown in below example of unix tar command :

stock_trader@system:~/test/new tar -zxvf trading.tgz
currency
equity
stocks/
stocks/online_stock_exchanges.txt

stock_trader@system:~/test/new ls -lrt
-r--r--r--  1 stock_trader Domain Users   0 Jul 15 11:42 equity
drwxr-xr-x+ 1 stock_trader Domain Users   0 Jul 15 14:33 stocks/
-r--r--r--  1 stock_trader Domain Users   0 Jul 15 15:30 currency
-rw-r--r--  1 stock_trader Domain Users 219 Jul 18 13:07 trading.tgz
How to create compressed tar file using bzip2 in Unix
--------------------------------------------------------------------
bzip2 is another compression option we have which we can use with unix tar command. its exactly similar with our earlier option of compressing using gzip but instead of "z" option we need to use "j" tar option to create bzip2 file as shown in below example of tar command in unix.

stock_trader@system:~/test tar -jcvf trading.tar.bz2 *
currency
equity
stocks/
stocks/online_stock_exchanges.txt

stock_trader@system:~/test ls -lrt trading.tar.bz2
-rw-r--r--  1 stock_trader Domain Users 593 Jul 18 13:11 trading.tar.bz2

.tar.bz2 is used to denote a tar file with bzip2 compression. for viewing contents of bzip2 tar file and extracting content we can use as shown inexample of UNIX tar command with gzip compression, just replace "-z" with "-j" for bzip2.
How to extract a particular file form .tar, .tar.gz or .tar.bzip2
----------------------------------------------------------------------------
In previous examples of extracting contetns from tar file we have extracted everything. sometime we just need a specific file from tar file. in this example of unix tar command we will extract a particular file from a tar archive.

stock_trader@system:~/test/new tar -jxvf trading.tar.bz2 equity
equity

its simple just specify name of file in this case its "equity". if your tar file is gzip one then use "-z" that's it. You can also use combination of grep and find command with tar to get more dynamic use.



How to extract group of file or directory from form .tar, .tar.gz or .tar.bzip2 in UNIX
---------------------------------------------------------------------------------------------------
you can extract a group of file form .tar, .tar.gz or .tar.bzip2 in Unix by specifying a matching pattern and using option "--wildcards". let's an example of tar command in unix with --wildcards

stock_trader@system:~/test/new tar -jxvf trading.tar.bz2 --wildcards "s*"
stocks/
stocks/online_stock_exchanges.txt

In above example of UNIX tar command we are extracting all files or directory which names starts with "s".

How to update existing tar file in Linux
----------------------------------------------
You can also update or append new files in already created tar file. option"-r" is used for that. Let’s see an example of updatating tar file using tar command in UNIX:

stock_trader@system:~/test tar -cvf sample.tar equity currency
equity
currency

stock_trader@system:~/test tar -rvf sample.tar gold
gold

stock_trader@system:~/test tar -tvf sample.tar
-r--r--r-- stock_trader/Domain Users 0 2011-07-15 11:42 equity
-r--r--r-- stock_trader/Domain Users 221 2011-07-18 13:10 currency
-rw-r--r-- stock_trader/Domain Users   0 2011-07-18 13:30 gold

Apparently can not update compressed archives.if you try to do you will get error "tar: Cannot update compressed archives"
Calculating size of tar file in UNIX
-------------------------------------------
Some time its useful to know the size of tar file before creating it and you can get it by using unix tar command as shown in below example:

stock_trader@system:~/test tar -cf - * | wc -c
20480

Size shown here is in KB and you can also calculate size for compressed tar file by using "z" for gzip and "j" for bzip2

2 Comments:

Unknown said...

Hi There,


What you’re saying is absolutely correct linux-interview-questions-answers, but this isn’t the exact situation everywhere. Where most smart folk work on a project - why can’t you do this the Boss asks :).


Great effort, I wish I saw it earlier. Would have saved my day :)


Cheers,
Preethi

padmini said...

Nice blog. Very informative. Thanks for sharing.
Linux Online Training
linux online course