≡ Menu

Unix Less Command: 10 Tips for Effective Navigation

I personally prefer to use less command to view files (instead of opening the file to view in an editor). Less is similar to more command, but less allows both forward and backward movements. Moreover, less don’t require to load the whole file before viewing. Try opening a large log file in Vim editor and less — you’ll see the speed difference.

The navigation keys in less command are similar to Vim editor. In this article, let us look at few less command navigation and other operations which will make you a better command line warrior.

1. Less Command – Search Navigation

Once you’ve opened a log file (or any file) using less file-name, use the following keys to search. Please note that the match will be highlighted automatically by default.

Forward Search

  • / – search for a pattern which will take you to the next occurrence.
  • n – for next match in forward
  • N – for previous match in backward

Backward Search

  • ? – search for a pattern which will take you to the previous occurrence.
  • n – for next match in backward direction
  • N – for previous match in forward direction

Tip: If you dont bother about which direction the search is happening, and you want to search file path, or URL, such as “/home/ramesh/”, you can use backward search (?pattern) which will be handy as you don’t want to escape slashes each time.

Search Path
In forward: /\/home\/ramesh\/
In backward: ?/home/ramesh/

2. Less Command – Screen Navigation

Use the following screen navigation commands while viewing large log files.

  • CTRL+F – forward one window
  • CTRL+B – backward one window
  • CTRL+D – forward half window
  • CTRL+U – backward half window

3. Less Command – Line navigation

In a smaller chunk of data, where you want to locate particular error, you may want to navigate line by line using these keys:

  • j – navigate forward by one line
  • k – navigate backward by one line

4. Less Command – Other Navigations

The following are other navigation operations that you can use inside the less pager.

  • G – go to the end of file
  • g – go to the start of file
  • q or ZZ – exit the less pager

5. Simulate tail -f inside less pager – Press F

Once you’ve opened a file using less command, any content that is appended to the file after that will not be displayed automatically. However, you can press F less command will show the status ‘waiting for data‘. This is as similar to ‘tail -f’.

Also, refer to our earlier article about how to view multiple logs files using tail -f.

6. Less Command – Count magic

Similar to Vim editor navigation command, you can give 10j to scroll 10 lines down, or 10k to go up by 10 lines.

  • 10j – 10 lines forward.
  • 10k – 10 lines backward.
  • CTRL+G – show the current file name along with line, byte and percentage statistics.

7. Other useful Less Command Operations

  • v – using the configured editor edit the current file.
  • h – summary of less commands
  • &pattern – display only the matching lines, not all.

8. Open any types of files using less command

As we discussed in our earlier article, you can use less command to Open & view 10 different file types.

9. Less Command – Marked navigation

When you are viewing a large log file using less command, you can mark a particular position and return back to that place again by using that mark.

  • ma – mark the current position with the letter ‘a’,
  • ‘a – go to the marked position ‘a’.

10. Less Command – Multiple file paging

Method 1: You can open multiple files by passing the file names as arguments.

$ less file1 file2

Method 2: While you are viewing file1, use :e to open the file2 as shown below.

$ less file1
:e file2

Navigation across files: When you opened more than two files ( for e.g – less * ), use the following keys to navigate between files.

  • :n – go to the next file.
  • :p – go to the previous file.
Add your comment

If you enjoyed this article, you might also like..

  1. 50 Linux Sysadmin Tutorials
  2. 50 Most Frequently Used Linux Commands (With Examples)
  3. Top 25 Best Linux Performance Monitoring and Debugging Tools
  4. Mommy, I found it! – 15 Practical Linux Find Command Examples
  5. Linux 101 Hacks 2nd Edition eBook Linux 101 Hacks Book

Bash 101 Hacks Book Sed and Awk 101 Hacks Book Nagios Core 3 Book Vim 101 Hacks Book

