Link to home
Start Free TrialLog in
Avatar of emieng
emieng

asked on

better terminal emulator program than cmd?

Is there a better terminal emulator program to run a command
shell, e.g., bash, csh, zch, etc. in than cmd? I know there
are many programs to run telnet, ftp, etc. in, but this is
not what I need.
Avatar of drcheap
drcheap
Flag of United States of America image

I am not 100% sure what you consider a "better" command shell, but I do know of one that far exceeds the usefulness of CMD.EXE.

The product:  JP Software's 4NT

This is the NT counterpart of the legendary 4DOS...which I used for years until I got NT, and was so dependent on it's wealth of cool features that I was in a living hell for a week after installing NT and before installing 4NT :)

I'm locking the question since I think this is what you are looking for in a "better" shell.  If not, please unlock and re-state the question!
I also should mention that this shell offers a TON of conveniences that Micro$oft would never think of...including but not limited to:  filename/directory completion, extended directory searches, extended wildcards and ranges, aliasing, file descriptions, and super-enchanced batch file processing...

And, of course, where to find it?  http://www.jpsoft.com/

i agree, the only replacement worth the name is 4NT. great software
Avatar of emieng
emieng

ASKER

I'm not looking for a replacement shell, the ones I mentioned are more than adequate. What I'm looking for is a program to run them in. If you're familiar with the X Window System, I'm looking for a new "xterm".
In that case: No.
Then...  I am confused about what exactly you are wanting to do.

When you say, "programs to run telnet, ftp, etc.," are you refering to actual clients such as NetTerm and CuteFTP?

To the best of my knowledge, in X an "xterm" is just a window that contains a command shell, it is not runnin "in" anything except the window manager itself.  This is synonymous with running CMD in a window in NT.  

I am not sure, but I think there is an actual "xterm" executable which does run the shell, but I don't know of it to have any other purpose than setting window geometry/etc.; thereby making it transparent to the whole process.  

What I am also confused about is what you are trying to do overall, are you trying to run shells like bash or zsh under NT?   That seem sort of funky to me, but I have heard of stranger things.

Or, perhaps, are you looking for a MS-Windows based X server?

I am being lost on your intentions somewhere between NT and UNIX.  Please clarify them a little more :)

After reading the original question I see that you refer to CMD as a terminal emulator to run a command shell in.  I think what is throwing me off is that CMD *is* a command shell; there is no terminal emulator.

The other thing that hit me is maybe you are wanting a terminal emulator that runs in CMD?  e.g. a command line telnet app for text-mode that would then allow you to get to a machine running bash or zsh or whatever.  I have one of these...really convenient!  Just a thought...
Maybe he is looking for RCMD from the resourcekit. A remote CMD. If you install the server you can use the client RCMD to open a CMD-window on your computer, but the commands executed in there are all running on the remote machine.
Else I do not know what the issue is here.

Avatar of emieng

ASKER

I'm not looking to run commands remotely, just locally. Here's my
situation. I'm a long-time Unix bigot forced to use NT (why else
would anybody use it?) so I picked up the Cygnus GNU-Win32 software. Included in it is bash, a popular command shell within
the Unix community. So how do I run bash? If I double-click on it from Explorer, bash runs within a cmd window. I want to replace cmd in this situation with another program which acts as a terminal emulator, just as cmd is acting as a terminal emulator. xterm is a program which does this but I don't want to run an X server just to provide terminal emulation.
ASKER CERTIFIED SOLUTION
Avatar of j2
j2
Flag of Sweden image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Have you ever used 4NT ?  After some tweaking, you can make it look and act like bash :)  But anyway, I have an idea...

The way NT actually runs an executable file is something like this:

You double click the EXE file
NT sees you want to open an EXE file
It find that it is registered as type "exefile"
Looks in HKEY_CLASSES_ROOT\exefile\shell\open\command
Finds the value of (Default) to be ""%1" %*"
     This means to "Run" the command line of the exefile name & any other parameters specified.  If you change this to something else...it eliminates the ability for NT to execute *any* .EXE file...now that's a nice way of restricting user rights :)

NT then executes the command line based on a few things:
Is it a 32 bit app?  Run it!
Is it a 16 bit app?  Use 16 bit subsystem.

So where does CMD fit into this?

CMD is just a 32bit app.  If you then spawn a 16bit app under it, the app may run completely within CMD, or under the 16bit subsystem depending on the nature of the program.

From what I can tell, NT directly executes all programs, 32 or 16 bit as standalone apps -- not requiring CMD at all.  To show how this works do the following:

First, make a copy of CMD.EXE to some location buried deep in a directory tree that is not in your PATH.  This is your saved backup copy, and only hope of reversal of this procedure :)

Next, delete all copies of CMD.EXE except the backup. (!)

Then, hit Start|Run and try and run various apps, try some 32bit, 16bit windows, 16bit DOS, try bash even!

Notice -- They all run!  Even DOS text-mode proggies that were made before 32bit x86 software was around!

Now, to further understand what is going on, open up the Task Manager and look in the Processes tab and observer as you run things... look for the name of the executable you are running if its 32bit, or look for ntvdm.exe if its a 16bit app.  You will not once see CMD appear in there, and it can't because as far as NT is concerned it doesn't exist!

Now, if your bash will run like this, then try it again after restoring CMD.EXE and keep an eye on the Task Manager|Processes.  If you see it run without CMD being run, then I have solved your problem because "bash is running, but not under CMD."
In fact, it's even better than your goal because it "eliminates the middleman" of a terminal emulator :)
Avatar of emieng

ASKER

Without hiding cmd.exe as you suggested, I can Run bash and it starts without cmd.exe showing up in the Task Manager. This sounds like your last scenario. Thanks for the discussion.
Thanks for the pionts too.  (sarcasm)