第6章:仮想ファイルシステムとネットワーク¶
最新のファイル管理が単一の物理ハード ドライブの境界で停止することはほとんどありません。 ソフトウェア開発者は、SFTP 経由でリモート ステージング環境を維持します。 システム管理者は、SMB/CIFS 経由でエンタープライズ ファイル共有を管理します。 コンテンツ作成者は、WebDAV 経由でクラウド ストレージやメディア サーバーにアクセスします。 パワー ユーザーは、ギガバイト規模の圧縮アーカイブを定期的に検査、編集、パッケージ化します。
従来のデスクトップ環境では、ユーザーは、zip アーカイブを解凍して再圧縮するためのスタンドアロン アーカイブ ユーティリティ、サーバー資産を管理するための外部 FTP/SFTP クライアント、切断された Finder ウィンドウにリモート ボリュームを分散させるオペレーティング システムのマウント ダイアログなど、バラバラのアプリケーションをやりくりする必要がありました。
ATBCmder は、仮想ファイル システム (VFS) エンジンを通じてこの断片化を排除します。 統一された vfs:// URI 抽象化レイヤー上に構築された ATBCmder は、リモート サーバーと圧縮アーカイブを標準のローカル フォルダーとまったく同じように扱います。 .tar.gz アーカイブに移動し、F3 でコード ファイルをプレビューし、F4 でネストされた構成ファイルを編集し (保存時に自動ライブ再パッキング)、標準の F5 キーを使用して安全な SFTP セッションを介して資産をオンプレミスの SMB NAS に直接コピーできます。これらはすべて必要ありません。 中間ファイルをディスクに抽出したり、別のツールを切り替えたりすることができます。
1. ビジュアル クイックスタート: VFS アーキテクチャとコマンド マトリックス¶
ATBCmder は、すべてのファイルシステム アクセスを統合抽象化レイヤー経由でルーティングします。 パスが Apple APFS SSD パーティションを指している場合でも、ネストされた .zip アーカイブ内のメンバーを指している場合でも、地球の裏側にある Linux SFTP サーバーでホストされているリモート ディレクトリを指している場合でも、デュアルパネル インターフェイスは同一の運用モデルを提供します。
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ ATBCMDER DUAL-PANEL GUI │
│ Left Panel (Active) Right Panel (Inactive / Target) │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ [1] Local File System │ [2] Archive Virtual File System (VFS) │
│ file:///Users/brain/projects/ │ vfs:///Users/brain/backup.tar.gz/src/ │
│ Direct POSIX / APFS access │ In-place browse, F3 view, F4 live edit │
│ │ │
│ [3] Remote Network VFS (SFTP/SSH) │ [4] Remote Storage VFS (SMB / WebDAV) │
│ vfs://sftp://deploy@aws.prod/app/ │ vfs://smb://admin@truenas/Pool/Media/ │
│ Paramiko / SSH Keys / Keychain │ Kernel mount_smbfs / WebDAVClient3 │
│ │ │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ UNIFIED VFS DISPATCH ENGINE (vfs://) │
│ FileSystemModel ➔ VFSManager ➔ SessionCache ➔ StreamCopyWorker / RepackWorker │
└────────────────────────────────────────────────────────────────────────────────────────┘
デュアル マトリックス VFS およびネットワークのチートシート¶
| アクション | macOS ショートカット | クラシック コマンダー キー | コマンドID | 説明 |
|---|---|---|---|---|
| ファイルをアーカイブに圧縮 | Alt+F5 / ⌥F5 |
Alt+F5 |
cm_PackFiles |
形式、圧縮、パスワードのオプションを含む [アーカイブ パック] ダイアログを開きます。 |
| アーカイブからファイルを抽出 | Alt+F9 / ⌥F9 |
Alt+F9 |
cm_ExtractFiles |
選択したアーカイブを衝突解決で解凍します。 |
| クイック ネットワーク接続 | メニュー: ネットワーク | cm_NetworkConnect |
cm_NetworkConnect |
高速アドホック接続ダイアログを開きます。 |
| 接続マネージャー | メニュー: ネットワーク | cm_ManageConnections |
cm_ManageConnections |
保存された接続プロファイルを使用して完全な CRUD ネットワーク マネージャーを開きます。 |
| FTP 接続 | Ctrl+S / ⌃S |
Ctrl+S |
cm_FTPConnect |
FTP 接続セッションをトリガーするためのクイック ショートカット。 |
| アーカイブ/フォルダーを入力してください | Enter / ⏎ |
Enter |
cm_Open |
.zip、.tar、.7z、またはリモート ディレクトリ内に直接移動します。 |
| 親フォルダーに昇順 | Backspace / ⌫ |
Backspace |
cm_GoToParent |
アーカイブまたはリモート ディレクトリから親レベルに戻ります。 |
| 仮想/リモート ファイルの表示 | F3 / Fn+F3 |
F3 |
cm_View |
リモート ファイルまたはアーカイブ ファイルを Universal Lister にストリーミングします。 |
| 仮想/リモート ファイルの編集 | F4 / Fn+F4 |
F4 |
cm_Edit |
エディタでファイルを開きます。 保存時に自動再パックまたはアップロードし直します。 |
| パネル間コピー/VFS | F5 / Fn+F5 |
F5 |
cm_Copy |
選択したアイテムをローカル、アーカイブ、またはネットワーク エンドポイント間でコピーします。 |
| バックグラウンド操作パネル | メニュー: 表示 | cm_OperationsPanel |
cm_OperationsPanel |
バックグラウンド転送キュー、速度、アクティブなスレッドを監視します。 |
2. 統一された vfs:// URI 抽象化¶
従来のファイル マネージャーは、リモート サーバーとアーカイブを二級市民として扱い、外部マウント ユーティリティ、一時抽出フォルダー、またはサードパーティの転送クライアントを必要とします。 ATBCmder は、すべてのファイル ソースを単一の明確に定義された URI 仕様に統合します。
2.1 仮想パスの構造¶
運用ドメインに応じて、vfs:// URI は次の 2 つの標準形式のいずれかになります。
-
仮想パスのアーカイブ:
vfs:///Users/brain/Documents/release_v1.7.zip/src/main.py -
外部プレフィックス:
vfs://は、パス トラバーサルをインターセプトするようにFileSystemModelに指示します。 - コンテナ パス:
/Users/brain/Documents/release_v1.7.zipは、ローカル ストレージ上の物理コンテナ アーカイブを識別します。 -
内部メンバー:
src/main.pyは、アーカイブ内にネストされた仮想リソースを正確に示します。 -
ネットワーク サーバー パス:
vfs://sftp://developer@staging.internal.net:2222/var/www/html/index.php vfs://smb://admin@192.168.1.50/StoragePool/Backups/2026/ vfs://webdavs://user@cloud.mycompany.com:443/remote.php/dav/files/user/ -
スキーム指定子: トランスポート ドライバーを識別します (
sftp、ftp、ftps、smb、webdav、webdavs、gdrive)。 - 認証: ユーザー資格情報とターゲット ポートをエンコードします。
- リモート ターゲット: リモート ホスト上の絶対ディレクトリとファイル パスを解決します。
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ VFS URI ROUTING IN ACTION │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ Input URI: vfs://sftp://deploy@aws.infra:22/var/log/nginx/access.log │
│ │ │ │ │ └────────────────────► Remote Path │
│ │ │ │ └────────────────────────► Port (Default 22) │
│ │ │ └─────────────────────────────────► Host / Server │
│ │ └──────────────────────────────────────────► Username │
│ └─────────────────────────────────────────────────► Protocol Scheme │
│ │
│ Input URI: vfs:///Volumes/Data/Archive.zip/docs/manual.pdf │
│ │ │ └─────────────────► Archive Member │
│ │ └──────────────────────────► Physical Archive │
│ └─────────────────────────────────────────────────► Virtual Scheme │
└────────────────────────────────────────────────────────────────────────────────────────┘
2.2 シームレスなデュアルパネル統合¶
仮想パスは ATBCmder 内の標準ディレクトリ構造に準拠しているため、完全なデュアル パネル パリティを利用できます。
- タブ付き仮想ワークスペース: タブ 1 でリモート SFTP フォルダーを開き、タブ 2 で暗号化されたローカル ZIP アーカイブを開き、タブ 3 でローカル
~/Downloadsフォルダーを開きます。 - 方向コピー (
F5): ローカルのアクティブなパネルでファイルを選択し、F5を押して、非アクティブなパネルに表示されているリモート サーバーまたは圧縮アーカイブにファイルを直接アップロードします。 - ドラッグ アンド ドロップの相互運用性: 中間ステージングを行わずに、ローカル ディスク、ネットワーク共有、アーカイブ階層の間のパネル間で項目をドラッグします。
- インタラクティブなブレッドクラム バー: ブレッドクラム パス バーは、仮想 URI をクリック可能なセグメントに解析します。 親フォルダーまたはルート サーバー バッジをクリックすると、即座にツリーにジャンプします。
3. アーカイブ VFS: インプレース ナビゲーションと検査¶
ATBCmder でアーカイブを開くには、手動による解凍やサードパーティの解凍ツールは必要ありません。 サポートされているアーカイブを強調表示し、Enter を押す (またはダブルクリックする) だけです。 ATBCmder はアーカイブをインプレースにマウントし、パネルを高速仮想ディレクトリ ブラウザに変換します。
図 6.1: 複数ネストされた圧縮アーカイブ内を仮想フォルダーとして移動し、非圧縮サイズ、タイムスタンプ、およびサブディレクトリを表示します。
3.1 サポートされているアーカイブ形式¶
ATBCmder には、すべての業界標準のアーカイブおよび圧縮形式に対応するドライバーが組み込まれています。
| フォーマット | ファイル拡張子 | サポートを読む | 書き込み/パック | 暗号化のサポート |
|---|---|---|---|---|
| 郵便番号 | .zip |
はい | はい | 標準および AES-256 (pyzipper) |
| GZip Tarball | .tar.gz、.tgz |
はい | はい | POSIX 標準 tar ストリーミング |
| BZip2 Tarball | .tar.bz2、.tbz2 |
はい | はい | 高比率の bzip2 ブロック圧縮 |
| XZ タールボール | .tar.xz、.txz |
はい | はい | 高効率の LZMA2 圧縮 |
| プレーン TAR | .tar |
はい | はい | 非圧縮 UNIX テープ アーカイブ |
| 7-Zip | .7z |
はい | はい (py7zr 経由) |
LZMA / LZMA2 ソリッド圧縮 |
3.2 インプレース ナビゲーション ワークフロー¶
アーカイブ内を参照する場合:
- サブディレクトリを入力: アーカイブ内の任意のフォルダーで
Enterを押して、ネストされたツリーを調べます。 - 親に昇順 (
..):Backspace(⌫) を押すか、.. [Parent Directory]エントリをダブルクリックして昇順に移動します。 アーカイブのルートに到達したら、Backspaceを押すと、アーカイブ ファイルを含む物理ディレクトリに正常に戻ります。 - インスタント プレビュー (
F3/Fn+F3): アーカイブ内のドキュメント、画像、またはソース ファイルを強調表示し、F3を押します。 ATBCmder は、ターゲット ファイルを安全な一時サンドボックスに自動的に抽出し、それを Universal Lister 内でレンダリングします。 - 選択コピー (
F5/Fn+F5): 1 つまたは 2 つのファイルを取得するためだけにマルチギガバイトのアーカイブ全体を解凍するのではなく、必要な特定のメンバーを選択してF5を押します。 ATBCmder は、選択された項目のみを非アクティブなパネルに直接解凍します。
Note
アーカイブから個々のファイルをプレビューまたはコピーする場合、ATBCmder は要求されたファイル バイトのみをコンテナ ストリームから直接ストリーミングします。 選択されていない兄弟ファイルの解凍にディスク容量や時間を無駄にすることはありません。
4. ライブ再パッキング: アーカイブ内のインプレース編集¶
ATBCmder の最も強力なワークフローの 1 つは ライブ再パッキング です。 これまで、圧縮アーカイブ内にネストされた 1 つのファイルを変更するには、6 段階の面倒な手順が必要でした。つまり、アーカイブ全体を抽出し、ターゲット ファイルを見つけ、編集して保存し、ディレクトリを新しいアーカイブに再圧縮し、元のアーカイブを削除し、一時フォルダーをクリーンアップします。
ATBCmder を使用すると、アーカイブ内のファイルを標準のローカル ファイルを編集するのと同じくらい簡単に編集できます。
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ LIVE REPACKING LIFECYCLE │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ 1. User presses F4 on "config.json" inside "package.zip" │
│ │ │
│ ├──► ATBCmder extracts "config.json" to sandbox: /tmp/dc_repack_xyz/config.json │
│ └──► Opens internal EditorDialog with window title: "config.json — Editor" │
│ │
│ 2. User modifies file and presses Cmd+S (Save) │
│ │ │
│ ├──► Editor emits file_saved signal │
│ └──► RepackWorker checks original archive size vs ArchiveRepackWarningMB threshold │
│ │
│ 3. Atomic Repack Execution │
│ │ │
│ ├──► Writes modified stream to staging archive: /tmp/package.zip.tmp │
│ ├──► Validates container integrity via archive driver │
│ ├──► Atomic swap: os.replace("/tmp/package.zip.tmp", "/original/package.zip") │
│ └──► Refreshes active file panel and cleans up sandbox /tmp/dc_repack_xyz/ │
│ │
└────────────────────────────────────────────────────────────────────────────────────────┘
4.1 ステップバイステップ: アーカイブされた設定ファイルの編集¶
Enterを押して、アーカイブ (例:application_bundle.zip) に移動します。- 変更するファイルを見つけます (例:
settings.yaml)。 F4(Fn+F4) を押します。 ATBCmder はファイルを一時キャッシュに抽出し、組み込みエディタを起動します。- エディターで変更を加えます。
Cmd+S(⌘S) を押して保存します。Cmd+W(⌘W) またはEscを使用してエディターを閉じます。- ATBCmder の
RepackWorkerは、内部メンバーを自動的に更新し、更新された構造を一時ファイルに圧縮し、元のアーカイブをアトミックに置き換えて、パネル ビューを更新します。
Caution
大規模なアーカイブ安全ガード (ArchiveRepackWarningMB)
圧縮されたアーカイブを再パックするには、コンテナ ストリームを解凍して再エンコードする必要があります。 20 GB .tar.gz ビデオ アーカイブ内の 10 KB ファイルを変更すると、コンピューターは 20 GB のデータすべてを強制的に書き換えることになります。
偶発的なディスクのフリーズを防ぐために、ATBCmder には保護安全しきい値 (ArchiveRepackWarningMB、デフォルト: 100 MB (atbcmder.xml)) が含まれています。 この制限を超えるアーカイブ内のファイルを編集または削除しようとすると、ATBCmder は確認プロンプトを表示します。
「このアーカイブを変更するにはファイル全体を再パックする必要があり、時間がかかる場合があります。続行しますか?」
5. アーカイブの作成と抽出 (Alt+F5 / Alt+F9)¶
ATBCmder は、アーカイブの作成と抽出のための専用のバックグラウンド ワーカーを提供し、長時間実行される圧縮ジョブでもファイル パネルの応答性を維持します。
図 6.2: 宛先パス、形式の選択、圧縮レベル、パスワード暗号化を示す [アーカイブ パラメーター] ダイアログ (Alt+F5 / cm_PackFiles)。
5.1 ファイルの圧縮 (Alt+F5 / ⌥F5 / cm_PackFiles)¶
新しいアーカイブを作成するには:
- アクティブなパネルで、バンドルするファイルまたはディレクトリを選択します。
Alt+F5(⌥F5) を押すか、メニュー バーから ファイル ➔ パック... を選択します。- [ファイルのパック] ダイアログが表示されます。
- アーカイブ ファイルの作成: 宛先ファイルパス。 デフォルトでは、ATBCmder は、フォーカスされている項目にちなんで名付けられた非アクティブなパネルのディレクトリにアーカイブを配置することを提案します。
- アーカイブ形式:
ZIP、TAR、TAR.GZ、TAR.BZ2、TAR.XZ、または7Zから選択します。 - 圧縮レベル:
Store: ゼロ圧縮。 事前圧縮メディア (MP4、JPEG) のインスタント パッケージ化。Fast: CPU オーバーヘッドが低い。 素早い転送に最適です。Normal (Deflated): 速度と圧縮率のバランスが取れています (一般的な使用に推奨)。Maximum: 最高密度圧縮 (該当する場合は LZMA/Bzip2 を使用)。- パスワード (ZIP のみ): アーカイブを暗号化するための秘密のパスフレーズを入力します。
- [開始] をクリックします (または
Enterを押します)。 この操作は、進行状況バーとファイルごとのステータス インジケーターを備えたノンブロッキング バックグラウンド スレッドで実行されます。
軍事グレードの AES-256 パスワード暗号化¶
Standard ZIP encryption (legacy ZipCrypto) is cryptographically broken and vulnerable to plaintext dictionary attacks. ZIP アーカイブのパスワードを指定すると、ATBCmder は pyzipper (WZ_AES 標準を備えた pyzipper.AESZipFile) を利用した AES-256 暗号化 を利用します。 This ensures compatibility with macOS, WinZip, and 7-Zip while protecting sensitive data against brute-force decryption.
巨大なアーカイブをマルチボリューム セットに分割する¶
電子メールの添付ファイル、FAT32 ドライブ、またはファイル サイズの上限があるクラウド アップロード境界にアーカイブを配布する必要がある場合は、次の手順を実行します。
Alt+F5(cm_PackFiles) を使用してファイルをバンドルします。- 結果の
.zipまたは.tarアーカイブを強調表示し、Alt+F6(cm_FileSpliter) を介してファイル スプリッターをトリガーします。 - プリセット分割サイズ (
100 MB、4.7 GB DVD、CD 700 MB、またはカスタム バイト サイズなど) を選択します。 - ATBCmder は、CRC32 検証マニフェストとともに、番号付きの分割部分 (
archive.zip.001、archive.zip.002など) を生成します。 受信者は、cm_FileLinker(cm_Combine) を使用していつでも元のコンテナを再構築できます。
5.2 アーカイブの抽出 (Alt+F9 / ⌥F9 / cm_ExtractFiles)¶
アーカイブをディスクに抽出するには:
- アクティブなパネルで 1 つ以上のアーカイブを強調表示します。
Alt+F9(⌥F9) を押すか、メニュー バーから ファイル ➔ 抽出... を選択します。- [ファイルの抽出] ダイアログが表示されます。
- 抽出するアーカイブ: 選択したコンテナーのソース パス。
- ディレクトリに抽出: 宛先ディレクトリ (デフォルトは非アクティブなパネル)。
- コンテンツのプレビュー: アーカイブ メンバーをリアルタイムでロードする対話型リスト ボックス。
- パスワード: パスワードで保護されたアーカイブの入力フィールド。
- [開始] をクリックします。 ターゲット ファイルが宛先フォルダーに既に存在する場合、ATBCmder はワーカーを一時停止し、対話型の衝突ダイアログを表示します。
- 上書き: 競合する宛先ファイルを置き換えます。
- スキップ: 既存のファイルをそのままにして次の項目に進みます。
- すべて上書き: 後続の競合をすべてサイレントに上書きします。
- すべてスキップ: 既存の宛先ファイルをすべて自動的にバイパスします。
- キャンセル: 抽出プロセスを安全に停止します。
6. リモートネットワーク VFS: プロトコルとリモートストレージ¶
ATBCmder には、デュアルパネル ワークスペース内でリモート サーバーを直接マウント、参照、操作できるマルチプロトコル ネットワーク クライアント エンジンが含まれています。
図 6.3: ライブ ファイル属性、所有権パーミッション、およびデュアルパネル転送を使用して、安全な SFTP 経由でリモート Linux サーバー ディレクトリを参照します。
図 6.4: サポートされているネットワーク接続タイプ: FTP/FTPS、セキュア SFTP、WebDAV クラウド ストレージ、および SMB ネットワーク共有。
6.1 サポートされているネットワークプロトコル¶
| プロトコルスキーム | デフォルトのポート | トランスポート層 | 認証モード | 最適な用途 |
|---|---|---|---|---|
sftp:// |
22 |
SSH-2 (パラミコ) | パスワード、SSH キー (id_rsa、id_ed25519) |
Linux サーバー、クラウド インスタンス、ステージング ホスト |
ftp:// |
21 |
プレーン RFC 959 | 匿名、クリアテキストのユーザー名とパスワード | 従来の Web ホスティング、ローカル ラボ デバイス |
ftps:// |
990 |
TLS 暗号化 FTP | SSL/TLS を使用したユーザー名とパスワード | 安全な商用 FTP サーバー |
smb:// |
445 |
CIFS / SMB3 | Windows NT / Kerberos / ローカル アカウント | Windows 共有、NAS アプライアンス、Samba サーバー |
webdav:// |
80 |
HTTP WebDAV | 基本認証、ダイジェスト認証 | Web サーバー、ローカル ネットワーク ストレージ |
webdavs:// |
443 |
HTTPS WebDAV | SSL 暗号化ベーシック / ダイジェスト認証 | Nextcloud、ownCloud、商用クラウド ストレージ |
gdrive:// |
443 |
Google ドライブ API | OAuth2 トークン認証 | Google Drive クラウドドライブと共有フォルダー |
6.2 プロトコルの機能と詳細¶
SFTP (SSH ファイル転送プロトコル)¶
業界標準の paramiko SSH エンジンを活用した ATBCmder の SFTP ドライバーは、ポート 22 上で暗号化されたトンネルを確立します。
- ホスト キーの安全性 (
WarningPolicy): 厳格なセキュリティ要件に従って、ATBCmder はローカルの~/.ssh/known_hostsファイルを自動的に参照します。 既知のホストに接続する場合、ホスト キーは暗号的に検証されます。 不明なサーバーに遭遇した場合、ATBCmder は予期せぬ公開キーを黙って信頼するのではなく、安全性の警告を発します。 - SSH キー認証: 標準のパスワード認証に加えて、ATBCmder は SSH 秘密キー ファイル (
~/.ssh/id_rsa、~/.ssh/id_ed25519) をサポートします。 - UNIX 属性マッピング: リモート 8 進ファイル モード (
chmod)、ユーザー/グループの所有権文字列、および正確な POSIX 変更タイムスタンプを保持します。
FTP および FTPS (明示的/暗黙的 SSL)¶
Python の ftplib によって駆動される FTP ドライバーは以下をサポートします。
- パッシブ モード (PASV): デフォルトで有効になっており、制限的な NAT ルーターやコンシューマー ファイアウォールを介した信頼性の高い接続が保証されます。
- 設定可能なエンコーディング:
UTF-8、ISO-8859-1、GB18030、およびWindows-1252文字セットを切り替えることができるようにすることで、非 ASCII ファイル名の表示の問題を解決します。
SMB / Samba (Windows 共有および NAS アプライアンス)¶
転送速度が遅いという単純なユーザー空間の Python SMB ライブラリとは異なり、ATBCmder はハイブリッド アーキテクチャを採用しています。
- macOS ネイティブ カーネル アクセラレーション (
mount_smbfs): macOS では、ATBCmder のSambaMounterは Apple のネイティブ/sbin/mount_smbfsサブシステムを利用します。 リモート共有を macOS VFS ツリー (/Volumes/または分離されたマウント ディレクトリ) に直接マウントし、ハードウェア アクセラレーションによる SMB3 読み取り/書き込みスループットを完全に解放します。 - 既存のマウント検出: macOS Finder またはシステム スクリプトがターゲット SMB 共有をすでにマウントしている場合、ATBCmder は OS
mountテーブルからアクティブなマウントポイントを自動的に検出し、即座にそこに移動し、冗長なネットワーク接続を回避します。
Important
SMB 共有名の要件 SMB サーバーは、裸のホスト名レベルでは参照できません。 SMB URI には、パスにターゲット共有名またはエクスポート名を含める必要があります**。
- ❌ 無効:
vfs://smb://nas.local/ - ✅ 有効:
vfs://smb://nas.local/StoragePoolまたはvfs://smb://192.168.1.100/Media
WebDAV & WebDAVS (Nextcloud / クラウドストレージ)¶
webdavclient3 に基づいて構築されたこのドライバーは、最新のクラウド ストレージ ソリューションとの双方向ファイル同期を提供します。
- SSL 証明書検証: プライベート ホームラボ セットアップでの自己署名証明書の上書きトグルにより、パブリック WebDAVS ホストの厳密な SSL 証明書検証をサポートします。
- 再帰的ディレクトリ作成 (
makedirs): 一括アップロード操作中に、不足しているネストされたリモート ディレクトリ パスを自動的に作成します。
7. クイック接続と接続マネージャー¶
ATBCmder は、リモート ホストに接続するための 2 つの柔軟なメカニズムを提供します。高速な一時セッション用の クイック接続、および永続的な分類されたサーバー ブックマーク用の 接続マネージャーです。
7.1 クイック接続 (cm_NetworkConnect)¶
永続的な構成を乱雑にせずにサーバーにすばやくアクセスする必要がある場合:
- [ネットワーク] ➔ [クイック接続...] を選択します (またはコマンド
cm_NetworkConnectを実行します)。 - 軽量接続プロンプトが表示されます。
- プロトコル:
sftp、ftp、ftps、smb、webdav、webdavs、またはgdriveを選択します。 - ホストとポート: サーバー アドレスを入力します (ポートはデフォルト値を自動入力します)。
- ユーザー名とパスワード: 接続資格情報を入力します。
- リモート パス: 開始リモート ディレクトリ (デフォルト:
/)。 - パスワードを記憶する: 単一セッションの一時接続の場合は、チェックを外したままにします。
- [接続のテスト] をクリックして、接続する前にネットワーク ハンドシェイクと資格情報を確認します。
- [接続] をクリックします。 ATBCmder は、リモート サーバーを指す新しいタブをアクティブ パネルに即座に開きます。
7.2 接続マネージャー (cm_ManageConnections)¶
定期的にアクセスするサーバーには、接続マネージャー が完全な構成ダッシュボードを提供します。
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ CONNECTION MANAGER DIALOG │
├──────────────────────────────┬─────────────────────────────────────────────────────────┤
│ Saved Connections │ Connection Details │
│ ┌────────────────────────┐ │ Label: [ Staging Web Server (AWS) ] │
│ │ 🔐 AWS Staging Server │ │ Protocol: [ SFTP (port 22) ▼ ] │
│ │ 🖧 Synology Office NAS │ │ Host: [ ec2-54-210-10-2.compute.amazonaws.com] │
│ │ 🌐 Nextcloud Personal │ │ Port: [ 22 ] │
│ │ 📂 Legacy Archive FTP │ │ Username: [ ubuntu ] │
│ │ │ │ Password: [ •••••••••••••••••• ] │
│ │ │ │ Remote Path: [ /var/www/production ] │
│ │ │ │ [✓] Remember password in macOS Keychain │
│ └────────────────────────┘ │ │
│ [➕ New] [⧉ Dup] [🗑 Del] │ [🔍 Test Connection] [💾 Save] [🔗 Connect] │
└──────────────────────────────┴─────────────────────────────────────────────────────────┘
サーバープロファイルの管理¶
- 新規作成 (
➕ New): 右側のフォームをクリアして、新しいサーバー構成を定義します。 - 複製 (
⧉ Duplicate): 選択した接続プロファイルのクローンを作成します。 同一のホスト構成で複数の環境 (開発、ステージング、実稼働) を管理する場合に最適です。 - 削除 (
🗑 Delete): 接続プロファイルを削除し、関連する資格情報をシステム キーチェーンから削除します。 - テスト接続 (
🔍 Test Connection): バックグラウンド ワーカー (ConnectionTestWorker) をディスパッチして、接続、認証、正常な切断を行い、別の場所に移動することなくサーバーの応答性を確認します。 - 接続 (
🔗 Connect): 保留中のフィールド編集を保存し、リモート セッションを確立し、リモート ディレクトリを新しいアクティブなパネル タブにロードします。
動的保存された接続メニュー¶
保存された接続は、上部のメニュー バーの ネットワーク ➔ 保存された接続 に自動的に統合されます。 ブックマークされたサーバーは、ワンクリックでマウントできます。
Network ➔ Saved Connections ➔ 🔐 AWS Staging ServerNetwork ➔ Saved Connections ➔ 🖧 Synology Office NAS
8. 認証情報の安全性とキーチェーンの統合¶
ファイル マネージャーの構成ファイルは、資格情報を収集するマルウェアの主なターゲットです。 従来のファイル マネージャーの多くは、ユーザーのホーム ディレクトリにあるプレーンテキストの XML または INI 設定ファイルに FTP/SFTP パスワードを保存します。
ATBCmder は、クリアテキスト認証情報のストレージがゼロであることを保証します。
8.1 セキュリティアーキテクチャ¶
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ CREDENTIAL STORAGE ARCHITECTURE │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ Connection Configuration XML Apple System Keychain │
│ (~/.config/atbcmder/atbcmder.xml) (service: "ATBCmder_VFS") │
│ ┌─────────────────────────────────────┐ ┌──────────────────────────────────┐ │
│ │ <connection> │ │ Label: "AWS Staging Server" │ │
│ │ <label>AWS Staging</label> │ │ Key: Encrypted Secret │ │
│ │ <scheme>sftp</scheme> │ │ Access: Controlled by macOS │ │
│ │ <host>aws.infra.net</host> │ │ Hardware Security Enclave│ │
│ │ <user>deploy</user> │ └──────────────────────────────────┘ │
│ │ <password></password> │ ▲ │
│ │ </connection> │ │ │
│ └─────────────────────────────────────┘ │ │
│ ▲ │ │
│ │ Password stripped on save │ Stored via │
│ └─────────────────── ConnectionManager ─────────────────────┘ Python keyring │
│ │
└────────────────────────────────────────────────────────────────────────────────────────┘
- クリアテキスト XML スクラビング: 接続プロファイルがディスク (
atbcmder.xml) にシリアル化されるたびに、ConnectionManager.save()ルーチンは、書き込み前に明示的にd["password"] = ""を強制します。 たとえ権限のない第三者が構成 XML を検査したとしても、サーバーのパスワードが公開されることはありません。 - macOS システム キーチェーンの暗号化: [パスワードを記憶する] チェックボックスが選択されている場合、パスワードは、システム
keyringAPI を介して、安全なサービス識別子ATBCmder_VFSで macOS キーチェーンに直接保存されます。 キーの導出と保管は、Apple のハードウェア Secure Enclave によって保護されています。 - 一時的なインメモリ セッション: [パスワードを記憶する] がチェックされていない場合、資格情報は現在のアプリケーション ライフサイクル中動的メモリ (
VFSSessionCache) に厳密に保持され、ATBCmder が終了した瞬間に消去されます。
9. ⚡ プロのヒント: 高性能のリモート操作¶
ヒント 1: ノンブロッキング バックグラウンド転送キュー (cm_OperationsPanel)¶
リモート サーバー間で大きなディレクトリをコピーする場合、または SFTP 経由でマルチギガバイトの ISO をダウンロードする場合は、ワークスペースを決してフリーズしないでください。 ATBCmder でのすべてのネットワーク ファイル操作は、バックグラウンド オペレーション キューと自動的に統合されます。
F5を押して転送を開始し、バックグラウンド をクリックします (または自動的にキューに入れます)。- 表示 ➔ 操作パネル (
cm_OperationsPanel) を介して操作パネルを開き、ライブ帯域幅グラフ、ファイルごとのバイト数、および残りの転送推定値を監視します。 - 両方のパネルでローカル ファイルの参照を続けながら、キューに入れられたネットワーク転送を一時停止、再開、または並べ替えることができます。
ヒント 2: 異種プロトコル間でのストリーム コピー¶
ATBCmder の stream_copy_file エンジンは、サーバー間の直接ストリーミングを可能にします。 左側のパネルの SFTP サーバーから右側のパネルの SMB ネットワーク共有にフォルダーをドラッグすると、次のようになります。
- ATBCmder は、再アップロードする前にディレクトリ全体をローカル Mac ハード ドライブにダウンロードしません**。
- データはメモリ内のバッファ リングを通じてチャンク化され、ソース ソケットからターゲット ソケットに直接バイトをストリーミングします。 これにより、ローカル ディスクの磨耗がなくなり、利用可能なローカル SSD 容量を超える転送に対応できます。
ヒント 3: ネットワークのキープアライブと接続ドロップの防止¶
ステートフル ネットワーク ファイアウォールと NAT ゲートウェイは、60 ~ 300 秒間の非アクティブ状態が続くと、アイドル状態の TCP 接続を頻繁に切断します。 大規模なリモート ツリーを参照するときにセッションが切断されないようにするには、次の手順を実行します。
- ATBCmder の
BaseNetworkVFSレイヤーは、アイドル状態の接続間でセッション ハートビートを自動的に維持します。 - 一時的なネットワーク切断が発生した場合、内部
_retry()メカニズムは、接続障害を報告する前に、指数バックオフ (2^attempt秒間隔) を使用して最大 3 回の再試行を実行します。
ヒント 4: 自動アップロード ライフサイクルを使用したリモート ファイルの編集¶
nginx.conf または Python スクリプトをリモート サーバー上で直接編集する必要がありますか?
- SFTP または WebDAV パネル ビューでリモート ファイルを強調表示します。
F4(Fn+F4) を押します。- ATBCmder はファイルを分離された一時サンドボックス (
/tmp/) にダウンロードし、組み込みエディターで開きます。 Cmd+S(⌘S) を押すたびに、ATBCmder は_upload_vfs_temp()をトリガーし、更新されたファイルをリモート サーバーに非同期的にストリーミングして戻し、ステータス バーに確認メッセージを点滅させます。- エディターを閉じると、一時ファイルは
/tmp/から安全にリンク解除されます。
10. システムとセキュリティの警告¶
Warning
SSH ホスト キー検証の不一致
SFTP サーバーがホスト キーを再生成する場合 (OS の再インストール後など)、または中間者によるネットワーク傍受が試みられた場合、ATBCmder はサーバー キーが ~/.ssh/known_hosts に登録されているフィンガープリントと一致しないことを検出します。
サーバーの公開キーのフィンガープリントをシステム管理者に個別に確認することなく、信頼できないパブリック Wi-Fi ネットワーク上のホスト キーの警告をバイパスしないでください。
Important
大きなリモート ファイル用の一時キャッシュ スペース
リモート VFS サーバーに保存されているマルチギガバイト ファイルを表示 (F3) または編集 (F4) する場合、ATBCmder はターゲット アイテムをローカル /tmp ボリュームにストリーミングします。 大規模なリモート ビデオ ファイルやデータベース ファイルを開く前に、Mac のプライマリ APFS コンテナに十分な空きストレージ容量があることを確認してください。
Caution
リモート ネットワーク共有のマウントを解除
macOS mount_smbfs 経由でマウントされた SMB 共有の場合、切断せずにネットワーク接続を終了すると、/Volumes/ に古いマウント ハンドルが残る可能性があります。 ラップトップを閉じたり、Wi-Fi ネットワークを変更したりする前に、必ずパネル ドライブ メニューを使用するか、切断アクションを行ってください。
11. マスターデュアルマトリックスキーボードリファレンステーブル¶
| カテゴリー | アクションの説明 | macOS ショートカット | クラシック コマンダー キー | コマンドID |
|---|---|---|---|---|
| アーカイブ操作 | 選択したファイル/フォルダーをパックする | Alt+F5 / ⌥F5 |
Alt+F5 |
cm_PackFiles |
| アーカイブ操作 | 選択したアーカイブを抽出する | Alt+F9 / ⌥F9 |
Alt+F9 |
cm_ExtractFiles |
| アーカイブ操作 | アーカイブ コンテナ内を参照 | Enter / ⏎ |
Enter |
cm_Open |
| アーカイブ操作 | 親ディレクトリへのアーカイブを終了 | Backspace / ⌫ |
Backspace |
cm_ChangeDirToParent |
| アーカイブ操作 | アーカイブ内のファイルをプレビュー | F3 / Fn+F3 |
F3 |
cm_View |
| アーカイブ操作 | アーカイブ内のファイルを編集 (ライブ) | F4 / Fn+F4 |
F4 |
cm_Edit |
| アーカイブ操作 | 選択した項目のみを抽出 | F5 / Fn+F5 |
F5 |
cm_Copy |
| アーカイブ操作 | 大規模なアーカイブをボリュームに分割 | Alt+F6 / ⌥F6 |
Alt+F6 |
cm_FileSpliter / cm_Split |
| アーカイブ操作 | 分割されたボリュームのピースを再組み立てする | メニュー: ファイル ➔ ファイルを結合 | — | cm_FileLinker / cm_Combine |
| ネットワーク接続 | クイックネットワーク接続ダイアログ | メニュー: ネットワーク | — | cm_NetworkConnect |
| ネットワーク接続 | ネットワーク接続を管理する | メニュー: ネットワーク | — | cm_ManageConnections |
| ネットワーク接続 | FTP サーバーへのクイック接続 | Ctrl+S / ⌃S |
Ctrl+S |
cm_FTPConnect |
| ネットワーク接続 | リモート ネットワーク共有を切断します | メニュー: ネットワーク | — | cm_NetworkDisconnect |
| 転送管理 | オペレーション転送キューを開く | メニュー: 表示 | — | cm_OperationsPanel |
| 転送管理 | アクティブなキューを一時停止/再開する | Space (キュー内) |
Space |
— |
システムリソースを監視し、ディスク使用量を分析し、安全にキャッシュをクリーンアップする準備はできましたか?