開発環境をクリーンアップするシェルスクリプトを書く
こんにちは、@studio_meowtoon です。この記事では Ubuntu で構築したローカルの開発環境を、シェルスクリプトを用いてクリーンアップする手順の一例を紹介します。
この記事の内容は予告なく内容が更新されることがあります。ご了承ください。
目的
Windows 11 の Linux でクラウド開発します。
こちらから記事の一覧がご覧いただけます。
実現すること
Ubuntu 開発環境をクリーンアップするシェルスクリプトを書きます。
開発環境
- Windows 11 Home 22H2 を使用しています。
WSL の Ubuntu を操作していきますので macOS の方も参考にして頂けます。
WSL (Microsoft Store アプリ版) ※ こちらの関連記事からインストール方法をご確認いただけます
> wsl --version
WSL バージョン: 1.0.3.0
カーネル バージョン: 5.15.79.1
WSLg バージョン: 1.0.47
Ubuntu ※ こちらの関連記事からインストール方法をご確認いただけます
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Java JDK ※ こちらの関連記事からインストール方法をご確認いただけます
$ java -version
openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
Maven ※ こちらの関連記事からインストール方法をご確認いただけます
$ mvn -version
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.18, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Azure CLI ※ こちらの関連記事からインストール方法をご確認いただけます
$ az --version
azure-cli 2.45.0
core 2.45.0
telemetry 1.0.8
この記事では基本的に Ubuntu のターミナルで操作を行います。Vim を使用してコピペする方法を初めて学ぶ人のために、以下の記事で手順を紹介しています。ぜひ挑戦してみてください。
作業フォルダについて
この記事では開発作業を ~/tmp ディレクトリで行う体で説明しています。適時、実際の作業ディレクトリに読み替えてください。
作業ディレクトリに移動します。
$ cd ~/tmp
Java 環境のクリーンアップ
ローカル Maven リポジトリのクリーンアップ
なぜ必要ですか?
Maven を Java アプリのビルドツールとして使用すると、ローカルの Maven リポジトリがしばしば十数ギガバイトにもなります。そして、クリーンアップを定期的に実行することで、ディスク領域が増えます。
シェルスクリプトを作成します。
$ vim delete_user_m2.sh
#!/bin/bash
# delete an user .md directory.
rm -fr ~/.m2
rm -fr は、強制的に、再帰的にディレクトリの内容を削除するという、非常に強力なコマンドです。誤ってご使用されないようにご注意ください。
実行権限を付加します。
$ chmod +x delete_user_m2.sh
シェルスクリプトを実行します。
$ ./delete_user_m2.sh
作業ディレクトリ配下の target フォルダのクリーンアップ
なぜ必要ですか?
Maven でビルドする Java のプロジェクトをたくさん作成して実行すると、プロジェクトごとに生成される target というフォルダがディスク領域を圧迫することがあります。この場合、定期的にクリーンアップを実行することで、ディスク領域が増えます。
シェルスクリプトを作成します。
$ vim delete_target_recursively.sh
#!/bin/bash
# delete target directories under this directory recursively.
shopt -s globstar
rm -rf **/target
実行権限を付加します。
$ chmod +x delete_target_recursively.sh
シェルスクリプトを実行します。
$ ./delete_target_recursively.sh
ローカル Gradle リポジトリのクリーンアップ
なぜ必要ですか?
Gradle を Java アプリのビルドツールとして使用すると、ローカルの Gradle リポジトリがしばしば十数ギガバイトにもなります。そして、クリーンアップを定期的に実行することで、ディスク領域が増えます。
シェルスクリプトを作成します。
$ vim delete_user_gradle.sh
#!/bin/bash
# delete an user .gradle directory.
rm -fr ~/.gradle
rm -fr は、強制的に、再帰的にディレクトリの内容を削除するという、非常に強力なコマンドです。誤ってご使用されないようにご注意ください。
実行権限を付加します。
$ chmod +x delete_user_gradle.sh
シェルスクリプトを実行します。
$ ./delete_user_gradle.sh
作業ディレクトリ配下の build フォルダのクリーンアップ
なぜ必要ですか?
Gradle でビルドする Java のプロジェクトをたくさん作成して実行すると、プロジェクトごとに生成される build というフォルダがディスク領域を圧迫することがあります。この場合、定期的にクリーンアップを実行することで、ディスク領域が増えます。
シェルスクリプトを作成します。
$ vim delete_build_recursively.sh
#!/bin/bash
# delete build directories under this directory recursively.
shopt -s globstar
rm -rf **/build
実行権限を付加します。
$ chmod +x delete_build_recursively.sh
シェルスクリプトを実行します。
$ ./delete_build_recursively.sh
.NET 環境のクリーンアップ
作業ディレクトリ配下の bin、obj フォルダのクリーンアップ
なぜ必要ですか?
.NET のプロジェクトをたくさん作成して実行すると、プロジェクトごとに生成される bin と obj というフォルダがディスク領域を圧迫することがあります。この場合、定期的にクリーンアップを実行することで、ディスク領域が増えます。
このスクリプトを実行すると、配下の bin ディレクトリが強制的、再帰的に削除されます。ご注意ください。
シェルスクリプトを作成します。
$ vim delete_bin_and_obj_recursively.sh
#!/bin/bash
# delete build directories under this directory recursively.
shopt -s globstar
rm -rf **/bin
rm -rf **/obj
実行権限を付加します。
$ chmod +x delete_bin_and_obj_recursively.sh
シェルスクリプトを実行します。
$ ./delete_bin_and_obj_recursively.sh
フロントエンド環境のクリーンアップ
作業ディレクトリ配下の node_modules フォルダのクリーンアップ
なぜ必要ですか?
フロントエンドのプロジェクトをたくさん作成して実行すると、プロジェクトごとに生成される node_modules というフォルダがディスク領域を圧迫することがあります。この場合、定期的にクリーンアップを実行することで、ディスク領域が増えます。
シェルスクリプトを作成します。
$ vim delete_node_modules_recursively.sh
#!/bin/bash
# delete node_modules directories under this directory recursively.
shopt -s globstar
rm -rf **/node_modules
実行権限を付加します。
$ chmod +x delete_node_modules_recursively.sh
シェルスクリプトを実行します。
$ ./delete_node_modules_recursively.sh
Azure 環境のクリーンアップ
なぜ必要ですか?
Microsoft Azure は、初期の無料期間を経たのちに従量課金プランに移行することができます。必要ないリソースをクリーンアップすることにより、請求額を抑えることができます。
シェルスクリプトを作成します。
$ vim delete_resource_group.sh
次のパラメータはご自身の Azure リソースグループの名前に変更してください。
No | 行 | パラメータ | 内容 |
---|---|---|---|
1 | resource_group_name=rg-hello | rg-hello | リソースグループの名前です。 |
ファイルの内容
#!/bin/bash
# set variables.
resource_group_name=rg-hello
# delete resource group
az group delete \
--name $resource_group_name \
--yes
実行権限を付加します。
$ chmod +x delete_resource_group.sh
シェルスクリプトを実行します。
$ ./delete_resource_group.sh
削除中は以下のように表示されます。
/ Running ..
シェルスクリプトを書いたあとは
一度、作業コマンドをシェルスクリプトに書いた後は、次回からはターミナルからそのシェルスクリプトを実行するだけで作業を行うことができます。
まとめ
どうでしたか? Windows 11 の Linux で、クラウド開発環境を手軽に構築することができます。ぜひお試しください。
Ubuntu を使うと Linux の知識も身に付きます。最初は難しく感じるかもしれませんが、徐々に進めていけば自信を持って書けるようになります。
今後も Ubuntu、Java、Spring、Docker、Azure 開発環境の情報などを紹介していきますので、ぜひお楽しみにしてください。