Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Configuring history with variables

From: Unix for Mac OS X Users

Video: Configuring history with variables

Environment variables can be very helpful in allowing us to customize how the Unix history works. There are five different variables that we can configure. Before we start looking at them, let's first start by just using history -c to clear out our existing history so that everything we work with we'll be able to easily identify what's new and what's been added to the history, and then let's do nano .bashrc and right below where we set our path I am just going to paste in the lines for the history and then we can talk to them and that way you don't have to sit and watch me type.

Configuring history with variables

Environment variables can be very helpful in allowing us to customize how the Unix history works. There are five different variables that we can configure. Before we start looking at them, let's first start by just using history -c to clear out our existing history so that everything we work with we'll be able to easily identify what's new and what's been added to the history, and then let's do nano .bashrc and right below where we set our path I am just going to paste in the lines for the history and then we can talk to them and that way you don't have to sit and watch me type.

So notice that on each of them I'm exporting it and here is the variable name. HISTSIZE, HIST being short for history, HISTSIZE= and then a number. This is the number of commands that history will remember. By default it will remember 500. If you want more or less, well this is how you change it. You set the variable here. Once we get to that maximum number then the oldest command will drop off the top and it will still just add the newest command at the bottom. So essentially what we are looking at would be the 500 most recent commands.

In my case the 10,000 most recent commands. I have given a very large number so it just keeps growing and growing and growing until I manually clear it. We can also set the maximum size that the history file has allowed to become, using HISTFILESIZE. Here I've said that it can be one million k that's a very large number. But you could restrict it to something smaller if you wanted. If you said I never want that file to get larger than this certain amount, once it gets to that amount well then it will truncate the oldest entries in the file and leave the newest ones, so that it gets back under that file limit again.

The next one is HISTTIME format. What this one does is it provides a timestamp next to each of your history entries, letting you know when they were added. It does that by using a string here and a set of special format codes. These are known as the strftime format. I call that string from time. Other people may pronounce it as string f time. I have given you a reasonable example here, but you can also go out on the Internet and look up these formatting codes, if you want to use something different. The next one is HISTCONTROL and you can see the value for that is ignoreboth.

Well what does that mean ignoreboth? Where there are actually three values that we could put there. We could put ignoredups, ignorespace or ignoreboth and I'm telling it I wanted to do both, both dups and space. ignoredups means that we don't want history to record the same line multiple times. Try to ignore the duplicates when you can. ignorespace tells history not to record any line that begins with a space. Why would we need that? Well it's a little trick that a lot of people like to use. Let's say that there is a single Unix command that you're about to enter, but it has something in it like a password that you don't want to be saved in your history where someone might see the password later.

Well if you just start the line with a space and then type the command, Unix will still interpret the command as normal but history will ignore it and it won't show up in your history file. So it's a very convenient way just be able to hide a single line from your history. We also can ignore certain commands all the time and we do that with HISTIGNORE. Here we provide a colon-separated list of all the commands that we want history to ignore all the time. For example history. I don't need to record in my history the fact that I typed history. Another common one is PWD.

Every time I've checked to see what directory I am in I don't need to have that in my history, so I can leave that out. You typically want to leave the things to get ignored to be a very simple list. Either put nothing in there at all or keep it very very simple. I've put mostly here informational things. Things that are just sort of I might check you know just to see where I am at, to see what's going on. I don't want to record those in my histories. But things like copying and moving and stuff, I want to have those in my history because I may want to go back and use them again or edit them or to see the fact that I took those actions. All right remember that you can pause the movie to copy all of this down.

Once you've get it in there, let's use Ctrl+X to exit, save the changes, and let's also then run, using source .bashrc will read in those changes as well. So now all those variables have been defined and let's just type a few different commands. Let's try echo "Hello" and let's try ls. Let's try echo "Hello" again and one more time and let's just space echo, we'll do 'secret', let's say we have a secret password in there, ls -la, and last of all pwd.

Okay, now that we have done all those, let's clear the screen. Let's type history and let's see what's in there. My nano that I did to edit the bashrc, the source where I ran those changes, and the first echo made it in there and that's it. That's because ls, ls -a, pwd and history were all hidden those are all things that I told them that they should ignore those commands. The duplicates were kept out, right, so I only saw echo "Hello" one time and also the echo 'secret' that I did with a space at the beginning got left out as well.

So you can see how we are able to leave those out. You also can see that now I have this time format here at the beginning, telling me when each of these different commands was entered. I have a timestamp there. As far as the history size and history file size, you'll just have to sort of take my word for it or you can set those to really low numbers so that you can actually see how those work as well. Now I want to show you want other thing though. Let's try ls -al, right. I added ls -la in that ignore list, but now let's type our history and notice that it did get added there.

