Solved

! nn and !! with ksh

Posted on 2001-06-24
14
1,088 Views
Last Modified: 2010-04-21
Hi all,

Now I can use ksh from csh but I face another issues :
- when I enter !! it raises ksh: !!: not found
- when I want to reexecute a command under ksh e.g. : ! nn, it have : ksh: 114: not found.

Thanks in advance.
0
Comment
Question by:Richard Coffre
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
14 Comments
 
LVL 38

Accepted Solution

by:
yuzh earned 50 total points
ID: 6223778
Hi  pyxos,

     Now you can put :
     EDITOR=vi
     export EDITOR
     in your .profile
     
and
     put
     set -o vi
     in your .kshrc file

after that when you usr ksh, and type in
     . $HOME/.profile
     . $HOME/.kshrc

      you can use <Esc> k to serach you command line history

or  type in:
     <Esc> k /<serch-patten>  to search you commands from the
history.
     this command line editor behave like the vi editor, you can edit you
command use the same keys as vi.

     I hope this information help.

     Regards
          yuzh
     

0
 
LVL 11

Expert Comment

by:griessh
ID: 6224968
Another way (I like this one even more)

In your .env file, add:

set -o emacs

# Arrows
#
alias __A=^P                    # uparrow
alias __B=^N                    # down arrow
alias __C=^F                    # left arrow
alias __D=^B                    # right arrow

to use the arrow keys on your keyboard to go back and forth in your history.

(The ^P is a Ctrl+P key, same for the others ...)

======
Werner
0
 
LVL 8

Expert Comment

by:mnashadka
ID: 6225834
If you're using the vi editor as yuzh suggested, r nn is the same as !nn:
>history
1 ls
2 cd /
3 grep "hello" file

>r 2
cd /
0
Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

 
LVL 1

Author Comment

by:Richard Coffre
ID: 6226553
Hi Werner,

When is the file .env loaded ?
Do I have to source it manually ?

Thanks ina advance
0
 
LVL 11

Expert Comment

by:griessh
ID: 6227389
No, as soon as you type your "ksh" the shell will source your .env file (locate it in your home directory). To test (I use that to debug these scripts) just put a "echo Now in .env" in the first line of .env. You should see that text as soon as you start ksh.

======
Werner  
0
 
LVL 11

Expert Comment

by:griessh
ID: 6227414
And if it is not working, ksh is looking for an environment variable 'ENV' that points to the .env file.
So you should set in your cshell login:

setenv ENV=$HOME/.env

======
Werner
0
 
LVL 11

Expert Comment

by:griessh
ID: 6227428
And if you need a good book, try "Bolsky/Korn : The New Kornshell, command and programming Language" (Prentice Hall PTR)

======
Werner
0
 
LVL 38

Expert Comment

by:yuzh
ID: 6227952
Hi pyxos,

   Not all favour of UNIX system come with .env now. eg. Solaris, SCO and Debian (Linux) etc. that's why I tell you
to put:
   export ENV=$HOME/.kshrc in your .profile
   by the way, the env command tell you all your enviroment
variables settings.

   "source" is a csh/tcsh term!
   If you default shell is ksh, when you login, it first look at .profile and .kshrc file in your home dir, otherwise, it look for a systems wide profile file.

  I hope that this infor help.

Regards
  yuzh

   
0
 
LVL 38

Expert Comment

by:yuzh
ID: 6227984
Hi pyxos,

   As Werner said, if yor prefer to use emacs, you just need to replace my vi with emacs and put it in your .profile or .kshrc file, it should work.
   I think vi is more powerfull.

Regards
   yuzh



0
 
LVL 11

Expert Comment

by:griessh
ID: 6228037
yuzh

>>  Not all favour of UNIX system come with .env now. eg. Solaris, SCO and Debian (Linux) etc. that's why I tell you
to put: export ENV=$HOME/.kshrc in your .profile

What do you mean with that?

It doesn't matter what name the file has. It is important that the ENV variable is set to point to that file! What would be more obvious to use .env for ENV?
Anyway, the .profile is the file used when your login shell is ksh, csh uses .login and .cshrc. So setting the ENV in .profile will only help when your login shell is ksh.

======
Werner
0
 
LVL 38

Expert Comment

by:yuzh
ID: 6229701
Hi griessh ,

   When people use something like:

    export ENV=File-name
    it will do the job as long as the file has all the ENV settings, by convention, the ksh people trend to use .kshrc as the file name.  

    Cheers

    yuzh


0
 
LVL 11

Expert Comment

by:griessh
ID: 6230926
yuzh

I doubt that. I know many people using the .env convention and if you look into the kornshell book I mentioned (oneof the authors is David Korn!) they use the .profile for login and the ENV variable without mentioning a name.

======
Werner
0
 
LVL 38

Expert Comment

by:yuzh
ID: 6233559
Hi Werner,

    I think the purpose for this website is for helpping people or getting help from other people, not for arguing.

    It happen I have a few books on my book case, please check them
out:
    The Korn Shell user & programming Manual
                     -by Anatole Olczak
     UNIX Clearly Explained
                     -by Richard L Petersen
     A Practical Guide to the UNIX System
                     -by M. G. Sobell
      SCO UNIX  user's manual

     And
     "Best UNIX Tips EVER"

     they all talking about .kshrc.


============== END======================================

yuzh
0
 
LVL 11

Expert Comment

by:griessh
ID: 6233584
yuzh

That's great! And David Korn uses .... ENV

======
Werner
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Attention: This article will no longer be maintained. If you have any questions, please feel free to mail me. jgh@FreeBSD.org Please see http://www.freebsd.org/doc/en_US.ISO8859-1/articles/freebsd-update-server/ for the updated article. It is avail…
FreeBSD on EC2 FreeBSD (https://www.freebsd.org) is a robust Unix-like operating system that has been around for many years. FreeBSD is available on Amazon EC2 through Amazon Machine Images (AMIs) provided by FreeBSD developer and security office…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:

622 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question