0% found this document useful (0 votes)
0 views

TOP Linux Commands

The document lists the top 300 Linux commands commonly asked in interviews, providing a brief description of each command's functionality. It covers a wide range of commands related to file management, system monitoring, process control, networking, and permissions. This comprehensive guide serves as a valuable resource for individuals preparing for Linux-related job interviews.

Uploaded by

nagaraj.shinde77
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views

TOP Linux Commands

The document lists the top 300 Linux commands commonly asked in interviews, providing a brief description of each command's functionality. It covers a wide range of commands related to file management, system monitoring, process control, networking, and permissions. This comprehensive guide serves as a valuable resource for individuals preparing for Linux-related job interviews.

Uploaded by

nagaraj.shinde77
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

DevOps Shack

Top 300 Linux Commands Asked in Interviews ​

1.​ ls – Lists files and directories in the current directory.​

2.​ ls -al – Lists all files, including hidden ones, with detailed information.​

3.​ pwd – Prints the current working directory.​

4.​ cd /path/to/directory – Changes the directory to the specified


path.
5.​ cd .. – Moves up one directory level.​

6.​ mkdir new_directory – Creates a new directory.​

7.​ rmdir empty_directory – Removes an empty directory.​

8.​ rm -rf directory_name – Deletes a directory and its contents


recursively.​

9.​ touch file.txt – Creates a new empty file.​

10.​cat file.txt – Displays the contents of a file.​





11.​tac file.txt – Displays the contents of a file in reverse order.​

12.​nano file.txt – Opens a file in the nano text editor.​

13.​vim file.txt – Opens a file in the Vim editor.​

14.​vi file.txt – Opens a file in the vi editor.​

15.​echo "Hello, World!" – Prints text to the terminal.​

16.​echo "Hello" > file.txt – Writes text to a file (overwrites


existing content).​

17.​echo "Hello" >> file.txt – Appends text to a file.​

18.​cp source.txt destination.txt – Copies a file.​

19.​cp -r source_directory destination_directory – Copies a


directory recursively.​

20.​mv old_name.txt new_name.txt – Renames a file.​

21.​mv file.txt /path/to/destination/ – Moves a file to another


directory.​

22.​rm file.txt – Deletes a file.​






23.​find / -name "file.txt" – Searches for a file by name starting


from the root directory.​

24.​find . -type f -name "*.log" – Finds all log files in the current
directory.​

25.​locate file.txt – Finds the location of a file using a pre-built index.​

26.​updatedb – Updates the locate command's index.​

27.​grep "search_term" file.txt – Searches for a term inside a file.​

28.​grep -i "search_term" file.txt – Case-insensitive search.​

29.​grep -r "search_term" /path/to/search/ – Searches


recursively in a directory.​

30.​awk '{print $1}' file.txt – Prints the first column of a file.​

31.​awk -F: '{print $1}' /etc/passwd – Prints the first field of the
/etc/passwd file, separated by colons.​

32.​sed 's/old/new/g' file.txt – Replaces all occurrences of "old"


with "new" in a file.​

33.​sed -i 's/old/new/g' file.txt – Replaces text in a file in place.​

34.​sort file.txt – Sorts lines in a file.​




35.​sort -r file.txt – Sorts lines in reverse order.​

36.​uniq file.txt – Removes duplicate lines from a sorted file.​

37.​wc -l file.txt – Counts the number of lines in a file.​

38.​wc -w file.txt – Counts the number of words in a file.​

39.​wc -c file.txt – Counts the number of bytes in a file.​

40.​head -n 10 file.txt – Displays the first 10 lines of a file.​

41.​tail -n 10 file.txt – Displays the last 10 lines of a file.​

42.​tail -f file.txt – Continuously monitors a file for changes.​

43.​df -h – Shows disk space usage in a human-readable format.​

44.​du -sh directory_name – Shows the size of a directory.​

45.​free -m – Displays memory usage in megabytes.​

46.​uptime – Shows system uptime and load average.​

47.​who – Displays currently logged-in users.​

48.​whoami – Displays the current logged-in username.​




49.​id – Displays the user ID (UID) and group ID (GID).​

50.​groups username – Displays groups a user belongs to.​

51.​ps aux – Displays running processes.​

52.​top – Displays real-time process information.​

53.​htop – An interactive process viewer (if installed).​

