Envaderにて、ftpコマンドを実践しながら学ぶ
30代後半、未経験からIT業界のエンジニア転職へ挑戦している、kobakichiです。
今回もEnvaderを利用して、Linuxのコマンドについて学んだので、その振り返りと言語化を兼ねて書いていきます。
今回学んだのは、ファイルの転送などをするときに使用するコマンドftp
についてです。
私は全くこのコマンドを使うことは無いので、こういった用意された環境で実践しながら学べるのは本当にありがたい。
そして、ftp
コマンドも奥が深いので、あくまで私が実践しながら感じたことを記事にしていることをご理解ください。
Envader
についてついて気になる方は、リンクを貼っておきますので参考にしてください。
参考にさせていただいた記事等
ファイル転送の「FTP」とは?通信の仕組みやデメリットなどを解説
ftpコマンドについて詳しくまとめました 【Linuxコマンド集】
FTP
FTP(File Transfer Protocol)は、サーバとクライアントの間でファイルの転送を行う時に必要な通信プロトコル。
他にはHTTPやIMAPなどなどあると思いますが、その内の一つ。
OSI参照モデルの第7層、アプリケーション層に該当。
FTPについてはこちらの記事が分かりやすかったです。
ファイル転送の「FTP」とは?通信の仕組みやデメリットなどを解説
ftpコマンド
Linux環境において、CUIでFTPサーバーとの通信をやり取りする時に使用するコマンド。
これを使用することで、FTPサーバーへ接続して、ファイルのアップロード、ダウンロード、さらにはアクセス権を変更したりなど、FTPサーバー内を色々と操作できるようになります。
ftpコマンドの注意点
ftp
コマンドは、FTPサーバーへ接続する際の認証時のパスワードやデータ送受信の内容は一切暗号化されていないので、セキュリティは考慮できていません。
なので、実際に使用する際にはsftp
コマンドやscp
コマンド、またはSSH接続などを使用する方が良さそうです。
ftpコマンドの使い方
ftpサーバーへの接続
ftp サーバーのアドレス
# 例
ftp 172.10.10.5
こうすることで自分の接続したいftpサーバーを指定して、ログインやパスワードを入力する段階へ進む。
サーバーのアドレスを指定しないでftp
コマンドだけ叩いた場合、ftp
コマンドだけが起動し、待機状態になる。
この場合には、ftp open
コマンドによりサーバーアドレスを指定することでftpサーバーへ接続が可能になる。
# 待機状態
envader@172-19-1-2:~$ ftp
ftp>
# openコマンドで接続先アドレスを指定
envader@172-19-1-2:~$ ftp
ftp> open 172.19.1.11
ftpコマンドのオプション
ここで紹介するオプションは2つ
オプション | 説明 |
---|---|
-v | FTPサーバーの処理後のメッセージを表示する |
-i | FTPサーバーの処理後の確認メッセージを省略する |
この意味がなかなか理解できなかったのですが、実際にコマンドを実行することで理解できました。
オプションを使うタイミングは、FTPサーバーへ接続する時。
そうすると、サーバーへ接続した後にオプションが適用された状態でサーバーとのやり取りができるようになります。
# 確認メッセージを表示する
ftp -v 172.19.1.11
# 確認メッセージを省略する
ftp -i 172.19.1.11
これを使うことで、複数のファイルをアップロードしたり、ダウンロードしたりした時に表示される確認メッセージを全部表示させるか、省略することができるようになります。
実際に比べてみます。
# ローカルに以下のファイルがある
envader@172-19-1-2:~$ ls
mydata.txt test1.txt test2.txt test3.txt
# -vオプションでftpサーバーへ接続
envader@172-19-1-2:~$ ftp -v 172.19.1.11
Connected to 172.19.1.11.
220 (vsFTPd 3.0.3)
Name (172.19.1.11:envader): envader
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
# mputコマンドで複数のファイルをftpサーバーへアップロード
ftp> mput test*.txt
mput test1.txt? y
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
mput test2.txt? y
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
mput test3.txt? y
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
# 一つのファイルをアップロードするごとに確認される。
どうでしょうか?
イメージはこんな感じです。
続いて-i
オプションで確認メッセージを省略します。
# -iオプションで確認を省略
envader@172-19-1-2:~$ ftp -i 172.19.1.11
Connected to 172.19.1.11.
220 (vsFTPd 3.0.3)
Name (172.19.1.11:envader): envader
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
# mputで複数ファイルをアップロード
ftp> mput test*.txt
local: test1.txt remote: test1.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
local: test2.txt remote: test2.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
local: test3.txt remote: test3.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
いちいち確認メッセージが表示されることなく、一気にアップロードができました。
オプションによって、こういった違いがあるんですね。
ftpコマンドの種類
ftpサーバー内では、使えるコマンドの種類があるようです。
Linuxコマンドが全て使えるわけでは無いので注意が必要ですね。
ftpコマンド一覧
一部ですが、一覧にてまとめました。
コマンド | 説明 |
---|---|
open | サーバーに接続する |
close | FTPサーバーから切断する |
quit | FTPモードを終了する(exitでも可能) |
put | ローカルのファイルをアップロードする |
get | ftpサーバーからダウンロードする |
mput | 複数のファイルをアップロードする |
mget | 複数のファイルをダウンロードする |
ls | FTPサーバー内のファイルやディレクトリを一覧表示する |
mkdir | FTPサーバー内でディレクトリを作成する |
chmod | ファイルのアクセス権限を変更する |
delete | 指定したファイルを削除する |
もっと知りたい場合には、ftpモード
にして?
コマンドを叩くとコマンド一覧が見れます。
何か分からないことや知りたいことがあった場合には?
コマンドは便利そうです。
envader@172-19-1-2:~$ ftp
ftp> ?
Commands may be abbreviated. Commands are:
! dir mdelete qc site
$ disconnect mdir sendport size
account exit mget put status
append form mkdir pwd struct
ascii get mls quit system
bell glob mode quote sunique
binary hash modtime recv tenex
bye help mput reget tick
case idle newer rstatus trace
cd image nmap rhelp type
cdup ipany nlist rename user
chmod ipv4 ntrans reset umask
close ipv6 open restart verbose
cr lcd prompt rmdir ?
delete ls passive runique
debug macdef proxy send
まとめ
Envaderを利用して、ftp
について学んでみました。
個人的には-i
オプションを使って確認メッセージを省略した方が使い勝手が良さそうなイメージでしたが、実際に業務で使われている方はどういった感じなのかが気になるところです。
最後まで読んでいただき、ありがとうございました。
Author And Source
この問題について(Envaderにて、ftpコマンドを実践しながら学ぶ), 我々は、より多くの情報をここで見つけました https://qiita.com/kobakichi/items/585283d7d78f3c691656著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .