ftpはFTPサーバーに接続し、ファイルをアップロードしたり、アクセス権を変更したりするLinuxコマンドだ。
Webサイトをアップロードする時に使うのが主な用途だろう。
通常はftpクライアントソフトを使ってFTPサーバーの操作を行うことが多いだろう。
しかし、Webアプリなどのシステム的なものは、Linuxコマンドで操作したほうが効率がよいケースもあるので覚えておこう。
目次
- 1 ftpコマンドの基本
- 2 ftpコマンドのオプションたち
- 3 FTP用コマンド
- 3.1 FTP用コマンド一覧
- 3.2 コマンドopen:サーバーに接続する
- 3.3 コマンドclose:サーバーから切断する
- 3.4 コマンドquit:FTPモードを終了する
- 3.5 コマンド ls:FTPサーバー内のファイルやディレクトリを一覧表示する
- 3.6 コマンドasc:アスキーモードでファイルを扱う
- 3.7 コマンドbin:バイナリモードでファイルを扱う
- 3.8 コマンドput:Linux内のファイルをアップロードする
- 3.9 コマンドget:FTPサーバー上のファイルをダウンロードする
- 3.10 コマンドmput:複数ファイルをアップロードする
- 3.11 コマンドmget:複数ファイルをダウンロードする
- 3.12 コマンド mkdir:ディレクトリを作成する
- 3.13 コマンド delete:ファイルを削除する
- 3.14 コマンド chmod:ファイルのアクセス権の変更
- 4 FTPモードの中断
- 5 実際の使い方
ftpコマンドの基本
コマンドの基本動作
使い方は、次のとおりだ。
$ ftp
ftpが起動し、ftp用のコマンドにてFTPサーバーが操作できる状態になった。
この状態から実際の操作は行っていく。
また、FTPサーバーを指定することもできる。
書式は次の通りだ。
$ ftp FTPサーバーアドレス
例えば、xxx1.xxx2.xxx3.xxx4のアドレスのFTPサーバーに接続する場合は次の通りだ。
$ FTP xxx1.xxx2.xxx3.xxx4
するとログイン名とパスワードを聞いてくるので、入力すればFTPサーバーに接続できる。
初めにアドレスは指定しなくても問題ない。
後でftp用のコマンド「open」で指定したFTPサーバーに接続できる。
ftpコマンドのオプションたち
オプションの一覧
ftpを起動する際に付与するオプションは次のとおりだ。
後から詳細をご紹介するが、まずは一覧で見てみよう。
オプション -v
FTPサーバーの処理後のメッセージを表示する
オプション -i
確認を行わない
-vオプション:FTPサーバーの処理後のメッセージを表示する
一つ一つの操作に対し、確認のためにサーバーで処理した内容を表示するようにする書式は次のとおりだ。
$ ftp -v
-iオプション:確認を行わない
オプションなしの状態では、複数ファイルをアップロードする時に確認のメッセージが表示されるが、ファイル数が多くあると確認が煩わしく感じるときがある。
もし確認がいらない時は-iプションをつけよう。
書式は次の通りだ。
$ ftp -i
FTP用コマンド
ftpコマンドで一度FTPモードになった後は、次のようなコマンドが使える。
多くのlsやcdなどのLinuxコマンドが使える。
FTP用コマンド一覧
後で詳しく解説するが、まずは代表的なものを一覧で見てみよう。
openコマンド
サーバーに接続する
closeコマンド
FTPサーバーから切断する
quitコマンド
FTPモードを終了する
lsコマンド
FTPサーバー内のファイルやディレクトリを一覧表示する
ascコマンド
アスキーモードでファイルを扱う
binコマンド
バイナリモードでファイルを扱う
putコマンド
Linux内のファイルをアップロードする
putコマンド
FTPサーバー上のファイルをダウンロードする
getコマンド
サーバーからダウンロードする
mputコマンド
複数ファイルをアップロードする
mgetコマンド
複数ファイルをダウンロードする
mkdirコマンド
ディレクトリを作成する
chmodコマンド
ファイルのアクセス権の変更
では、詳細を見ていこう。
コマンドopen:サーバーに接続する
FTPサーバーに接続する。書式は次の通りだ。
ftp > open 接続先アドレス
xxx1.xxx2.xxx3.xxx4のアドレスのFTPサーバーに接続する場合は次の通りだ。
ftp > open xxx1.xxx2.xxx3.xxx4
するとログイン名とパスワードを聞いてくるので、入力すれば指定したFTPサーバーに接続できる。
コマンドclose:サーバーから切断する
FTPサーバーから切断する。書式は次の通りcloseと打ち込むだけだ。
ftp > close
FTPサーバーから切断できる。
コマンドquit:FTPモードを終了する
FTPモードを終了する。書式は次の通りquitと打ち込むだけだ。
ftp > quit
FTPモードが終了し、Linuxコマンドが受け付けられる状態になった。
コマンド ls:FTPサーバー内のファイルやディレクトリを一覧表示する
Linuxコマンド同様、FTPサーバー内のファイルやディレクトリを一覧表示するコマンドで、書式は次の通りだ。
ftp > ls
FTPサーバー内のファイルやディレクトリが一覧表示された。
コマンドasc:アスキーモードでファイルを扱う
アップロード、ダウンロードするファイルをアスキーモードで扱う。
テキストエディタで正常に読み出せるプレーンテキストであれば、アスキーモードで扱う。
書式は次の通りascと打ち込むだけだ。
ftp > asc
アスキーモードでファイルを扱う状態になった。
コマンドbin:バイナリモードでファイルを扱う
アップロード、ダウンロードするファイルをバイナリモードで扱う。
テキストエディタでは読みだせない、画像や音声のデータ、またはコンパイルされたプログラムファイルなどはバイナリモードで扱う。
書式は次の通りbinと打ち込むだけだ。
ftp > bin
バイナリモードでファイルを扱う状態になった。
コマンドput:Linux内のファイルをアップロードする
Linux内のファイルをFTPサーバーにアップロードするコマンドで、書式は次の通りだ。
ftp > put ファイル名
ファイル「corporation.html」をアップロードするコマンドは、次の通りだ。
ftp > put corporation.html
ファイル「corporation.html」がアップロードされた。
コマンドget:FTPサーバー上のファイルをダウンロードする
FTPサーバー上のファイルをLinux内にダウンロードするコマンドで、書式は次の通りだ。
ftp > get ファイル名
ファイル「subpage.html」をダウンロードするコマンドは、次の通りだ。
ftp > get subpage.html
ファイル「subpage.html」がダウンロードされた。
コマンドmput:複数ファイルをアップロードする
Linux内の複数ファイルをFTPサーバーにアップロードするコマンドで、書式は次の通りだ。
ftp > mput ファイル名
ファイル「parts01.html」から「parts03.html」の3ファイルをアップロードするコマンドは、次の通りだ。
ftp > mput parts*.html
ワイルドカードにより、ファイル名が「partsなんとか.html」という指定となり、ファイル「parts01.html」から「parts03.html」の3ファイルがアップロードされた。
ftpコマンド自体に-iオプションを付けなければ、1ファイルごとにY(Yes)、N(No)の選択を促すメッセージが表示される。
コマンドmget:複数ファイルをダウンロードする
FTPサーバー上の複数ファイルをLinux内にダウンロードするコマンドで、書式は次の通りだ。
ftp > mgetファイル名
拡張子「jpg」ファイルすべてをダウンロードするコマンドは、次の通りだ。
ftp > mget *.jpg
ワイルドカードにより、ファイル名が「なんとか.jpg」という指定となり、拡張子jpgのファイルすべてがアップロードされた。
ftpコマンド自体に-iオプションを付けなければ、1ファイルごとにY(Yes)、N(No)の選択を促すメッセージが表示される。
コマンド mkdir:ディレクトリを作成する
Linuxコマンド同様、ディレクトリを作成するコマンドで、書式は次の通りだ。
ftp > mkdir ディレクトリ名
「work」というディレクトリを作成するコマンドは、次の通りだ。
ftp > mkdir work
「work」というディレクトリを作成した。
コマンド delete:ファイルを削除する
ファイルを削除するコマンドで、書式は次の通りだ。
ftp > delete ファイル名
ファイル「sub01.html」を削除するコマンドは、次の通りだ。
ftp > delete sub01.html
ファイル「sub01.html」を削除した。
コマンド chmod:ファイルのアクセス権の変更
Linuxコマンド同様、アクセス権を変更するコマンドで、書式は次の通りだ。
ftp > chmod アクセス権 ファイル名
ファイル「prog1.cgi」のすべてのアクセス権を705に変更するコマンドは、次の通りだ。
ftp > chmod 705 prog1.cgi
ファイル「prog1.cgi」のアクセス権を705に変更した。
FTPモードの中断
アップロードの最中に、Linuxのカレントディレクトリの内容を確認したいなど、一時的にFTPモードを中断したい場合がある。
その場合は、Ctrl+Zのショートカットキーを押すことによって、FTPモードをバックグラウンドで維持しつつ、Linuxに戻ることができる。
再度FTPを再開したい場合はLinuxコマンドで次のようにfgと入力しよう。
$ fg
FTPモードに戻ることができる。
ただし、あまり中断の時間が長いとFTPサーバーの設定によって強制的にログアウトしている場合もあるので、そのような時はopenコマンドで再度接続すればよいだろう。
実際の使い方
実際にFTPコマンドを使って操作する例を紹介する。
FTPサーバーxxx1.xxx2.xxx3.xxx4にWebサイトをアップロードする。
Webサイトは、インデックスの他、画像とスタイルシートがあり、また、CGIによる掲示板もある。
素材は、インデックスページ「index.html」、サブページ「sub1.html」、画像「top.png」、スタイルシート「style.css」、CGIのプログラム「board.cgi」がLinuxのカレントディレクトリに入っている。
この4つのファイルをそれぞれ管理しやすいディレクトリを作成しアップロードする。
FTPモードへ移行
FTPサーバーからの情報も表示し、一度に複数ファイルを操作する時に確認メッセージを出さないために、-iオプションと-vオプションを付与する
$ ftp -iv
ログイン
次にFTPサーバーxxx1.xxx2.xxx3.xxx4に接続する。
ftp > open xxx1.xxx2.xxx3.xxx4
ログイン名とパスワードを入力しよう。
HTMLファイルのアップロード
HTMLファイル2つをアップロードする。
まずはアスキーモードへ移行する。
ftp > asc
そしてファイルを指定してアップロードする。
ftp > put *.html
画像ファイルのアップロード
画像ファイルを画像用ディレクトリ「image」にアップロードする。
まず、画像用のディレクトリ「image」を作成する。
ftp > mkdir image
作成したディレクトリへ移動する
ftp > cd image
バイナリモードへ移行する
ftp > bin
画像ファイル「top.png」をアップロードする。
ftp > put top.png
上記ディレクトリへ戻る
ftp > cd ..
スタイルシートのアップロード
スタイルシートファイルをスタイルシート用ディレクトリ「css」にアップロードする。
まず、スタイルシート用ディレクトリ「css」を作成する。
ftp > mkdir css
作成したディレクトリへ移動する
ftp > cd css
アスキーモードへ移行する
ftp > asc
スタイルシート「style.css」をアップロードする。
ftp > put style.css
上記ディレクトリへ戻る
ftp > cd ..
CGIプログラムのアップロード
CGIプログラムをCGIプログラム用ディレクトリ「cgi」にアップロードする。
まず、CGIプログラム用ディレクトリ「cgi」を作成する。
ftp > mkdir cgi
作成したディレクトリへ移動する
ftp > cd cgi
CGIプログラム「board.cgi」をアップロードする。
ftp > put board.cgi
CGIプログラム「board.cgi」を実行ファイルにするためにパーミッション(アクセス権)を755に変更する。
ftp > chmod 755 board.cgi
上記ディレクトリへ戻る
ftp > cd ..
これでftpの作業が完了したので、ログアウトする
ftp > close
FTPコマンドを終了する
ftp > quit
まとめ
今回は、ftpコマンドを使ったFTPサーバーへのアクセス並びに操作方法を解説した。
ちょっとしたWebアプリや.htaccessのような設定ファイルなどはFTPクライアントを使うよりもコマンドで打ち込んだ方が安全かつ効率がよい場合もあるので、ぜひ覚えておこう。
コメント