Linux Basics for Developers
This Linux basics for developers guide focuses on the commands and concepts you actually use when building and deploying software. Instead of trying to cover the entire operating system, we will practice file system navigation, editing files, working with permissions, using SSH and inspecting processes so you can be comfortable on real servers.
In this tutorial you will:
- Learn how the Linux directory structure is organized
- Use essential commands for navigation and file management
- Edit configuration files safely from the terminal
- Understand users, groups and basic permissions
- Connect to remote machines with SSH and manage processes
- See how Linux fits with Git, CI/CD and cloud platforms
For more context, you can connect this article with the
Git version control tutorial,
CI/CD pipeline tutorial,
Java backend tutorial,
Python data engineering tutorial,
and cloud posts like
Azure cloud basics tutorial
or
Kubernetes basics tutorial.
1. Linux directory structure for developers
On a typical Linux system, everything starts at the root directory /. Under that, common paths include:
/home– home directories for users (for example,/home/jason)./etc– configuration files for services and system tools./var– logs, caches and variable data./usr– user-level programs and libraries.
As a developer, most of your project work lives in your home directory, while configuration and logs live under /etc and /var. Understanding this layout makes it easier to debug deployments later.
2. Navigate the file system
The first step in Linux basics for developers is learning how to move around the file system confidently from the command line.
2.1 Essential navigation commands
# show current directory
pwd
# list files with details
ls -lah
# change directory
cd /var/log
# go back to your home directory
cd ~
The combination of pwd, ls and cd is your basic navigation toolkit. Use tab completion aggressively to avoid typing long paths.
2.2 Create, move and remove files
# create a directory for a project
mkdir -p ~/projects/demo-app
# move into it
cd ~/projects/demo-app
# create a file
echo "hello linux" > hello.txt
# copy the file
cp hello.txt hello-copy.txt
# move or rename a file
mv hello-copy.txt notes.txt
# remove a file
rm notes.txt
For destructive operations like rm -rf, slow down and double-check the path before you press Enter.
3. View and edit files
Developers spend a lot of time reading and editing text files: logs, config files, scripts and unit tests. This section of Linux basics for developers shows safe ways to inspect and modify them.
3.1 View files with cat, less and tail
# print a small file
cat hello.txt
# page through a long file
less /var/log/syslog
# follow a log file as it grows
sudo tail -f /var/log/nginx/access.log
Use less for large files so you do not flood the terminal. Press q to quit.
3.2 Edit files with a terminal editor
You can install any editor you like, but nano is beginner-friendly and usually preinstalled:
# edit a config file with nano
sudo nano /etc/nginx/nginx.conf
After editing, restart the service with systemctl and check logs to verify the configuration is valid.
4. Users, groups and permissions
A core part of Linux basics for developers is understanding file ownership and permissions. This helps you avoid “permission denied” errors when deploying apps or running services.
4.1 Check ownership and permissions
ls -l hello.txt
# sample output:
# -rw-r--r-- 1 jason devs 12 Nov 22 10:00 hello.txt
In order from left to right you see the type (- for file, d for directory), permissions, owner, group, size and timestamps.
4.2 Change permissions and ownership carefully
# make a script executable for the owner
chmod u+x deploy.sh
# change owner and group (needs sudo)
sudo chown deploy:deploy /var/www/demo-app -R
In most deployments you want application files owned by a dedicated user (for example, www-data or deploy) rather than root.
5. SSH into servers and manage processes
Most real work happens on remote machines. This part of Linux basics for developers shows how to connect with SSH and inspect running processes.
5.1 Connect to a remote server with SSH
# simple username/password login
ssh jason@myserver.example.com
# use a specific private key
ssh -i ~/.ssh/id_rsa jason@myserver.example.com
Once connected, all of the navigation and file commands from earlier in this Linux guide apply on the remote host.
5.2 Inspect processes and services
# show top CPU and memory consumers
top
# or a one-shot snapshot
ps aux --sort=-%mem | head -n 10
# check a service managed by systemd
sudo systemctl status nginx
sudo systemctl restart nginx
These commands are often enough to debug “site down” or “API slow” situations long before you dig into deeper tools.
6. Small Linux command “cheat sheet”
To close out this Linux basics for developers tutorial, here is a compact cheat sheet you can paste into your dotfiles or keep near your terminal. It groups a few core commands by category.
| Category | Command | Purpose | Relative Frequency |
|---|---|---|---|
| Navigation | pwd, ls, cd |
Find where you are and move around | |
| Files | cp, mv, rm |
Copy, rename and remove files | |
| Viewing | cat, less, tail -f |
Inspect logs and config files | |
| Permissions | chmod, chown |
Adjust access rights and ownership | |
| Remote | ssh |
Connect to servers |
With these Linux basics for developers in place, you can work comfortably on servers, diagnose issues faster and integrate your code with the rest of your toolchain—from Git and CI/CD to Kubernetes and cloud platforms.


