こんにちは。
ソーイ株式会社、入社1年目の村上です。
Laravel開発中、docker関係のコマンドやバッチコマンドの入力が煩わしく感じました。
READMEやドキュメント、該当のバッチファイルを確認し、書いてあるものをコピペすれば済む話ですが、それらを毎回入力することさえ面倒に感じました。
そこでコマンドの短縮を行い、入力の手間を省こうという試みです。
やり方を簡潔にまとめています。
本記事はシェルに関する詳しい知識の解説はありません。
この記事で分かること
・zsh、bash環境で開発を行う際のコマンド省略法
開発コマンドを省略する
macOS(Catalina以降)はデフォルトでzshが採用されています。
Linuxでは多くのディストリビューションでbashが標準ですが、環境によって異なります。
今回は、zshとbashそれぞれで行う方法をまとめています。
zsh使用時の設定方法
コマンドで.zshrcファイルを編集し、aliasを用いて設定します。
まずはviコマンドを打って、.zshrc編集モードにします。
vimでもいいですが、記載するだけなので最低限でいいです。
vi ~/.zshrc
ここでIを押すと編集モードになります。
左下に -- INSERT -- と出ればOKです。

この状態でaliasを用いて定義を行い、保存し更新してください。
# 1.コマンド定義
alias 短縮後コマンド='短縮したいコマンド'
# 1.1 コマンド例
alias dcu='docker compose up -d'
# 2.編集モード解除と保存終了
Escキー入力後、:wqで閉じる
# 3.ターミナル再起動かコマンド入力
source ~/.zshrc
試しに短縮後のコマンドを入力し、短縮前と同じ動作を確認できれば設定完了です。
bash使用時の設定方法
分けましたが、zshとほぼ同じです。
viコマンドで.bashrcを開き、編集して保存するだけです。
vi ~/.bashrc
.zshrcと違うところは最初から設定テンプレートが入っています。

既存のテンプレート部分は削除せず、そのまま残した上で一番下に追記します。
詳しい説明は省きます。
下に行って、zshrc同様Iを入力、INSERTモードにします。
左下に -- INSERT -- と出ればOKです。
この状態でaliasを用いて定義を行い、保存し更新してください。
# 1.コマンド定義
alias 短縮後コマンド='短縮したいコマンド'
# 1.1 コマンド例
alias dcu='docker compose up -d'
# 2.編集モード解除と保存終了
Escキー入力後、:wqで閉じる
# 3.ターミナル再起動かコマンド入力
source ~/.bashrc
試しに短縮後のコマンドを入力し、短縮前と同じ動作を確認できれば設定完了です。
rcファイルが存在しない場合
環境によっては .zshrc や .bashrc が存在しない場合があります。
その場合は自分でファイルを作成すれば問題ありません。
zshの場合
touch ~/.zshrc
bashの場合
touch ~/.bashrc
これらを実行後、設定が可能になります。
簡単な解説
結局.bashrcや.zshrcって何?sourceコマンドは何をするものなの?という疑問があると思います。
それらに関して少しまとめました。
なんで.bashrcや.zshrcに記載するのか
これらのファイルは、シェル起動時に自動で読み込まれる設定ファイルだからです。
シェルは入力されたコマンドを解析し、OSに実行を依頼する役割を担っています。
コマンドが実行される流れは以下の通りです。
入力
→ シェルが内容を解析(aliasの展開、変数の展開など)
→ 実行対象を決定
→ OSへ処理を依頼
.bashrcや.zshrcにaliasを定義しておくと、
この解析のタイミングでコマンドが置き換えられます。
そのため、短縮コマンドでも最終的には元のコマンドと同じ形で実行されます。
sourceコマンドとは?
source コマンドは、設定ファイルの内容を「現在のシェル環境」に読み込ませるためのコマンドです。
通常、.bashrc や .zshrc はシェルを起動したときに自動で読み込まれます。
しかし、設定ファイルを編集した直後は、その内容はまだ現在のシェルには反映されていません。
そこでsourceコマンドを実行することで、ファイルの内容を現在のシェルに再読み込みさせることができます。
コマンド短縮使用例
ここからは余談ですが、自分が使っているものを幾つかご紹介します。
まずdockerの起動、停止、ビルド、ログは短縮させておくと便利です。
# 1. dockerコンテナ起動
docker compose up -d
↓
dcu
# 2. dockerイメージ作成
docker compose build
↓
dcb
# 3. dockerログ確認
docker compose logs -f web
docker compose logs -f api
↓
dclw
dcla
# 4. dockerコンテナ停止
docker compose down
↓
dcd
毎回開発に絶対使うコマンドはこのように短縮させておくと煩わしさが解消されます。
便利な使い方
と言っても簡単な話で、
短縮したコマンドの後に通常コマンドがつけられます。
# 設定
alias art='php artisan'
# コマンド
art migrate
なぜこれが可能かという話ですが、
aliasは文字列置換を行っているにすぎません。
要は、aliasを定義しておけば実行前に短縮前のコマンドへ置き換えられる、という仕組みです。
# 入力
art migrate
↓
# 読み込み側(最終的にこれが実行される形)
php artisan migrate
気を付けること
同じ短縮コマンドを設定すると下に位置するものに上書きされます。
alias dcu='docker compose up'
alias dcu='docker compose up -d'
# 上記の場合、dcuを入力後実行されるのは
docker compose up -d
この場合、エラーが出ないため厄介です。
自分はバッチコマンドを短縮して使用していたところ、名称が被ってしまったらしく、別のバッチが起動するようになり、設定の変更が必要になりました。
楽をとってコマンドを短くし過ぎると数と種類によっては被って問題になるし、長くし過ぎると入力が面倒になるのでコマンド入力を楽をするという点では本末転倒です。
ですので設定するときは最低限1日の開発で3回は絶対に打つコマンドを短縮するように運用を変えました。
短縮する際は、このバランスを意識してみてください。
よき開発ライフをお過ごしください。
まとめ
今回は開発コマンドを短縮させる方法をまとめました。
開発を進める中で煩わしく感じた点を自分で調べ改善したケースとして、行ったことは簡単ですがその後の開発効率の上昇やシェルへの理解の入り口とできたことはきっかけとしては良かったと考えます。
今後も業務効率を高めるために、自身の開発環境を見直しながら改善を続けていきたいと思います。
お知らせ
技術ブログを週1〜2本更新中、ソーイをフォローして最新記事をチェック!
https://qiita.com/organizations/sewii

