Ultimate List of Beginner Linux Commands With Examples

linux-commands-with-examples

New to Linux? Maybe you’re looking to switch to Linux full time or learning how to operate a VPS. Below I have compiled a list of beginner Linux commands with examples to get you started. These commands will lay the foundation required to use the Linux system in more advanced ways. Let’s get started.

pwd

Print working directory. This command lists where you are in the file system. The top of the Linux file system starts with / and then branches out like a tree from there. The pwd command is useful when you have no idea where you are on the system.

linux commands with examples

cd

Change directories. The same as clicking through your folders on a Mac or Windows machine. This command works with both relative and absolute paths.

cd-linux-command

ls

Lists files in a directory. Exactly the same as opening up a folder on Mac or Windows and seeing all the files. By itself, the command will list all the files in the current directory. You can also list the contents of a relative or absolute path.

ls-linux-command

Notable Parameters Description
-aLists all files including hidden ones
-lLong listing. Includes additional info like permissions and timestamps

cp

You are familiar with the traditional way of copying files on a GUI (graphical user interface.) This typically involves dragging files from one window to another or executing a right click copy/paste. Using the cp command you can execute the same process a lot faster. Here we copy the “file1” file from the current directory into the /home/2cf/documents directory.

cd-linux-command

Notable Parameters Description
-rCopy in recursive mode (copy both files AND directories)

mkdir

Creates a folder in the current or supplied directory

mkdir-linux-command

Notable Parameters Description
-pCreate the parent directories if they don't exist

rm 

Removes a file when used by itself and deletes directories when used with the -r switch. Be careful with this one. You don’t want to accidentally delete any important files!

rm-linux-command

Notable Parameters Description
-rRemove directory

mv

Move or rename files. In the example below, we rename “documents” to “mydocuments”

mv-linux-command

file

determines the file type of a file. Very useful for identifying cryptic files on a Linux system. As you explore Linux you will come across files of mysterious types. Use the file command to expand your knowledge of these files.

file-linux-command

cat

concatenates files and displays their output. In other words, the cat command reads the contents of a file right onto your terminal. This is a quick way to read a file without actually opening it in an editor.

cat-linux-command

clear

Clears the terminal screen. All the output on the terminal can become overwhelming and confusing. Use the clear command to wipe the slate clean! Note that clear doesn’t actually delete anything. It simply clears the output generated by any commands you have ran.

clear

whoami

Prints the user currently logged in to the system. Not sure who’s account you are using? You can always verify the current operator with the whoami command.

whoami-linux-command

man

man is an interface to the Linux manual. The manual contains complete information on every command and utility available on the Linux system. If you are wondering what a certain command does you can read the manual. In the old days when n00bs asked the veterans about a particular command, they were instructed to RTFM – Read the F’n manual! They were, of course, speaking of the man command.

man-linux-command

reboot

Reboots the system.

reboot

shutdown

Brings the system down. When used without any parameters, the default action is to bring the system down into single user mode (run-level 1) immediately.  This mode logs off any users currently logged into the system and prevents them from logging in. To execute a full system power down, you must use the -h option and specify a time:

shutdown -h now

Time can also be specified with a +n where “n” is the minutes before you want the system to shutdown. Here we tell the system to execute a full power down in 5 minutes.

shutdown -h +5

Conclusion

Becoming familiar with these commands is a great start to learning how to use the Linux system. You now have everything you need to manipulate files, navigate the file system, and do some basic system administration tasks. Best of all, you have the man command. All of these commands have advanced options that I did not cover in this beginners guide. Using man, you can dive deep into the commands that interest you and learn more.

 

DIY Filezilla Server Setup

filezilla-server-setup

FTP is still a great way to quickly transfer files over the internet. With a Filezilla server setup you can easily configure an old computer to serve up files on the fly. This tutorial will show you how to install Filezilla as a server, configure an FTP directory, setup a user, and connect remotely with the Filezilla client.

Downloading the Filezilla Server

