Most active commenters
  • fragmede(4)
  • theshrike79(3)

←back to thread

768 points speckx | 47 comments | | HN request time: 0.72s | source | bottom
1. oceanplexian ◴[] No.45672984[source]
It's weird how the circle of life progresses for a developer or whatever.

- When I was a fresh engineer I used a pretty vanilla shell environment

- When I got a year or two of experience, I wrote tons of scripts and bash aliases and had a 1k+ line .bashrc the same as OP

- Now, as a more tenured engineer (15 years of experience), I basically just want a vanilla shell with zero distractions, aliases or scripts and use native UNIX implementations. If it's more complicated than that, I'll code it in Python or Go.

replies(21): >>45673276 #>>45673397 #>>45673416 #>>45673493 #>>45673595 #>>45673606 #>>45673685 #>>45673787 #>>45673894 #>>45674022 #>>45674094 #>>45674098 #>>45674837 #>>45675554 #>>45675916 #>>45675962 #>>45676837 #>>45676947 #>>45677013 #>>45678082 #>>45679080 #
2. D13Fd ◴[] No.45673276[source]
I would still call my Python scripts “scripts.” I don’t think the term “scripts” is limited to shell scripts.
3. trenchpilgrim ◴[] No.45673397[source]
When I had one nix computer, I wanted to customize it heavily.

Now I have many nix computers and I want them consistent and with only the most necessary packages installed.

replies(2): >>45674593 #>>45674750 #
4. nonethewiser ◴[] No.45673416[source]
On the other hand, the author seems to have a lot of experience as well.

Personally I tend to agree... there is a very small subset of things I find worth aliasing. I have a very small amount and probably only use half of them regularly. Frankly I wonder how my use case is so different.

edit: In the case of the author I guess he's probably wants to live in the terminal full time. And perhaps offline. there is a lot of static data he's stored like http status codes: https://codeberg.org/EvanHahn/dotfiles/src/commit/843b9ee13d...

In my case i'd start typing it in my browser then just click something i've visited 100 times before. There is something to be said about reducing that redundant network call but I dont think it makes much practical difference and the mental mapping/discoverability of aliases isnt nothing.

5. jamesbelchamber ◴[] No.45673493[source]
I am going through a phase of working with younger engineers who have many dotfiles, and I just think "Oh, yeh, I remember having lots of dotfiles. What a hassle that was."

Nowadays I just try to be quite selective with my tooling and learn to change with it - "like water", so to speak.

(I say this with no shade to those who like maintaining their dotfiles - it takes all sorts :))

6. denimnerd42 ◴[] No.45673595[source]
I prefer using kubectl than any other method so i have plenty of functions to help with that. I'd never consider using python or go for this although I do have plenty of python and go "scripts" on my path too.
7. planb ◴[] No.45673606[source]
Yeah - been there, done that, too. I feel like the time I gain from having a shortcut is often less that what I wound need to maintain it or to remember the real syntax when I'm on a machine where it's not available (which happens quite often in my case). I try to go with system defaults as much as possible nowadays.
8. eikenberry ◴[] No.45673685[source]
Prepare to swing back again. With nearly 30 years experience I find the shell to be the best integration point for so many things due to its ability to adapt to whatever is needed and its universal availability. My use of a vanilla shell has been reduced to scripting cases only.
9. fragmede ◴[] No.45673787[source]
If you come through the other side, you set up LocalCommand in your .ssh/config which copies your config to every server you ssh to, and get your setup everywhere.
10. ◴[] No.45673894[source]
11. grimgrin ◴[] No.45674022[source]
this is how it works for you

as a person who loves their computer, my ~/bin is full. i definitely (not that you said this) do not think "everything i do has to be possible on every computer i am ever shelled into"

being a person on a computer for decades, i have tuned how i want to do things that are incredibly common for me

though perhaps you're referring to work and not hobby/life

12. stronglikedan ◴[] No.45674094[source]
Different strokes for different folks - tenured engineers just settle into whatever works best for them.
13. chis ◴[] No.45674098[source]
I think it's more likely to say that this comes from a place of laziness than some enlightened peak. (I say this as someone who does the same, and is lazy).

When I watch the work of coworkers or friends who have gone these rabbit holes of customization I always learn some interesting new tools to use - lately I've added atuin, fzf, and a few others to my linux install

