<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Bash on oinume journal</title>
    <link>https://blog-lampetty-net.web.app/categories/bash/</link>
    <description>Recent content in Bash on oinume journal</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <lastBuildDate>Mon, 16 Mar 2026 08:30:00 +0900</lastBuildDate><atom:link href="https://blog-lampetty-net.web.app/categories/bash/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Bashの起動を高速化した</title>
      <link>https://blog-lampetty-net.web.app/posts/optimizing-bash-startup/</link>
      <pubDate>Mon, 16 Mar 2026 08:30:00 +0900</pubDate>
      
      <guid>https://blog-lampetty-net.web.app/posts/optimizing-bash-startup/</guid>
      <description>
        
          
            &lt;p&gt;最近Bashを起動する速度がどんどん遅くなっているなと感じたので、Claude Codeに高速化を依頼した。&lt;/p&gt;
&lt;h2 id=&#34;パフォーマンスの可視化&#34;&gt;パフォーマンスの可視化&lt;/h2&gt;
&lt;p&gt;まず手始めに、Bash起動時に何に時間がかかっているのかをわかるようにしてもらった(&lt;a href=&#34;https://github.com/oinume/dotfiles/pull/13&#34;&gt;PR&lt;/a&gt;)。&lt;/p&gt;
&lt;p&gt;以下のように&lt;code&gt;BASH_PROFILE_PROFILING=1 bash -l&lt;/code&gt;で起動することで、以下のようにどこに時間がかかっているかが計測可能になる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;BASH_PROFILE_PROFILING&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; bash -l
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;      &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+   &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; prompt/history
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;     &lt;span class=&#34;m&#34;&gt;48&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+  &lt;span class=&#34;m&#34;&gt;47&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; brew --prefix
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;     &lt;span class=&#34;m&#34;&gt;49&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+   &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; .bash_local
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;    &lt;span class=&#34;m&#34;&gt;118&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+  &lt;span class=&#34;m&#34;&gt;69&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; bash-completion
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1361&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+1243 ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; bash-it
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1401&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+  &lt;span class=&#34;m&#34;&gt;40&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; fzf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1402&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+   &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; bash-powerline
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1403&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+   &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; tmuxinator
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1404&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+   &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; completion &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;git&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1410&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+   &lt;span class=&#34;m&#34;&gt;6&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; google-cloud-sdk
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1505&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+  &lt;span class=&#34;m&#34;&gt;95&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; rbenv
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1516&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+  &lt;span class=&#34;m&#34;&gt;11&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; JDK &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;java_home&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1917&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+ &lt;span class=&#34;m&#34;&gt;401&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; nvm
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1947&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+  &lt;span class=&#34;m&#34;&gt;30&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; mise
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1970&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+  &lt;span class=&#34;m&#34;&gt;23&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; wtp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1980&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+  &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; direnv
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1981&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+   &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; nvm bash_completion
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;profile&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;   &lt;span class=&#34;m&#34;&gt;1982&lt;/span&gt; ms &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;+   &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ms&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=====&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;TOTAL&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=====&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;高速化&#34;&gt;高速化&lt;/h2&gt;
&lt;p&gt;とりあえず &lt;a href=&#34;https://github.com/Bash-it/bash-it&#34;&gt;bash-it&lt;/a&gt; が遅すぎるのでこれを読み込まないようにした。これだけど 1243ms 速くなり、体感的にもかなり快適になった。&lt;/p&gt;
          
          
        
      </description>
    </item>
    
  </channel>
</rss>