I'm contemplating moving from Linux to Windows. What worries me is being less productive. E.g.:

In Linux, I can run applications fairly quickly if they are in the PATH (and most applications are because of the filesystem layout standards -- e.g., /usr/bin and /usr/local/bin)

I can open vi right in the shell (not losing focus)

I have programmatic completions. For example, I have a script that finds all files with some string in their name in the somewhere under the current directory and I have completions for it (so "ff Foo<tab>" will complete with all file names containing Foo)

So I'm looking for suggestions of Windows tools that will make me more productive. I'm aware I can use Cygwin, but I'm looking at alternatives that are not "make Windows behave like Linux".

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
If this question can be reworded to fit the rules in the help center, please edit the question.

BTW: I'd appreciate any productivity tool, not just for the use cases I mentioned
–
IttayDDec 2 '09 at 12:29

3

+1 Interesting. I would be curious about the opposite: being as productive in Linux as in Windows. ;)
–
Jon SeigelDec 2 '09 at 17:02

1

Just a little tip: Don't install games on windows. Though you might not suffer from the same addictons I do. I used to dual-boot (linux for work, windows for games) and all was great. Lately I've been using windows for work (mostly through Putty) and I've aquired the bad habit of "momentarily" stopping work to play a bit.
–
MalabarbaDec 5 '09 at 13:44

As for programmatic completions. Windows vista and 7 have the startmenu search function. It's not as powerful as the terminal, but it's still useful. And it's as quick as pressing Win then typing Foo to see options pop up.
–
MalabarbaDec 5 '09 at 14:05

15 Answers
15

Think of Windows as a superset of Linux, because that's basically what it is: All the techniques and utilities you use in Linux will translate directly if you use the same programs.

On the other hand, Windows provides many new and rich shortcuts and techniques not available in Linux. Some of my favorites are:

Use Win+R shortcut key, type in a program name (notepad), file path (c:\folder), network path (\server\share\folder) or web site address (www.xyz.com). In each case you get filename completion including a drop-down list of suggestions, and no command window is necessary.

Use Windows Explorer as your command shell. Browse with the shortcut keys, use Win+R to get somewhere, and use shortcut keys to work with the files.

Add programs such as editors and file viewers to your SendTo folder, each with unique prefix, so you activate the program with three keystrokes. For example, I always create a "1 Notepad" shortcut in SendTo every time I start working on a computer, so I can always do Shift-F10, N, 1 (or right-click, N, 1) to open any file in Notepad.

Use Cut/Copy/Paste shortcut keys (Ctrl-C, Ctrl-X, Ctrl-V) to move and copy files and folders between directories. You can duplicate a file or folder within a single directory with the quick keystroke combo Ctrl-C, Ctrl-V.

Use F2 to edit file names and Ctrl-F to find files

Various Linux GUIs have one or more of these abilities, but you cannot rely on them across various Linux installations. On the other hand, you can always do these things in any modern Windows (eg since Windows 2000), so you are free to focus on the problem at hand.

In Linux, applications normally install to /usr/bin, in Windows, each application is in its own folder, adding each one to PATH is a pain
–
IttayDDec 2 '09 at 12:27

Not if you add one place, then make a script to symlink executables to c:\bin\ automatically :)
–
PhoshiDec 2 '09 at 13:15