replies(2): >>45674487 #>>45675898 #
14. heyitsguay ◴[] No.45674487[source]
I went through a similar cycle. Going back to simplicity wasn't about laziness for me, it was because i started working across a bunch more systems and didn't want to do my whole custom setup on all of them, especially ephemeral stuff like containers allocated on a cluster for a single job. So rather than using my fancy setup sometimes and fumbling through the defaults at other times, i just got used to operating more efficiently with the defaults.
replies(3): >>45674715 #>>45674779 #>>45676671 #
15. ozim ◴[] No.45674593[source]
Besides many nix computers I also have wife, dog, children, chores, shopping to be done. Unlike when I was young engineer I could stay all night fiddling with bash scripts and environments.
replies(1): >>45679185 #
16. ◴[] No.45674715{3}[source]
17. sestep ◴[] No.45674750[source]
For anyone else reading this comment who was confused because this seems like the opposite of what you'd expect about Nix: Hacker News ate the asterisks and turned them into italics.
replies(1): >>45675141 #
18. nijaru ◴[] No.45674779{3}[source]
You can apply your dotfiles to servers you SSH into rather easily. I'm not sure what your workflow is like but frameworks like zsh4humans have this built in, and there are tools like sshrc that handle it as well. Just automate the sync on SSH connection. This also applies to containers if you ssh into them.
replies(1): >>45674909 #
19. apprentice7 ◴[] No.45674837[source]
It's the bell curve meme all along.
20. theshrike79 ◴[] No.45674909{4}[source]
I'm guessing you haven't worked in Someone Else's environment?

The amount of shit you'll get for "applying your dotfiles" on a client machine or a production server is going to be legendary.

Same with containers, please don't install random dotfiles inside them. The whole point of a container is to be predictable.

replies(3): >>45675131 #>>45675655 #>>45675868 #
21. fragmede ◴[] No.45675131{5}[source]
If, in the year 2025, you are still using a shared account called "root" (password: "password"), and it's not a hardware switch or something (and even they support user accounts these days), I'm sorry, but you need to do better. If you're the vendor, you need to do better, if you're the client, you need to make it an issue with the vendor and tell them they need to do better. I know, it's easy for me to say from the safety of my armchair at 127.0.0.1. I've got some friends in IT doing support that have some truly horrifying stories. But holy shit why does some stuff suck so fucking much still. Sorry, I'm not mad at you or calling you names, it's the state of the industry. If there were more pushback on broken busted ass shit where this would be a problem, I could sleep better at night, knowing that there's somebody else that isn't being tortured.
replies(1): >>45678321 #
22. fragmede ◴[] No.45675141{3}[source]
use a backslash. \*

(had to use a double backslash to render that correctly)

replies(1): >>45675365 #
23. latexr ◴[] No.45675365{4}[source]
Or two consecutive asterisks: ** becomes *
24. imiric ◴[] No.45675554[source]
I've heard this often, but I'm going on ~25 years of using Linux, and I would be lost without my dotfiles. They represent years of carefully crafting my environment to suit my preferences, and without them it would be like working on someone else's machine. Not impossible, just very cumbersome.

Admittedly, I've toned down the configs of some programs, as my usage of them has evolved or diminished, but many are still highly tailored to my preferences. For example, you can't really use Emacs without a considerable amount of tweaking. I mean, you technically could, but such programs are a blank slate made to be configured (and Emacs is awful OOB...). Similarly for zsh, which is my main shell, although I keep bash more vanilla. Practically the entire command-line environment and the choices you make about which programs to use can be considered configuration. If you use NixOS or Guix, then that extends to the entire system.

If you're willing to allow someone else to tell you how you should use your computer, then you might as well use macOS or Windows. :)

25. nijaru ◴[] No.45675655{5}[source]
Do you have experience with these tools? Some such as sshrc only apply temporarily per session and don't persist or affect other users. I keep plain 'ssh' separate from shell functions that apply dotfiles and use each where appropriate. You can also set up temporary application yourself pretty easily.
26. YouAreWRONGtoo ◴[] No.45675868{5}[source]
Someone else's environment? That should never happen. You should get your own user account and that's it.
replies(1): >>45678328 #
27. bigwheels ◴[] No.45675898[source]
Atuin is new to me!

https://github.com/atuinsh/atuin

Discussed 4 months ago:

Atuin – Magical Shell History https://news.ycombinator.com/item?id=44364186 - June 2025, 71 comments

replies(2): >>45676728 #>>45679105 #
28. russellbeattie ◴[] No.45675916[source]
The moment of true enlightenment is when you finally decide to once and for all memorize all the arguments and their order for those command line utilities that you use at an interval that's just at the edge of your memory: xargs, find, curl, rsync, etc.

That, plus knowing how to parse a man file to actually understand how to use a command (a skill that takes years to master) pretty much removes the need for most aliases and scripts.

replies(1): >>45676372 #
29. subsection1h ◴[] No.45675962[source]
> When I was a fresh engineer I used a pretty vanilla shell environment. When I got a year or two of experience, I wrote tons of scripts

