Linux環境とリモート開発環境の基本操作ガイド

タスク概要

タスク名内容
メイン課題SSH接続とポート転送を設定し、hello_world.pyを実行
タスク1開発マシン上で基本的なLinuxコマンドを実践
タスク2VS Codeでリモート接続し、conda環境を新規作成
タスク3test.shスクリプトを作成・実行

SSH接続とポート転送の基礎

SSH(Secure Shell)は、暗号化された安全な通信チャネルを提供するネットワークプロトコルです。リモートサーバーへのログインやファイル転送に広く利用され、認証とデータ暗号化により安全性を確保します。

SSHはクライアント/サーバーモデルで動作し、TCP接続確立後、双方が共通鍵を生成して以降の通信を暗号化します。鍵認証を設定することで、毎回のパスワード入力を省略できます。特にクラウド開発環境を利用する際には、ローカルPCから遠隔でコード編集・実行を行うため不可欠な技術です。

ポート転送の必要性

開発用マシン上でWebアプリケーション(例:GradioベースのUI)を起動した場合、ブラウザ経由でのアクセス時に外部リソースが正しく読み込まれないことがあります。これはプロキシ環境下での制限によるものです。

これを回避するためにポート転送(ポートフォワーディング)を利用します。ローカルホストの特定ポート(例:7860)をリモートマシンの対応ポートにトンネル接続することで、直接アクセスしているかのように動作させます。

実装例:Gradioアプリ

import socket
import re
import gradio as gr

def fetch_device_id():
    device_name = socket.gethostname()
    match = re.search(r'-(\d+)$', device_name)
    return match.group(1) if match else "unknown"

with gr.Blocks(theme=gr.themes.Soft()) as app_ui:
    content = f"""
    <div style="text-align:center">
        <img src="https://intern-ai.org.cn/assets/headerLogo-4ea34f23.svg" width="20%"/>
        <h1>☁️ ユーザー {fetch_device_id()} さん、ようこそ!</h1>
        <h2>😀 学習の旅へ出かけましょう!</h2>
        <img src="https://oss.lingkongstudy.com.cn/blog/202406301604074.jpg" width="20%"/>
    </div>
    """
    gr.HTML(content)

app_ui.launch()

VS CodeのRemote-SSH拡張機能を使えば、ポート転送は自動で処理されます。端末を開き(Ctrl+Shift+~)、右側の「ポート」タブからローカルURL(例:http://127.0.0.1:7860)でアクセス可能です。

必須Linuxコマンド集

  • ファイル操作
    touch file.txt — 空ファイル作成
    mkdir dir — ディレクトリ作成
    cp -r src dest — 再帰的コピー
    mv old new — 名前変更/移動
    rm -rf dir — 強制削除(再帰)
  • リンク作成
    ln -s /path/to/target link_name — シンボリックリンク作成(推奨)
    ※ハードリンクは同一ファイルシステム内のみ有効
  • 検索・処理
    find . -name "*.py" — 拡張子で検索
    find . -type f -size +100M — 100MB超のファイル
    sed -i 's/foo/bar/g' file.txt — ファイル内文字列置換
    grep -n "error" log.txt — 行番号付き検索
  • プロセス管理
    ps aux | grep python — 特定プロセス検索
    top — リアルタイム監視
    kill -9 PID — 強制終了
    nvidia-smi — GPU使用状況確認

開発環境構築ツール

tmux — セッション永続化

長時間実行タスク(例:モデルファインチューニング)では、接続切断による中断を防ぐためにtmuxが有用です。

# Ubuntu環境でのインストール
sudo apt update && sudo apt install tmux

# 新規セッション開始
tmux new -s training

# セッションから一時離脱(Ctrl+B → D)
# 再接続: tmux attach -t training

conda — 仮想環境管理

# Python 3.10環境作成
conda create -n myproject python=3.10

# 環境一覧表示
conda env list

# 環境削除
conda remove -n myproject --all

# 環境エクスポート(再利用用)
conda env export -n myproject > environment.yml

# 復元
conda env create -f environment.yml

タグ: linux SSH conda tmux Gradio

5月16日 13:05 投稿