Although the Linux operating system started as a hobby project by Linus Torvalds in 1991, it has grown to become a dominant player in powering supercomputers, web servers, smartphones, and many other technologies.
Linux is favored because of its stability, security, and effective use of resources. The use and demand for Linux have been growing over the years, and this trend will not stop anytime soon.
In 2021 Statista reported that 47% of professional developers use Linux. That same year the 9th Annual Open Source Jobs Report showed that Linux development and administration was the 2nd most in-demand skill by hiring managers and developers.
Skills in Linux are crucial in software development, system administration, DevOps, network administration, security engineering, and data science, among many others. Therefore, if you’re interested in any of those fields, it is likely that you’ll be interviewed about your skills in Linux.
To help you prepare, here are some of the top Linux interview questions you are likely to encounter and their answers.
What is Linux?
Answer: Linux is a free and open-source operating system developed in 1991 by Linux Torvalds and released under the GNU General Public License (GPL).
Why Use Linux?
Answer: There are several advantages to using the Linux operating system. First, Linux is highly secure and almost completely immune to malware attacks.
Also, Linux is highly stable, reliable, and rarely crashes, which is why many servers use Linux. Linux also comes with the advantage of being lightweight, consuming less RAM and memory, allowing it to be used even on older machines.
To cap it all, Linux is free, open source, regularly updated, and highly customizable, allowing users to tweak anything on the operating system to suit their needs. There are also different distributions that are optimized for hackers, others for programmers, and even general users.
What Are the Basic Components of Linux OS?
Answer: The Linux OS is made up of three basic components.
- Kernel: This is the core component of the Linux OS. It is the lowest layer in the Linux OS and directly interacts with a computer’s hardware. The kernel allocates and manages hardware resources such as the CPU, memory, and storage and provides services to other parts of the OS and programs running on the computer.
- Shell: This is a command-line interface that allows users to interact with the operating system and run programs. It acts as an interface between users and the kernel. It interprets users’ commands and executes them.
- Applications: These programs run on top of the operating system and provide specific functions such as web browsing, word processing, and playing music, among others.
The kernel, shell, and applications make up the Linux operating system.
Why Is Linux Considered More Secure?
Answer: A key factor that makes Linux secure is its open-source nature. A lot of developers are regularly looking at the Linux code, and when a bug or vulnerability is found, it is raised in the Linux forum and addressed in a matter of days.
Additionally, the manner in which Linux manages permissions and privileges ensures that root access is not given to any normal user by default.
This limits the damage that can be done by a virus. Its low usage numbers by everyday users also contribute to its security, as hackers prefer targeting operating systems with many users.
What is the Linux Kernel?
Answer: This is the lowest layer of the Linux operating system and its core component. The kernel sits between the hardware and other parts of the Linux OS. The kernel interacts with a computer’s hardware and manages hardware resources such as memory, CPU, and storage.
It also ensures that various tasks and processes are allocated the needed resources to run smoothly and efficiently.
What Is the Difference Between Linux and Unix?
Answer: Linux is a free and open-source operating system developed by Linus Torvalds, whereas Unix is a portable, proprietary, multitasking, and multi-user operating system developed by AT&T. Unix is not open-source, unlike Linux.
What is a GUI?
Answer: A Graphical user interface (GUI) is a user interface for an operating system that allows users to interact with it through graphical elements such as windows, icons, menus, pointers, and scroll bars (WIMPS).
The graphical elements are manipulated through pointing devices such as a mouse, stylus, trackball, or a finger on touch screens.
What is CLI?
Answer: A command-line interface (CLI) is a text-based user interface that allows users to interact with a computer system by entering commands as text strings in the terminal.
The computer system responds by executing the passed commands or displaying the requested information.
Explain Linux Shell.
Answer: The Linux shell is a program that interprets and executes commands entered through the command-line interface allowing users to interact with the OS and thus control their computers.
The shell receives commands in human-readable format, interprets them into a form that can be understood by the kernel, and then passes them to the kernel for execution.
Types of Shells in Linux.
Answer: There are several types of shells in Linux, each optimized for a particular use. The different types of shells in Linux include:
- The Bourne Shell is denoted as sh
- The Bourne Again Shell denoted as Bash
- The C Shell denoted as csh
- The KornShell denoted as ksh
- Z Shell denoted as zsh
- Friendly Interactive Shell denoted as fish
- Debian Almquist Shell denoted as dash
- TENEX C Shell denoted as tcsh
The above are some of the popular Linux shells.
What Is a Shell Script?
Answer: This is a text file with a sequence of commands to be executed by a Linux shell in the order in which they appear.
Shell scripts contain commands that would have otherwise had to be entered into the command-line interface one at a time. Shell scripts are useful in automating repetitive tasks or for running batch jobs.
Explain File Permissions in Linux.
Answer: There are three types of files permissions in Linux:
- Read (r): This permission allows a user to open and read the contents of a file or view the contents of a directory. However, a user can’t modify a directory’s file or contents.
- Write (w): A write permission on a file allows a user to modify the contents of a file. A write permission on a directory allows a user to add, remove and rename files in a directory.
- Execute (x): Allows a user to execute the file as a program. In Linux, a user cannot run a program unless they have an execute permission.
The above make up the file types in the Linux operating system.
How to Grant Permissions in Linux?
Answer: To grant permissions in Linux, the chmod command, which stands for ‘change mode,’ is used. chmod is used to change the permissions of a file or a directory.
Permission can be granted for the different sets of users, which include: group(g), user(u), others(o), and all users(a). Permissions for these users can be granted by adding(+) or subtracting(-) the read(r), write(w), and execute(x) permissions.
The syntax to change grant permissions is as follows:
chmod permissions file/directory-name
How to Find Where a File Is Stored in Linux?
Answer: To find where a file is stored in Linux, first, execute the command
to search for the file in the available directories. If a file with the entered fileName is found, you can execute the following:
to find an absolute path to the storage location of the file.
How to Delete a Directory in Linux?
Answer: To delete a directory in Linux, you can use the rmdir command. This command stands for “remove directory” and is used to delete empty directories.
For example, to delete an empty directory called test, execute:
To delete a non-empty directory, execute rm together with its -r flag,
rm -r sample
What Is Swap Space?
Answer: This is a reserved area on a hard drive, usually in the form of a partition, used by the Linux operating system when the RAM is full.
If more memory is needed and the RAM is full, inactive, or infrequently accessed, pages are removed from the RAM and stored in the swap space freeing up space for more processes in the RAM.
What is LILO?
Answer: The Linux Loader (LILO) is a bootloader for the Linux operating system. A bootloader is a program to load an operating system into memory and starts it after a computer is turned on.
Once a computer is turned on, LILO locates the Linux kernel and other required programs and loads them into memory. Once that is done, it starts the Linux kernel.
What is Redirection?
Answer: This is altering the source of the standard input, which is usually the keyboard, and the destinations of the standard output and standard error, which is usually the screen.
For instance, through redirection, the input can be gotten from a file, and also the output and error information can be saved to a file.
What Is Command Grouping?
Answer: This is a way to execute multiple commands collectively as a single unit. Grouping allows multiple commands to be executed as a single block.
Grouping often uses features such as redirection and piping to create more complex scripts and automate tasks.
What Is a Stateless Linux Server?
Answer: This server does not store any state information or data locally. All the data storage happens on the client side, and the server has no record of the data it serves.
What Is Network Bonding?
Answer: This is a technique to compile multiple network interfaces into a single interface. This increases network bandwidth, throughput, and backup connectivity, improving a network’s performance.
What is the grep Command?
Answer: The Global regular expression print (Grep) command is a command-line tool used to search for patterns in a file and displays all the file lines containing the patterns. The pattern searched for is a regular expression and typically a string of characters.
What are Daemons?
Answer: Daemons are utility programs that run in the background without a user’s intervention. Daemons perform tasks such as monitoring peripherals and performing system maintenance. Daemons ensure the OS is running smoothly.
What are Symbolic Links?
Answer: A symbolic link, also referred to as a symlink or a soft link, is a type of file in the Linux OS which points to another file or directory. It is the equivalent of a shortcut in the Windows operating system.
Symbolic links improve the accessibility of files that would have otherwise been difficult or inconvenient.
What are Environmental Variables?
Answer: These are dynamic variables set in the shell and are used to store information that programs need to run or configure their behaviour to suit users’ needs.
Examples of some environment variables include LANG, which stores the default language in a system. TEMP gives the directory used for temporary files and HOME, which shows the home directory of the current users, among others.
Differentiate Between Bash and dos Commands to Look at File Contents.
Answer: In the bash shell, the commands you can use to view file contents include:
- cat – prints out the content of the file to the screen
- nl – similar to cat, but it prepends line numbers to the displayed content
- less – reads the content of a file one page (screen) at a time
- head – outputs the first 10 lines of a file to the screen
- tail – outputs the last 10 lines of a file to the screen
In the dos shell, the following commands can be used to view file content:
- type – displays the contents of a file without modifying it
- more – displays the content of a file one screen at a time
The Bash and dos shells have different commands used to view the contents of files.
Name Some Linux Distributions.
Answer: Linux distributions are versions of Linux built upon the Linux shell that are packaged and distributed to users.
Some popular Linux distributions include Ubuntu, Fedora, Debian, CentOS, Arch Linux, Red Hat Enterprise Linux, and Mint Linux.
What are the Different Process States in Linux?
Answer: The main process states in Linux include:
- Running – a process is currently being executed by the CPU
- Sleeping – a process is waiting for resources that are currently unavailable
- Stopped – a process has been terminated by the processor or a signal
- Zombie – a process has been terminated, but its parent process has not yet cleared out its resources
The above make up the main process states in Linux.
What Are the Different Process Management System Calls in Linux?
Answer: The different process management system calls include:
- fork() – Used to create a new process
- kill() – used to send a signal to terminate a running process
- wait() – suspends execution of the calling process until a child process terminates
- exec() – loads a program into the current process and runs it
- exit() – terminates the execution of a program
The above are the main process management system calls in Linux.
How to Find the Status of a Process?
Answer: You can find the status of a process by executing the ‘ps’ command to see the current status of all the active processes in a Linux system.
To see more details about a particular process, execute the following:
ps -p <processID>
How to Stop a Running Process in Linux?
Answer: You can stop a running process in Linux by executing:
To kill a running process using its ID. You can also stop a running process by its name by executing:
How Does Case Sensitivity Affect Commands?
Answer: In the Linux OS, commands are case sensitive, meaning that the shell treats commands written in different cases as distinct and different.
For instance, the command ‘rmdir’ is not the same as ‘RMDIR’. In the Linux OS, command-line commands are usually written in lowercase.
What Is Command Used to Check How Much Memory Is Being Used by Linux?
Answer: The free command, when executed, displays the amount of used space and the free space in the system. Different flags can be used with the command to display different types of information.
What is ls Command?
Answer: This is a command to list a directory’s contents.
What is ps Command?
Answer: The ps command displays information about the currently active processes.
What is netstat Command?
Answer: This is a command used to show information relating to the network connections on the system. It displays information on the currently active network connections.
What is cp Command?
Answer: This is a command used to copy files and directories.
What is mkdir?
Answer: This is a command used to create directories in Linux.
What is cat Command?
Answer: This is a command used to view the contents of a file, create a new file, redirect the output of other commands, concatenate multiple files, and display the output on the screen.
This article on Linux interview questions and answers will help you ace that upcoming interview.
Best of luck! 👍