Does this mean that you learned to code to earn a paycheck? I'm asking because I had written hundreds of scripts and Emacs Lisp functions to optimize my PC before I got my first job.

30. whatevertrevor ◴[] No.45676372[source]
I already have limited space for long term memory, bash commands are very far down the list of things I'd want to append to my long term storage.

I use ctrl-R with a fuzzy matching program, and let my terminal remember it for me.

And before it's asked: yes that means I'd have more trouble working in a different/someone else's environment. But as it barely ever happens for me, it's hardly an important enough scenario to optimize for.

31. tester457 ◴[] No.45676671{3}[source]
The defaults are unbearable. I prefer using chezmoi to feel at home anywhere. There's no reason I can't at least have my aliases.

I'd rather take the pain of writing scripts to automate this for multiple environments than suffer the death by a thousand cuts which are the defaults.

replies(1): >>45676914 #
32. auraham ◴[] No.45676728{3}[source]
I gave it a try a few months ago, but did not work for me. My main issue is that atuin broke my workflow with fzf (If I remember correctly, pressing ctrl + r to lookup my shell history did not work well after installing atuin).
replies(1): >>45677064 #
33. shermanyo ◴[] No.45676837[source]
I use a dotfile with aliases and functions, mostly to document / remember commands I find useful. It's been a handy way to build a living document of the utils I use regularly, and is easy to migrate to each new workstation.
34. fragmede ◴[] No.45676914{4}[source]
chezmoi is the right direction, but I don't want to have to install something on the other server, I should just be able to ssh to a new place and have everything already set up, via LocalCommand and Host * in my ~/.ssh/config
35. bdangubic ◴[] No.45676947[source]
or just ask claude etc to do it for ya
36. dylan604 ◴[] No.45677013[source]
man, i couldn't live without alias ..='cd ..' or alias ...='cd ../..'

to this day, i still get tripped up when using a shell for the first time without those as they're muscle memory now.

replies(1): >>45677475 #
37. bigwheels ◴[] No.45677064{4}[source]
I'm sympathetic, also a longtime fzf user here. I install it reflexively on any system I use for more than a day or two.
38. fiddlerwoaroof ◴[] No.45677475[source]
I just use the autocd zsh shell option for this. And I also use `hash -d` to define shortcuts for common directories. Then just “executing” something like `~gh/apache/kafka` will cd to the right place.
39. Mikhail_Edoshin ◴[] No.45678082[source]
Given the nature of current operating systems and applications, do you think the idea of “one tool doing one job well” has been abandoned? If so, do you think a return to this model would help bring some innovation back to software development?

Rob Pike: Those days are dead and gone and the eulogy was delivered by Perl.

replies(1): >>45678541 #
40. theshrike79 ◴[] No.45678321{6}[source]
It’s 2025. I don’t even have the login password to any server, they’re not unicorns, they’re cattle.

If something is wrong with a server, we terminate it and spin up a new one. No need for anyone to log in.

In very rare cases it might be relevant to log in to a running server, but I haven’t done that in years.

41. theshrike79 ◴[] No.45678328{6}[source]
I don’t even get an account on someone else’s server. There’s no need for me to log in anywhere unless it’s an exceptional situation.
42. president_zippy ◴[] No.45678541[source]
But was the eulogy written in Perl poetry? I see it everywhere, but I don't know who this JAPH guy is. It's a strange way of spelling Jeff, and it's odd that he types his name in all caps, but he has published a remarkable quantity of works and he's even more famous than the anonymous hacker known as 4chan.
43. heap_perms ◴[] No.45679080[source]
I can't say I relate at all (5 years of experience). They'll have to pry my 1000-line .zshrc from my cold, dead hands. For example, zsh-autosuggestions improves my quality of life so ridiculously much it's not even funny.
replies(1): >>45679153 #
44. tacker2000 ◴[] No.45679105{3}[source]
I like atuin but why is it so slow when first opening (hitting up) in the shell?
replies(1): >>45679188 #
45. cvak ◴[] No.45679153[source]
I moved away from 1000 lines .zshrc when I had to do stuff on linux VMs/dockers and I was lost a lot. But you zsh-autosuggestions, and fzf-tab is not going anywhere.
46. soraminazuki ◴[] No.45679185{3}[source]
What does your wife, dog, children, chores, and shopping have to do with custom configuration and scripts? Just set up a Git repo online, put your files there, and take a couple of minutes to improve it incrementally when you encounter inconveniences. And just like that, you made your life easier for a marginal effort.
47. johntash ◴[] No.45679188{4}[source]
I'd recommend disabling atuin when hitting up and just leave it on ctrl+r instead