Linux Commands

Essential Linux commands every developer should know

TL;DR

What: Command-line tools for navigating and managing Linux/Unix systems.

Why: Automation, remote server management, and developer productivity.

Quick Start

Navigation:

pwd                 # Print working directory
ls                  # List files
ls -la              # List all files with details
cd /path/to/dir     # Change directory
cd ..               # Go up one level
cd ~                # Go to home directory

File operations:

cat file.txt        # Display file content
less file.txt       # View file with pagination
head -n 10 file     # First 10 lines
tail -n 10 file     # Last 10 lines
tail -f log.txt     # Follow file changes

cp source dest      # Copy file
mv source dest      # Move/rename file
rm file             # Remove file
rm -rf dir          # Remove directory (careful!)
mkdir dirname       # Create directory
touch file.txt      # Create empty file

Cheatsheet

CommandDescription
grep pattern fileSearch text in file
find . -name "*.js"Find files by name
chmod 755 fileChange permissions
chown user:group fileChange ownership
ps auxList processes
kill PIDKill process
top / htopMonitor processes
df -hDisk space
du -sh dirDirectory size
tar -czf archive.tar.gz dirCompress
tar -xzf archive.tar.gzExtract
curl -O urlDownload file
wget urlDownload file

Gotchas

Permission denied

# Add sudo for admin operations
sudo command

# Or change permissions
chmod +x script.sh

Command not found

# Check if installed
which command
type command

# Install the package
apt install package      # Debian/Ubuntu
yum install package      # CentOS/RHEL
brew install package     # macOS

Delete files safely

# Always double-check before rm -rf
ls target_dir           # List first
rm -rf target_dir       # Then delete

# Use trash instead
trash-put file          # Install trash-cli first

Pipe and redirect

# Pipe output to another command
cat file.txt | grep "error"

# Redirect output to file
echo "hello" > file.txt    # Overwrite
echo "hello" >> file.txt   # Append

# Redirect errors
command 2>&1 | tee log.txt

Next Steps