15 ms·
Can you tell me more about the native or full featured bash or zsh environment you're interested in? Do you want inbox bash/zsh? Do you want native coreutils? D
by loarabia 12y ago
Can you tell me more about the native or full featured bash or zsh environment you're interested in? Do you want inbox bash/zsh? Do you want native coreutils? Do you want the full POSIX API layer? something else? Also, can you tell me about your workflow or what you envision it to be in this environment?
I ask because I work in the console space at Microsoft and am keen on understanding the features you're looking for and what scenarios you're attempting to satisfy.
We also have a user voice going where we've been fortunate enough to gather a lot of passionate feedback.
https://wpdev.uservoice.com/forums/266908-command-prompt/category/87960-cmd https://wpdev.uservoice.com/forums/266908-command-prompt/cat...
- diminoten 12y agoI want what Cygwin gives me, for starters, so POSIX API (I think). I don't want to have to relearn commands that I know work in *nix land, is the big point -- I don't want to have to remember to change the directions of my slashes, for example. I'm not an expert, merely a user, in this space, so I can't really articulate precisely what it is I want in the best terms possible, but I can say I get a lot closer to where I want to be with Cygwin than I get with anything that comes native on Windows.
- elektronjunge 12y agoYou can use forward slashes in paths in cmd and powershell. But yes, I agree with your main point.
- loarabia 12y agoGood feedback. When you work in Cygwin, are you doing admin type tasks, web dev, writing console utilities, something else related to app dev?
- diminoten 12y agoIn systems where I find myself in the shell, I tend to prefer the shell to everything except certain system configuration tasks (I like the shell for things like tweaking network settings, but dislike it for things like printer config, for example), and for actual software dev (IDEs still win for me). Once I feel I can buy into the shell, I'll probably go all in. Until then, I try to use Cygwin to avoid having to switch to a *nix box when I just want to use a simple admin utility or maybe test something out in the Python REPL, but otherwise I just tend to switch when I want to spend a work day on something.
- deleted 12y ago[deleted]
- claar 12y agoFor me, I'd summarize the need as a "first class bash/zsh environment". I'm fairly certain this cannot happen on Windows, but I'd love to be proven wrong. The reason I switched to linux, then OS X, was as a web developer there's no substitute for a real bash environment integrated with the OS. I was a cygwin user when I was on Windows, but many things just didn't work or only worked with a lot of messing around with configuration. I believe most of this is due to the lack of POSIX compliance on Windows. Many things were funky, such as "cd c:", symlink vs junctions, and interplay between dos utilities and cygwin utilities (the find and locate commands come to mind). A lot of things worked, and I commend the developers who hacked it together, but when you wanted to do anything remotely complicated, it became evident it was just a veneer.
- loarabia 12y agoI don't think it's impossible to have a first class bash or zsh environment (or even necessarily a non-emulated POSIX environment) but like many things in software it may take time and a few iterations to get it right and as mmphosis says below how do you manage the complexity. Thanks for giving me the feedback that you're using the environment for web-development. I've often wondered as I look over feedback like yours if one of the reasons some web developers prefer NIX is because a good many tutorials are written assuming a NIX environment. Would love to know your thoughts.
- ANTSANTS 12y ago>I've often wondered as I look over feedback like yours if one of the reasons some web developers prefer NIX is because a good many tutorials are written assuming a NIX environment. Would love to know your thoughts. I think it's because most web developers are going to be using Linux or a BSD on their servers, so they'd rather use the same environment on their dev machines. However, a good console/terminal emulator, support for popular shells, all the common UNIX utils, a better package manager and repository than nuget and chocolatey (perhaps Microsoft needs to start pulling from and communicating with the upstreams of certain projects?), and most importantly, the ability to use all of this out of the box without having to deal with myriad incompatible toolchains, would IMO capture most of that benefit for the average web developer. Disclaimer: I'm a game developer, so I'm probably not your target here. I like having a UNIX environment around for writing scripts and munging data, and just think it'd be great if I could have one out of the box without needing to mess around with msys/cygwin/gow/etc. EDIT: I should add, there are quite a few projects that could easily be ported to Windows, but haven't, because the developers don't care enough to write POSIX wrappers for i.e. mmap vs MapViewOfFile. Short of a full POSIX implementation, having official wrappers for some of these basic APIs could make Windows support too trivial for them to ignore.
- egeozcan 12y agoSo now Ctrl+C is "Cut" and the "terminate" shortcut for most of the apps is overridden?
- loarabia 12y agoIt will still send the interrupt signal to the running application when no text is selected.
- mmphosis 12y agoworkflow: porting code between everything, running bash scripts, building software. Reduce vulnerability. No system is invulnerable, but sadly we run Windows in a sandbox or not at all. And portability, I don't care if you fake it as long as it works. Don't require weird stuff. C:\AUTOEXEC.BAT, bash and zsh are "just interfaces." I don't usually interact directly with mach or the linux kernel that would be weird. For instance, over time OS X has had a line of dispatch mechanisms, launchd, Grand Central Dispatch, ... They all work, but they are different (weird.) Don't even get people started about systemd on Linux. crontab should work on OS X, and Windows because it's "just an interface." The underlying layers are Microsoft's kernel and services. We're just using an interface. Don't require weird stuff. At the same time, don't break things. UNIX POSIX API layer coreutils https://www.gnu.org/software/coreutils/ https://www.gnu.org/software/coreutils/ Homebrew installs the stuff you need that Microsoft didn’t. http://brew.sh/ http://brew.sh/ Obviously, don't install coreutils, homebrew, fill-in-the-blank by default. But make them easily installable and seamless once installed. Keep the core OS lean. Adopt Linux, OS X, Google Play, and whoever else comes on the scene. If you do, then Microsoft OS is the killer OS because it runs ALL the programs. I should be able to run programs for different architectures in Windows. Virtual layers via VMs, compatibilty layers, simulators, and emulators are sweet. ie. "wine weirdProgramForWin32.Exe", running a Mac OS X PowerPC program on OS X Intel or Arm, or ... Please lose the "CP/M" (MS-DOS) creatures. Here's a short wish list of things because they bother me: * go with a single character newline: change from CR LF to LF * make notepad play nice with newlines * change \ to / * mount umount: the drive letters are old and \\ is weird * text files don't need the .TXT extension * change .HTM to .html, or get rid of extensions. * executables don't need the .EXE extension * file permissions: hidden-extension.jpg.EXE should not be executable by default * don't take over the boot block of my hard drive, allow grub or whatever to boot Windows See Linus Torvalds comments on filenames -- case sensitivity amongst many other hard to salve problems. See the Apple devs comments on Microsoft Office filenames. All of this, not just Microsoft, seems broken to me. Why can't I put a "/" in my filename in Linux? Why can't I put ":" in my filename on OS X? Windows paths? I know why, but I feel like there is a better way. Simple, but not too simple. Basically, allow interoperability: make things work. OS X is good, Linux is better. Microsoft could be the best. People like using what they are used to. The Windows interface is familiar. A mobile interface intermixed with the familiar Windows interface is confusing. Again, it's "just an interface." I was hoping Windows 9 might be more like Windows 7. Hopefully, looking forward to Windows 10. Good luck. My question for you is: How do you manage complexity?
- WorldWideWayne 12y agoI'm so excited to see your comments here today because I thought that Microsoft would never consider giving us a robust nix-style shell on Windows. I know there is PowerShell but it's just so verbose compared to bash. I am a multi-OS user and I just wish that I could easily use some simple Unix commands on Windows without having to learn a whole new shell.
- Igglyboo 12y agoI don't want to have to relearn everything like I do for powershell, everything from *nix should carry over. I want a package manager for everything, something like nuget (which is great), but for the entire OS like brew/apt/yum. I want a ssh client/alternative, I should be able to administer a windows box without having to RDP in. These are my main issues but i'm sure there are plenty of other small ones. My workflow is typically web development but I work for a smallish company and do a bit of Ops as well.