The Windows equivalents of the most used Linux commands (techkettle.blogspot.com)

by elsadek 70 comments 69 points
Read article View on HN

70 comments

[−] not_a_bot_4sho 44d ago
A great non-AI resource on this topic: https://ss64.com/
[−] voidUpdate 44d 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

[−] lietuvis 43d ago
What is even the point having this post when its literally a prompt
[−] jmclnx 44d 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.
[−] adrianmonk 44d 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.

[−] jolmg 44d 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.
[−] adrianmonk 43d ago
That's a valid point. Another example is SIGHUP, which will cause some programs to exit but other programs to reload their config file. In certain very specific cases, that could even cause harm.

So really what "kill" would be doing is automating a common procedure, which is different than taking responsibility for doing it correctly. It would need to be configurable.

I still think it would be a net benefit since right now incentives push people toward doing something the wrong way (even if they know better). But I can also see how it might give people a false sense of security or something along those lines.

[−] jolmg 43d ago

> automating a common procedure

It's not common. If kill on its own (which does just SIGTERM) doesn't work, you're already in "something wrong is happening" territory, which is why:

>>> Given that this is the right way, it shouldn't be more tedious than the wrong way!

is also the wrong way to think about this. Trying a sequence of signals is not so much "the right way" as it is "the best way to handle a wrong situation". The right way is just kill on it's own. SIGTERM should always suffice. If it doesn't to the user's satisfaction for a nonjustifiable reason, then you can just kill -9, but this should be rare.

Trying a sequence of SIGINT, SIGHUP, and SIGABRT is technically better than SIGKILL but not really important unless you also want to write a bug report about the program's signal handling or fix it yourself. About SIGINT and SIGHUP, if SIGTERM doesn't work, it's unlikely that SIGINT or SIGHUP would. Likely, it would only be through oversight and the execution of default handlers.

kill -9 is just like rm -rf. I wouldn't suggest that rm automatically run with -r or -f when rm on its own didn't work, and I wouldn't call automatically trying those flags "the right way".

[−] eptcyka 44d ago
Kill is not a command to kill processes, it is a misnomer. Kill is meant to send signals to processes.
[−] BenjiWiebe 44d ago
How often does plain 'kill ' 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.

[−] chasil 44d 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.

[−] consp 44d 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.
[−] chasil 44d 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.

[−] eptcyka 44d ago
Never use kill -9, instead refer to the signal directly. 9 is not always the same signal on all platforms.
[−] trympet 44d ago
On a modern OS, doesn’t the kernel (eventually) take care of the cleanup anyways?
[−] consp 44d 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.
[−] Akuehne 44d 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.

[−] abhikul0 44d 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...

[−] malbs 44d ago
findstr is an underappreciated command line tool. I use it a lot
[−] themafia 44d 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"

[−] wernsey 44d 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/

[−] hackyhacky 44d 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.

[−] Ciantic 44d 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.
[−] flexagoon 44d 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

[−] WaterRun 44d ago
I recently had a similar idea. https://github.com/Water-Run/Cmdset
[−] quanta-rs 44d ago
Why would you use CMD when Powershell exists?
[−] 8note 44d ago
ok, but how do i get the only linux command i know?

ctrl+r

[−] Skywalker13 44d ago
ridiculous...

Why this entry is in the top 30?

[−] HDBaseT 44d ago
traceroute vs tracert always catches me out.
[−] red_admiral 44d ago
which / where is the one that always trips me up.
[−] srott 44d ago
less or at least more?
[−] jpease 44d ago
CTRL-ALT-DEL?
[−] tpoacher 44d 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
[−] owlstuffing 44d ago
Not having to run a mess of Linux commands to install software.