14

Every time I search for a term in less, it stores my search in the file .lesshst. How can I stop this behavior?

19

Open a terminal and create a file .lesskey, in your home folder and append the following to it:

#env
LESSHISTSIZE=0

If you already have the file .lesshst in your home folder, then delete it and type the command

lesskey

You should get any errors here. This will not store any history of less from now on, until you change the .lesskey file.

From the man page of less:

ENVIRONMENT VARIABLES

   Environment variables may be specified either in the system environment
   as usual, or in a lesskey  (1)  file.   If  environment  variables  are
   defined  in  more  than one place, variables defined in a local lesskey
   file take precedence over variables defined in the system  environment,
   which take precedence over variables defined in the system-wide lesskey
   file.

LESSHISTSIZE

          The maximum number of commands to save in the history file.  The
          default is 100.

EDIT:

From the comments, I found a better way to prevent having a history file for less.

In the .lesskey file in the home folder, append this:

LESSHISTFILE=-

or

LESSHISTFILE=/dev/null

If you put this in your ~/.bashrc file, this will work, but will have a lower precedence if you have other values in your .lesskey file for the same variables.

You may want to have a look at this:

| improve this answer | |
  • 2
    @InkBlend Did you use export? I neuter less in my .bashrc with: "export LESSHISTFILE=/dev/null" – David Poole Dec 6 '13 at 19:46
  • 1
    Perhaps @Jobin could add the .bashrc + export to his answer. I think he deserves the credit for a good answer. – David Poole Dec 11 '13 at 18:47
0

This is basically a bash trick incorporating the LESSHISTFILE override via command prefix environment manipulation.

history | LESSHISTFILE=/dev/null less

What this does is pipe the output of the history command into less while using a command prefix to manipulate the environment exposed to the less command.

This is described in the bash reference as:

The environment for any simple command or function may be augmented temporarily by prefixing it with parameter assignments, as described in Shell Parameters. These assignment statements affect only the environment seen by that command.

More about that specific use at https://stackoverflow.com/a/52208927/117471

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.