curl
が利用できない場合Makefile
による検出db top
のdb
ショートカットdb
機能db
のサブコマンドdb connections
db pga
(例: pg_activity
)bin/tablet
スクリプトbin/specs
スクリプトを使用してテストを実行するbin/spec -P
を使用してスペックを順次実行するMakefile
使用してテストを並列実行するMakefile
使用してテストを連続的に実行するバッジ | FOSSAスキャン | |
---|---|---|
フォッサ | ||
CI テスト | ||
CIのインストール | ||
シェルチェック | ||
ギッター |
Bashmatic®は BASH フレームワークです。つまり、BASH 関数 (約 900 個) のコレクションであり、BASH プログラミングをより簡単に、より楽しく、そしてより重要なことに、開発者に提供することにライブラリが焦点を当てているため、BASH プログラミングをより簡単に、楽しくすることを私たちは望んでいます。 Bashmatic のヘルパーを使用するスクリプトの実行中に、何が起こっているかについての継続的なフィードバックが得られます。
ヒント | Bashmatic については、印刷に適したこのドキュメントの PDF バージョンから学習することをお勧めします。
|
ライブラリ (デフォルトの場所は~/.bashmatic
) をインストールした後、次のいずれかを選択できることに注意してください。
次の行を追加することで、 ~/.bash_profile
のようなシェルの「dotfiles」からライブラリ (および 900 以上の関数すべて) を自動的に取得します: source ~/.bashmatic/init.sh
。最近の M1 Apple ラップトップでは、これにより合計約 100 ミリ秒が追加されます。
または、ログインの初期化中にこれをスキップし、ライブラリを使用するスクリプトの先頭でのみロードすることもできます。
注意 | どちらのアプローチも完全に有効ですが、長所と短所があります。ドットファイルに bashmatic をロードするのは少し危険かもしれません。いずれにせよ、ダウンロードした bashmatic が安全で正しいバージョンであることを毎回確認する方法を間もなく提供する予定です。 |
この件に関して私たちが言えるのは、ライブラリの調達から徹底的に最適化を管理しているということだけです。以下に例を示します。
Bashmatic®のプログラミング スタイルは、Ruby の DSL 言語に大きく影響されています。 is.sh スクリプトをざっと見てみると、 &&
と||
でチェーンできる一連の DSL 関数が定義されています。次のようなコンパクトで自己文書化されたコードを作成します。
[下矢印]
# An example of a DSL-like function
function bashmatic.auto-update() {
local dir= " ${1 :- " ${BASHMATIC_HOME " }} "
is.a-directory " ${dir} " && {
file.exists-and-newer-than " ${dir} /.last-update " 30 && return 0
(
cd ${BASHMATIC_HOME} &&
git.is-it-time-to-update &&
git.sync-remote
)
}
}
# check if the function is defined and call it
is.a-function.invoke bashmatic.auto-update " $@ "
独自のスクリプトでこれを使用するには、まず以下に示す例を検討し、 lib
で利用可能な ach モジュールを活用します。
最後の注意事項 - Bashmatic がインストールされ、シェルの初期化ファイルによって読み込まれたら、 is.<tab><tab>
と入力して、 is
で始まるどの関数が使用できるかを確認できます。 lib
内の各モジュールは通常、ファイル名で始まるパブリック関数を定義します。たとえば、 array.sh
内の関数は通常、 array.<something>.<action>
で始まります。
Bashmatic® は、コマンドの実行、自動再試行、反復可能、ランタイム測定のキー関数run
を備えた実行フレームワークのための、ますます拡大し続ける幅広いヘルパー関数を提供します。ボックス、線、ヘッダーの描画から、進行状況バーの表示、ユーザー入力の取得、パッケージのインストールなど、あらゆる場面に対応するヘルパーが用意されています。
注記 | Bashmatic®内のヘルパーの大部分は OS-X 用に書かれていますが、多くの便利な関数は Linux でも動作します。私たちのテストスイート全体は Ubuntu 上で実行されます。 Homebrew 固有の関数を、Linux でも同様に動作するpackage.install などの OS に依存しないヘルパーに変換する取り組みが進行中です。 |
以下の例セクションでBashmatic® の探索を開始してください。準備ができたら、パブリック関数の完全なセット (そのうち約 500) が関数インデックス ページで見つかります。
最後に、心配しないでください。Bashmatic®は完全にオープンソースであり、自由に使用および拡張できます。ちょっとした®の見た目が気に入っています :)
BASH バージョン 4+
BASH バージョン 3 (部分的な互換性、一部の機能が無効になります)
ZSH – 最近のアップデートの時点で、Bashmatic は ZSH とほぼ 90% 互換性があります。
現在サポートされていません
FISH (ただし、 bin/bashmatic
スクリプト ヘルパーまたはその実行可能ファイルを介して Bashmatic を使用することもできます)
このプロジェクトは、数人の非常に経験豊富な上級エンジニアによる次のような単純な認識から生まれました。
ユニバーサルインストーラー、別名セットアップ スクリプト、アップローダー、 NPM 、 rbenvなどのあらゆる種類の機能のラッパー、Gem のインストール、Ruby のインストール、AWS の使用、コードのデプロイなどの作成には、多くの場合 BASH を使用する方が簡単です。
BASH 関数の戻り値は、論理 AND &&
および OR ||
によって複数の関数をチェーンできるコンパクトな DSL (ドメイン固有言語) に適しています。非常にコンパクトな実行ロジックを提供します。最も重要なのは、このロジックが非常に読みやすく、理解しやすいことです。
上記の点にもかかわらず、次のことも一般に受け入れられています。
多くの BASH スクリプトは非常に貧弱に書かれており、読んで理解するのが困難です。
スクリプトの実行中に何が起こっているのかを理解するのは、多くの場合、有益なものが何も出力されないか、出力が多すぎるためです。
BASH エラーが発生すると、たいてい大騒ぎになり、誰かが 20 行の BASH スクリプトを C++ か Go で書き直すべきだと判断します。なぜなら、それはひどい BASH スクリプトであり、機能しないからです。
ヒント | Bashmaticの目標は、BASH プログラミングを楽しく、一貫性のあるものにし、何が起こっているのか分からないようにユーザーに大量の目に見える出力を提供することです。 |
おそらく、 Bashmatic® をインストールする最も簡単な方法は、以下に示すように、 curl
使用することです。
まず、Curl がインストールされていることを確認し、 which curl
実行して確認します。次に、このコマンドをコピーしてターミナルに貼り付けます。
[下矢印]
bash -c " $( curl -fsSL https://bashmatic.re1.re ) ; bashmatic-install -q "
[上矢印]
どこ:
-q は「静か」を表します。
-v は「冗長」を意味します
ヒント | URL https://bashmatic.re1.reは、Github Bashmatic リポジトリのbin/bashmatic-install スクリプトの HEAD にリダイレクトします。この URL を使用するのは、必要に応じて、将来的にインストールを別のスクリプトにリダイレクトできるようにするためです。 |
インターネットから直接パイプされたコードを実行する前にスクリプトを検査できるようにしたいのであれば、私はあなたを責めません。あなたは慎重で賢いです。
あなたのような人のために、同じことを行うもう少し安全な方法を次に示します。
export script= " /tmp/install "
curl -fsSL https://bashmatic.re1.re > /tmp/install
chmod 755 /tmp/install
# At this point you can examine /tmp/install
/tmp/install --help
/tmp/install --verbose --debug # install with extra info
この方法を使用すると、 /tmp/install
スクリプトを実行前に検査できます。
以下は説明の一部です
-b / --git-branch <tag|branch>
フラグを渡すことで、Bashmatic のブランチまたはタグをインストールできます。
bashmatic-install
関数にフラグを渡すと、Bashmatic のインストール方法、インストール先、ダウンロード元を制御できます。これには次のようなものがあります。
追加の出力を表示する場合は-v
または--verbose
、あるいはその逆:
-d
または--debug
追加のデバッグ出力を出力します。
-f
または--force
既存の bashmatic フォルダーを新しいフォルダーに置き換えます。
出力しない場合は-q
または--quiet
-l
または--skip-on-login
と、ログイン時に Bashmatic をロードするフックをインストールしません。
Bashmatic を標準以外の場所 (デフォルトは~/.bashmatic
) にインストールしたい場合は、 -H PATH
フラグを使用できます。
たとえば、ここでは、追加の詳細情報とデバッグ情報を出力しながら、Bashmatic をデフォルト以外の宛先にインストールしています。また、 -f
(強制) を使用して、宛先フォルダー (既に存在する場合) を Bashmatic のチェックアウトで上書きする可能性があります。タグv2.4.1
に:
bash -c " $( curl -fsSL https://bashmatic.re1.re ) ;
bashmatic-install -d -v -f -b v2.4.1 -H ~/workspace/bashmatic "
SSH キーがローカルにインストールされており、公開キーが Github 上のアカウントで構成されている場合は、デフォルトの https://github の代わりに[email protected]:kigster/bashmatic
を使用して Bashmatic をインストールすることをお勧めしhttps://github.com/kigster/bashmatic
:
インストーラーが受け入れるオプションの完全なリストは次のとおりです。
bash -c "$(curl -fsSL https://bashmatic.re1.re); bashmatic-install"
を実行すると、通常、次のことが起こります。
curl
bin/bashmatic-install
スクリプトをダウンロードし、それを評価のために組み込み BASH に渡します。
評価が完了すると、関数bashmatic-install
が呼び出され、実際にインストールが実行されます。
これは、上記の引数を受け入れる関数です。
スクリプトは、sudo アクセスを有効にするためにパスワードを要求する場合があります。これは、OS-X で XCode Developer ツール ( git
を含む) をインストールするために必要になる場合があります。
BASH のバージョンが 3 以前の場合、スクリプトは BASH のバージョン 5 以降のソースをダウンロードしてビルドし、 /usr/local/bin/bash
にインストールします。この手順には SUDO が必要になる場合があります。
OS-X では、スクリプトは OS-X に Homebrew をインストールします (まだインストールされていない場合)。
Brew がインストールされると、brew パッケージcoreutils
とgnu-sed
がインストールされます。これらは両方とも Bashmatic に必要であり、依存しているためです。
次に、スクリプトは bashmatic リポジトリを Bashmatic ホーム フォルダーにgit clone
うとします。または、既に存在する場合は、最新の変更git pull
ます。
最後に、 -l
または--skip-on-login
指定しない限り、スクリプトは bash ドット ファイルをチェックし、 ~/.bashrc
または~/.bash_profile
から Bashmatic をロードするためのフックを追加します。
最後の部分については少し説明が必要です。
さて、ログイン時に Bashmatic をロードするかどうかはわかりません。
言い換えれば、 ~/.bashrc
には次のような内容があります。
# Let's see if ~/.bashrc mentions Bashmatic:
$ grep bashmatic ~ /.bashrc
[[ -f ~ /.bashmatic/init.sh ]] && source ~ /.bashmatic/init.sh
Bashmatic© が提供する 800 以上の便利な機能とヘルパーに即座にアクセスできます。 Bashmatic はメイン ブランチからロードされるたびに自動更新されます。
ログイン時に約134 ミリ秒の遅延が発生し、セキュリティ攻撃の可能性があります (誰かがリポジトリをハッキングした場合など)。
ヒント | 最近、Bashmatic© 関数全体のロード時間を大幅に改善しました。以前は、854 個の関数をロードするのにほぼ 900 ミリ秒、ほぼ 1 秒かかりました。現在は 180 ミリ秒を超えません。 |
❯ time source init.sh
real 0m0.134s
user 0m0.078s
sys 0m0.074s
上記のコマンドで上記の出力が表示される場合、 bashrc
またはzshrc
を grep すると、すべての Bashmatic 関数がシェルにロードされます。これは非常に便利です。たとえば、
ruby.install-ruby-with-readline-and-openssl 3.0.1
を呼び出して Ruby をインストールできます。
gem.remote.version sym
呼び出すと、 sym
の最後に公開されたバージョンが3.0.1
であることがわかります。
with array.join ", " apple pear orange
を使用して値の配列を結合できます。
注意: Bashmatic のロードには通常 200 ~ 300 ミリ秒もかかりません。とはいえ、環境内にこれほど多くのシェル関数を含めたくない場合もあります。その場合は、 -l
または--skip-on-login
渡すことでログイン フックをスキップできます。
以下を使用してインストールします。
bash -c " $( curl -fsSL https://bashmatic.re1.re ) ; bashmatic-install -l "
この場合、Bashmatic のbin
フォルダーを$PATH
に追加することをお勧めします。
例えば:
# ~/.bashrc
export BASHMATIC_HOME= " ${HOME} /.bashmatic "
export PATH= " ${BASHMATIC_HOME} /bin: ${PATH} "
次に、すべての bashmatic 関数への「ゲートウェイ」として *使用できる実行可能スクリプトbashmatic
にアクセスできるようになります。
次のように使用します: bashmatic <function> <args>
:
重要 | 以下の例では${HOME}/.bashmatic/bin を含むようにPATH 設定していることを前提としています。 |
# Eg, if as in the previous example you sourced in Bashmatic:
$ bashmatic.version
2.1.2
# If you have not, you can still invoke 'bashmatic.version':
$ bashmatic version
# Or another function, 'array.join' — if you sourced in init.sh:
$ array.join ' | ' hello goodbye
hello | goodbye
# Or using the script:
$ bashmatic array.join ' | ' hello goodbye
hello | goodbye
エラーが発生した場合は、 Bashmatic® が正しくインストールされていない可能性があります。
curl
が利用できない場合したがって、 curl
利用できない状況に備えて、Linux/Ubuntu および OS-X ベースのシステムで動作する次のシェル関数を提供します。新しいオペレーティング システムを使用して簡単に拡張できます。
# @description Installs bashmatic dependency into the ~/.bashmatic folder.
function install_bashmatic() {
# install bashmatic using https:// URL instead of git@
command -v curl > /dev/null || {
local OS= $( uname -s )
local code
case ${OS} in
Linux)
apt-get update -yq && apt-get install curl -yqq
code= $?
(( code )) && sudo apt-get update -yq && sudo apt-get install curl -yqq
;;
Darwin)
command -v brew > /dev/null || /bin/bash -c " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh ) "
hash -r
brew install curl
;;
* )
echo " OS ${OS} is not supported. "
;;
esac
}
[[ -d ~ /.bashmatic ]] || bash -c " $( curl -fsSL https://bashmatic.re1.re ) ; bashmatic-install -q -m https "
return 0
}
利用可能な関数の範囲を確認するには、次のコマンドを入力して、インポートされたすべてのシェル関数を表示します。
# List all functions using 4-column mode; print top 5 lines.
❯ bashmatic functions 4 | head -5
7z.a db.psql.connect.db-set hl.yellow-on-gray run.inspect-variables
7z.install db.psql.connect.db-set hr run.inspect-variables-
7z.unzip db.psql.connect.just-d hr.colored run.inspect.set-skip-f
7z.x db.psql.connect.table- http.servers run.on-error.ask-is-en
7z.zip db.psql.connect.table- https.servers run.print-command
# or, to get the count of all functions, use 1 column output:
$ bashmatic functions 1 | wc -l
773
Bashmatic を手動でインストールするには、次の手順に従います (必要に応じて、 BASHMATIC_HOME
自由に変更してください)。
export BASHMATIC_HOME= " ${HOME} /.bashmatic "
test -d " ${BASHMATIC_HOME} " ||
git clone https://github.com/kigster/bashmatic.git " ${BASHMATIC_HOME} "
cd " ${BASHMATIC_HOME} " && ./bin/bashmatic-install -v
cd - > /dev/null
場合によっては、 git
使用できない場合があります (ローカル証明書の不一致から古いバージョンの git などに至るまで、さまざまな問題が発生しています) が、 curl
を使用してダウンロードできる場合があります。その場合は、最新のタグを検索し (以下の「v1.6.0」をそのタグに置き換えます)、次のコマンドを発行します。
export BASHMATIC_TAG= " v2.4.1 "
set -e
cd ${HOME}
curl --insecure -fSsl
https://codeload.github.com/kigster/bashmatic/tar.gz/ ${BASHMATIC_TAG}
-o bashmatic.tar.gz
rm -rf .bashmatic && tar xvzf bashmatic.tar.gz && mv bashmatic- ${BASHMATIC_TAG} .bashmatic
source ~ /.bashmatic/init.sh
cd ${HOME} /.bashmatic && ./bin/bashmatic-install -v
cd ~ > /dev/null
bashmatic.reload
関数を使用すると、いつでもBashmatic® をリロードできます。これは単に${BASHMATIC_HOME}/init.sh
のソーシングを実行するだけです。
Bashmatic をインストールすると、 ~/.bash_profile
にフックが自動的に追加されますが、ZSH を使用している場合は、(現時点では) 手動で追加する必要があるかもしれません。
以下を~/.zshrc
ファイルに追加します。
[[ -f ~ /.bashmatic/init.sh ]] && source " ~/.bashmatic/init.sh "
注記 | ZSH と最近の MacBook Pro では、ライブラリ全体のロードに 300 ミリ秒もかかりません。 |
Makefile
による検出トップレベルのMakefile
Bashmatic 作成者による開発で使用されるいくつかの一般的なタスクや、Bashmatic を探索する人にとって役立つその他のタスクをカプセル化するため、主に利便性を目的として提供されています。
make help
を実行して、利用可能なターゲットを読み取ることができます。
❯ make
help Prints help message auto-generated from the comments.
open-readme Open README.pdf in the system viewer
docker-build Builds the Docker image with the tooling inside
docker-run-bash Drops you into a BASH session with Bashmatic Loaded
docker-run-fish Drops you into a FISH session with Bashmatic Loaded
docker-run-zsh Drops you into a ZSH session with Bashmatic Loaded
docker-run Drops you into a BASH session
file-stats-git Print all files known to ` git ls-files ` command
file-stats-local Print all non-test files and run ` file ` utility on them.
install-dev Installs the Development Tooling using dev-setup script
install-ruby Installs the Bashmatic default Ruby version using rbenv
install install BashMatic Locally in ~ /.bashmatic
release Make a new release named after the latest tag
tag Tag this commit with .version and push to remote
setup Run the comprehensive development setup on this machine
shell-files Lists every single checked in SHELL file in this repo
test Run fully automated test suite based on Bats
test-parallel Run the fully auto-g mated test suite
update-changelog Auto-generate the doc/CHANGELOG (requires GITHUB_TOKEN env var set)
update-functions Auto-generate doc/FUNCTIONS index at doc/FUNCTIONS.adoc/pdf
update-readme Re-generate the PDF version of the README
update-usage Auto-generate doc/USAGE documentation from lib shell files,
to doc/USAGE.adoc/pdf
update Runs all update targets to regenerate all PDF docs and the
Changelog.
役立つと思われる一連の一般的なタスクの周囲に空白を追加しました。
ここで利用できるものを簡単に見てみましょう。
Makefile は、最も一般的なタスクを実行するための利便性と、多くの引数を覚える必要があるより複雑なタスク ( make setup
など) の実行を簡素化するために提供されています。 Makefile を使用する理由はいくつかあります。
make open-readme
このタスクを実行すると、PDF システム ビューアで PDF バージョンの README が開きます。
make install
これにより、Bashmatic フレームワークをローカルにインストールできるようになります。 bin/bashmatic-install
スクリプトを実行するだけです。最大でも、ログイン時に Bashmatic がロードされるように、シェルの初期化ファイルにフックが追加されます。
make setup
このタスクは内部でbin/dev-setup
スクリプトを呼び出し、ソフトウェア開発用にローカル コンピュータの開発者セットアップをセットアップできるようにします。
このスクリプトは非常に豊富な CLI インターフェイスを提供するため、スクリプトを直接実行してその動作をきめ細かく制御することも、この make ターゲットを介してデフォルトのフラグを使用してスクリプトを実行することもできます。
この特定の make target は、次のアクションでbin/dev-setup
スクリプトを実行します。
dev, cpp, fonts, gnu, go, java, js, load-balancing, postgres, ruby
make test
とmake test-parallel
どちらも Bashmatic 開発者と貢献者を対象としています。 UNIT テストの実行方法と期待できることについては、「貢献」セクションを参照してください。
make update
、ライブラリの寄稿者が変更を加え、自動生成されたドキュメントに追加された新しい関数を反映することなどを強制した後に実行する必要があるタスクです。このタスクでは、関数インデックスも生成し、 README
、 USAGE
、またはCHANGELOG
ファイルの最新の PDF を再生成します。
注記 | プル リクエストを送信するには、 make update を実行する必要があります。 |
Bashmatic には、テストを実行したり、Linux でさまざまな機能を手動で検証したり、場合によっては実験したりするために使用できる Dockerfile が付属しています。
make docker-build
実行して、docker イメージbashmatic:latest
を作成します。
make docker-run-bash
(または…-zsh
または…-fish
) を実行して、好みのシェルでコンテナーを起動し、関数が期待どおりに動作するかどうかを検証します。
これにより、Bashmatic がすでにインストールされている Linux 環境のプロンプトがすぐに表示されることに注目してください。
なぜ別の BASH フレームワークが必要なのでしょうか?
BASH は冗長すぎて信頼性が低いことが知られています。私たちは違うと思います。このため、この README をいくつかの例から始めたいと思いました。
この小さな 5 行のスクリプトを見てください。
#! /usr/bin/env bash
source ${BASHMATIC_HOME} /init.sh
h2 " Installing ruby gem sym and brew package curl... "
" Please standby... "
gem.install " sym " && brew.install.package " curl " &&
success " installed sym ruby gem, version $( gem.version sym ) "
結果は、次のような詳細で、正直に言うと、素晴らしいASCII 出力になります。
BASH で複雑なインストール フローをすぐに書き始めることにまったく興奮していないと教えてください。
きれいな出力が得られるだけでなく、実行された各コマンド、その終了ステータス、成功したかどうか (緑/赤)、各コマンドの実行時間 (ミリ秒単位) も確認できます。何が気に入らないのか?
まだ納得できませんか?
次に、より包括的な例を見てみましょう。
この例では、バイナリkubectl
およびminikube
バイナリを/usr/local/bin
にダウンロードしてインストールします。
サンプルスクリプトはexamples/k8s-installer.sh
に用意されています。クリックしてソースをご覧ください。
このスクリプトを実行した場合の出力は次のとおりです。
「隅っこの人」が書いて今では誰も理解できない、サイレントだが致命的なシェル スクリプトと比較して、このタイプのインストーラーが非常に優れていると考えるのはなぜでしょうか。
なぜなら:
このスクリプトは、ユーザーに何を行うかをわざわざ過剰に伝えようとします。
きれいな休暇を許可し、思い出させます (Ctrl-C)
実行する正確なコマンドとそのタイミングが共有されるため、ネットワークの輻輳やネットワーク アドレスなどの問題に注目できます。
各コマンドの終了コード「0」を緑色で表示します。いずれかのコマンドが失敗すると、赤色で表示されます。
ソース コードは簡潔かつ明示的で、読みやすいです。魔法はありません。 BASH 関数だけです。
注記 | BASH インストーラーを作成する必要がある場合、 Bashmatic® を使用すると、驚くほど時間を節約できます。 |
地球に戻って、Bashmatic のインストール方法と、その後の詳しい使用方法について話しましょう。
この最後の、最も機能が豊富な例は単なる例ではありません。これは、Apple ラップトップに開発者の依存関係を多数インストールするために使用できる、実際に機能するツールです。
注記 | このスクリプトは舞台裏で Homebrew に依存しているため、Linux や Windows では動作しません (Brew が移植されない限り)。 |
これはbin/dev-setup
にあり、多くの CLI フラグがあります。
以下の例では、 dev-setup
スクリプトを使用して以下のものをインストールします。
開発ツール
PostgreSQL
レディス
Memcached
ルビー 2.7.1
NodeJS/NPM/Yarn
これは長いリストですが、すべてを 1 つのコマンドでインストールできます。
これをアプリケーションがインストールされているフォルダーから実行します。これは、Ruby バージョンが.ruby-version
ファイルから自動検出され、すべての依存関係をインストールすることに加えて、スクリプトによってbundle install
とnpm install
も実行されるためです。 (またはyarn install
)。悪くないですよね?
${BASHMATIC_HOME} /bin/dev-setup
-g " ruby postgres mysql caching js monitoring "
-r $( cat .ruby-version )
-p 9.5 # use PostgreSQL version 9.5
-m 5.6 # use MySQL version 5.6
このコンパクトなコマンドラインは大量のものをインストールしますが、私たちの言葉を鵜呑みにせず、自分で実行してください。あるいは、少なくともこの非常に長いスクリーンショットをお楽しみください:)
これは、他のほぼすべてのツールの出力に色を付ける優れたツールです。
次のように実行します。
${BASHMATIC_HOME} /bin/install-grc
SUDO のパスワードの入力が必要になる場合があります。
完了したら、 source ~/.bashrc
(または使用するシェル) を実行し、 ls -al
またはnetstat -rn
またはping 1.1.1.1
などを入力すると、上記のすべてが適切に色分けされていることに注目してください。
db top
のdb
ショートカットPostgreSQL を使用している場合は幸運です。 Bashmatic には、PostreSQL の CLI ユーティリティpsql
用の多数のヘルパーが含まれています。
注記 | 始める前に、Bashmatic のconf ディレクトリからホーム フォルダにファイル.psqlrc インストールすることをお勧めします。必須ではありませんが、このファイルは PostgreSQL 用のプロンプトとさまざまなマクロを設定します。これは、 psql 定期的に使用する場合に非常に便利です。 |
そもそもdb top
は何ですか?
通常のtop
使用すると、ローカル システム上で実行されている「上位」のリソース消費プロセスを確認できるのと同様に、 dbtop
使用すると、同時に最大3 つのデータベース サーバー上でアクティブに実行されているクエリの自己更新レポートを観察できます。
以下は、2 つのライブ データベースに対して実行されているdbtop
のピクセル化されたスクリーンショットです。
これを機能させるには、まず PATH: ~/.db/database.yml
にある YAML ファイルでデータベース接続パラメータを定義する必要があります。
ファイルは次のように構成されます (Ruby on Rails を使用したことがある場合、標準のconfig/database.yml
ファイルは完全な互換性があるはずです)。
development :
database : development
username : postgres
host : localhost
password :
staging :
database : staging
username : postgres
host : staging.db.example.com
password :
production :
database : production
username : postgres
host : production.db.example.com
password : " a098098safdaf0998ff79789a798a7sdf "
上記のファイルを指定すると、次のコマンドを実行して、利用可能な (上記の YAML ファイルに登録されている) 接続をすべて表示できるはずです。
$ db connections
development
staging
production
それが機能すると、 dbtop
実行できるようになります。