Download a copy of the Filezilla server here.

Installing Filezilla server

The software installs like you would expect. Go ahead and accept all of the defaults.
filezilla-server-setup

Configuring the user and FTP directory

Now we need to add a user and tell Filezilla where we want to serve files from. At the top menu select edit and then click users.

Click shared folders and then click add underneath the users section on the right. Name your user whatever you want. Next, click add underneath the Shared Folders section. Here you can grant access to a directory in the file system. Consider checking all the boxes under the files section too. This will grant your user full access to the directory.

At this point the Filezilla server setup is finished. Now we need to configure the firewall and router to allow access to the server from the outside.

Configuring the Windows firewall

If you try to connect to your server it will simply time out. This is because the firewall is blocking the incoming connection. Let’s crack into the Windows firewall and add an exception for the server. On Windows 10, type firewall into the taskbar search box and select “Windows Firewall with Advanced Security.”

The advanced firewall settings pop up.

Right click Inbound Rules on the left and click New Rule.

In the new inbound rule wizard click next to allow a program through the firewall.

On the next screen, select browse and then locate the Filezilla server executable in the program files. This file is located in C:\Program files\Filezilla Server\. Select the Filezilla Server application and click Next.

Location of the Filezilla server program
Location of the Filezilla server program

Make sure to allow the connection and then accept the default connections on the next screen. Name your rule and write a short description so you can identify it later.

Configuring your router

Your router must be configured to forward the proper ports if you want to connect from the outside. Each router has a different process for doing this. Whatever router you have, this always involves forwarding a specific port (21 in this case) to the IP address of your server. Here’s a snapshot of what this looks like on a Linksys router:

Conclusion

FTP still remains a viable option to transfer your data. Keep in mind that FTP is not secure and doesn’t provide any sort of encryption. For that you will need to use SFTP or SSH. A popular utility to securely transfer files on a Linux system is rsync. These protocols encrypt your data and secure your connection from hackers. This is important especially when you’re connecting to your server from public locations like coffee shops. However, if you don’t care about security then a Filezilla server setup is a quick and effective way to get the job done.

rsync over SSH: backup your data securely

rsync-over-ssh

Using rsync over ssh is a secure method to backup your system. SSH encrypts your data over the internet and secures the transmission from hackers and other threats. The good news is that rsync uses the SSH protocol by default. In this tutorial I will show you how to use rsync over SSH and how to conifgure SSH keys for passwordless backups.

rsync over SSH requirements

  • SSH access to server
  • rsync client installed locally

Installing rsync

In most cases rsync will already be installed on your system. If it’s not, it can be easily installed.

Debian/Ubuntu

sudo apt-get install rsync

CentOS

sudo yum install rsync

Testing the connection

Test the connection to your server by connecting with SSH:

ssh user@remotehost.com

If all goes well you should be greeted by a password prompt:

Testing rsync

If you can connect with SSH you can connect with rsync over ssh. Test rsync by initiating a dry run backup of your home directory:

rsync -nav user@remotehost:~/ /path/to/local/backup/folder/

With any luck you will see your files and folders fly by the screen. Note that we did not have to use the -e switch. Since rsync uses SSH by default this is not necessary unless you need to specifiy additional connection parameters (non-standard port or SSH key locations.)

Setting up SSH keys

We can setup SSH keys so rsync doesn’t need a password to connect. This is useful for automating your backups with chron while staying completely secure. SSH keys are generated on your local computer and then copied to the remote host. Generate a key pair with the following command:

ssh-keygen -t rsa

Save the keys in the default location or specify another directory:

Enter file in which to save the key (/home/demo/.ssh/id_rsa):


Leave the passphrase blank by hitting enter through the following prompt:

Enter passphrase (empty for no passphrase):

Here is what you should see:

Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 user@a
The key's randomart image is:
+--[ RSA 2048]----+
|          .oo.   |
|         .  o.E  |
|        + .  o   |
|     . = = .     |
|      = S = .    |
|     o + = +     |
|      . o + o .  |
|           . o   |
|                 |
+-----------------+

