How to Open, Edit, Move, and Copy a File in Linux

In this tutorial we’ll cover how to open, edit, move, and copy a file within Linux using the terminal window and a few basic commands.

Use the the table of contents below to jump to a specific section or read on to learn more!

Contents hide

Absolute and Relative Paths

When using commands for moving, reading, copying, and deleting files in Linux, there are two ways to type a file path, an absolute path and relative path.

An absolute path is the specific location of the file you are editing irrespective of your current working directory or combined paths. An absolute path must be written with reference to the root directory, starting with a forward slash /. An example of using an absolute path would look like: cd /usr/bin

Screenshot showing the results of the cd /usr/bin command.

A relative path on the other hand is the path relative to your current working directory using period and double periods to indicate the current and parent directories. An example of using a relative path when the current working directory is /usr/ would look like: cd bin

Screenshot showing the result of the cd bin command.

Both types of path will take you to the same place but require different steps and criteria to do so.

How to Open a File in Linux

While there are multiple ways to open a file in Linux, the easiest way to display the contents of a file is using the cat command. For example, let’s say you have a text file named lorem.txt, which contains a paragraph of text. Use the cat command followed by the name of the file you want to open, like this:

cat lorem.txt

Screenshot showing the results of the cat lorem.txt command.

While the example used above contains only one paragraph of text, for large or multipage documents, it may be cumbersome to attempt to open their entire contents in the terminal at once. The less command comes in handy in situations where large text is present. By using the less command, you can have Linux display the contents of your file one page at a time. Use it the same way you would use the cat command:

less longlorem.txt

Screenshot showing the results of the less longlorem.txt command.

This command would then output the contents of the longlorem.txt file, one page at a time, allowing you to scroll to view more. Note that the colon highlighted at the bottom of the screenshot above is the indication that you can scroll up and down the file.

How to Edit a File in Linux

There are several different tools within Linux that can be used to edit files. The two most popular are Vi (or Vim) and Nano. While each has its advantages, the biggest differences between the two are ease-of-use and functionality. Vi is a more powerful and complicated tool, and Nano is simpler but can do less. We’ll start with Nano.

Nano Editor

To open a file in Nano, you must enter the nano command followed by the path of the file you are attempting to open. You may also first navigate to the proper directory using the cd command, then open the file for editing just using nano followed by the filename. For example:

nano sample.txt

Screenshot showing the Nano Editor.

If the file specified already exists, it will be opened for editing. If no file exists with this name at this location, a new file will be created.

One of the advantages of Nano is, it features a list of shortcuts at the bottom of its interface. These shortcuts allow users to use the tool without having to memorize every command, making it ideal for those who are newer to Linux. Arrow keys can be used for navigation, and the backspace key is used to delete. All-in-all, Nano works like a simplified but familiar text editor.

Common nano commands can be found in the table below.

Undo the last operation

Redo the last operation

Vi Editor

The other popular option for editing a file in Linux is to use the vi command. Like nano, vi must be followed either by a specific file path, or if you’re already within the desired directory, just the file name can be used.

vi sample.txt

Screenshot showing the Vi Editor.

The primary difference between Vi and Nano is that Vi features different modes, allowing users to interact with the document in different ways. While this feature gives a greater degree of control over the document, it can also be very confusing and somewhat counter-intuitive for those new to the tool.

The default mode that you enter Vi in is the Command mode, used for navigation and entering commands. Like Nano, Vi uses the arrow keys for navigation. However unlike Nano, any text entered into Vi won’t be treated as a string of text being added to the document, but rather a command being relayed directly to Vi.

To add text to the document, you must first enter Insert mode. To enter Insert mode, press the i key. You’ll see the phrase “INSERT” appear in the bottom left corner of your screen, as shown below.

Screenshot of the Vi Editor in Insert Mode.

Now, any text you enter will be treated as a string of text being added to the document. To return to Command mode, press the Esc key. You’ll know you’ve exited Insert mode when the “INSERT” phrase disappears from the bottom corner.

Unlike Nano, to delete a character in Vi, you must use the x key while in Command mode or using the backspace key while in Insert mode. This will delete whichever character is currently highlighted by the cursor.

Vi also allows you to enter commands, with each command starting with a colon “ : “. For example: