October 25, 2017
私は元気です。つまり、これはTips集(Tipshu)です。
WSL(Ubuntu)のbashは、起動がPowerShell並みに遅く、Tabを押そうものなら世界の速が消滅するという事が知られており、絶望です。 という訳で、どうにかしましょう。
速が無い原因として、WSLの業こと、プロセス生成の遅さが挙げられます。 Ubuntuはユーザーフレンドリーなので、デフォルトのrcfileは、プロセスの生成を行いまくるようになっています。 という訳で、できる限りプロセスを生成させない方向で、調整していきましょう。
bash-completion
command-not-found
こいつらをaptのDBから抹消すれば、それだけで軽くなります。
apt-get purge bash-completion command-not-found
command-not-found
は、殺すとsl
と打った時のストレスが軽減されます。
bash-completion
が抱えているカルマは凄まじく、コイツを殺すだけでも、世界に速が戻ってきます。
Tabが押し放題になり、きれいなチョコレートケーキが爆ぜて、永遠の平穏が訪れるワケですね。
これはTipsですが、/etc/bash.bashrc
でbash-completion
を読んでくれるため、aptを使って世界から抹消しないと意味が無い。
残り全部コレです。
可能な限り、コマンドを実行しないようにしましょう。
コマンドの実行を排除するだけでも、かなりの高速化が期待できます。
command -v
でコマンドの存在確認をしようものなら、0.1秒が発生するという覚悟で行け。
シェルのビルトインだけでも、案外色々な事ができます。
例えば、文字列操作、そしてファイルの読み込み(read -r _x < file
)。
つまり、ビルトインに詳しくなって、$()
ジェノサイドをするをしましょう。
PS1
に__git_ps1
を導入しない事も重要です。
コマンドを一つ実行するだけで、体感できる程プロンプトが遅くなります。
複雑な事をする__git_ps1
……何故人は……???
nvm
、rbenv
、そしてanyenv
。世の中には環境があり、満ちもあります。
しかし、コイツらは複雑です。シェルを遅くします。しかし、便利なので殺せない。
という訳で、折衷案として遅延をします。
nvm () {
unset -f nvm
. "$NVM_DIR/nvm.sh"
nvm "[email protected]"
}
source
する所をシェルの関数として定義すれば、起動は遅くならない。
初手bash-completion
殺しをした時点で、慈悲は無い。
賢い入力補完はコマンドを実行します。
諦めましょう。
ハイ、頑張っていきましょう。