はじめに
FTP(ファイル転送プロトコル) は、あるコンピュータシステムから別のコンピュータシステムにファイルを転送するために使用されるネットワークプロトコルです。 FTPの安全性は多くの議論を巻き起こす傾向がありますが、それでも安全なネットワーク内でファイルを転送する効果的な方法です。
このチュートリアルでは、ftp
の使用方法を説明します リモートシステムに接続し、ファイルを転送し、ファイルとディレクトリを管理するコマンド。

前提条件
- ローカルシステムとリモートFTPサーバーへのアクセス(Ubuntu、CentOS 7、またはRaspberry PiにFTPサーバーをインストールする方法を学びます)。
- インターネット接続が機能しています。
- ターミナルウィンドウへのアクセス。
重要: FTPトラフィックは暗号化されていないため、安全でないと見なされます。 FTPを使用してインターネット経由でファイルを転送することはお勧めしません。 FTPの安全な代替手段の詳細については、SFTPおよびTSLとSSLの記事をご覧ください。
Linuxftpコマンド構文
Linux ftp
コマンドは次の基本構文を使用します:
ftp [options] [IP]
IP
接続しているシステムのIPアドレスです。
ftp
で使用できるオプション コマンドは次のとおりです:
FTPコマンドオプション | 説明 |
---|---|
-4 | IPv4のみを使用してください。 |
-6 | IPv6のみを使用してください。 |
-e | コマンドの編集と履歴のサポートを無効にします。 |
-p | データ転送にパッシブモードを使用しているため、ファイアウォールがFTPを妨害している場合でもFTPを使用できます。 |
-i | 複数のファイル転送中のインタラクティブプロンプトをオフにします。 |
-n | 初期接続での自動ログイン試行を無効にします。 |
-g | ファイル名のグロブを無効にします。 |
-v | 詳細出力を有効にします。 |
-d | デバッグを有効にします。 |
ftp
コマンドはリモートシステムに接続し、FTPインターフェースを開始します。 FTPインターフェイスは、次のコマンドを使用してファイルを管理し、リモートシステムに転送します。
コマンド | 説明 |
---|---|
! | 一時的にローカルシェルに逃げます。 |
$ | マクロを実行します。 |
? | ヘルプテキストを表示します。 |
account | リモートシステムのパスワードを入力します。 |
append | リモートシステム上のファイルにローカルファイルを追加します。 |
ascii | ファイル転送タイプをネットワークASCII(デフォルトタイプ)に設定します。 |
bell | 各転送が完了した後、音声アラートを有効にします。 |
binary | ファイル転送タイプをバイナリイメージ転送に設定します。 |
bye | FTPインターフェースを終了します。 |
case | mget 中にIDマッピングするときに、大文字と小文字の感度を切り替えます コマンド。 |
cd | リモートシステムの現在の作業ディレクトリを変更します。 |
cdup | リモートシステム上の現在の作業ディレクトリの親に変更します。 |
chmod | リモートシステムのファイル権限を変更します。 |
close | FTPインターフェースを終了します。 |
cr | ASCIIファイル転送でキャリッジリターンストリッピングを切り替えます。 |
debug | デバッグモードを切り替えます。 |
delete | リモートシステムからファイルを削除します。 |
dir | リモートシステム上のディレクトリの内容を一覧表示します。 |
disconnect | FTPセッションを終了します。 |
exit | FTPセッションを終了し、FTPインターフェイスを終了します。 |
form | ファイル転送形式を設定します。 |
get | ファイルをリモートシステムからローカルマシンに転送します。 |
glob | ローカルファイル名のメタ文字展開を切り替えます。 |
hash | ハッシュ記号の表示を切り替えます( "# ")転送されたデータブロックごとに。 |
help | ヘルプテキストを表示します。 |
idle | リモートシステムの非アクティブタイマーを設定します。 |
image | ファイル転送タイプをバイナリイメージ転送に設定します。 |
ipany | 任意のタイプのIPアドレスを許可します。 |
ipv4 | IPv4アドレスのみを許可します。 |
ipv6 | IPv6アドレスのみを許可します。 |
lcd | ローカルマシンの現在の作業ディレクトリを変更します。 |
ls | リモートシステム上のディレクトリの内容を一覧表示します。 |
macdef | マクロを定義します。 |
mdelete | リモートシステム上の複数のファイルを削除します。 |
mdir | リモートシステム上の複数のディレクトリの内容を一覧表示します。 |
mget | 複数のファイルをリモートシステムからローカルマシンに転送します。 |
mkdir | リモートシステムにディレクトリを作成します。 |
mls | リモートシステム上の複数のディレクトリの内容を一覧表示します。 |
mode | ファイル転送モードを設定します。 |
modtime | リモートシステム上のファイルが最後に変更された時刻を表示します。 |
mput | ローカルマシンからリモートシステムに複数のファイルを転送します。 |
newer | リモートファイルの変更時刻がローカルファイルの変更時刻よりも新しい場合にのみ、リモートシステムからローカルマシンにファイルを転送します(ファイルのローカルバージョンが存在しない場合、リモートファイルは自動的に転送されます)新しいと見なされます。 |
nlist | リモートシステム上のディレクトリの内容を一覧表示します。 |
<a href="https://phoenixnap.com/kb/nmap-scan-open-ports" target="_blank" rel="noreferrer noopener">nmap</a> | デフォルトのファイル名マッピングのテンプレートを設定します。 |
ntrans | デフォルトのファイル名マッピングの変換テーブルを設定します。 |
open | FTPサーバーとの接続を確立します。 |
passive | パッシブ転送モードを有効にします。 |
prompt | 複数のファイルを転送するときにインタラクティブなプロンプトを強制します。 |
proxy | 代替(プロキシ)接続でコマンドを実行します。 |
put | ファイルをローカルマシンからリモートシステムに転送します。 |
pwd | リモートシステムの現在の作業ディレクトリを表示します。 |
qc | 制御文字の表示を切り替えます( "? ")ASCIIタイプのコマンドの出力。 |
exit | FTPセッションを終了し、FTPインターフェイスを終了します。 |
quote | 引数としてコマンドを指定し、FTPサーバーに送信します。 |
recv | ファイルをリモートシステムからローカルマシンに転送します。 |
reget | ローカルファイルがリモートファイルよりも小さい場合は、リモートシステムからローカルマシンにファイルを転送します。転送はローカルファイルの最後から始まります。ファイルのローカルバージョンがない場合、コマンドは実行されません。 |
rename | リモートシステム上のファイルの名前を変更します。 |
reset | キューに入れられたコマンドの応答をクリアします。 |
restart | 設定されたマーカーでファイル転送コマンドを再開します。 |
rhelp | リモートシステムのヘルプテキストを表示します。 |
rmdir | リモートシステム上のディレクトリを削除します。 |
rstatus | リモートシステムのステータスを表示します。 |
runique | 一意のファイル名でローカルマシンにファイルを保存するように切り替えます。 |
send | ファイルをローカルマシンからリモートシステムに転送します。 |
sendport | PORTコマンドの使用を切り替えます。 |
site | コマンドを引数として指定し、SITEコマンドとしてFTPサーバーに送信します。 |
size | リモートシステム上のファイルのサイズを表示します。 |
status | FTPインターフェースのステータスを表示します。 |
struct | ファイル転送構造を設定します。 |
sunique | 一意のファイル名でリモートシステムにファイルを保存するように切り替えます。 |
system | リモートシステムにオペレーティングシステムを表示します。 |
tenex | TENEXマシンに接続できるようにファイル転送タイプを設定します。 |
tick | 転送中にバイトカウンターの印刷を切り替えます。 |
trace | パケットトレースを切り替えます。 |
type | ファイル転送タイプを設定します。 |
umask | ローカルマシンのデフォルトの権限マスクを設定します。 |
user | リモートFTPサーバーのユーザー名とパスワードを入力します。 |
verbose | 詳細出力を切り替えます。 |
Linuxでftpコマンドを使用する方法
ftp
コマンドは、FTPプロトコルを使用してコンピューターシステムをリモートサーバーに接続します。接続すると、ユーザーはローカルマシンとリモートシステム間でファイルを転送したり、リモートシステム上のファイルとディレクトリを管理したりすることもできます。
FTP接続を確立する
リモートシステムへのFTP接続を確立するには、 ftp
を使用します リモートシステムのIPアドレスを使用したコマンド:
ftp [IP]
たとえば、IPアドレス 192.168.100.9でリモートサーバーに接続します :
ftp 192.168.100.9
FTPサーバーにログインします
ftp
を使用してリモートシステムへの接続を開始したら コマンドを実行する場合、FTPインターフェースでは、ログインするためにユーザー名とパスワードを入力する必要があります。

