The Windows equivalents of the most used Linux commands
62 points by elsadek 13 hours ago | 57 comments

voidUpdate 2 hours ago
> "Author's note: From here on, the content is AI-generated"

Ah, I see, googling the equivalent of "clear" was too much work and you had to get an LLM to do it for you. Well at least you were honest about it

reply
not_a_bot_4sho 6 hours ago
A great non-AI resource on this topic: https://ss64.com/
reply
abhikul0 52 minutes ago
Or you can just prepend `wsl` to the linux command you want to run; of course only if you have wsl setup.

https://learn.microsoft.com/en-us/windows/wsl/filesystems#ru...

reply
gbro3n 5 minutes ago
Really? That's awesome
reply
Akuehne 9 hours ago
My most used windows command is, and will always be, `ls`.

Then I'm reminded that it's not a know file or directory.

reply
IcyWindows 8 hours ago
It's been nearly 20 years since powershell came out.
reply
SoftTalker 7 hours ago
And we had cygwin before that. First thing I always installed on a Windows box so I could use bash and all my favorite utilities.
reply
moi2388 5 hours ago
And it still sucks
reply
smackeyacky 2 hours ago
Cygwin was so much work but you’re still stuck in windows.
reply
GoblinSlayer 2 hours ago
On one our linux machine filesystem became strange, probably because somebody mistyped `ls /bin` as `ln /bin`. I think docs say hardlinking folders is impossible or maybe /bin was a symlink.
reply
gib444 4 hours ago
Same! Closely followed by 'cat' lol. 'type' just doesn't register in my brain
reply
chasil 4 hours ago
VMS also uses type to dump a file to stdout.

I understand that DEC TOPS 20 influenced CP/M and MS-DOS, so that could be the source for type.

https://en.wikipedia.org/wiki/TOPS-20

Edit: type has its own wiki, and TOPS-20 implemented it.

https://en.wikipedia.org/wiki/TYPE_(DOS_command)

reply
red_admiral 3 hours ago
Back before "type" we had "copy FILE CON".
reply
wernsey 2 hours ago
Can I just do a shout-out for UnxUtils [1]?

I've had it on every Windows computer I used at work since forever now, and it is extremely useful to be able to use things like `sed` and `gawk` (and even `make`) from the command prompt

[1] https://unxutils.sourceforge.net/

reply
smackeyacky 2 hours ago
Yuck. Just install WSL and be done with it
reply
pjc50 2 hours ago
Underrated secondary option: git bash. Lower setup overhead than full WSL, although it is slower if you need to work on a lot of files or spawn a lot of processes.
reply
smackeyacky 36 minutes ago
I guess you get git bash for free when you install git, which speaks legions about the pain of powershell
reply
anthk 43 minutes ago
Also, Minc, MinC is not Cygwin. And, yes slower, but it might work even under XP.
reply
Ciantic 2 hours ago
Let me present you my favorite, how do you figure out dirname, basename and filename in batch script?

    set filepath="C:\some path\having spaces.txt"

    for /F "delims=" %%i in (%filepath%) do set dirname="%%~dpi" 
    for /F "delims=" %%i in (%filepath%) do set filename="%%~nxi"
    for /F "delims=" %%i in (%filepath%) do set basename="%%~ni"

    echo %dirname%
    echo %filename%
    echo %basename%
It is just as intuitive as one would expect.
reply
dahauns 2 minutes ago

  $file = Get-ChildItem "C:\some path\having spaces.txt"

  Write-Output $file.DirectoryName
  Write-Output $file.Name
  Write-Output $file.BaseName
Or if that's still to verbose:

  $file = gci "C:\some path\having spaces.txt"

  echo $file.DirectoryName
  echo $file.Name
  echo $file.BaseName

People should really get over their aversion against powershell.
reply
malbs 9 hours ago
findstr is an underappreciated command line tool. I use it a lot
reply
Skywalker13 2 hours ago
ridiculous...

Why this entry is in the top 30?

reply
hackyhacky 8 hours ago
> Author's note: From here on, the content is AI-generated

Kudos to the author for their honesty in admitting AI use, but this killed my interest in reading this. If you can use AI to generate this list, so can anyone. Why would I want to read AI slop?

HN already discourages AI-generated comments. I hope we can extend that to include a prohibition on all AI-generated content.

> Don't post generated comments or AI-edited comments. HN is for conversation between humans.

reply
rmunn 8 hours ago
If the author had also included a note explaining that he'd *reviewed* what the AI produced and checked it for correctness, I would be willing to trust the list. As it is, how do I know the `netstat` invocation is correct, and not an AI hallucination? I'll have to check it myself, obviating most of the usefulness of the list. The only reason such a list is useful is if you can trust it without checking.
reply
tobyhinloopen 5 hours ago
How would you know the invocation is correct when written by a human? Don’t humans make mistakes?
reply
pjmlp 4 hours ago
If I get that kind of content, my first reaction is to close it, it is kind of low effort content nowadays.

Unfortunely at work it isn't as easy with all the KPIs related to taking advantage of AI to "improve" our work.

reply
charcircuit 7 hours ago
Why should you learn anything if you can just use AI to look it up? For fun is one reason.
reply
quanta-rs 2 hours ago
Why would you use CMD when Powershell exists?
reply
Grisu_FTP 2 hours ago
Its very likely that its just because i have almost no experience with powershell meanwhile i have now ~4-5 years of dailying linux but i just find the powershell commands to be very cumbersome to use. They are wayyy to long and descriptive instead of just 2-4 letters, there are 500 different commands for very specific uses instead of 10 tools that you can use and combine todo almost everything and if i recall correctly (my memory might trick me here tho) the errors are far less readable at a first glance and fill the entire terminal for simple things. CMD meanwhile feels like bash.