54.​kill -9 PID – Forcefully terminates a process.​

55.​pkill process_name – Kills processes by name.​

56.​killall process_name – Kills all processes with a specific name.​

57.​jobs – Lists background jobs.​

58.​bg – Resumes a background job.​

59.​fg – Brings a background job to the foreground.​

60.​nohup command & – Runs a command in the background, ignoring


hangups.​

61.​crontab -e – Edits the crontab file to schedule tasks.​






62.​crontab -l – Lists scheduled cron jobs.​

63.​crontab -r – Removes all scheduled cron jobs.​

64.​history – Displays command history.​

65.​!100 – Runs command number 100 from history.​

66.​chmod 755 file.sh – Changes file permissions.​

67.​chown user:group file.txt – Changes file ownership.​

68.​chgrp group_name file.txt – Changes file group ownership.​

69.​ls -l | grep "^d" – Lists only directories.​

70.​df -i – Shows inode usage.​

71.​du -a – Shows size of all files and directories.​

72.​tar -cvf archive.tar directory/ – Creates a tar archive.​

73.​tar -xvf archive.tar – Extracts a tar archive.​

74.​tar -czvf archive.tar.gz directory/ – Creates a


compressed tar archive.​




75.​tar -xzvf archive.tar.gz – Extracts a compressed tar archive.​

76.​zip -r archive.zip directory/ – Compresses a directory into a


zip file.​

77.​unzip archive.zip – Extracts a zip file.​

78.​scp file.txt user@remote:/path/ – Securely copies a file to a


remote server.​

79.​scp -r directory user@remote:/path/ – Securely copies a


directory to a remote server.​

80.​rsync -av source/ destination/ – Synchronizes directories.​

81.​wget URL – Downloads a file from a URL.​

82.​curl -O URL – Downloads a file from a URL.​

83.​curl -I URL – Retrieves HTTP headers from a URL.​

84.​ping google.com – Checks network connectivity.​

85.​traceroute google.com – Traces network route to a server.​

86.​netstat -tulnp – Shows network connections and listening ports.​






87.​ss -tulnp – Displays active connections (alternative to netstat).​

88.​ip a – Shows IP addresses.​

89.​ifconfig – Displays network interfaces (deprecated).​

90.​hostname – Displays the system hostname.​

91.​uptime – Shows system uptime.​

92.​uname -a – Displays system information.​

93.​lscpu – Shows CPU details.​

94.​lsblk – Lists information about storage devices.​

95.​blkid – Shows UUIDs of partitions.​

96.​mount /dev/sdb1 /mnt – Mounts a device.​

97.​umount /mnt – Unmounts a device.​

98.​df -Th – Displays file system types and disk usage.​

99.​fdisk -l – Lists partition tables.​

100.​ mkfs.ext4 /dev/sdb1 – Formats a partition with ext4.​




101.​ fsck /dev/sdb1 – Checks a filesystem for errors.​

102.​ echo $? – Displays the exit status of the last command.​

103.​ time command – Measures command execution time.​

104.​ date – Displays the current date and time.​

105.​ cal – Displays a calendar.​

106.​ env – Displays environment variables.​

107.​ export VAR=value – Sets an environment variable.​

108.​ unset VAR – Unsets an environment variable.​

109.​ alias ll='ls -al' – Creates a command alias.​

110.​ unalias ll – Removes an alias.​

111.​ basename /path/to/file.txt – Extracts the filename from a


given path.​

112.​ dirname /path/to/file.txt – Extracts the directory path from


a given file path.​

113.​ diff file1.txt file2.txt – Compares two files line by line.​





114.​ cmp file1.txt file2.txt – Compares two files byte by byte.​

115.​ stat file.txt – Displays detailed information about a file.​

116.​ file file.txt – Determines the file type.​

117.​ cut -d':' -f1 /etc/passwd – Extracts the first field from a
colon-separated file.​

118.​ paste file1.txt file2.txt – Merges two files line by line.​

119.​ tee file.txt – Writes output to both a file and the standard
output.​

120.​ yes "text" – Continuously outputs "text" until interrupted.​

121.​ watch -n 5 df -h – Runs a command every 5 seconds.​

122.​ lsattr – Lists file attributes.​

123.​ chattr +i file.txt – Makes a file immutable (cannot be


modified or deleted).​

