fc command


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers fc command
# 1  
Old 07-13-2007
Data fc command

When I type fc -l (lowever case L), it displays the command history? Where is it pulling the commands from. I thought is was the .sh_history file (since my HISTFILE isn't set, but it appears the .sh_history file contains older information from my previous login. Also, the .sh_history file continas printf statements from login scripts. So how does fc -l really work. Where are the commands being buffered? One more thing. Is it possible to keep the buffer in tact if I log out and back in. Sometime I like to type <ESC>/ to FIND a command I entered yesterday today?

Thanks!
# 2  
Old 07-14-2007
Quote:
Originally Posted by richmeeker
When I type fc -l (lowever case L), it displays the command history? Where is it pulling the commands from. I thought is was the .sh_history file (since my HISTFILE isn't set, but it appears the .sh_history file contains older information from my previous login. Also, the .sh_history file continas printf statements from login scripts. So how does fc -l really work. Where are the commands being buffered? One more thing. Is it possible to keep the buffer in tact if I log out and back in. Sometime I like to type <ESC>/ to FIND a command I entered yesterday today?

Thanks!
Well, it depends somewhat on what shell you're using and which specific UNIX OS. There's a built-in fc command to the Korn shell, and some (most?) flavors of UNIX have a fc program. I've never noticed a difference, but then again, I don't use it very much (if ever). Smilie Anyway ... the way the versions I know work is that if the HISTFILE environment variable isn't set, it will use the .sh_history file in the user's home directory. If it can't do that it will use a temporary file.

Now while there are numbers associated with the commands, you can't always assume that the larger numbers are associated with newer commands than the smaller numbers are. Once fc reaches a certain limit it will wrap the numbers back around to 1. It keeps track of this, so it knows that (assuming it wrapped at 10000 say...100 commands ago) command 9997 is newer than command 9990 while command 97 is newer than both.


The AIX version of fc defaults to keeping 128 commands in the history if the HISTSIZE environment variable isn't set. I don't know about you, but I can burn through 128 commands in no time at all, so if you want to be keeping commands from the previous day around I'd set HISTSIZE to something bigger than that. There's a limit around 32 or 33 thousand I think, but when you get that big you might see some performance impact.

Even if you have HISTSIZE set large enough, there's a lot that might affect whether your commands from a previous session are still around. Stuff like login scripts, where you log in from, what kind of terminal (or pseudo-terminal, or x-window, or... you get the idea) can all have an impact on that. My suggestion? It's very nice to have, but if you want to be sure of remembering a command later don't rely on the command history. Keep your own log, or alias it in your .env (or .profile or .alias or whatever is appropriate for your OS & shell). Hope this has the info you need.
# 3  
Old 07-16-2007
OK! Thanks!
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Another one line command where I'd like to determine if Ubuntu or Red Hat when running command

Hello Forum, I'm making very good progress on my report thanks to the very helpful people on this forum. I've been able to successfully create my report for my Red Hat servers. But I do have a few ubuntu servers in the mix and I'd like to capture some data from them when an ssh connection is... (8 Replies)
Discussion started by: greavette
8 Replies

2. AIX

I'm facing problem with rpm command, when running the command and appears this error:

exec(): 0509-036 Cannot load program /usr/opt/freeware/bin/rpm because of the following errors: 0509-022 Cannot load module /opt/freeware/lib/libintl.a(libintl.so.1). 0509-150 Dependent module /opt/freeware/lib/libiconv.a(shr4.o) could not be loaded. 0509-152 Member... (4 Replies)
Discussion started by: Ohmkar
4 Replies

3. Shell Programming and Scripting

Multiple command execution inside awk command during xml parsing

below is the output xml string from some other command and i will be parsing it using awk cat /tmp/alerts.xml <Alert id="10102" name="APP-DS-ds_ha-140018-componentFailure-S" alertDefinitionId="13982" resourceId="11427" ctime="1359453507621" fixed="false" reason="If Event/Log Level(ANY) and... (2 Replies)
Discussion started by: vivek d r
2 Replies

4. Shell Programming and Scripting

SH script, variable built command fails, but works at command line

I am working with a sh script on a solaris 9 zone (sol 10 host) that grabs information to build the configuration command line. the variables Build64, SSLopt, CONFIGopt, and CC are populated in the script. the script includes CC=`which gcc` CONFIGopt=' --prefix=/ --exec-prefix=/usr... (8 Replies)
Discussion started by: oly_r
8 Replies

5. UNIX for Dummies Questions & Answers

passing command output from one command to the next command in cshell

HI Guys, I hope you are well. I am trying to write a script that gets executed every time i open a shell (cshell). I have two questions about that 1) I need to enter these commands $ echo $DISPLAY $ setenv $DISPLAY output_of_echo_$display_command How can i write a... (2 Replies)
Discussion started by: kaaliakahn
2 Replies

6. UNIX for Advanced & Expert Users

unix command : how to insert text at the cursor location via command line?

Hi, Well my title isn't very clear I think. So to understand my goal: I have a script "test1" #!/bin/bash xvkbd -text blabla with xbindkeys, I bind F5 key in order it runs my test1 script So when I press F5, test1 runs. I'm under Emacs/Vi and I press F5 in order to have "blabla" be... (0 Replies)
Discussion started by: xib.be
0 Replies

7. Shell Programming and Scripting

Need help! command working ok when executed in command line, but fails when run inside a script!

Hi everyone, when executing this command in unix: echo "WM7 Fatal Alerts:", $(cat query1.txt) > a.csvIt works fine, but running this command in a shell script gives an error saying that there's a syntax error. here is content of my script: tdbsrvr$ vi hc.sh "hc.sh" 22 lines, 509... (4 Replies)
Discussion started by: 4dirk1
4 Replies

8. AIX

AIX:Command to get netaddress/subnet address command in IPv4/IP6

AIX:Command to get netaddress/subnet address command in IPv4/IP6 Can anybody help us with a command to retrieve netaddress/subnet address command in IPv4/IP6 on aix machine. net/subnet address is in the format 172.16.212.0(signifies all 255 machines in an IPv4 network) (2 Replies)
Discussion started by: rookie8278
2 Replies

9. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 Replies

10. SuSE

inconsistent ls command display at the command prompt & running as a cron job

Sir, I using the following commands in a file (part of a bigger script): #!/bin/bash cd /opt/oracle/bin ls -lt | tail -1 | awk '{print $6}' >> /tmp/ramb.out If I run this from the command prompt the result is: 2007-05-16 if I run it as a cron job then... (5 Replies)
Discussion started by: rajranibl
5 Replies
Login or Register to Ask a Question