While it would be more secure to enter a passphrase, rsync can’t be automated in this way. However, this method is still secure because a hacker would need to obtain your private key to gain access to the server.

Next we copy the public key to the server. Security tip: Never grant your keys to the root account. Always copy your keys to a standard user account. This way if a hacker jacks your private key he would only have limited access to your box.

ssh-copy-id user@remotehost.com

If prompted, type yes to connect and then enter your password to complete the transfer:

The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
user@12.34.56.78's password: 
Now try logging into the machine, with "ssh 'user@12.34.56.78'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Boom goes the dynamite. You should now be able to run rsync over ssh without a password.

Resources

http://linux.die.net/man/1/rsync

 

8 Practical Robocopy Examples For Your Next Backup

robocopy-examples




Robocopy is a powerful backup utility that ships with most versions of Microsoft Windows. I’ve put this post together to showcase a few powerful Robocopy examples. You can use these examples for your next backup or as a general guide to using Robocopy.

Default Behavior

Robocopy does a raw file copy at a single directory level when used without any switches. By default, it won’t copy any directories unless you specify otherwise. In this example, I am using Robocopy to backup all the files in my Documents folder to a flash drive.

C:\>Robocopy C:\Documents\ E:\

Parameters / SwitchesDescription
C:\DocumentsSource directory. This is where we will be copying files FROM.
E:\Destination Directory. This is where we will copy files TO.

Mirror a complete directory stucture

Robocopy can backup your files in a number of ways. You can change how Robocopy operates using a combination of switches. In this example we tell Robocopy to create an exact mirror copy of the source directory. /MIR will copy both files and folders and mirror the source directory structure.

C:\>Robocopy C:\Documents E:\ /MIR

Parameters / SwitchesDescription
C:\DocumentsSource directory. This is where we will be copying files FROM.
E:\Destination Directory. This is where we will copy files TO.
/MIRMake a mirror copy of the directory structure on the destination drive. Delete any files that aren't in the source.

Move files (delete from source)

Robocopy can move files from a source directory to a destination. This is useful when you want to clear up space on your hard drive. This technically isn’t a backup since Robocopy will remove the files you copy. **Note** this example moves files only. If you want to move both files and folders you must use the /MOVE switch.

C:\>Robocopy C:\Documents E:\ /MOV

Parameters / SwitchesDescription
C:\DocumentsSource directory. This is where we will be copying files FROM.
E:\Destination Directory. This is where we will copy files TO.
/MOVMove source files to destination. Removes files from source.

Mirror directory structure but keep destination data

When using /MIR, Robocopy deletes files in the destination directory that aren’t in the source. You can specify for Robocopy to keep destination files with /XX switch. Useful when you’re doing a simple data dump to a backup drive that has other files you want to keep.

C:\>Robocopy C:\Documents E:\ /MIR /XX

Parameters / SwitchesDescription
C:\DocumentsSource directory. This is where we will be copying files FROM.
E:\Destination Directory. This is where we will copy files TO.
/MIRMake a mirror copy of the directory structure on the destination drive. Delete any files that aren't in the source.
/XXKeep destination files instead of deleting them.

Copy security permissions

Sometimes it is necessary to copy over the security attributes of files and folders. This is useful on a server where users have varying access to the file system. You want to make sure these security attributes stay intact when you copy data back to the server. Here I am mirroring my directory structure and copying over security permissions.

C:\>Robocopy C:\Documents E:\ /MIR /SEC

Parameters / SwitchesDescription
C:\DocumentsSource directory. This is where we will be copying files FROM.
E:\Destination Directory. This is where we will copy files TO.
/MIRMake a mirror copy of the directory structure on the destination drive. Delete any files that aren't in the source.
/SECCopy security permissions.

Specify retries and wait time for locked files