124.​ chattr -i file.txt – Removes immutability from a file.​

125.​ nohup command & – Runs a command in the background and


ignores hangups.​



126.​ jobs – Lists active background jobs.​

127.​ fg %1 – Brings job number 1 to the foreground.​

128.​ bg %1 – Resumes a background job.​

129.​ disown -h %1 – Removes a job from the shell’s job table.​

130.​ xargs – Passes standard input as command arguments.​

131.​ ls | xargs rm – Deletes all files in a directory.​

132.​ echo "file1 file2" | xargs rm – Deletes specified files.​

133.​ uptime -p – Shows how long the system has been running.​

134.​ uptime -s – Shows the system start time.​

135.​ who -b – Displays the last system boot time.​

136.​ last reboot – Shows the system reboot history.​

137.​ dmesg | tail – Displays the latest kernel messages.​

138.​ dmesg | grep error – Searches the kernel logs for errors.​

139.​ journalctl -xe – Views system logs.​




140.​ journalctl -f – Monitors logs in real time.​

141.​ systemctl status service_name – Checks the status of a


systemd service.​

142.​ systemctl start service_name – Starts a systemd service.​

143.​ systemctl stop service_name – Stops a systemd service.​

144.​ systemctl restart service_name – Restarts a systemd


service.​

145.​ systemctl enable service_name – Enables a service to start


on boot.​

146.​ systemctl disable service_name – Disables a service from


starting on boot.​

147.​ systemctl list-units --type=service – Lists all active


system services.​

148.​ systemctl daemon-reload – Reloads systemd configuration


files.​

149.​ service service_name status – Checks the status of a SysV


service.​

150.​ service service_name start – Starts a SysV service.​




151.​ service service_name stop – Stops a SysV service.​

152.​ chkconfig --list – Lists services managed by SysV init.​

153.​ chkconfig service_name on – Enables a service on boot using


SysV.​

154.​ chkconfig service_name off – Disables a service from boot


using SysV.​

155.​ modprobe module_name – Loads a kernel module.​

156.​ lsmod – Lists currently loaded kernel modules.​

157.​ rmmod module_name – Removes a kernel module.​

158.​ insmod module.ko – Inserts a module into the kernel.​

159.​ uname -r – Displays the currently running kernel version.​

160.​ cat /proc/version – Shows kernel version details.​

161.​ hostnamectl – Displays and modifies the hostname.​

162.​ nmcli device status – Shows network interfaces and their


statuses.​

163.​ nmcli connection show – Lists saved network connections.​




164.​ nmcli connection up eth0 – Brings up a network interface.​

165.​ nmcli connection down eth0 – Brings down a network


interface.​

166.​ dhclient -r – Releases the DHCP lease.​

167.​ dhclient eth0 – Obtains a new DHCP lease.​

168.​ ip link set eth0 up – Brings up an interface.​

169.​ ip link set eth0 down – Brings down an interface.​

170.​ tcpdump -i eth0 – Captures network packets on an interface.​

171.​ tcpdump -nn port 80 – Captures HTTP traffic.​

172.​ tcpdump -c 10 -i eth0 – Captures 10 packets and exits.​

173.​ iptables -L – Lists firewall rules.​

174.​ iptables -A INPUT -p tcp --dport 22 -j ACCEPT –


Allows SSH access.​

175.​ iptables -A INPUT -p tcp --dport 80 -j DROP – Blocks


HTTP access.​

176.​ iptables -D INPUT -p tcp --dport 80 -j DROP – ​






Removes a firewall rule.​

177.​ firewall-cmd --list-all – Lists active firewall rules


(Firewalld).​

178.​ firewall-cmd --permanent --add-port=443/tcp – Opens


port 443 permanently.​

179.​ firewall-cmd --reload – Reloads the firewall rules.​

180.​ ufw status – Checks UFW firewall status.​

181.​ ufw allow 22/tcp – Allows SSH access.​

182.​ ufw deny 80/tcp – Blocks HTTP access.​

183.​ ufw delete allow 22/tcp – Removes an allowed rule.​

184.​ df -T – Displays filesystem type.​

185.​ ls -lh – Lists files with human-readable sizes.​

186.​ du -ch – Shows total disk usage in human-readable format.​

187.​ htop – Interactive process monitoring.​

188.​ top -o %MEM – Sorts processes by memory usage.​