So the things that we type under HISTIGNORE have to be exact, even the options. For example if I do history, pipe it through tail -8, now I see the last 8 commands that were run including this history command that I just ran, right. So history by itself doesn't get added, but history piped through this other thing does get added. So again all of these changes are really just about configuring your working environment to be the way that you like it to be. We have now seen a few of the most useful configurations that you can make with the environment variables, but beyond these I think it's more important for you to understand the overall concept of how you go about setting environment variables and making them available every time that you log in, by putting them in your bashrc file.

Other Unix programs you encounter in the future are also going to make use of shell variables and when they do, now you know how to set them.

Show transcript

This video is part of

Image for Unix for Mac OS X Users
Unix for Mac OS X Users

82 video lessons · 25420 viewers

Kevin Skoglund
Author

 
Expand all | Collapse all
  1. 3m 57s
    1. Introduction
      1m 14s
    2. Using the exercise files
      2m 43s
  2. 32m 2s
    1. What is Unix?
      7m 27s
    2. The terminal application
      4m 23s
    3. Logging in and using the command prompt
      5m 19s
    4. Command structure
      5m 22s
    5. Kernel and shells
      5m 25s
    6. Unix manual pages
      4m 6s
  3. 15m 58s
    1. The working directory
      2m 49s
    2. Listing files and directories
      3m 59s
    3. Moving around the filesystem
      4m 58s
    4. Filesystem organization
      4m 12s
  4. 1h 4m
    1. Naming files
      5m 41s
    2. Creating files
      2m 19s
    3. Unix text editors
      6m 39s
    4. Reading files
      5m 35s
    5. Reading portions of files
      3m 27s
    6. Creating directories
      2m 40s
    7. Moving and renaming files and directories
      8m 32s
    8. Copying files and directories
      3m 7s
    9. Deleting files and directories
      3m 38s
    10. Finder aliases in Unix
      4m 10s
    11. Hard links
      5m 30s
    12. Symbolic links
      6m 36s
    13. Searching for files and directories
      6m 32s
  5. 34m 58s
    1. Who am I?
      4m 3s
    2. Unix groups
      1m 52s
    3. File and directory ownership
      6m 41s
    4. File and directory permissions
      4m 27s
    5. Setting permissions using alpha notation
      6m 49s
    6. Setting permissions using octal notation
      3m 49s
    7. The root user
      1m 57s
    8. sudo and sudoers
      5m 20s
  6. 52m 34s
    1. Command basics
      4m 4s
    2. The PATH variable
      4m 13s
    3. System information commands
      3m 40s
    4. Disk information commands
      6m 8s
    5. Viewing processes
      5m 0s
    6. Monitoring processes
      3m 36s
    7. Stopping processes
      3m 19s
    8. Text file helpers
      6m 50s
    9. Utility programs
      7m 28s
    10. Using the command history
      8m 16s
  7. 20m 39s
    1. Standard input and standard output
      1m 24s
    2. Directing output to a file
      4m 13s
    3. Appending to a file
      2m 44s
    4. Directing input from a file
      5m 28s
    5. Piping output to input
      4m 40s
    6. Suppressing output
      2m 10s
  8. 41m 28s
    1. Profile, login, and resource files
      9m 11s
    2. Setting command aliases
      6m 59s
    3. Setting and exporting environment variables
      4m 54s
    4. Setting the PATH variable
      6m 10s
    5. Configuring history with variables
      6m 17s
    6. Customizing the command prompt
      6m 5s
    7. Logout file
      1m 52s
  9. 1h 25m
    1. grep: Searching for matching expressions
      5m 21s
    2. grep: Multiple files, other input
      4m 28s
    3. grep: Coloring matched text
      2m 57s
    4. Introduction to regular expressions
      3m 22s
    5. Regular expressions: Basic syntax
      3m 19s
    6. Using regular expressions with grep
      5m 20s
    7. tr: Translating characters
      8m 17s
    8. tr: Deleting and squeezing characters
      5m 30s
    9. sed: Stream editor
      7m 45s
    10. sed: Regular expressions and back-references
      7m 8s
    11. cut: Cutting select text portions
      7m 42s
    12. diff: Comparing files
      4m 35s
    13. diff: Alternative formats
      4m 30s
    14. xargs: Passing argument lists to commands
      7m 25s
    15. xargs: Usage examples
      7m 59s
  10. 42m 25s
    1. Finder integration
      4m 45s
    2. Clipboard integration
      5m 5s
    3. Screen capture
      3m 42s
    4. Shut down, reboot, and sleep
      3m 34s
    5. Text to speech
      2m 36s
    6. Spotlight integration: Searching metadata
      3m 41s
    7. Spotlight integration: Metadata attributes
      4m 24s
    8. Using AppleScript
      5m 23s
    9. System configurations: Viewing and setting
      5m 51s
    10. System configurations: Examples
      3m 24s
  11. 1m 26s
    1. Conclusion
      1m 26s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now "Already a member? Log in

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Unix for Mac OS X Users.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Are you sure you want to delete this note?

No

Your file was successfully uploaded.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.