
私は Raspbian (Debian Wheezy) を実行している Raspberry Pi を持っています。set
ターミナルに入力して、長いリストに驚きました。これはほぼすべて git 関数のようです — 約 3700 行です。
__git_all_commands=
__git_diff_common_options=$'--stat --numstat --shortstat --summary\n\t\t\t--patch-with-stat --name-only
...
私の疑問は、彼らはどうやってそこにたどり着いたのか、そしてなぜそこにたどり着いたのかということです。
時々git
荷物を受け取るために使っています。
いつもの容疑者全員をチェックしました/etc/profile
、、、/etc/bash.bashrc
.bashrc
.profile
スクリプトを見つけました/etc/bash_completion.d/git
(bash_completion についてはこれまで聞いたことがありませんでした)。これが何をするのか、どこで呼び出されるのかを正確に理解するには、さらに勉強する必要があります。
まだ解明する必要があるなぜ私は年に 1 回か 2 回しか使用しないので、すべてのログイン シェルでこれを実行したいと思いますgit
。(Raspberry Pi には RAM が過剰に搭載されているわけではありません)。これは私の Mac では発生しないようです。
答え1
これらの関数は、 のシェルの補完サポートの一部ですgit
。これらは Git ソフトウェアの一部として管理されています。Debian (Raspbian のベース) は、 パッケージで bash 補完セットアップを配布しています。これらの関数は、bash の他のコマンド補完サポートと同じディレクトリの にgit
あります。/etc/bash_completion.d/git
内のすべてのファイルは、/etc/bash_completion.d
での bash のプログラム可能な補完の設定の一部として読み込まれます/etc/bash_completion
。Debian のデフォルトでは が.bashrc
読み込まれる/etc/bash_completion
ため、コマンド固有の補完が必要ない場合はこれを編集して削除できます。
git をまったく使用しない場合は、git
パッケージを削除してください。git
パッケージがインストールされている場合は、おそらくコマンドを時々実行するgit
ため、適切な補完機能が必要になるでしょう。「git をめったに使用しないので、RAM を数キロバイト節約したい」というのは、Debian でも細かい区別がつきすぎます。
その補完ファイルをスキップして他の補完ファイルを使用する場合は、転用するファイルを、 によってスキップされる名前に/etc/bash_completion
変更します。ファイルの転送は、パッケージ マネージャーに、別の場所にあるファイルに更新と削除を適用するように指示する方法です。
dpkg-divert --add --local --rename --divert /etc/bash_completion.d/git.dpkg-diverted /etc/bash_completion.d/git
答え2
ログイン時に組み込まれるグローバル スクリプトとユーザーごとのスクリプトがあります( /etc/profile
、、、) 。$HOME/.profile
$HOME/.bash_profile
$HOME/.bash_login
ほとんどのディストリビューションでは、何らかのディレクトリ (または同様のディレクトリ) の内容は/etc/env.d/*
通常、グローバル スクリプトによってインクルードされ、パッケージはログインのたびにソースされる独自の環境設定スクリプトを配置できます。