Comments on this entry are closed.

  • thx4 February 1, 2010, 2:44 am

    How could I live without this hacks :D. Good stuff.

  • pupu February 1, 2010, 3:38 am

    I often find ‘-i’ command line switch useful. It makes searches case insensitive.

  • Gareth Williams February 1, 2010, 5:19 am

    Nice guide, I thought I knew more about “less” :), obviously not!

  • Athul February 1, 2010, 6:35 am

    Good Article Ramesh ,
    Eventhough I knew about the existence of the command , I didnt know it was this much powerful and extensive.

  • Geoff February 1, 2010, 9:17 am

    Wow – never noticed the “F” option. Can’t imagine how many times I’ve exited “less” and typed “tail -f “.

    Thanks!

  • S.RAGHU February 1, 2010, 11:33 pm

    Power of ‘less’ is truly ‘more’ than what I had thought.Nice article.Thank you.

  • Ramesh Natarajan February 2, 2010, 1:21 am

    @thx4, Gareth, Athul, Raghu,

    Thanks for your comments. You are right — Less is More. 🙂

    @Papu,

    Thanks for mentioning about -i command line option for less command.

    For those who are interested, here is the info from man pages about the -i option.

           -i or --ignore-case
                  Causes  searches  to ignore case; that is, uppercase and lower-
                  case are considered identical.  This option is ignored  if  any
                  uppercase letters appear in the search pattern; in other words,
                  if a pattern contains uppercase letters, then that search  does
                  not ignore case.
    
           -I or --IGNORE-CASE
                  Like  -i, but searches ignore case even if the pattern contains
                  uppercase letters.
    

    @Geoff,

    Yep. “F” option can come-in very handy while viewing a log file that keeps changing.

  • Ramesh Raman February 2, 2010, 6:04 am

    Dear Ramesh,

    First up all, I would like to thank you for your information. I highly enjoyed reading your article, keep up posting such good articles. at the same time you can release server(NFS,NIS,Apache,web,DNS,FTP) configuration related articles.

    Regards Ramesh R

  • Jens February 6, 2010, 3:14 pm

    Hm, 7. “&pattern” doesn’t work here.

    ~/tmp$ less -V
    less 418

  • balta March 16, 2010, 8:32 am

    Unfortunately, tips 7 (&pattern) doesn’t work for me. This would be an invaluable feature for me :(. I’m using the latest version 418. Do I need a patch to get the &pattern command?

  • Brown May 26, 2010, 10:47 am

    The &pattern command was apparently added after 418. The current version is 436, available here: http://www.greenwoodsoftware.com/less/download.html.

  • Chandana June 30, 2010, 3:48 am

    Please let me know how to do the following.

    I want to limit the buffer space used by less to 2K
    # export LESS=”-b2″
    # cat file_sized_16K | less
    In the less view, I enter
    s
    log file: mylog.txt
    : q
    I see that the log file is all the 16K and not limited to 2K buffer space that i specified.

    Please give your inputs.

    Thanks,
    Chandana.

  • Sadish December 27, 2010, 4:26 am

    NICE one. Helped a lot.

  • geoff December 13, 2011, 11:32 am

    thanks for the tip, very useful

  • Avinash January 11, 2012, 4:51 pm

    Thanks Mate ! Very useful!

  • Drizzt January 25, 2012, 7:45 am

    Excelent! Thanks.

  • srujan kumar March 27, 2012, 12:43 pm

    -F option is so useful, I felt bad that I didn’t know about this before..

    U write very good articles ramesh.. keep it up.. thanks a lot..

  • Shiva August 19, 2012, 4:45 am

    Thank You Ramesh..its Very informative..

  • Karthik August 30, 2012, 9:53 am

    Thanks Ramesh. Very helpful for new linux users like me.

  • vr September 14, 2012, 1:43 pm

    Is there a way to copy all lines between 2 marked points, or copy lines 100 to 200. Also, how come I cannot highlight text and scroll down:(, thanks for the info

  • srujan October 16, 2012, 12:39 pm

    thanks ramesh, I was wondering if provide less with a “search string” like “Exception” can it take me directly to that first line with the “search string”. If less is not having that feature does any other linux command has this feature?

    Thanks again.

  • Gorak February 5, 2013, 6:09 am

    is it not a unix command?it is not working in my Unix server.

  • Gayathri February 22, 2013, 4:17 am

    This is a very helpful article, thanks Ramesh!!

  • Sri August 23, 2013, 6:36 am

    Thanks for sharing

  • Biswabhusan September 18, 2013, 6:57 am

    This is very useful commands.Thanks for sharing.

  • Joshan George September 19, 2013, 11:18 am

    This is a very good less command cheat sheet, Thank you so much for sharing.

  • suzee April 3, 2014, 11:46 am

    Awesome tutorial! Keep up the great work on geek stuff 🙂

  • Abhinav Dwivedi February 6, 2015, 1:34 am

    Very clear concise and informative article Ramesh.
    Keep up the good work, I find reading your articles for UNIX more intersting than MAN pages :-p

  • Vipin May 13, 2015, 11:33 am

    Very helpful article

  • Tarek Koudsi March 17, 2016, 12:24 pm

    I too prefer viewers to editors especially for log files.

    A small suggestion to use non-capital letters under “2. Less Command – Screen Navigation”, i.e CTRL + f instead of CTRL F as the indicated a Shift key. Goes with the convention you used in the rest of your article.

    Thanks for this useful brief.

  • sic April 28, 2016, 12:01 am

    Is there a command to reload a file, where you don’t have to interrupt (ctrl-c) afterwards?

  • NowYouSeeMe May 18, 2016, 7:24 am

    @sic
    you can launch the tail mode (Shift + F) then cancel it (CTRL + C)

  • Joanna March 12, 2019, 2:37 pm

    Fabulous piece!!! I tried to search a pattern in a huge log yet the result doesn’t carry timestamp. I used the methods described here to navigation back and forth and finally was able to see the date & time associated with the error pattern. Compared to the common sed and grep methods, I’m fond of the LESS command!