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