189.​ lsof -i :80 – Lists processes using port 80.​

190.​ strace -c ls – Traces system calls used by a command.​

191.​ strace -e open ls – Shows file open system calls used by ls.​

192.​ tcpdump -XX – Captures packets with hex and ASCII output.​

193.​ watch -d -n 5 free -m – Monitors memory usage every 5


seconds.​

194.​ iotop – Monitors disk I/O usage by processes.​

195.​ lsusb – Lists USB devices.​

196.​ lspci – Lists PCI devices.​

197.​ uptime -p – Shows how long the system has been running in a
human-friendly format.​

198.​ dmidecode -t memory – Displays RAM information.​

199.​ mpstat 1 – Displays CPU usage statistics.​

200.​ iostat -c 2 5 – Shows CPU statistics every 2 seconds for 5


iterations.​

201.​ vmstat 1 5 – Displays system performance statistics every second ​






for 5 iterations.​

202.​ sar -u 5 3 – Reports CPU usage every 5 seconds for 3 iterations.​

203.​ sar -r 5 3 – Reports memory usage every 5 seconds for 3


iterations.​

204.​ uptime -s – Displays system startup time.​

205.​ iotop -o – Shows processes doing the most disk I/O.​

206.​ dstat – Displays system resource usage dynamically.​

207.​ mpstat -P ALL 5 – Displays CPU usage for all cores every 5
seconds.​

208.​ nice -n 10 command – Runs a command with lower priority.​

209.​ renice -n 10 -p PID – Changes priority of an existing process.​

210.​ ulimit -a – Shows system resource limits.​

211.​ ulimit -n 10240 – Changes the maximum number of open file


descriptors.​

212.​ getfacl file.txt – Displays ACL (Access Control List) permissions


of a file.​



213.​ setfacl -m u:username:rwx file.txt – Grants a user


additional file permissions.​

214.​ setfacl -x u:username file.txt – Removes ACL


permissions for a user.​

215.​ getsebool -a – Lists all SELinux booleans and their statuses.​

216.​ setsebool -P httpd_can_network_connect on – Allows


Apache to make network connections in SELinux.​

217.​ semanage fcontext -l – Lists default SELinux file contexts.​

218.​ restorecon -Rv /var/www/html – Restores SELinux context for


files.​

219.​ getenforce – Displays the current SELinux mode


(Enforcing/Permissive/Disabled).​

220.​ setenforce 0 – Switches SELinux to permissive mode.​

221.​ auditctl -l – Lists all active audit rules.​

222.​ ausearch -m avc – Searches SELinux denial messages.​

223.​ ausearch -m USER_LOGIN – Searches authentication logs using


audit logs.​



224.​ modinfo module_name – Displays information about a kernel


module.​

225.​ modprobe -r module_name – Unloads a kernel module.​

226.​ ls -Z – Displays SELinux contexts of files.​

227.​ ps -eZ – Displays SELinux contexts of processes.​

228.​ firewall-cmd --list-services – Lists allowed services in


Firewalld.​

229.​ firewall-cmd --permanent --add-service=https –


Allows HTTPS traffic permanently.​

230.​ firewall-cmd --permanent --remove-service=https –


Removes HTTPS access.​

231.​ firewall-cmd --reload – Reloads Firewalld rules.​

232.​ ufw enable – Enables UFW firewall.​

233.​ ufw disable – Disables UFW firewall.​

234.​ ufw status numbered – Displays UFW rules with numbering.​

235.​ ufw delete 2 – Deletes UFW rule number 2.​





236.​ iptables -P INPUT DROP – Sets default INPUT policy to DROP.​

237.​ iptables -P FORWARD DROP – Drops forwarded packets by


default.​

238.​ iptables -P OUTPUT ACCEPT – Allows all outgoing traffic by


default.​

239.​ iptables -A INPUT -p tcp --dport 22 -j ACCEPT –


Allows SSH access.​

240.​ iptables-save > rules.v4 – Saves iptables rules to a file.​

241.​ iptables-restore < rules.v4 – Restores iptables rules from a


file.​

242.​ lsof -p PID – Lists open files by a process.​

243.​ lsof -i :443 – Displays processes using port 443.​

244.​ lsof /path/to/file – Shows processes accessing a specific file.​

245.​ strace -o trace.log -p PID – Traces system calls of a running