必要な資格情報を入力すると、ログインしてFTPインターフェイスが起動します。この例では、 phoenixnapとしてログインしています。 ユーザー:

これでFTPインターフェイスがアクティブになり、コマンドを実行する準備が整いました。

リモートシステムでのディレクトリの操作
FTPを使用すると、ディレクトリの作成、ある作業ディレクトリから別の作業ディレクトリへの移動、ディレクトリの内容の一覧表示など、リモートシステムで基本的なディレクトリ管理を実行できます。
ディレクトリの一覧表示
FTPインターフェースでは、 ls
を使用して、リモートシステム上のディレクトリの内容を一覧表示できます。 コマンド:
ls
オプションを指定せずにコマンドを使用すると、リモートシステムの現在の作業ディレクトリの内容が表示されます。この例では、それがホームです ディレクトリ:

ls
への引数としてディレクトリへのパスを指定する コマンドはそのディレクトリの内容を表示します:
ls [path to directory]
たとえば、例のコンテンツを一覧表示します ディレクトリ:
ls Example

ls
の最後にテキストファイルの名前を追加する コマンドは、ディレクトリの内容をそのファイルに保存します:
ls [path to directory] [file name]
例:
ls Example listing.txt
このコマンド構文では、 Y
と入力する必要があります Enterを押します テキストファイルの保存を確認するには:

テキストファイルを開くと、ディレクトリの内容が表示されます:

dir
およびnlist
コマンドはls
の代わりになります コマンドを実行し、同じように動作します。 FTPインターフェースでは、 mls
を使用して複数のディレクトリの内容を一覧表示することもできます。 コマンド:
mls [directory 1] [directory 2] .. [directory n]
たとえば、次の例は例の内容を示しています。 およびExample2 :
mls Example Example2 -

ls
のように コマンド、 mls
コマンドを使用すると、ユーザーはコンテンツをテキストファイルに保存できます。このコマンドは、最後の引数をテキストファイルの名前として扱います。ディレクトリの内容をテキストファイルに保存せずに一覧表示する場合は、ファイル名をダッシュ記号( -
)に置き換えます。 。
mdir
コマンドはmls
と同じように機能します コマンドですが、より詳細な出力を提供します:
mdir Example Example2 -

ディレクトリの変更
cd
を使用します リモートシステム上の現在の作業ディレクトリを変更するコマンド:
cd [path to directory]
たとえば、例に移動します ディレクトリ:
cd Example

cdup
を使用します 現在の作業ディレクトリの親に移動するコマンド。この例では、例から移動しています ホームへのディレクトリ ディレクトリ:
cdup

ディレクトリの作成
mkdir
を使用する コマンドを使用すると、リモートシステムにディレクトリを作成できます:
mkdir [directory name]
以下の例では、 Example3という名前のディレクトリを作成します。 :
mkdir Example3

FTP経由でファイルをダウンロード
リモートシステムからローカルマシンにファイルを転送するには、 get
を使用します またはrecv
指図。
get [remote file name]
または
recv [remote file name]
以下の例では、 example_file.txtを転送します ローカルマシンに。
get example_file.txt

example_file.txtを転送するには example.txtとして保存します ローカルマシンでは、次を使用します:
get example_file.txt example.txt

特定のディレクトリからファイルを転送するには、そのディレクトリに移動する必要があります:
cd Example
get test01.txt

mget
コマンドを使用すると、複数のファイルを同時に転送できます。たとえば、 test01.txtを転送します 、 test02.txt 、および test03.txt 例から ディレクトリ:
mget test01.txt test02.txt test03.txt

FTP経由でファイルをアップロード
put
を使用します またはsend
ローカルマシンからリモートシステムにファイルを転送するコマンド。どちらのコマンドも同じ基本構文を使用します:
put [local file name]
send [local file name]
example01.txtを転送するには リモートシステムに使用するには、次を使用します:
put example01.txt

example01.txtをアップロードするには sample01.txtとしてリモートシステムに送信 、使用:
put example01.txt sample01.txt

特定のディレクトリに移動すると、そのディレクトリからファイルを転送できます:
cd Directory
put example.txt

mput
を使用します 複数のファイルをリモートシステムに転送するコマンド。たとえば、 test04.txtを転送します 、 test05.txt 、および test06.txt と:
mput test04.txt test05.txt test06.txt

ファイルの名前を変更
rename
を使用する リモートサーバー上のファイルの名前を変更するコマンド。 rename
コマンドは次の構文を使用します:
rename [old file name] [new file name]
たとえば、名前を sample01.txtに変更します。 sample_file01.txtへ :
rename sample01.txt sample_file01.txt
コマンドを正常に実行すると、次の出力が生成されます。

rename
を使用する ディレクトリ名も変更するコマンド。
以下の例では、 Example3 ディレクトリの名前がExample03に変更されました :
rename Example3 Example03

ファイルの削除
delete
コマンドを使用すると、リモートシステム上のファイルを削除できます。次の構文を使用します:
delete [file name]
たとえば、 sample_file01.txtを削除します :
delete sample_file01.txt

mdelete
を使用する コマンドを使用すると、コマンドの後にファイル名を追加することで、複数のファイルを同時に削除できます。
mdelete test04.txt test05.txt test06.txt

もう1つの方法は、 mdelete
を使用することです。 ワイルドカード文字を使用したコマンド。たとえば、すべての .txtを削除するには ファイル、使用:
mdelete *.txt

FTP接続を閉じます
bye
を使用する 、exit
、またはexit
FTP接続を終了し、インターフェイスを終了するコマンド。
disconnect
を使用する コマンドは、インターフェースを終了せずに接続を閉じます。
