Lab 5: Working With Files & Directories

Objective Focus
Understand and use essential tools
Create and edit text files
Create, delete, copy, and move files and directories

Official RHCSA EX200 Exam Objectives

In RHEL, most of our time will be spent with regular files and directories.

  • Files may contain text, a script, or binary data
  • Directories are containers for files and other directories (sub-directories)
 $ stat <file or dir>
Try using stat on a file and a directory

File Editing

VIM is going be your best friend when it comes to working with text files!

Vim’s Official Website

Vim is the text editor to use here. There is nano as a second option but i am not going to cover that one.

VIM stands for Vi Improved and Vi stands for Visual Editor.

Two ways to start vim in the termial

 $ vim
 $ vim <file> 

From here, we cycle through escape and insert modes.

Command Action
i Enter insert mode
ESC key Enter escape mode
home key move cursor to start of the line
end key move cursor to end of the line
Save and Quit in VIM

While in Escape mode

Command Action
:w Save only; does not close vim
:wq Save and quit vim
:q Quits if no changes were made
Moving around in VIM
Command Action
**Up/Down Arrow Move view of page up and down
gg/G *Move to top man page/ Move to bottom of man page
/pattern *Searches forward in man page
?pattern *Searches forward in man page
n/N *Find next/previous pattern match

*in ESC mode

**both modes

Delete, Paste, Undo

In Escape mode

Command Action
dd deletes the entire current line; also acts like “cut”
D delete everything right of the cursor; also acts like “cut”
u Undoes previous command, like Ctrl+z in Windows
yy copies current line
p pastes copied data
Bonus vim tip for when “copy and paste” is not available
 :r !<command>  
  • I am sure there are better ways to do this
Learning through action

vimtutor is a great tool for exploring more commands and options available.

 $ vimtutor  

Above I covered the mininum needed to use vim.

Creating Files

Many ways to create a file, we will focus on two.

 $ touch <filename> 
 $ vim <filename> 

Touch creates a an empty file

VIM creates the file and opens it in VIM

Creating Directories

 $ mkdir <dirname> 
 $ mkdir -p dir1/subdir/subdir 

  • the -p creates the parent directories as list in the argument
Copying Files and Directories

To copy files and directories we use the “copy” command aka $ cp

 $ cp <file> <copyoffile> 
  • copies file with new name in same directory
 $ cp -r  <dir1> <dir2> 
  • copies anything under dir to another dir
 $ cp <file> <dir> 
  • copies file into another, will overwrite file of same name in the destination dir
Moving Files and Directories

To move files and directories we the “move” command aka $ mv Also, renames files

 $ mv <file> <destdir> 
  • moves file to new dir
 $ mv <file> <renamedfile> 
  • if dir doesn’t exist then it use argument to as new name of file
 $ mv <dir> <exisitingdir> 
  • moving a dir into another dir
 $ mv <dir> <renameddir> 
  • if it doesn’t exist then it will rename directory
Deleting Files and Directories
 $ rm <filename> 
  • deletes file
 $ rm -r <dir> 
  • -r option means recursively; deletes dir and its contents

That’s it for lab 5!