Don't really see the use of having applications in the path just for launching them as they're most likely indexed and will be found with the normal searcher/launcher anyway (and if not, make sure they are indexed and enjoy ^^
–
Oskar DuvebornDec 6 '09 at 14:44

I agree -- there isn't much point in adding application install paths to the PATH environment variable. Also, on a side note, I think PowerShell is a hell of a lot more powerful than Bash. Would you rather spend your time parsing text, and piping text to other commands, or would you rather use rich objects? :)
–
Trevor SullivanNov 8 '12 at 13:35

Launchy will give you very easy single-keystroke launching of applications. Regarding the command line things have got a lot better in terms of funtionality with XP SP3, Vista and 7. From my somewhat limited experience of the Linux prompt it seems that Linux works that way from the ground up, whereas Windows has always been a GUI and any command line functionality was largely a hangover from MS-DOS days. But now there's a 'headless' version of Windows Server it'll have to get a lot stronger in this respect.

"hangover" or "holdover"? While I've had hangovers trying to forget DOS, I think you mean the latter term...
–
AnonJrDec 2 '09 at 22:50

Launchy is one utility I cannot go without anymore. It basically lets you type a command name(matches partials), and if it is in the start menu, it will launch it. Other than that, I think powershell is supposed to be nice, but I just stick with cygwin. Even once you got used to the shell it wouldn't be long till you were missing grep, find, etc,
–
MattGDec 4 '09 at 22:00

I have found that the cygwin toolkit is invaluable on windows. It gives you a nice linux like shell on top of the windows os.

The one thing that I would recommend with it though is running the rxvt terminal window instead of the normal command line window. That way you get better copy and paste support and also a more familiar, x-win like shell window.

I'm contemplating moving from Linux to Windows. What worries me is being less productive. E.g.:

In Linux, I can run applications fairly quickly if they are in the PATH*

Windows has a PATH as well. You can either check out what's in it through GUI (Control Panel/System/Advanced/Environmental variables/PATH) or through command line, by just typing PATH.

This shortcut is often useful if you wish to add a temporary directory to a path;
c:>path c:\temp;%PATH%

I can open vi right in the shell (not losing focus)*

As far as I know vim on windows has two versions, command line one (console as they call it), and gui (gvim). Both work more than fine. I prefer gvim, but that's just personal preference. Put vim's runtime directory in PATH variable, and you can open it from wherever you like.

I have programmatic completions. For example, I have a script that finds all files with some string in their name in the somewhere under the current directory and I have completions for it (so "ff Foo" will complete with all file names containing Foo)*

Well, I don't know about this specifically, simply because I didn't need it, but apart from cygwin there are several ports of "standard" unix command line utilities, with which I believe you can do mentioned. My preference goes to unixkit-tiny which is a native (sort of) windows port. Portable and all. Can be downloaded from here.

So I'm looking for suggestions of Windows tools that will make me more productive. I'm aware I can use cygwin, but I'm looking at alternatives that are not "make windows behave like linux".

Well, in that case (not "make windows behave like linux"), you can just go with Notepad2 or ++, Powershell, and some file manager combination ;)
Seriously now, I believe the above mentioned will serve you well. If you have any other problems state them in your question.

AutoHotkey and Executor are two fantastic tools. Windows has a %PATH% too, use it. Try the registry key at [here] to make your own .bashrc style cmd config script, doskey is almost as good as bash's alias

Python and Perl both run on Windows, if you don't know either, learn one, they can do everything a .sh shell script can, and more. Grab either UnxUtils or Cygwin (Add it's \bin folder to your PATH, the tools are very good, it's just the bash emulator that's heavy and not-windows), because the default cmd toolset is rubbish. Also gets you vim and emacs, (both proper ports) depending on what your choice is (vim :))

With all this, I have a powerful command line (not quite bash-standard, but it's highly usable), and a powerful GUI. Meta-G to google the highlighted word, capslock to bring up firefox, global search with Everything, good multi-monitor support, KDE-style window movement, so on. Windows isn't perfect, but it's got a lot going for it.

Take your linux command line-fu with you. From the cmd shell you can use you favourite unix tools by using Gnu Win32 or unxutils. These tools play nicer with windows than cygwin because you live within the windows cmd shell.

I could not live without SlickRun, though I hear Launchy is good as well. Also, for more of the applications, you could go to the 'Alternative To' site to see what some of your windows-based options are to replace apps you use in linux.

How so? What does it do that is useful? how does it relate to the OP's needs?
–
MaQleodJul 10 '12 at 22:17

@MaQleod: It implements a clipboard history which isn't available in Windows by default. It really helps when editing code / text. The OP wanted suggestions for any helpful productivity tools (see comment in question) and I find this one helps me write code.
–
SkizzJul 11 '12 at 8:56

I understand what the OP wanted, answers to questions on SU that include a link should not just solely be a link. It is good practice to write a brief summary about how that link correlates to what the OP asked.
–
MaQleodJul 11 '12 at 20:33

One of the first programs I install on Windows is Ch Shell from SoftIntegration. I originally began using it as an interactive way to learn C, but now use it for much more. It includes several Gnu utilities that are simply nice to have on Windows that aren't standard. And if you are familiar with C, it makes a decent scripting environment.

Windows Powershell is also another great tool. It can access the .Net framework, so you can build just about anything with it. It is quickly becoming widely supported by many third-party applications.

If you're still contemplating a Unix-like environment, take a look at the Subsystem for UNIX-based Applications from Microsoft. Unlike Cygwin, SUA is an environment subsystem that runs on top of the Windows kernel, at the same level as the Win32 subsystem. It's fairly neat stuff.

Lastly, if you want to wring the most out of Windows, avoid the "Home" versions. They are missing some options & functionality that a "power user" might want.