Google ColaboratoryでのLinuxコマンド活用ガイド
Colabでのコマンド実行
Colabでは、コマンドの前に!を付けることで、Linuxコマンドを実行できる。
!ls
!pwd
!pip install numpy
注意:Colabのランタイムは一時的である。ランタイムがリセットされると、/content/以下のファイルやインストール済みパッケージは消去される。重要なデータはGoogle Driveに保存する。
基本的なファイル・ディレクトリ操作
pwd - カレントディレクトリの表示
カレントディレクトリ(現在作業しているディレクトリ)のフルパスを表示する。
!pwd
ls - ファイルとディレクトリの一覧表示
ディレクトリ内のファイルとディレクトリを一覧表示する。引数を省略するとカレントディレクトリが対象となる。
!ls
!ls -l # 詳細情報を表示
!ls -lh # サイズを読みやすい形式で表示
!ls -a # 隠しファイルも表示
cd - ディレクトリの移動
カレントディレクトリを変更する。Colabでは%cdマジックコマンドを使用する。マジックコマンドとは、Jupyter/Colab環境で提供される特殊なコマンドである。!cdは別プロセスで実行されるため、コマンド終了後に元のディレクトリに戻り、変更が維持されない。
%cd /content/drive/MyDrive/
%cd dataset
%cd .. # 親ディレクトリへ移動
mkdir - ディレクトリの作成
新しいディレクトリを作成する。-pオプションを指定すると、存在しない親ディレクトリも含めて一括作成できる。
!mkdir output
!mkdir -p data/train/images # 親ディレクトリも同時に作成
cat - ファイル内容の表示
ファイルの内容を画面に表示する。設定ファイルやログの内容を確認する際に使用する。
!cat config.txt
!cat data/labels.txt
cp - ファイルのコピー
ファイルまたはディレクトリをコピーする。ディレクトリをコピーする場合は-rオプションを指定する。
!cp source.txt destination.txt
!cp model.h5 /content/drive/MyDrive/backup/
!cp -r dataset/ backup_dataset/ # ディレクトリごとコピー
mv - ファイルの移動・名前変更
ファイルまたはディレクトリを移動する。同一ディレクトリ内で実行すると名前変更となる。
!mv old_name.txt new_name.txt
!mv results.csv /content/drive/MyDrive/
rm - ファイルの削除
削除したファイルは復元できない。ディレクトリを削除する場合は-rオプションを指定する。-fオプションは確認なしで強制削除を行う。
!rm temp.txt
!rm -rf temp_output/ # ディレクトリごと強制削除
ワイルドカード - 複数ファイルの指定
*は任意の文字列に一致するワイルドカードである。複数のファイルを一括で操作できる。
!ls *.csv
!ls data/*.jpg
!rm temp_*.txt
パイプ - コマンドの連結
|(パイプ)は、あるコマンドの出力を次のコマンドの入力として渡す。複数のコマンドを組み合わせて処理を行う際に使用する。
!ls *.jpg | wc -l # 画像ファイル数をカウント
!cat log.txt | grep error # ログからエラー行を抽出
リダイレクト - 出力先の変更
>(リダイレクト)は、コマンドの出力をファイルに保存する。既存ファイルは上書きされる。>>は既存ファイルに追記する。
!ls -l > file_list.txt # 一覧をファイルに保存
!echo "done" >> log.txt # ログに追記
Google Driveの利用
Colabのランタイムがリセットされてもデータを保持するため、Google Driveをマウントして使用する。
# Google Driveのマウント
from google.colab import drive
drive.mount('/content/drive')
# Drive内のファイル確認
!ls /content/drive/MyDrive/
# Driveとのファイルのやり取り
!cp /content/drive/MyDrive/dataset.zip .
!cp results.csv /content/drive/MyDrive/
パッケージ管理
pip - Pythonパッケージの管理
Pythonパッケージのインストールと管理を行う。
!pip install numpy pandas matplotlib
!pip list # インストール済みパッケージの確認
apt-get - システムライブラリの管理
Ubuntuのパッケージ管理システム(APT)を使用して、システムライブラリをインストールする。Pythonパッケージではなく、OS レベルのライブラリが必要な場合に使用する。
!apt-get update
!apt-get install -y libgl1-mesa-glx
dpkg - インストール済みパッケージの確認
システムにインストールされているパッケージを確認する。特定のライブラリがインストール済みか調べる際に使用する。
!dpkg -l # 全パッケージの一覧
!dpkg -l | grep libgl1 # 特定のパッケージを検索
データファイルの確認
wc - 行数・単語数のカウント
ファイルの行数、単語数、バイト数をカウントする。-lオプションは行数のみを表示する。データセットのサイズ確認に有用である。
!wc -l data/labels.txt
!ls *.csv | wc -l # ファイル数のカウント
grep - テキスト検索
指定したパターンに一致する行を検索して表示する。ログファイルからエラーを探す際などに使用する。
!grep 'error' training.log
!grep -i 'warning' output.txt # 大文字小文字を区別しない
!grep -r 'class_A' dataset/ # ディレクトリ内を再帰的に検索
ファイルの圧縮と展開
zip / unzip
ZIP形式でファイルを圧縮・展開する。Windows環境との互換性が高い。
# 展開
!unzip dataset.zip
!unzip archive.zip -d target_directory/
# 圧縮
!zip -r results.zip output_files/
tar
tar.gz形式でファイルをアーカイブ・圧縮する。Linux環境で広く使用される形式であり、ファイルの権限情報も保持できる。
# 圧縮
!tar -czvf results.tar.gz output_files/
# 展開
!tar -xzvf dataset.tar.gz
ファイルのダウンロードとネットワーク
wget
URLからファイルをダウンロードする。-Oオプションで保存時のファイル名を指定できる。
!wget https://example.com/dataset.zip
!wget -O custom_name.zip https://example.com/file.zip
curl
URLを指定してデータを転送する。ファイルのダウンロードやAPIへのリクエストに使用する。
!curl -O https://example.com/file.zip
!curl -o output.html https://example.com
gdown - Google Driveからのダウンロード
Google Drive上の共有ファイルを直接ダウンロードする。大容量ファイルの取得に有用である。
!pip install gdown
!gdown https://drive.google.com/uc?id=YOUR_FILE_ID
ping - ネットワーク接続の確認
指定したホストとの通信が可能か確認する。ネットワークの問題を切り分ける際に使用する。
!ping -c 4 google.com
!ping -c 4 api.example.com
Git操作
Gitを使用してバージョン管理を行う。リポジトリのクローンから基本的な操作までをColab上で実行できる。
# リポジトリのクローン
!git clone https://github.com/user/repository.git
%cd repository
# 基本操作
!git status
!git add .
!git commit -m "Update from Colab"
!git push origin main
実践例
実際の作業フローに沿った使用例を示す。
データセットの準備
# Driveをマウント
from google.colab import drive
drive.mount('/content/drive')
# データセットをダウンロードして展開
!wget https://example.com/dataset.zip
!unzip dataset.zip
# ファイル数を確認(パイプでコマンドを連結)
!ls dataset/images/*.jpg | wc -l
# 作業ディレクトリを作成
!mkdir -p output/models output/logs
訓練結果の保存
# 結果をリスト化(リダイレクトでファイルに保存)
!ls -lh output/ > file_list.txt
# 結果を圧縮してDriveに保存
!tar -czvf results.tar.gz output/
!cp results.tar.gz /content/drive/MyDrive/
環境の確認
# インストール済みパッケージの確認
!pip list
!dpkg -l | grep libgl1
# ネットワーク接続の確認
!ping -c 4 google.com
Gitとの連携
# リポジトリをクローン
!git clone https://github.com/user/ml-project.git
%cd ml-project
# 必要なパッケージをインストール
!pip install -r requirements.txt
# 訓練実行
!python train.py
# 結果をコミット
!git add results/
!git commit -m "Add training results"
!git push origin main