Loading...

Knowledge Base
Up to 75% off on hosting for WordPress websites and online stores

List of Basic SSH Commands

Your Bluehost account includes SSH (Secure Shell) access. Whether you're new to managing servers or have some experience, knowing the basic SSH commands is important.

In this guide, we'll go through a list of important commands. They'll help you do tasks like moving files and checking system status when you're working on a remote server.



What are SSH Commands?

SSH commands are tools that establish a secure and encrypted way to communicate between two systems over an insecure network. They allow you to run terminal sessions, move files safely, and set up secure tunnels for other applications, ensuring that all data exchanged remains private and protected against unauthorized access.

List of Basic SSH Commands

Below are the most used SSH commands:

Important: Be careful when using the "rm" command to avoid deleting important content that cannot be retrieved without a restore.

Commands Description
cat Print file contents to the screen
cat filename.txt Cat the contents of filename.txt to your screen
cd - Change directory
cd .. Go up a directory
cd /usr/local/apache Go to /usr/local/apache/ directory
cd ~ Go to your home directory
mkdir Create a new directory or folder in the specified path on a server.
scp Transfer files securely between your local computer and a remote server or between two remote servers.
cp -a /home/burst/new_design/* /home/burst/public_html/ Copies all files, retaining permissions from one directory to another.
cp Copy a file
cp filename filename.backup Copies filename to filename.backup
du Shows disk usage.
du -sh Shows a summary in human-readable form of total disk space
used in the current directory, including subdirectories.
du -sh * The same thing applies to (du -sh), but for each file and directory.
This is helpful when finding large files taking up space.
file Attempts to guess what type of file a file is by looking at its content.
file* Prints out a list of all files/directories in a directory
find * -type d|xargs -i cp --verbose php.ini {} Copies your php.ini file into all directories recursively.
grep Looks for patterns in files
grep -v root /etc/passwd Shows all lines that do not match the root
grep root /etc/passwd Shows all matches of root in /etc/passwd
kill Terminate a system process
kill : 9 PID EG kill -9 431
kill PID EG kill 10550
Use top or ps ux to get system PIDs (Process IDs)
last Shows who logged in and when
last -20 Shows only the last 20 logins
last -20 -a Shows the last 20 logins, with the hostname in the last field
ln Create "links" between files and directories
ln -s /home/username/tmp/webalizer webstats Now you can display http://www.yourdomain.ext/webstats to show your Webalizer stats online.
You can delete the symlink (web stats), and it will not delete the original stats on the server.
ls List files/directories in a directory, comparable to dir in windows/dos.
ls -al Shows all files (including ones that start with a period),
directories, and details attributes for each file.
more Like a cat, but opens the file one screen at a time rather than all at once
more /etc/userdomains Browse through the userdomains file.
hit Space to go to the next page, q to quit
netstat Shows all current network connections.
netstat -an Shows all connections to the server, the source, and destination IPs and ports.
netstat -rn Shows the routing table for all IPs bound to the server.
pico Friendly, easy-to-use file editor
pico /home/burst/public_html/index.html Edit the index page for the user's website.
ps ps is short for process status, similar to the top command.
It's used to show currently running processes and their PIDs.
A process ID is a unique number that identifies a process; you can kill or terminate a running program on your server (see kill command).
ps aux Shows all system processes
ps aux --forest Shows all system processes like the above but organizes in a beneficial hierarchy
ps U username Shows processes for a certain user
rm Delete a file
rm filename.txt Deletes filename.txt will likely ask if you really want to delete it
rm -f filename.txt Deletes filename.txt and will not ask for confirmation before deleting.
rm -rf tmp/

Recursively deletes the directory tmp and all files in it, including subdirectories.

tail Like a cat but only reads the end of the file
tail -f /var/log/messages Watch the file continuously while it's being updated
tail /var/log/messages See the last 20 (by default) lines of /var/log/messages
tail -200 /var/log/messages Print the last 200 lines of the file to the screen
top Shows live system processes in a nice table, memory information, uptime,
and other useful info.
This is excellent for managing your system processes,
resources and ensure everything is working fine and your server isn't
bogged down.

top
Shift + M to sort by memory usage
Shift + P to sort by CPU usage
touch Create an empty file
touch /home/burst/public_html/404.html Create an empty file called 404.html in the directory /home/burst/public_html/
vi Another editor with tons of features
vi /home/burst/public_html/index.html Edit the index page for the user's website.
w Shows who is currently logged in and where they are logged in from.
wc -l filename.txt It tells how many lines are in filename.txt
wc word count

Example of Processes for Current Shell

PID TTY TIME COMMAND
10550 pts/3 0:01 /bin/csh
10574 pts/4 0:02 /bin/csh
10590 pts/4 0:09 APP

Each line represents one process, with a process being loosely defined as a running instance of a program.

  • PID (process ID) shows the assigned process numbers of the processes.
  • TTY is the terminal number from which the process was started.
  • TIME is the amount of computer time the process uses.
  • COMMAND shows the location of the executed process.

How to Use SSH Commands

You will often need to use different commands on the same line. Below are some examples:

  • The | character is called a pipe, and it takes a date from one program and pipes it to another.
  • | - This is called a pipe. It takes a date from one program and pipes it to another.
  • > - Creates a new file and overwrites content that is already there.
  • >> - Appends data to a file and creates a new one if it does not already exist.
  • < - Sends input from a file back into a command.
    • grep User /usr/local/apache/conf/httpd.conf | more - Dumps all lines that match User from the httpd.conf. Prints the results to your screen one page at a time.
    • last -a > /root/lastlogins.tmp - Prints all the current login history to a file called lastlogins.tmp in /root/
    • netstat -an | grep:80 | wc -l - Shows how many active connections there are to Apache (httpd runs on port 80)
    • mysqladmin processlist | wc -l - Shows how many current open connections there are to MySQL
    • mysqldump -u username -p dbname > file.sql - MySQL Dump
    • mysql -u username -p database_name <file.sql - Imports MySQL database
    • tail -10000 /var/log/exim_mainlog | grep domain.com | more - Grabs the last 10,000 lines from /var/log/exim_mainlog, finds all occurrences of domain.com (the period represents 'anything,' comment it out with a so it will be interpreted literally), then sends it to your screen page by page.
    • tar -zxvf file.tar.gz - UnTAR file
    • which [perl] - Finds path to [perl]

Best Practices for SSH Key Management

Secure Shell (SSH) is important for managing remote servers securely. Here are key security practices to keep in mind.

  • Implement two-factor authentication (2FA). Provides an additional layer of security by requiring both a password and a temporary code.
  • Implement firewalls. Restrict SSH access to trusted IP addresses or networks to mitigate unauthorized access attempts.
  • Disable root login. Direct root login should be disabled in the SSH configuration to prevent attackers from directly accessing the root account.
  • Keep SSH software updated. Regularly update your SSH server and client software to ensure the latest security features and patches. This can protect you against known vulnerabilities that attackers might exploit.

Enhance the security of your SSH connections to protect your systems from potential threats.

Summary

Understand the basic SSH commands in Linux that can be used to securely access terminals, transfer files, and tunnel various applications. The commands include file management commands like cat, cd, cp, du, file, find, grep, kill, last, ln, ls, more, netstat, pico, ps, rm, tail, top, touch, vi and w. It is important to be careful when using some of these commands, particularly the "rm" command, to avoid deleting important content that cannot be retrieved without a restore.

If you need further assistance, feel free to contact us via Chat or Phone:

  • Chat Support - While on our website, you should see a CHAT bubble in the bottom right-hand corner of the page. Click anywhere on the bubble to begin a chat session.
  • Phone Support -
    • US: 888-401-4678
    • International: +1 801-765-9400

You may also refer to our Knowledge Base articles to help answer common questions and guide you through various setup, configuration, and troubleshooting steps.

Did you find this article helpful?

 
* Your feedback is too short

Loading...