Robocopy has built in programming to handle locked files. If a file is locked Robocopy can retry the copy as many times as you want. Here we specify a 2 retry count with /R switch. Simultaneously, we are also telling Robocopy to wait 10 seconds before attempting the next retry with the /W switch.

C:\>Robocopy C:\Documents E:\ /R:2 /W:10 

Parameters / SwitchesDescription
C:\DocumentsSource directory. This is where we will be copying files FROM.
E:\Destination Directory. This is where we will copy files TO.
/R:2Retry 2 times before moving on to the next file.
/W:10Wait 10 seconds before going to the next retry cycle.

Mirror entire C:\ drive but exclude hidden and system files

You might be thinking about grabbing everything on your C:\ drive. Not a bad idea if you really want to snag absolutely everything. Do you really need all the system and hidden files though? You can tell Robocopy to exclude these specific files with the /XA switch. Here we tell Robocopy to exclude files with the system and hidden attributes set.

C:\>Robocopy C:\ E:\ /MIR /XA:SH

Parameters / SwitchesDescription
C:\Source directory. This is where we will be copying files FROM.
E:\Destination Directory. This is where we will copy files TO.
/MIR Make a mirror copy of the directory structure on the destination drive. Delete any files that aren't in the source.
/XA:SHExclude system and hidden files when copying.

Stringing it all together

The true power of Robocopy reveals itself when you use many of these switches together. This allows for a fine tuned backup that meets your requirements. In this last Robocopy example, I mirror my entire C:\ drive, exclude the system and hidden folders, Retry twice before moving on- waiting 10 seconds after each retry, and log the results to file on my hard drive.

C:\>Robocopy C:\ E:\ /MIR /XA:SH /R:2 /W:10 /LOG:C:\log.txt

Parameters / SwitchesDescription
C:\DocumentsSource directory. This is where we will be copying files FROM.
E:\Destination Directory. This is where we will copy files TO.
/MIRMake a mirror copy of the directory structure on the destination drive. Delete any files that aren't in the source.
/XA:SHExclude system and hidden files when copying.
/R:2Retry 2 times before moving on to the next file.
/W:10Wait 10 seconds before going to the next retry cycle.
/LOG:C:\log.txtLog events to a text file. Useful for troubleshooting if something goes wrong.

Resources

Did you enjoy these Robocopy examples? If you’d like to experiment with other switches you can reference this Microsoft article for a complete list. Alternatively, you can run the following command at your command prompt:

C:\>Robocopy /?

 

How To Run Robocopy in Backup Mode

robocopy-backup-mode

Robocopy is a powerful backup utility with plenty of switches to confuse even the savviest tech. Deep within the Robocopy programming is a function called Robocopy backup mode. This special mode is executed with the /B switch. That’s fine and dandy – but what the heck happens when you run Robocopy this way?

When Robocopy is executed in backup mode the software bypasses file permissions that would otherwise prevent a successful backup. This is useful for companies who have designated backup specialists that handle backups. Backup mode allows standard users to initiate backups while limiting their access to the files.

You must be an Administrator or a member of the backup operators group to run Robocopy in this way.

Example:

C:\>Robocopy C:\ E:\ /B

Reasons to use backup mode

You generally would not use backup mode unless you were a user with limited access and had the proper backup rights set by your Administrator. If you’re the Administrator of your machine the /B switch is not needed. Instead, refer to the other Robocopy command line switches to properly backup your machine. While backup mode sounds like the perfect mode to backup your system, it is only a useful switch for limited users who have been granted backup rights by an Administrator.

Common errors

When using the /B switch you may receive the following error:

You do not have the Backup and Restore Files user rights. You need these to perform Backup copies (/B or /ZB).

This error is easily solved by using an elevated command prompt. Simply right click the command console in Windows explorer and select run as administrator.

If you don’t have administrative access you will need to be added to the backup operators group to make backups of files that you do not own. Ask your Administrator to grant you this access.

Resources

Microsoft Technet  – Robocopy