ファイル転送プロトコル(FTP)、およびセキュアファイル転送プロトコル(SFTP)は、ローカルデバイスとリモートサーバー間でファイルを転送するための最も広く使用されているプロトコルの2つです。 これらはWeb開発者が自分のサーバーに変更をプッシュするために頻繁に使用されます。そのため、利用可能なFTPクライアントは多数あります。 ただし、Macに組み込まれたかなり強力なツールもあります。これを使用すると、ユーザーはFTPを使用したり、SFTPプロトコルを使用してリモートサーバーとやり取りすることができます。
この記事では、ターミナル(Mac)をFTPまたはSFTPクライアントとして使用して、リモートサーバーでさまざまなタスクを実行する方法について詳しく説明します。 説明のために、Linux、Apache、MySQL、PHPがインストールされ、SSHアクセスが有効になっているテストサーバーを使用しています。 ファイルのアップロード/ダウンロード、名前の変更、移動、削除などの基本的なFTP / SFTPタスクを、サードパーティのFTPクライアントの代わりにmacOSのターミナルを使用してどのように実行できるかを説明します。
注: SFTPを使用するには、サーバーでSSHアクセスを有効にする必要があります。 SSHにアクセスできない場合は、ホスティングプロバイダに連絡するか、FTPを使用してください。 しかし、FTPは一般に安全であるとは考えられていないので注意してください。
サーバーにログインする
リモートサーバーへのログインはとても簡単です。 サーバーにログインするにはFTP / SFTPのユーザー名とパスワードが必要です。 FTPは匿名ログインを許可する可能性がありますが、ユーザー名とパスワードを使用して認証することをお勧めします。
FTPを使う
FTPを使用してリモートサーバーにログインするためのコマンドは次のとおりです。
ftp server_ip
ユーザー名の入力を求められたら、入力してEnterキーを押します。 次に、ターミナルからパスワードの入力を求められ、キーを入力してEnterキーを押すとログインします。
SFTPを使用する
SFTPを使用してリモートサーバーにログインするためのコマンドは次のとおりです。
sftp [email protected]_ip
パスワードの入力を求められます。 それをキー入力して、Enterキーを押してログインします。
1.ファイルのアップロードとダウンロード
FTP / SFTPクライアントの基本機能の1つは、ローカルホストからリモートサーバーにファイルをアップロードしたり、リモートサーバーからファイルをダウンロードしたりする機能です。
FTPまたはSFTPを使用する
- ファイルをアップロードする
ファイルをリモートサーバーにアップロードするコマンドは次のとおりです。
put path_to_local_file remote_file
たとえば、index.txtというファイルをアップロードすると、コマンドは次のようになります。
put /Users/akshaygangwar/index.txt index.txt

このコマンドは私のホームディレクトリから "index.html"と呼ばれるファイルをリモートサーバーの作業ディレクトリに置きます。
注:作業ディレクトリを見つけるには、「pwd」コマンドを使用できます。
- ファイルをダウンロードする
リモートサーバーからファイルをダウンロードするコマンドは、次のとおりです。
get path_to_remote_file local_file
たとえば、newfile.txtというファイルをダウンロードすると、コマンドは次のようになります。
get newfile.txt newfile.txt

このコマンドは、「newfile.txt」というファイルをリモートサーバーの作業ディレクトリから私のMacの作業ディレクトリにダウンロードします。
2.新しいフォルダを作成する
リモートサーバー上にフォルダー(ディレクトリー)を作成することは、FTPクライアントによって達成されるもう1つの重要なタスクです。
FTPまたはSFTPを使用する
ターミナルを使って新しいフォルダを作成するのは簡単です。 FTPとSFTPの両方のプロトコルで同じコマンドです。
mkdir directory_name
たとえば、「Beebom」という名前のフォルダを作成すると、コマンドは次のようになります。
mkdir Beebom

これにより、リモートサーバーの作業ディレクトリに「Beebom」という名前のフォルダが作成されます。
3.サーバー上のファイルの名前変更
リモートサーバー上のファイルの名前変更は、ターミナルをクライアントとして使用することで簡単に実行できます。
FTPまたはSFTPを使用する
ターミナルをFTP / SFTPクライアントとして使用してリモートサーバー上のファイルの名前を変更するコマンドは、次のコマンドで実行できます。
rename old_name new_name
たとえば、「newfile.txt」の名前を「mainlog.txt」に変更すると、コマンドは次のようになります。
rename newfile.txt mainlog.txt

これにより、ファイル「newfile.txt」の名前が「mainlog.txt」に変更されます。
4.ファイルを削除する
ターミナルでは、リモートサーバーからファイルを削除することもできます。 この場合のコマンドはFTPとSFTPの両方で異なり、私はそれらの両方を別々に述べています。
FTPを使う
FTPを使用してリモートサーバーからファイルを削除するコマンドは次のとおりです。
delete file_name
たとえば、「beebomold.txt」というファイルを削除したい場合、コマンドは次のようになります。
delete beebomold.txt

これにより、ファイル「beebomold.txt」がリモートサーバーから削除されます。
SFTPを使用する
SFTPを使用してリモートサーバーからファイルを削除するコマンドは次のとおりです。
rm file_name
たとえば、SFTPを使用して「beebomold.txt」というファイルを削除したい場合、コマンドは次のようになります。
rm beebomold.txt

