Top 50 Unix Interview Questions

1) What is UNIX?

It is a portable operating system that is designed for both efficient multi-tasking and mult-user functions. Its portability allows it to run on different hardware platforms. It was written is C and lets user do processing and control under a shell.

2) What are filters?

The term Filter is often used to refer to any program that can take input from standard input, perform some operation on that input, and write the results to standard output. A Filter is also any program that can be used between two other programs in a pipeline.

3) What is a typical syntax being followed when issuing commands in shell?

Typical command syntax under the UNIX shell follows the format:
Command [-argument] [-argument] [–argument] [file]

4) Is there a way to erase all files in the current directory, including all its sub-directories, using only one command?

Yes, that is possible. Use “rm –r *” for this purpose. The rm command is for deleting files. The –r option will erase directories and subdirectories, including files within. The asterisk represents all entries.

5) What is the chief difference between the –v and –x option s to set?

The –v option echoes each command before arguments and variables have been substituted for; the –x option echoes the commands after substitution has taken place.

6) What is Kernel?

Kernel is the UNIX operating system. It is the master program that controls the computer’s resources, allotting them to different users and to different tasks. However, the kernel doesn’t deal directly with a user. Instead, it starts up a separate, interactive program, called a shell, for each user when he/she logs on.

7) What is Shell?

A shell acts as an interface between the user and the system. As a command interpreter, the shell takes commands and sets them up for execution.

8 ) What are the key features of the Korn Shell?

– history mechanism with built-in editor that simulates emacs or vi
– built-in integer arithmetic
– string manipulation capabilities
– command aliasing
– arrays
– job control

9) What are some common shells and what are their indicators?

sh – Bourne shell
csh – C SHell
bash – Bourne Again Shell
tcsh – enhanced C Shell
zsh – Z SHell
ksh – Korn SHell

10) Differentiate multiuser from multitask.

Multiuser means that more than one person can use the computer at the same time. Multitask means that even a single user can have the computer work on more than one task or program at the same time.

11) What is command substitution?

Command substitution is one of the steps being performed every time commands are processed by the shell. Commands that are enclosed in backquotes are executed by the shell. This will then replace the standard output of the command and displayed on the command line.

12) What is a directory?

Every file is assigned to a directory. A directory is a specialized form of file that maintains a list of all files in it.

13) What is inode?

An inode is an entry created on a section of the disk set aside for a file system. The inode contains nearly all there is to know about a file, which includes the location on the disk where the file starts, the size of the file, when the file was last used, when the file was last changed, what the various read, write and execute permissions are, who owns the file, and other information.

14) You have a file called tonky in the directory honky. Later you add new material to tonky. What changes take place in the directory, inode, and file?

The directory entry is unchanged, since the name and inode number remain unchanged. In the inode file, the file size, time of last access, and time of last modification are updated. In the file itself, the new material is added.

15) Describe file systems in UNIX

Understanding file systems in UNIX has to do with knowing how files and inodes are stored on a system. What happens is that a disk or portion of a disk is set aside to store files and the inode entries. The entire functional unit is referred to as a file system.

16) Differentiate relative path from absolute path.

Relative path refers to the path relative to the current path. Absolute path, on the other hand, refers to the exact path as referenced from the root directory.

17) Explain the importance of directories in a UNIX system

Files in a directory can actually be a directory itself; it would be called a subdirectory of the original. This capability makes it possible to develop a tree-like structure of directories and files, which is crucial in maintaining an organizational scheme.

18) Briefly describe the Shell’s responsibilities

– program execution
– variable and file name substitution
– I/O redirection
– pipeline hookup
– environment control
– interpreted programming language

19) What are shell variables?

Shell variables are a combination of a name ( identifier), and an assigned value, which exist within the shell. These variables may have default values, or whose values can be manually set using the appropriate assignment command. Examples of shell variable are PATH, TERM and HOME.

20) What are the differences among a system call, a library function, and a UNIX command?

A system call is part of the programming for the kernel. A library function is a program that is not part of the kernel but which is available to users of the system. UNIX commands, however, are stand-alone programs; they may incorporate both system calls and library functions in their programming.

21) What is Bash Shell?

It is a free shell designed to work on the UNIX system. Being the default shell for most UNIX-based systems, it combines features that are available both in the C and Korn Shell.

22) Enumerate some of the most commonly used network commands in UNIX

– telnet – used for remote login
– ping – an echo request for testing connectivity
– su – user switching command
– ftp – file transfer protocol used for copying files
– finger – information gathering command

23) Differentiate cmp command from diff command.

The cmp command is used mainly to compare two files byte by byte, after which the first encountered mismatch is shown. On the other hand, the diff command is used to indicate the changes that is to be made in order to make the two files identical to each other.

24) What is the use of -l when listing a directory?

-l, which is normally used in listing command like ls, is used to show files in a long format, one file per line. Long format refers to additional information that is associated with the file, such as ownership, permissions, data and filesize.

25) What is piping?

Piping, represented by the pipe character “|”, is used to combine two or more commands together. The output of the first command serves as input the next command, and so on.

26) What is a superuser?

A superuser is a special type user who has open access to all files and commands on a system. Note that the superuser’s login is usually root, and is protected by a so-called root password.

