A virtual private server (VPS) is normally administered remotely, and the essential skill is learning to make small, verifiable changes over an encrypted SSH connection. Start by confirming who you are, which machine you reached, where you are in its filesystem, and whether you have enough disk space. Then build a compact command vocabulary, use a non-root account with sudo, identify the distribution before installing updates, and validate every network or SSH change before closing your working session.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
What you are actually operating
A VPS is a virtual machine whose console is usually reached through Secure Shell (SSH). OpenSSH supplies both the server daemon and client tools, replacing older clear-text approaches such as telnet and rcp. An SSH session gives you encrypted command access and can also transfer files. Your provider may offer a browser-based serial or recovery console as a second route; keep that route available because a mistake in remote-access configuration can otherwise leave you without a way in.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
The Linux Command Line, 3rd Edition: A Complete Introduction | $27.94 | Buy on Amazon |
| 2 |
|
Linux Encryption Command Line T-Shirt, Men, Black, Small | $16.99 | Buy on Amazon |
As an Amazon Associate I earn from qualifying purchases.
Four facts should be visible before you change anything:
- Identity: the account and groups you are using.
- Host: the server name and operating-system release.
- Location: your current directory and the files you are about to affect.
- Privilege and capacity: whether a command is running as an ordinary user or through
sudo, and how much disk space remains.
Connect and establish context
From a local terminal, connect with the account and address supplied by your VPS provider:
#1 Best Overall
ssh user@server-ip
If you have an entry in your local SSH configuration, an alias can replace the full address. Immediately run this short inventory:
whoami
hostname
pwd
uname -a
df -h
cat /etc/os-release
whoami prevents the common error of assuming you are root. hostname confirms the destination, while pwd prints your current directory. uname -a reports kernel information; df -h shows filesystem capacity in readable units. The final command identifies the distribution and release so that later package instructions match the image you actually received.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Build a safe shell vocabulary
Paths, navigation and hidden files
An absolute path starts at the filesystem root, such as /etc/ssh/sshd_config. A relative path starts from your current directory. $HOME expands to your user’s home directory; /etc holds system configuration, /var/log commonly contains logs, and /tmp is intended for temporary files. A leading dot makes a Unix filename hidden, so a normal listing can omit important directories such as .ssh.
pwd
ls -la
cd /var/log
cd ..
cd "$HOME"
less auth.log
ls -la includes hidden entries and a long-format ownership and permission listing. cd .. moves to the parent directory. less lets you page through a file without loading or editing it; press q to exit.
Create, copy, move and remove
mkdir -p ~/notes
touch ~/notes/change.txt
cp ~/notes/change.txt ~/notes/change.backup
mv ~/notes/change.backup ~/notes/change-previous.txt
rm ~/notes/change-previous.txt
The commands create directories and files, copy data, rename or move entries, and remove files. Quote a path whenever it contains spaces or shell metacharacters:
less "Project Notes/readme.txt"
cp "Project Notes/readme.txt" ~/notes/
Wildcards are expanded by the shell before a command runs. *.log means every matching name in the current directory; it does not mean “all files everywhere.” Inspect the expansion with printf '%sn' *.log before using it in a destructive command.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Search and recall
grep -R "error" /var/log
find /var/log -type f -name "*.log"
history
man grep
grep -R searches recursively, and find locates files by type and name. The shell’s history lets you review or reuse earlier commands; arrow keys and Ctrl-R search it interactively. man opens the installed manual page. Read the synopsis and options before adding flags copied from an unrelated example.
Users, sudo and permissions
Routine work should use a named, non-root account. Ubuntu installations disable direct administrative root login by default, and sudo grants an authorized user temporary elevation with an accountable command record. User management is a security function, not an inconvenience.
Inspect your account
id
groups
sudo -l
id displays your numeric user and group IDs, groups lists group membership, and sudo -l shows which elevated commands your account may run. Use elevation only for the command that needs it:
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallsudo systemctl restart example.service
A root shell such as sudo -i makes every subsequent command powerful, increasing the cost of a typo. It is safer to keep the ordinary prompt and prefix one intentional operation.
Read mode bits before changing them
ls -l /path/to/file
stat /path/to/file
An ls -l entry begins with a file type and nine mode bits: read, write and execute for the owner, group and everyone else. Directories use execute to permit traversal. The owner and group appear as user:group; chown changes ownership and chgrp changes only the group.
chmod u+x deploy.sh
chmod 640 config.ini
sudo chown appuser:appgroup config.ini
sudo chgrp appgroup shared-directory
Choose the smallest permission set that permits the required operation. chmod 777 is not a general repair: it grants every local user read, write and execute access and can expose secrets or permit tampering. For an SSH key file, only the authenticated user should be able to write it. Ubuntu’s documented corrective pattern is:
chmod go-w ~/.ssh/authorized_keys
Also check the directory and file owner with ls -ld ~/.ssh ~/.ssh/authorized_keys if key authentication fails.
Recommended Free Tools
Identify the distribution before updating
Do not paste an Ubuntu command into an unknown image. Read /etc/os-release first. Ubuntu and Debian commonly use APT:
sudo apt update
sudo apt upgrade
apt update refreshes package indexes; apt upgrade applies available package upgrades. On Fedora and other Red Hat-family systems, the usual package manager is dnf, with syntax and repository policy determined by that distribution. Consult the image’s documentation rather than assuming an APT command will translate.
An update changes installed software and may require a service restart or a reboot. Schedule production changes, record what you changed, and keep a provider console or recovery path available. Package operations can also fail when the filesystem is full, so check df -h before and after a large upgrade.
Processes, services and logs are different
A process is a running instance with a process ID. A service is a managed unit, often supervised by systemd. A log records events; it is evidence about what a process or service did, not the process itself.
Rank #2
- Linux Encryption Tools design. Linux Encryption Command Line T-shirt. Linux funny T-shirt
- Linux Funny T-shirt, Linux humor T-shirt, Linux jokes T-shirt
- Lightweight, Classic fit, Double-needle sleeve and bottom hem
Check resource pressure
ps aux
top
free -h
df -h
du -sh /var/log/*
ps aux gives a snapshot of processes. top is an interactive CPU and memory view; htop offers a friendlier interface when installed. free -h reports memory and swap, while du -sh identifies which directories consume disk space. A full disk can make a site appear broken even when the application process is still running.
Inspect and restart a managed service
sudo systemctl status SERVICE
sudo systemctl is-enabled SERVICE
sudo systemctl restart SERVICE
sudo journalctl -u SERVICE -b --no-pager
Replace SERVICE with the unit name, such as a web server or game-server daemon. status combines state and recent messages; is-enabled tells you whether the unit is configured to start at boot; restart interrupts and starts it again. The journal command limits output to the current boot. For live SSH troubleshooting, Ubuntu documents:
sudo systemctl restart ssh.service
sudo journalctl -fu ssh.service
The -f option follows new entries as they arrive. Read the log before repeatedly restarting: a syntax error, missing file, denied permission, exhausted memory or occupied port usually points to the real fix.
Diagnose networking from facts
Confirm addresses, routes and name resolution
ip addr
ip route
getent hosts example.com
ip addr shows interfaces and assigned addresses. ip route shows where traffic is sent, including the default gateway. getent hosts asks the system resolver for an address; use another DNS lookup utility only if it is installed on that distribution.
Find the process behind an open port
sudo ss -tulpn
This lists listening TCP and UDP sockets and, with privilege, the process owning each one. Check the listener before changing firewall rules. If the expected service is absent, investigate its unit status and journal first; opening a port cannot make a stopped process listen.
Host firewall versus cloud security group
| Control | Scope | Typical failure mode |
|---|---|---|
| Host firewall | Rules enforced inside the VPS by its operating system | A bad rule can block SSH after it reaches the machine |
| Cloud-provider security group | Provider network boundary before traffic reaches the VPS | A missing ingress rule prevents packets arriving even when the service and host firewall are correct |
Treat these as separate layers. Confirm the listening process, route, and provider rule before changing the local firewall. Keep the current SSH path working until an alternate path has been tested.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Change SSH configuration without locking yourself out
Before editing /etc/ssh/sshd_config or an included snippet, make a backup and keep the existing SSH session open. Validate the configuration before restarting:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
sudo sshd -t
No output from sshd -t indicates that the syntax check passed; an error identifies a directive or file to correct. Ubuntu warns that an incorrect directive can stop sshd and remove the only remote route to an administrator. After a successful check:
sudo systemctl restart ssh.service
Open a second terminal and test a new login before closing the original. If the second login fails, use the still-open session or your provider’s console to restore the backup and restart SSH.
Prefer key authentication, but stage it
ssh-keygen -t ed25519
ssh-copy-id user@server-ip
Create an Ed25519 key with a passphrase, then copy the public key to the account. Verify that key login works in a new session and that ~/.ssh and authorized_keys are owned and writable only as intended. Do not disable password authentication until key login and console recovery have both been verified.
Keep long-running work alive
A dropped SSH connection can terminate a foreground command. Start maintenance, package builds or lengthy transfers inside a terminal multiplexer:
Free tools Windows power users keep installed
One-click scans. No signup required.
tmux new -s maintenance
Detach from tmux with Ctrl-b, then d. Reconnect later with:
tmux attach -t maintenance
screen provides the same basic protection when tmux is not installed:
screen
screen -r
Ubuntu explicitly recommends multiplexers because the process and its output remain available after an SSH disconnect. For any firewall, package, database or SSH change, write a short change note, know how to undo it, and keep a backup appropriate to the data you could lose.
A practical “site is down” sequence
- Connect through SSH or the provider console and run
whoami,hostname,df -handfree -h. - Check the application service with
sudo systemctl status SERVICEand readsudo journalctl -u SERVICE -b --no-pager. - Confirm a listener with
sudo ss -tulpn; identify the owning process rather than opening a random port. - Check
ip addr,ip routeand name resolution withgetent hosts example.com. - Compare the host firewall and provider security-group rules, changing only the layer supported by your evidence.
- Restart the affected service only after reading its error; reboot the entire VPS only when a restart cannot resolve the problem or the operating system requires it.
| Action | Disruption | Use it when |
|---|---|---|
| Service restart | Interrupts one managed service | The service is unhealthy, misconfigured, or holding stale state |
| Full reboot | Interrupts every process and network connection | A kernel or system-wide condition requires it after you have captured useful logs |
Further study
For a structured treatment beyond this primer, William E. Shotts’s The Linux Command Line, 3rd Edition is listed as a 544-page O’Reilly Learning title published in 2026; the paperback listing gives February 17, 2026 and ISBN 9781718504523. The second edition is listed at 504 pages with a March 7, 2019 publication date. The publisher says the first edition sold more than 100,000 copies in 2019; that figure applies to the first edition only. The author’s site also describes a free digital edition. Search the exact title and ISBN when checking availability, because prices and formats vary.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesFrequently Asked Questions
Should I run commands as root on a new VPS?
No. Use a named account for routine work and prefix only the command that needs administrative rights with sudo. Confirm your permissions with id, groups and sudo -l.
Why did opening a firewall port not fix my service?
A firewall rule cannot create a listener. First run sudo ss -tulpn and check the owning service with systemctl status. Then verify the provider security-group rule and the host firewall as separate controls.
What should I do if an SSH change rejects every new login?
Keep the original session open while testing. Use sudo sshd -t before restarting, restore your backup if necessary, restart ssh.service, and use the provider console or recovery path if the existing session is unavailable.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →

