SSH Commands: The Practical Guide for Developers and Site Owners Updated on November 17, 2025 by Scott Mitchell 8 Minutes, 32 Seconds to Read SSH commands let you securely control your server right from the terminal. You can move between folders, manage files, check logs, and even automate tasks without using a control panel. This guide walks you through 17 essential SSH commands with clear examples and tips to keep your hosting environment fast, safe, and efficient. Secure Shell (SSH) gives you direct control over your hosting environment. For agencies managing client sites, marketing teams protecting brand reputation, and founders scaling their digital presence, SSH is more than a tool. It’s a competitive advantage. Master these commands to work faster, troubleshoot smarter, and scale without bottlenecks. Why SSH Matters for Your Business When your website performance impacts revenue, SEO rankings, and customer trust, you need more than a control panel. SSH provides encrypted, direct access to your server infrastructure, letting you diagnose issues, optimize configurations, and deploy updates without waiting on support tickets or clunky interfaces. Whether you’re running one mission-critical site or managing a portfolio of client properties, SSH keeps you in control. Getting Connected SSH (Secure Shell) is a command-line protocol available with VPS, Dedicated, and Shared hosting plans. It works across macOS, Linux, and Windows. Connect From macOS or Linux Open Terminal and enter: ssh username@servernamessh username@servername Replace username with your cPanel or system username and servername with your server hostname or IP address. Enter your password when prompted. Connect From Windows Download PuTTY, a secure SSH client. Enter your server’s hostname or IP address and port (typically 22), then log in with your credentials. Once connected, you’ll see a command prompt. This is your direct line to your hosting infrastructure. Strengthen Security With SSH Keys Typing passwords repeatedly slows you down and creates security gaps. SSH keys use cryptographic authentication to verify your identity without transmitting passwords over the network. Generate a key pair: ssh-keygen -t rsa -b 4096ssh-keygen -t rsa -b 4096 Accept the default location to save your keys in ~/.ssh. Upload the public key (ending in .pub) to your hosting account. Connect using your key: ssh -i ~/.ssh/id_rsa username@servernamessh -i ~/.ssh/id_rsa username@servername Essential Commands That Drive Efficiency These commands form the foundation of effective server management. Each one helps you work faster, troubleshoot confidently, and maintain control over your digital infrastructure. CommandWhat it doeslsShow files and folders in the current directorycdChange directorymkdirCreate a new directorytouchCreate an empty file or update a file’s timestamprmDelete files or directories (with flags)catPrint a file’s contentspwdShow your current directory (full path)cpCopy files or directoriesmvMove or rename files or directoriesgrepSearch for text inside filesfindSearch for files and directoriesvi/nanoOpen text editors in the terminalhistoryShow your recent commandsclearClear the terminal screentarCreate or extract compressed archiveswgetDownload files from the internetduShow disk usage for files/directories Navigate Your File System ls: List files and folders in your current directory ls ls -alh # show hidden files with detailed permissions and sizesls ls -alh # show hidden files with detailed permissions and sizes The ls command shows you everything in your current directory, from project files to hidden configurations. You can run it constantly to understand what’s in your workspace and verify file permissions before making changes. cd: Change directories to move through your server cd public_html cd .. # move up one level cd ~ # return to home directorycd public_html cd .. # move up one level cd ~ # return to home directory The cd command lets you navigate between folders across your server’s file system. Quick navigation keeps your workflow organized and helps you move efficiently between client sites or project directories. pwd: Show your current location pwdpwd The pwd command displays the full path of where you are in your file system. Use it to confirm your exact location when navigating complex directory structures or managing multiple projects. Manage Files and Folders mkdir: Create new directories mkdir backups mkdir -p projects/2025/client-site # create nested folders automaticallymkdir backups mkdir -p projects/2025/client-site # create nested folders automatically The mkdir command creates new folders where you can organize files, backups, or client projects. The -p flag automatically creates parent directories as needed, preventing errors and saving time. touch: Create empty files or update timestamps touch index.htmltouch index.html The touch command instantly creates empty placeholder files or updates existing file timestamps. It’s essential for creating test files quickly or triggering automated deployment systems that monitor file changes. rm: Remove files and directories permanently rm old-notes.txt rm -r outdated-logs/ # delete folder and contentsrm old-notes.txt rm -r outdated-logs/ # delete folder and contents The rm command permanently deletes files or directories from your server. Use it carefully since deleted files can’t be recovered without backups, especially when managing client sites. cp: Copy files or directories cp config.php config-backup.php cp -R assets/ assets-backup/cp config.php config-backup.php cp -R assets/ assets-backup/ The cp command duplicates files or folders from one location to another. Create backups before making configuration changes or duplicate entire directory structures with the -R flag for recursive copying. mv: Move or rename files mv draft.html index.html mv images/ assets/images/mv draft.html index.html mv images/ assets/images/ The mv command relocates files or renames them without creating duplicates. Use it to reorganize project files, update naming conventions, or move assets between directories during site updates. View and Search Content cat: Display file contents cat wp-config.phpcat wp-config.php The cat command lets you view file contents directly in your terminal without opening an editor. It’s perfect for quickly checking configuration settings, reading logs, or verifying file contents before making changes. grep: Search for patterns in files grep "error" error_log grep -i "warning" *.log # case-insensitive searchgrep "error" error_log grep -i "warning" *.log # case-insensitive search The grep command searches for specific words or patterns inside files. It’s essential for debugging issues, finding errors in logs, or locating specific configurations across multiple files. find: Locate files by name, size, or type find . -name "index*" find /var/www -type f -size +50M # identify large filesfind . -name "index*" find /var/www -type f -size +50M # identify large files The find command helps you locate files and directories based on criteria like name, size, or file type. Use it to track down missing files or identify large files consuming excessive disk space across your server. Edit Files Directly nano: Simple, accessible text editor nano .htaccessnano .htaccess The nano command is a straightforward text editor built into your terminal for quick file modifications. It’s ideal for making configuration changes without leaving your SSH session, especially if you prefer an intuitive interface. vi: Advanced editor with powerful features vi wp-config.phpvi wp-config.php The vi command is a powerful text editor offering advanced editing capabilities for experienced users. It provides extensive control over file modifications and works efficiently even on servers with limited resources. Work Smarter With History history: Review recent commands history 20 !123 # re-run command number 123history 20 !123 # re-run command number 123 The history command displays a list of commands you’ve run recently in your session. Use it to repeat previous actions without retyping or review what changes you made during troubleshooting. clear: Reset your terminal display clearclear The clear command wipes your terminal screen to give you a clean workspace. It doesn’t delete files or history, just removes visual clutter so you can focus on current output. Package and Transfer Files tar: Create or extract compressed archives tar -cvzf backup.tar.gz public_html/ tar -xvzf backup.tar.gztar -cvzf backup.tar.gz public_html/ tar -xvzf backup.tar.gz The tar command bundles multiple files together into compressed archives or unpacks them when needed. It’s essential for creating backups, transferring entire project directories, or installing software packages on your server. wget: Download files from URLs wget https://example.com/plugin.zipwget https://example.com/plugin.zip The wget command downloads files directly from web URLs to your server. Use it to install scripts, plugins, or packages without manually uploading them through FTP or control panels. Monitor Resource Usage du: Check disk usage du -h du -sh * # summarize each directorydu -h du -sh * # summarize each directory The du command shows how much disk space your files and folders consume. It’s critical for managing storage limits, identifying oversized directories, and cleaning up unnecessary files before they impact performance. Automate Repetitive Tasks Combine commands to execute complex operations in one line: tar -cvzf backup.tar.gz public_html && mv backup.tar.gz /home/backups/tar -cvzf backup.tar.gz public_html && mv backup.tar.gz /home/backups/ Schedule automatic backups using crontab: 0 0 * * * tar -cvzf /home/user/backups/site-$(date +\%F).tar.gz /home/user/public_html/0 0 * * * tar -cvzf /home/user/backups/site-$(date +\%F).tar.gz /home/user/public_html/ Automation reduces human error and ensures critical tasks happen consistently. Protect Your Access SSH is built for security, but these practices strengthen your defenses: Disable root login to prevent unauthorized administrative access Restrict connections by IP address to trusted networks only Use Fail2Ban to block repeated failed login attempts Set proper file permissions: chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsachmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa These adjustments protect your infrastructure and client data. Troubleshoot Common Issues Connection refused: SSH service may be down or using a non-standard port Permission denied (publickey): Verify your public key is uploaded correctly Host key verification failed: Remove outdated keys: ssh-keygen -R servernamessh-keygen -R servername Timeouts: Check firewall settings or restart network services Why SSH Skills Matter for Performance-Driven Teams SSH isn’t just about typing commands. It’s about control, speed, and reliability. When downtime costs you clients, when site performance impacts conversions, and when your reputation depends on uptime, direct server access becomes essential. Agencies use SSH to troubleshoot client issues instantly. Marketing teams use it to deploy updates without waiting on developers. Founders use it to maintain control as they scale. Hosting partners use it to deliver seamless infrastructure under their own brand. That’s the power of working directly with your hosting environment. Next Steps Now you can: Connect securely to your server Navigate and manage files with confidence Automate critical tasks Maintain secure, efficient access SSH skills give you the technical edge to move faster, scale smarter, and stay in control. Need hands-on help with SSH configuration or server optimization? Our real experts are available 24/7, no bots, no scripts. Talk with a hosting expert who can help you implement these commands in your specific environment. Continue learning with these guides: How to Generate SSH Keys How to Navigate the Command Line Complete SSH Tutorial for Beginners Share this Article Related Articles SSH Commands: The Practical Guide for Developers and Site Owners Understanding Linux Operating Systems How to Connect to Your Server with SSH HTTP Strict Transport Security (HSTS) in NGINX Basic NGINX Commands How to Manage NGINX How to Create NGINX Redirects Advanced NGINX Stack Configuration for VPS and Dedicated Servers Database Optimization: Tips Using MySQL Tuner How to Use SCP For Secure File Transfer