The idea is to be able to use any computer/system/devices easily instead of one perfectly.
Some folks grew up on systems that could fail at any time and leave them with nothing but the tools in /sbin to fix it with. No /usr, no bash/zsh, just sh and vi if you were lucky. You learn to love the cool new things, but you still have a mental bag packed with fsck and ed in case you need to bug out.
It's silly, really because no systems are like that any more, but the things you learned at 2am when you were 22 tend to stick with you.
Same with computers and servers. I interact with a lot of them, but my primary computer that I use >80% of the time is worthwhile to optimize with some tooling that's not available on all the others.
rename s/_small// *_small.jpg
When you have the string ABCD_XYZ in 50 files but you need to change it to DEFG_UVW, how do you do that? perl -pi -e 's{ABCD_XYZ}{DEFG_UVW}' **/*(.)
When you need to move all the files ending '.png' into the directory 'PNG', and all the ones ending '.jpg' into 'JPG', how do you do that? mkdir JPG PNG;
for i in *.png *.jpg; mv $i $i:e:uAnd a shell is a REPL.
A UNIX shell is a very bad approximation of a real programming language REPL.
It is no accident that sh scripts turn into Perl, Python, Tcl, Lisp,... when one wants to keep sanity.
¹ https://zsh.sourceforge.io/Doc/Release/User-Contributions.ht...
² https://zsh.sourceforge.io/Doc/Release/Expansion.html#Filena...
I like the shell but I also think IDEs are underrated.
Pick any X and Y that maximises your ability to feel superior, I suppose.