Most of my issues with it are probably just skill issues tho since like i said i dont really use or know it alot so i am happy to be corrected :) I mean if every Windows Sysadmin tells me how great powershell is, i cant just assume that they all are wrong (Or maybe its just the only way todo something thats otherwise simple over the terminal on windows, idk)

reply
smackeyacky 2 hours ago
Because powershell is weird and obtuse? Or because powershell works slightly different in the terminal va the powershell dev environment? Its a tool most of us use under duress rather than choice
reply
dahauns 18 minutes ago
I certainly won't argue that pwsh is even close to perfect, but...obtuse is just about the most unfitting description of powershell. It offers a level of structure and consistency that is - even with all its shortcomings - orders of magnitude above the wild west of the daily reality of the linux cli.

Just because it's the mess we are all intimately familiar with, doesn't make it less of a mess.

reply
flexagoon 6 hours ago
> Finding a specific file by name across the system

> Linux: find / -name "config.txt"

This is not how you find a file across the entire system, you use plocate for that. find would take ages to do what plocate does instantly

reply
Nux 5 hours ago
Yes and no, with `find` I know I'm getting "live" results from the filesystem, whereas plocate (and s/locate) merely searches through a database updated god knows when, assuming it's even installed and the bulk of the files indexed.
reply
gib444 4 hours ago
No. "Slower" is not the same as "different functionality".

In fact, "find" is guaranteed to be more correct. And more widely available.

reply
jmclnx 10 hours ago
Not bad, but one big criticism, never do a 'kill -9' first, that will stop the program from cleaning up after itself if killed using -9.

Use one of these instead:

    -TERM   then wait, if not
    -INT    then wait, if not
    -HUP    then wait, if not
    -ABRT
If you are sure all of these fail, then use -9 (-KILL). But assume the program has a major bug and try and find another program that will do the same task and use that instead.
reply
adrianmonk 6 hours ago
Maybe this logic should be built into the "kill" command (or some other standard command). Given that this is the right way, it shouldn't be more tedious than the wrong way!

It could also monitor the target process and inform you immediately when it exits, saving you the trouble of using "ps" to confirm that the target is actually gone.

reply
jolmg 3 hours ago
Different programs may take different amounts of time to cleanup and close. To know if a signal failed takes human judgment or heuristic. A program receiving a signal is even able to show a confirmation dialog for the user to save stuff, etc. before closing.
reply
eptcyka 4 hours ago
Kill is not a command to kill processes, it is a misnomer. Kill is meant to send signals to processes.
reply
trympet 30 minutes ago
On a modern OS, doesn’t the kernel (eventually) take care of the cleanup anyways?
reply
BenjiWiebe 6 hours ago
How often does plain 'kill <pid>' not work, but some other signal other than SIGKILL works?

Usually the process is either working correctly and terminates when asked, or else not working correctly and needs to be KILLed.

reply
consp 4 hours ago
Lots of commandline tools will hold on to dear life except for the sigkill. I often have this with running background tasks which get one of their threads in an infinite loop or wait state.
reply
chasil 3 hours ago
It is possible to install a handler for most signals, and that handler can be configured to ignore the signal.

Signal 9 cannot be ignored.

reply
gottheUIblues 54 minutes ago
I don't think of 9 as really being a signal to the process at all, more of an instruction to the OS kernel to terminate the process
reply
chasil 3 hours ago
HUP is usually sent to daemons to instruct them to reinitialize and reread their configuration files.

Is it still passed when a terminal is disconnected? I understand a dial-up modem was involved in the original intended use.

reply
eptcyka 4 hours ago
Never use `kill -9`, instead refer to the signal directly. 9 is not always the same signal on all platforms.
reply
consp 4 hours ago
This is article is likely LLM generated and it regurgitates as first go what the last resort should be. After seeing that command I stopped reading.
reply
WaterRun 10 hours ago
I recently had a similar idea. https://github.com/Water-Run/Cmdset
reply
red_admiral 3 hours ago
which / where is the one that always trips me up.
reply
8note 9 hours ago
ok, but how do i get the only linux command i know?

ctrl+r

reply
usr1106 8 hours ago
Works just fine in powershell. Avoid using command prompt and life is already a bit better
reply
thunderbong 8 hours ago
F7
reply
srott 3 hours ago
less or at least more?
reply
themafia 8 hours ago
> Windows: netstat -n -a | findstr "https" (//note the double quotes)

netstat works perfectly fine on linux as well. If you're looking for https connections it's certainly far more efficient than 'lsof'.

also if you use '-n' then you're not going to get service names translated, so that probably should be:

netstat -n -a | find "443"

reply
HDBaseT 7 hours ago
traceroute vs tracert always catches me out.
reply
jpease 10 hours ago
CTRL-ALT-DEL?
reply
tpoacher 4 hours ago
Can we do a satirical thread here please? I'm curious what HN can come up with :D

I'll start:

  Linux             : trash-empty 
  windows equivalent: format C:

  Linux             : sudo apt update && sudo apt upgrade
  Windows equivalent: shutdown /r
reply
owlstuffing 5 hours ago
Not having to run a mess of Linux commands to install software.
reply