0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

開発環境をクリーンアップするシェルスクリプトを書く

Last updated at Posted at 2023-03-22

開発環境をクリーンアップするシェルスクリプトを書く

こんにちは、@studio_meowtoon です。この記事では Ubuntu で構築したローカルの開発環境を、シェルスクリプトを用いてクリーンアップする手順の一例を紹介します。
linux_on_windows_11.png

この記事の内容は予告なく内容が更新されることがあります。ご了承ください。

目的

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 環境のクリーンアップ

java_on_ubuntu.png

ローカル Maven リポジトリのクリーンアップ

なぜ必要ですか?

MavenJava アプリのビルドツールとして使用すると、ローカルMaven リポジトリがしばしば十数ギガバイトにもなります。そして、クリーンアップを定期的に実行することで、ディスク領域が増えます。

シェルスクリプトを作成します。

$ vim delete_user_m2.sh
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
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 リポジトリのクリーンアップ

なぜ必要ですか?

GradleJava アプリのビルドツールとして使用すると、ローカルGradle リポジトリがしばしば十数ギガバイトにもなります。そして、クリーンアップを定期的に実行することで、ディスク領域が増えます。

シェルスクリプトを作成します。

$ vim delete_user_gradle.sh
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
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 環境のクリーンアップ

dotnet_on_ubuntu.png

作業ディレクトリ配下の bin、obj フォルダのクリーンアップ

なぜ必要ですか?

.NET のプロジェクトをたくさん作成して実行すると、プロジェクトごとに生成される binobj というフォルダがディスク領域を圧迫することがあります。この場合、定期的にクリーンアップを実行することで、ディスク領域が増えます。

このスクリプトを実行すると、配下の bin ディレクトリが強制的、再帰的削除されます。ご注意ください。

シェルスクリプトを作成します。

$ vim delete_bin_and_obj_recursively.sh
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

フロントエンド環境のクリーンアップ

npm_on_ubuntu.png

作業ディレクトリ配下の node_modules フォルダのクリーンアップ

なぜ必要ですか?

フロントエンドのプロジェクトをたくさん作成して実行すると、プロジェクトごとに生成される node_modules というフォルダがディスク領域を圧迫することがあります。この場合、定期的にクリーンアップを実行することで、ディスク領域が増えます。

シェルスクリプトを作成します。

$ vim delete_node_modules_recursively.sh
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 環境のクリーンアップ

azure_on_ubuntu.png

なぜ必要ですか?

Microsoft Azure は、初期の無料期間を経たのちに従量課金プランに移行することができます。必要ないリソースをクリーンアップすることにより、請求額を抑えることができます。

シェルスクリプトを作成します。

$ vim delete_resource_group.sh

次のパラメータはご自身の Azure リソースグループの名前に変更してください。

No パラメータ 内容
1 resource_group_name=rg-hello rg-hello リソースグループの名前です。

ファイルの内容

delete_resource_group.sh
#!/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 11Linux で、クラウド開発環境を手軽に構築することができます。ぜひお試しください。

Ubuntu を使うと Linux の知識も身に付きます。最初は難しく感じるかもしれませんが、徐々に進めていけば自信を持って書けるようになります。

今後も UbuntuJavaSpringDockerAzure 開発環境の情報などを紹介していきますので、ぜひお楽しみにしてください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?