DEV Community

Cover image for 🐧 20 Most Used Linux Commands Every Developer Should Know
Farhad Rahimi Klie
Farhad Rahimi Klie

Posted on

🐧 20 Most Used Linux Commands Every Developer Should Know

Whether you’re a backend engineer, DevOps developer, system administrator, or just someone trying to master the terminal, understanding Linux commands is essential.
These 20 commands are the core tools you will use daily across development, automation, and server management.

Let’s dive in! 🚀

1. pwd — Print Working Directory

Shows the absolute path of your current directory.

pwd
Enter fullscreen mode Exit fullscreen mode

2. ls — List Files

Lists files and directories.

ls
ls -l        # long format
ls -a        # show hidden files
ls -lh       # human-readable sizes
Enter fullscreen mode Exit fullscreen mode

3. cd — Change Directory

Navigate between directories.

cd /path/to/folder
cd ~      # go to home directory
cd ..     # go back one directory
Enter fullscreen mode Exit fullscreen mode

4. mkdir — Make Directories

Create new folders.

mkdir project
mkdir -p parent/child/grandchild
Enter fullscreen mode Exit fullscreen mode

5. rm — Remove Files/Folders

Delete files or directories.

rm file.txt
rm -r folder/
rm -rf force_delete/
Enter fullscreen mode Exit fullscreen mode

⚠️ Use -rf with caution!

6. cp — Copy Files/Folders

Copy files or folders.

cp file.txt backup.txt
cp -r project/ project_backup/
Enter fullscreen mode Exit fullscreen mode

7. mv — Move/Rename Files

Move or rename items.

mv a.txt b.txt
mv file.txt /other/location/
Enter fullscreen mode Exit fullscreen mode

8. touch — Create Empty Files

Create new empty files.

touch index.html
Enter fullscreen mode Exit fullscreen mode

9. cat — View File Content

Prints file contents.

cat file.txt
Enter fullscreen mode Exit fullscreen mode

10. less — View Large Files

Scroll file content interactively.

less biglog.log
Enter fullscreen mode Exit fullscreen mode

11. head & tail — View File Start/End

View the beginning or end of files.

head -n 20 file.txt
tail -n 20 file.txt
tail -f app.log   # follow live logs
Enter fullscreen mode Exit fullscreen mode

12. grep — Search Text

Search inside files or output.

grep "error" file.log
grep -R "TODO" src/
Enter fullscreen mode Exit fullscreen mode

13. find — Search Files in System

Find files based on name, type, etc.

find . -name "*.js"
find /var -type f -size +10M
Enter fullscreen mode Exit fullscreen mode

14. chmod — Change Permissions

Modify file permissions.

chmod +x script.sh
chmod 755 program
Enter fullscreen mode Exit fullscreen mode

15. chown — Change Ownership

Change file owner and group.

sudo chown user:group file.txt
Enter fullscreen mode Exit fullscreen mode

16. ps — Show Running Processes

Monitor currently running processes.

ps
ps aux | grep python
Enter fullscreen mode Exit fullscreen mode

17. top / htop — System Monitor

Real-time process and resource usage.

top
htop   # if installed, nicer UI
Enter fullscreen mode Exit fullscreen mode

18. kill — Terminate Processes

Kill a process by PID.

kill 1234
kill -9 5678    # force kill
Enter fullscreen mode Exit fullscreen mode

19. df — Disk Usage

Check disk space.

df -h
Enter fullscreen mode Exit fullscreen mode

20. du — Directory Size

Check folder sizes.

du -h
du -sh *     # show size of each file/folder
Enter fullscreen mode Exit fullscreen mode

🧠 Bonus: Essential Power Commands

Update packages

sudo apt update && sudo apt upgrade
Enter fullscreen mode Exit fullscreen mode

Download from internet

wget https://example.com/file.zip
curl -O https://example.com/file.zip
Enter fullscreen mode Exit fullscreen mode

Edit files

nano file.txt
vim file.txt
Enter fullscreen mode Exit fullscreen mode

🚀 Final Thoughts

Mastering these 20 Linux commands will massively boost your productivity as a developer. They are the foundation for:

  • server administration
  • DevOps work
  • shell scripting
  • backend deployment
  • debugging
  • automation

Top comments (0)