これにより、リモートサーバーからファイル「beebomold.txt」が削除されます。
5.リモートサーバー内でファイルを移動する
ターミナルをFTPクライアントとして使用すると、サードパーティのFTPクライアントで行うのとまったく同じ方法で、リモートサーバ自体の内部でファイルを移動することもできます。
FTPまたはSFTPを使用する
FTPとSFTPの両方でサーバー内のファイルを移動するコマンドは次のとおりです。
rename file_name path_to_new_file/file_name
たとえば、 "testresults.txt"というファイルを "test"ディレクトリから "results"ディレクトリに移動したい場合、コマンドは次のようになります。
rename testresults.txt results/testresults.txt

これにより、ファイル“ testresults.txt”がサブフォルダ“ results”に移動します。
6.「最終更新日」を確認します
ファイルまたはフォルダの「最終更新日」を確認すると、どのファイルやフォルダがいつ更新されたのかを知る必要がある場合に便利です。 あなたはターミナルでもこれを達成することができます。
FTPまたはSFTPを使用する
ファイルの最終更新日をチェックするコマンドは次のとおりです。
ls -l file_name
このコマンドは、いくつかの情報を表形式で表示します。 日付と時刻の値の列は、「最終更新日」の値に対応しています。
たとえば、“ testresults.txt”が最後に変更された日付を確認したい場合、コマンドは次のようになります。
ls -l testresults.txt

7.権限の確認と修正
ファイルを適切な権限に設定することは非常に重要です。 時々、間違った許可はあなたのウェブアプリがロードさえしないことにつながるかもしれません。
FTPまたはSFTPを使用する
- 権限を確認する
クライアントとしてターミナルを使用してパーミッションをチェックし変更することは非常に簡単です、コマンドは次のとおりです。
ls -l file_name
このコマンドは、いくつかの情報を表形式で表示します。 最初の列には、ファイルに対する権限が表示されます。
たとえば、 "testresults.txt"ファイルのアクセス権を確認したい場合は、次のようにコマンドを使用します。
ls -l testresults.txt

- 権限の変更
不正なアクセス権を持つファイルが見つかった場合、または単にそのアクセス権で問題を解決したい場合は、ターミナルを使用してファイルのアクセス権を変更できます。 コマンドは以下のとおりです。
chmod permissions_value file_name
たとえば、ファイル“ testresults.txt”に対する完全な読み取り、書き込み、および実行権限を付与したい場合、コマンドは次のようになります。
chmod 777 testresults.txt

このコマンドは、ファイル“ testresults.txt”に対する読み取り、書き込み、および実行権限を付与します。
8.新しいファイルを作成する
サーバー上に新しいファイルを作成するのは、ターミナル上では簡単にはできない作業です。 しかし、それはそれが不可能であるという意味ではありません。 新しいファイルを作成することに関する問題は、あなたがそれをサーバーにアップロードすることができる前にあなたのラップトップ上のファイルのコピーを持っていなければならないということです。
FTPまたはSFTPを使用する
リモートサーバーにファイルを作成するコマンドは次のとおりです。
!touch file_name
put file_name file_name
たとえば、サーバ上に「newtest.txt」というファイルを作成すると、コマンドは次のようになります。
!touch newtest.txt
put newtest.txt newtest.txt

これにより、「newtest.txt」という名前の新しいファイルが作成され、サーバーにアップロードされます。
9.既存のファイルを編集する
既存のファイルを編集することも重要な機能です。 あなたは、ターミナルに既に組み込まれているnano、emacsなどのプログラムを使うことによって、ターミナル自体の中のファイルを編集することができます。 Nanoは理解しやすいので、この例では使用します。
FTPまたはSFTPを使用する
リモートサーバー上の既存のファイルを編集するためのコマンドは次のとおりです。
get file_name file_name
!nano file_name
put file_name file_name
たとえば、ファイル「newtest.txt」を編集したい場合、コマンドは次のようになります。
get newtest.txt newtest.txt
!nano newtest.txt
put newtest.txt newtest.txt

これらのコマンドはファイル「newtest.txt」を編集してサーバーにアップロードします。
10.ファイルの複製コピーを作成する
リモートサーバーでファイルを編集しているときは、万が一のために元のファイルをコピーしておくことをお勧めします。
FTPまたはSFTPを使用する
リモートサーバー上にファイルの複製コピーを作成するためのコマンドは次のとおりです。
get file_name file_name
!mv file_name new_file_name
put new_file_name new_file_name
たとえば、「newtest.txt」の複製「newtest_copy.txt」を作成すると、コマンドは次のようになります。
get newtest.txt newtest.txt
!mv newtest.txt newtest_copy.txt
put newtest_copy.txt newtest_copy.txt

FTPまたはSFTPを使ってMac端末の電源を利用する
ターミナルをFTPまたはSFTPクライアントとして使用する方法がわかったので、サードパーティ製のアプリケーションがブロートウェアをインストールしたり、トラフィックを保護したりすることを心配せずに、開発サーバーへのFTP送信またはSFTP送信に使用できます。 あなたのターミナルからFTPやSFTPを使うことに関して何か問題がある場合、あるいは私たちが何かを見逃していると思うならば、以下のコメント欄で私たちに知らせてください。