process.​

246.​ strace -c ls – Summarizes system calls used by a command.​

247.​ tcpdump -i eth0 – Captures network packets on interface eth0.​




248.​ tcpdump -nn -s0 -X -i eth0 port 80 – Captures and


displays raw HTTP traffic.​

249.​ nc -zv google.com 443 – Checks if port 443 is open on


google.com.​

250.​ nc -lvp 1234 – Starts a netcat listener on port 1234.​

251.​ rsync -avz /src/ user@remote:/dest/ – Syncs files


securely over SSH.​

252.​ rsync -a --delete /src/ /dest/ – Synchronizes directories


and removes extra files.​

253.​ scp -P 2222 file.txt user@remote:/path/ – Transfers a


file using a non-default SSH port.​

254.​ ssh user@remote -p 2222 – Connects to a server using a


different SSH port.​

255.​ ssh-keygen -t rsa -b 4096 -C


"[email protected]" – Generates an SSH key.​

256.​ ssh-copy-id user@remote – Copies the SSH key to a remote


host.​

257.​ ssh-agent bash – Starts an SSH agent session.​





258.​ eval "$(ssh-agent -s)" – Initializes the SSH agent.​

259.​ chmod 600 ~/.ssh/id_rsa – Sets secure permissions on an SSH


private key.​

260.​ chage -l username – Displays password expiration details for a


user.​

261.​ chage -M 90 username – Sets the password to expire every 90


days.​

262.​ passwd username – Changes a user's password.​

263.​ useradd -m -s /bin/bash newuser – Creates a new user with


a home directory.​

264.​ usermod -aG sudo username – Adds a user to the sudo group.​

265.​ deluser username – Removes a user.​

266.​ groupadd newgroup – Creates a new group.​

267.​ usermod -G groupname username – Adds a user to a group.​

268.​ groupdel groupname – Deletes a group.​

269.​ crontab -e – Opens the user's crontab for editing.​





270.​ crontab -l – Lists scheduled cron jobs.​

271.​ crontab -r – Removes all cron jobs for a user.​

272.​ echo "0 2 * * * /path/to/script.sh" | crontab - –


Schedules a cron job to run a script at 2 AM daily.​

273.​ at now + 10 minutes – Schedules a command to run in 10


minutes.​

274.​ at -l – Lists pending scheduled jobs.​

275.​ systemctl list-timers – Lists active systemd timers.​

276.​ timedatectl – Displays system time settings.​

277.​ timedatectl set-timezone America/New_York – Changes


system timezone.​

278.​ hwclock --systohc – Synchronizes hardware clock with system


clock.​

279.​ date "+%Y-%m-%d %H:%M:%S" – Displays date and time in a


specific format.​

280.​ find /var/log -type f -mtime +30 -delete – Deletes log


files older than 30 days.​



281.​ journalctl --vacuum-time=30d – Removes journal logs older


than 30 days.​

282.​ du -ah /var/log | sort -rh | head -10 – Lists the 10


largest log files.​

283.​ logrotate -d /etc/logrotate.conf – Tests log rotation


configuration.​

284.​ fsck -y /dev/sda1 – Checks and repairs a filesystem.​

285.​ tune2fs -m 5 /dev/sda1 – Reserves 5% of space for root user.​

286.​ blkid – Lists partitions and their UUIDs.​

287.​ mount -o remount,rw / – Remounts the root filesystem as


read/write.​

288.​ mkfs.ext4 /dev/sdb1 – Formats a partition with ext4.​

289.​ tune2fs -c 100 /dev/sda1 – Forces a filesystem check every


100 mounts.​

290.​ swapoff -a && swapon -a – Restarts the swap space.​

291.​ free -h – Displays RAM and swap usage in human-readable format.​

292.​ grep -i error /var/log/syslog – Searches syslog for errors.​




293.​ dmidecode -t memory – Displays memory module details.​

294.​ systemctl poweroff – Shuts down the system.​

295.​ systemctl reboot – Reboots the system.​

296.​ shutdown -h now – Immediately shuts down the system.​

297.​ shutdown -r +10 – Reboots the system in 10 minutes.​

298.​ wall "System maintenance in 5 minutes" – Broadcasts a


message to all users.​

299.​ uptime – Displays system uptime and load average.​

300.​ exit – Logs out of the shell session.

You might also like