<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>環境変数 on Dev TLDRLSS</title>
        <link>https://dev.tldrlss.com/ja/tags/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0/</link>
        <description>Recent content in 環境変数 on Dev TLDRLSS</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Fri, 07 Aug 2026 18:31:00 +0800</lastBuildDate><atom:link href="https://dev.tldrlss.com/ja/tags/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>削除した .zshrc の環境変数はなぜまだ有効なのか？source ~/.zshrc を再実行しても古い環境変数が消えない理由は？ターミナルウィンドウを再開しても環境変数が残る理由は？IDE内蔵ターミナルと Terminal アプリで環境変数を完全に削除する方法</title>
        <link>https://dev.tldrlss.com/ja/article/2026/08/zshrc-env-clear-mac-terminal-environment-variables/</link>
        <pubDate>Fri, 07 Aug 2026 18:31:00 +0800</pubDate>
        
        <guid>https://dev.tldrlss.com/ja/article/2026/08/zshrc-env-clear-mac-terminal-environment-variables/</guid>
        <description>&lt;img src="https://dev.tldrlss.com/global-assets/images/scenario/developer-pitfall-1.jpg" alt="Featured image of post 削除した .zshrc の環境変数はなぜまだ有効なのか？source ~/.zshrc を再実行しても古い環境変数が消えない理由は？ターミナルウィンドウを再開しても環境変数が残る理由は？IDE内蔵ターミナルと Terminal アプリで環境変数を完全に削除する方法" /&gt;&lt;p&gt;&lt;code&gt;~/.zshrc&lt;/code&gt; から特定の設定（&lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; など）の &lt;code&gt;環境変数&lt;/code&gt; を削除したにもかかわらず、ターミナルで確認すると驚くことにまだ残っています！&lt;/p&gt;
&lt;p&gt;&lt;code&gt;source ~/.zshrc&lt;/code&gt; を再実行しても全く効果がないのはなぜでしょうか？&lt;/p&gt;
&lt;h2 id=&#34;環境変数が存在するかどの設定ファイルによって書き込まれたか確認する方法&#34;&gt;環境変数が存在するか、どの設定ファイルによって書き込まれたか確認する方法
&lt;/h2&gt;&lt;p&gt;クリーンアップを行う前に、まず変数が現在のメモリに残っているか、書籍およびどの設定ファイルがそれを自動読み込みしているかを確認する必要があります。&lt;/p&gt;
&lt;h3 id=&#34;1-メモリ内の変数を確認する&#34;&gt;1. メモリ内の変数を確認する
&lt;/h3&gt;&lt;p&gt;現在の &lt;code&gt;Terminal&lt;/code&gt; メモリ内にその &lt;code&gt;環境変数&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;env &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i anthropic
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;2-設定ファイルの参照元を検索する&#34;&gt;2. 設定ファイルの参照元を検索する
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Zsh&lt;/code&gt;、&lt;code&gt;Bash&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;grep -rn &lt;span class=&#34;s2&#34;&gt;&amp;#34;ANTHROPIC_BASE_URL&amp;#34;&lt;/span&gt; ~/.zshrc ~/.zprofile ~/.zshenv ~/.zlogin ~/.bashrc ~/.bash_profile ~/.profile /etc/zshenv /etc/zprofile /etc/profile /etc/environment 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;!--adsense--&gt;
&lt;h2 id=&#34;zshrc-を変更しても古い環境変数が残る理由は&#34;&gt;.zshrc を変更しても古い環境変数が残る理由は？
&lt;/h2&gt;&lt;p&gt;実は、ターミナルを開いた時点で、&lt;code&gt;環境変数&lt;/code&gt; はその接続の「メモリ」にすでに読み込まれています。&lt;/p&gt;
&lt;p&gt;ファイルを編集したり、&lt;code&gt;source ~/.zshrc&lt;/code&gt; を再実行したりしても、これは設定ファイルの内容を「再読み込み」するだけであり、メモリ上に存在する古い変数を自動的に削除するわけではありません。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;source&lt;/code&gt; &lt;strong&gt;コマンドは変数を上書きまたは追加するだけであり、変数を「削除」してくれるわけではありません&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この時点で最も簡単な解決策は以下の通りです：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;削除方法&lt;/th&gt;
          &lt;th&gt;操作コマンド / アクション&lt;/th&gt;
          &lt;th&gt;説明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;新しいウィンドウを開く&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;まったく新しいターミナルタブを開く&lt;/td&gt;
          &lt;td&gt;新しい &lt;code&gt;Shell Process&lt;/code&gt; が最新の &lt;code&gt;~/.zshrc&lt;/code&gt; を再読み込みします&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;手動でクリア&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;unset ANTHROPIC_BASE_URL&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;現在のメモリから指定した &lt;code&gt;環境変数&lt;/code&gt; を直接削除します&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;シェルをリセット&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;exec zsh -l&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;現在の &lt;code&gt;Shell&lt;/code&gt; のメモリ状態を再読み込みします&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;ターミナルウィンドウを再開しても無駄調査すべき3大原因&#34;&gt;ターミナルウィンドウを再開しても無駄？調査すべき3大原因