27) How do you determine and set the path in UNIX?

Each time you enter a command, a variable named PATH or path will define in which directory the shell will search for that command. In cases wherein an error message was returned, the reason maybe that the command was not in your path, or that the command itself does not exist. You can also manually set the path using the “set path = [directory path]” command.

28) Is it possible to see information about a process while it is being executed?

Every process is uniquely identified by a process identifier. It is possible to view details and status regarding a process by using the ps command.

29) What is the standard convention being followed when naming files in UNIX?

One important rule when naming files is that characters that have special meaning are not allowed, such as * / & and %. A directory, being a special type of file, follows the same naming convention as that of files. Letters and numbers are used, along with characters like underscore and dot characters.

30) Why is it that it is not advisable to use root as the default login?

The root account is very important, and with abusive usage, can easily lead to system damage. That’s because safeguards that normally apply to user accounts are not applicable to the root account.

31) What is the use of the tee command?

The tee command does two things: one is to get data from the standard input and send it to standard output; the second is that it redirects a copy of that input data into a file that was specified.

32) Differentiate cat command from more command.

When using the cat command to display file contents, large data that does not fit on the screen would scroll off without pausing, therefore making it difficult to view. On the other hand, using the more command is more appropriate in such cases because it will display file contents one screen page at a time.

33) What is parsing?

Parsing is the process of breaking up of a command line into words. This is made possible by using delimiters and spaces. In the event that tabs or multiple spaces are part of the command, these are eventually replaced by a single space.

34) What is pid?

Pid is short for Process ID. It is used primarily to identify every process that runs on the UNIX system, whether it runs on the foreground or runs at the background. Every pid is considered unique.

35) How does the system know where one command ends and another begins?

Normally, the newline character, which is generated by the ENTER or RETURN key, acts as the signpost. However, the semicolon and the ampersand characters can also serve as command terminators.

37) What is wild-card interpretation?

When a command line contains wild-card characters such as ‘*’ or ‘?’, these are replaced by the shell with a sorted list of files whose pattern matches the input command. Wild-card characters are used to setup a list of files for processing, instead of having it specified one at a time.

38) What is the output of this command? $who | sort –logfile > newfile

In this command, the output from the command “who” becomes the input to the “sort” command. At the same time, “sort” opens logfile, arranges it together with the output from the command “who”, and places the final sorted output to the file newfile.

39) How do you switch from any user type to a super user type?

In order to switch from any user type to a superuser, you use the su command. However, you will be asked to key in the correct superuser password before full access privileges are granted to you.

40) What would be the effect of changing the value of PATH to:
.:/usr/della/bin: /bin: /usr/bin

This would cause the shell to look in the /usr/della/bin directory after looking in the current directory and before looking in the /bin directory when searching for a command file.

41) Write a command that will display files in the current directory, in a colored, long format.

Answer: ls -l –color

42) Write a command that will find all text files in a directory such that it does not contain the word “amazing” in any form (that is, it must include the words Amazing, AMAZING, or aMAZINg)



43) Write a command that will output the sorted contents of a file named IN.TXT and place the output in another file named OUT.TXT, while at the same time excluding duplicate entries.



44) Write a command that will allow a UNIX system to shut down in 15 minutes, after which it will perform a reboot.



45) What command will change your prompt to MYPROMPT: ?

To change a prompt, we use the PS1 command, such as this:


46) What does this command do? cat food 1 > kitty

Answer: it redirects the output of cat food into the file kitty; the command is the same as:
cat food > kitty

47) What is wrong with this interactive shell script?

echo What month is this?
read $month
echo $month is as good a month as any.

Answer: Initially, the question mark should be escaped (\?) so that it is not interpreted as a shell metacharacter. Second, it should be read month, not read $month.

48) Write a shell script that requests the user’s age and then echoes it, along with some suitable comment.



49) Write a script that prints out date information in this order: time, day of week, day number, month, year
(sample output: 17:34:51 PDT Sun 12 Feb 2012)



50) Write a script that will show the following as output:
Give me a U!
Give ma a N!
Give me a I!
Give me a X!

for i in U N I X


Unix Quiz

%%FORM%%Congratulations - you have completed Unix Quiz.You scored %%SCORE%% out of %%TOTAL%%.Your performance has been rated as %%RATING%%

UNIX Quiz Results

  • mTouch Quiz Populated Fields

    mTouch Quiz will automatically populate the fields below. Feel Free to add additional fields for the Quiz Taker to complete using the "Add Fields" options to the right.
  • The name of the quiz
  • The number of correct answers. This has the same value as the %%SCORE%% Variable on the Final Screen.
  • The total number of questions. This has the same value as the %%TOTAL%% Variable on the Final Screen.
  • Correct answer percentage. This has the same value as the %%PERCENTAGE%% Variable on the Final Screen.
  • Number of wrong answers. This has the same value as the %%WRONG_ANSWERS%% Variable on the Final Screen.
  • Time allowed (Requires timer add on). This has the same value as the %%TIME_ALLOWED%% Variable on the Final Screen.
  • Time used (Requires timer add on). This has the same value as the %%TIME_USED%% Variable on the Final Screen.
Your answers are highlighted below.
Shaded items are complete.

blog comments powered by Disqus