Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    F

    Flowblok

    blog.flowblok.id.au · Personal blog · on HN since 2013

    Flowblok is a developer's blog best known for a diagram and article explaining which shell startup scripts run in bash and other shells.

    Visit blogHN submissions
    Open Source & LinuxProgramming
    What HN says

    Commenters link the shell startup diagram for explaining config files, though one calls it confusing for not explaining its seven arrow colors.

    Stats for nerds
    18HN people shared it
    6linked in comments
    83story points
    Jun 2023last shared
    2013people per year2023

    Top posts on HN

    1. 1
      Shell startup scripts
      14 people · 81 points · first shared 2013 · 9 comments on HN
    2. 2
      Day 6 of Advent of Code in Hurl
      1 person · 2 points · first shared 2024 · Discussion on HN
    3. 3
      Shell startup actual.png
      4 people · first shared 2017
    4. 4
      Shell startup scripts.html>
      1 person · first shared 2013
    5. 5
      Shell startup.png
      1 person · first shared 2017

    What HN people wrote when they linked it

    • tzsJan 2018

      As given in the article, it's also the most annoying bash diagram ever...it needs an explanation of what the 7 different colors of arrows mean. All that was given is:

      > It shows which scripts bash decides to run from the top, based on decisions made about the context bash is running in (which decides the colour to follow).

      > So if you are in a local (non-remote), non-login, interactive shell (eg when you run bash itself from the command line), you are on the ‘green’ line [...]

      With a bit of Googling I believe I found the origin of that diagram:

      https://blog.flowblok.id.au/2013-02/shell-startup-scripts.html

      The author there explains how the colors work:

      > Fortunately, I’ve read the man pages for you, and drawn a pretty diagram. To read it, pick your shell, whether it's a login shell, whether it's interactive, and follow the same colour through the diagram. When the arrows split out to multiple files, it means that the shell will try to read each one in turn (working left to right), and will use the first one it can read

    • jlgaddisOct 2020

      The former image is from a blog post entitled "Shell Startup Scripts" [0] which I've just submitted [1] separately because it's so much more informative (it's been posted to HN previously but never really provoked much discussion).

      That blog post was my primary reference after zshall(5) when I decided to blow away the years of cruft I'd built up, start over, and rewrite my (Zsh) shell init files from scratch -- and I've been amazed at how much more organized and manageable it all is since then!

      Prior to switching to Zsh, I had gotten to the point of just dumping everything in one file and making sure it was sourced (by bash) in all instances.

      --

      [0]: https://blog.flowblok.id.au/2013-02/shell-startup-scripts.html?hn=20201024

      [1]: https://news.ycombinator.com/item?id=24881944

    • em500Jun 2023

      I wonder if there is any mainstream program with a more convoluted configuration scheme than bash? Just when think you understand the various invocations of .profile, .bash_profile, .bashrc in login/non-login/interactive/non-interactive modes in home and/or /etc after digesting an article with flowcharts[1], you realize that any invocation can execute arbitrary code from any location, and different distributions (not to mention, macOS, WSL, git-for-Windows, etc) all source different stuff in their default configs (like executing .bashrc in .profile).

      [1] https://blog.flowblok.id.au/2013-02/shell-startup-scripts.html

    • eddygAug 2017

      http://blog.flowblok.id.au/static/images/shell-startup-actual.png

      "To read it, pick your shell, whether it's a login shell, whether it's interactive, and follow the same colour through the diagram. When the arrows split out to multiple files, it means that the shell will try to read each one in turn (working left to right), and will use the first one it can read."

      Note that what the man pages say happens (as of 2013) is in this diagram:

      http://blog.flowblok.id.au/static/images/shell-startup.png

    • wadkarApr 2020

      The blog where this image was first published in 2013:

      https://blog.flowblok.id.au/2013-02/shell-startup-scripts.html

      Note that there is recent edit to the blog post saying "it depends on your OS packaging".

      The SO question where an answer refers to this image and has some relevant discussion: https://unix.stackexchange.com/questions/493173/changing-histsize-in-ubuntu-16-0-4lts/493201

    • PwnguinzJul 2013

      It has to do with the fact that the GP put the URL in < > and HN assumed the trailing > was part of the URL. Just remove the trailing > in the URL and it'll work.

      Alternatively reproduced here without the '>':
      http://blog.flowblok.id.au/2013-02/shell-startup-scripts.html

    Related

    GitHub Bloggithub.blog1.8k people

    YouTube-dl's repository has been restored

    GitHub Blog
    Company · last shared 2026
    codeburst.iocodeburst.io174 people

    Google’s Flutter = React and Java Swing

    codeburst.io
    Publication · last shared 2023
    Windows Command Line Blogdevblogs.microsoft.com/commandline248 people

    Initial preview of GUI app support for the Windows Subsystem for Linux

    Windows Command Line Blog
    Company · last shared 2026
    Oils Blogoilshell.org156 people

    Kubernetes is our generation's Multics

    Oils Blog
    Company · last shared 2026
    Clojure Blogclojure.com31 people

    Rich Hickey: Reducers - A Library And Model For Collection Processing

    Clojure Blog
    Company · last shared 2018
    Flow Blogflowtype.org61 people

    Flow – A static type checker for JavaScript

    Flow Blog
    Company · last shared 2017
    GNOME Blogsblogs.gnome.org490 people

    AirPods fast connect security vulnerability

    GNOME Blogs
    Company · last shared 2026
    CoreOS Blogcoreos.com316 people

    CoreOS is building a container runtime, Rocket

    CoreOS Blog
    Company · last shared 2020