&lt;/h2&gt;&lt;p&gt;なぜ新しくターミナルウィンドウを開いても、古い &lt;code&gt;環境変数&lt;/code&gt; が消えずに残り続けることがあるのでしょうか？&lt;/p&gt;
&lt;p&gt;この場合、問題は &lt;code&gt;~/.zshrc&lt;/code&gt; にあるのではなく、「親プロセス（Parent Process）」からの継承が原因です！&lt;/p&gt;
&lt;p&gt;アプリケーションからターミナルを起動すると、子プロセスは親プロセスのその時点での環境変数スナップショットを直接コピーします。&lt;/p&gt;
&lt;p&gt;このような頑固な &lt;code&gt;環境変数&lt;/code&gt; に遭遇した場合、通常は以下の3つの一般的な原因が考えられます：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;タイプ&lt;/th&gt;
          &lt;th&gt;発生原因&lt;/th&gt;
          &lt;th&gt;解決方法&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;IDE内蔵ターミナル&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;VS Code&lt;/code&gt;、&lt;code&gt;Cursor&lt;/code&gt;、または &lt;code&gt;Antigravity&lt;/code&gt; が起動時に当時の環境変数スナップショットを記録した&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;Cmd + Q&lt;/code&gt; を押して &lt;code&gt;IDE&lt;/code&gt; を完全に終了し、再起動する&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;ターミナルソフト未終了&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Mac の &lt;code&gt;Terminal&lt;/code&gt; や &lt;code&gt;iTerm2&lt;/code&gt; でウィンドウを閉じただけ（&lt;code&gt;Cmd + W&lt;/code&gt;）で、本体がバックグラウンドで動作中&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;Cmd + Q&lt;/code&gt; を押して &lt;code&gt;Terminal&lt;/code&gt; アプリを完全に終了する&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;tmux&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;tmux&lt;/code&gt; のバックグラウンド &lt;code&gt;Server&lt;/code&gt; が動作し続け、新タブが起動時の設定を継承し続ける&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;tmux kill-server&lt;/code&gt; を実行してバックグラウンドサービスを終了する&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;!--adsense--&gt;
&lt;h2 id=&#34;アプリを再起動しても効果がないサードパーティ製ツールとシステムレベルの設定を確認&#34;&gt;アプリを再起動しても効果がない？サードパーティ製ツールとシステムレベルの設定を確認
&lt;/h2&gt;&lt;p&gt;上記の3つの方法を試しても &lt;code&gt;環境変数&lt;/code&gt; が依然として &lt;code&gt;Terminal&lt;/code&gt; に現れる場合、より高レベルのシステム設定やサードパーティツールが裏で作用している可能性があります。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;高いシステム権限やラッパースクリプトにより、起動のたびに環境変数が自動的に復元されることがあります&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この場合、以下の2つの検出コマンドを使用できます：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;検出対象&lt;/th&gt;
          &lt;th&gt;コマンド&lt;/th&gt;
          &lt;th&gt;説明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;システムグローバル変数&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;launchctl getenv ANTHROPIC_BASE_URL&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;サードパーティのプロキシツールなどが &lt;code&gt;launchctl setenv&lt;/code&gt; でグローバル変数を設定していないか確認&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;コマンドラッパースクリプト&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;type claude&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;現在のコマンドが元の実行ファイルか、デフォルト変数を伴う &lt;code&gt;wrapper&lt;/code&gt; スクリプトでラップされているか確認&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;環境変数を完全に削除するための標準的なトラブルシューティング手順&#34;&gt;環境変数を完全に削除するための標準的なトラブルシューティング手順
&lt;/h2&gt;&lt;p&gt;次回 &lt;code&gt;~/.zshrc&lt;/code&gt; の &lt;code&gt;環境変数&lt;/code&gt; を変更または削除するときは、まず現在のターミナルが古い &lt;code&gt;Parent Process&lt;/code&gt; の設定を継承していないか確認してください。&lt;/p&gt;
&lt;p&gt;以下の順序で確認することで、原因を特定して問題を容易に解決できます：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず &lt;code&gt;unset 変数名&lt;/code&gt; を実行するか、新しいターミナルウィンドウを開きます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VS Code&lt;/code&gt; や &lt;code&gt;Cursor&lt;/code&gt; などの &lt;code&gt;IDE&lt;/code&gt; を使用している場合は、&lt;code&gt;Cmd + Q&lt;/code&gt; で &lt;code&gt;IDE&lt;/code&gt; を完全再起動します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tmux&lt;/code&gt; を使用している場合は、&lt;code&gt;tmux kill-server&lt;/code&gt; を実行してバックグラウンドサービスをリセットします。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;launchctl getenv&lt;/code&gt; と &lt;code&gt;type&lt;/code&gt; コマンドを確認し、システムレベルやラッパースクリプトを調査します。&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        
    </channel>
</rss>
