cURLyを入手する:cURLでできる10の便利なこと

cURLyを入手する:cURLでできる10の便利なこと

コマンドラインツールについて学び始めると、それらを単一目的と見なす傾向があります。あなたはそれを教えられています





cat

ファイルの内容を印刷し、





ls

ディレクトリ内のすべてのアイテムを一覧表示し、





du

はディスク容量の使用量を示しています。ただし、多くのコマンドラインツールには数十のオプションがあり、すべてが適切に説明されています。

man

ファイル。それらのいくつかは、他のコマンドと組み合わせると驚異的なことをすることができます。



もちろん、誰もがすべてのオプションを覚えておくべきだと期待するのは無理です。それを念頭に置いて、時々私たちをリフレッシュするのは良いことです Linuxコマンドの知識 、それらの新しい用途を発見するかもしれないからです。

今回は、 カール 、HTTP(S)、FTP、Telnet、LDAP、IMAP、POP3、SMTPなどの多数のインターネットプロトコルを介してデータを転送するためのツール。





簡単に言うと、cURLはクライアントからサーバーへのさまざまな要求を実行し、特定のプロトコルとそれに関連するメソッドを使用してそれらの間の接続を確立します。たとえば、HTTPクライアントとして、cURLはコンテンツの表示またはダウンロード(GETリクエストメソッド)、またはWebサイト上のフォームを介したコンテンツの投稿(POSTリクエストメソッド)のリクエストを送信できます。多くのWebアプリケーションおよびサービスでは、cURLがAPI(アプリケーションプログラミングインターフェイス)と対話できます。

それらの機能はある程度重複しているため、cURLとwgetはしばしば互いに比較されます。どちらのツールもインターネットからコンテンツをダウンロードできますが、wgetは再帰的なダウンロード、Webスクレイピングをサポートしており、一般的に使いやすいと感じています。ターミナルからファイルをダウンロードしたいだけなら、おそらくwgetの方が良い選択です。





一方、高度なHTTP認証方法が必要で、ファイルをアップロードするだけでなくダウンロードする場合は、cURLの方法を学ぶ価値があります。また、wgetはHTTP(S)とFTPのみをサポートしますが、cURLは幅広いプロトコルをカバーします。これは、cURLがより優れた機能を実行できることを意味します。これを証明する10の例を次に示します。

1.天気予報を入手する

誰かがターミナルから天気をチェックするようにあなたに言ったなら、あなたはいくつかの退屈な数字を見ることを期待するでしょう。このコマンドではありません。

curl http://wttr.in/LOCATION

情報は、と呼ばれるCLIアプリケーションによって提供されます 私達は行く 、ただし、インストールしたくない場合は、cURLはWebフロントエンドwttr.inから予測を取得できます。必要なのは、予測が必要な場所だけです。都市の名前、空港コード、または現在のIPアドレスを入力するだけです。次のように入力すると、新機能で月の満ち欠けに関する情報が表示されます。

curl wttr.in/Moon

2.ファイルをダウンロードしてダウンロードを再開します

ファイルのダウンロードは、通常ブラウザで行うことです。ダウンロードマネージャーを使用したい場合があります。たとえば、一度に複数のファイルをダウンロードする場合や、ダウンロードを一時停止する場合などです。 cURLは同時ダウンロードには一般的ではありませんが(代わりにwgetをお勧めします)、強力なオプション(スイッチ)を組み合わせることで、cURLをその目的に使用できます。まず、ファイルへの直接リンクが必要です。この例では、LinuxVoiceマガジンのPDFを使用します。

curl -O -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

大文字のOスイッチ(-O)を使用すると、cURLはデフォルトのファイル名(通常はリンク自体のファイル名)でファイルを保存します。別の名前で保存する場合は、小文字のoに続けて新しい名前を使用します。

curl -o magazine.pdf -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

デフォルトでは、ファイルは現在のディレクトリに保存されます(

pwd

指図)。それらを他の場所に保存するには、-oスイッチの後にパスを指定します。 -C-スイッチを使用すると、cURLでダウンロードを再開できます。ターミナルでCtrl + Cを押して一時停止し、同じダウンロードコマンドを再度実行して再開します。

cURLは、ダウンロードの進行状況を表のような形式で表示し、列にはダウンロード速度、合計ファイルサイズ、経過時間などに関する情報が含まれます。これが気に入らない場合は、cURLコマンドに-#または--progress-barを追加することで、より単純なプログレスバーを選択できます。

複数のファイルを一度にダウンロードするには、リンクを次々にリストします。

curl -O file1.txt -O file2.pdf -O file3.zip

他のコマンドラインツールを使用して、TumblrブログからすべてのPNGおよびJPG画像をバッチダウンロードできます。

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

この場合、

cut

grep

ファイル名に関する情報を収集し、指定された拡張子を持つファイルのみが表示されるようにフォーマットします。最後のパイプなしでコマンドを実行した場合:

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

基準を満たすファイルのリストを取得するだけですが、実際にはダウンロードされません。ブログが標準のページ付けを使用している場合、cURLはさまざまなページから画像のリストを取得できます。

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

角括弧内の数値を変更することにより、範囲を変更できます。この場合も、このコマンドは画像のみを一覧表示します。それらをダウンロードするには、画像を保存するディレクトリで完全なコマンドを実行します。

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

あなたが精通している場合 正規表現 、このコマンドの外観と効率を改善し、コメントで結果を共有できます。

3.FTPサーバー上のファイルを管理します

最近のFTPについてはあまり耳にしませんが、それが廃止されたという意味ではありません。実際、多くのオープンソースプロジェクトとLinuxディストリビューションは、FTPサーバー上でソフトウェアを共有しています。 FTPはcURLでサポートされているため、ファイルをアップロードおよびダウンロードするための単純なFTPクライアントとして使用できます。次のディレクトリにアクセスして、FTPサーバー上のファイルを参照できます。

curl ftp://ftp.debian.org/debian/

サブディレクトリに入るには、その名前に続けてスラッシュ(/)を入力します。

ファイルのダウンロードは、前のセクションで説明したHTTPダウンロードに似ています。ダウンロードを一時停止する場合は、-oまたは-Oを使用し、-C-を追加できます。

curl -O ftp://ftp.heanet.ie/mirrors/linuxmint.com/stable/17.3/linuxmint-17.3-kde-64bit.iso

cURLは再帰的なダウンロードをサポートしていませんが(wgetはサポートしていることを忘れないでください!)、それでも一度にさまざまなファイルをダウンロードできます。唯一の条件は、ファイル名がパターンに従っていることです。たとえば、壁紙の名前がす​​べて「wallpaperNUMBER」である壁紙ホスティングサーバーからダウンロードできます。

curl -O ftp://ftp.myserver.com/files/wallpaper[0-120].jpg

一部のFTPサーバーでは、ファイルをダウンロードする前に認証が必要です。 cURLを使用すると、-u(ユーザー)オプションを使用してログインできます。

curl -u username:password -O ftp://ftp.protectedserver.com/files/example.txt

-T(転送)オプションを使用して、FTPサーバーにファイルをアップロードすることもできます。

curl -u username:password -T /home/user/Documents/test.txt ftp://ftp.myserver.com

ここでは、複数のファイルを範囲として定義することもできます。この機能は「グロブ」と呼ばれることもあります。ファイル名がパターンに従わない場合は、中括弧(

-T '{file1.txt,image27.jpg}'

)。逆に、名前が似ている場合は、Tumblrのダウンロード例と同じロジックを適用し、角かっこを使用します(

-T 'photo[1-50].jpg'

)。ファイルが現在のディレクトリにない場合は、ファイルへのフルパスを必ず指定してください。

4.Webサイトがダウンしているかどうかを確認します

私たちは皆そこにいました。絶対に必要なウェブサイトが突然機能しなくなります。その後、Facebookはロードされません。真の第一世界の問題に直面して、あなたは何をしますか?

あなたはそれをグーグルするか、あなたのためにそれをテストするように友人に頼むか、またはウェブサイトがダウンしているかどうかをあなたに告げるそれらのシングルサービングサイトの1つを使うことができます。または、ターミナルを起動してcURLを実行することもできます。

curl -Is https://www.twitter.com -L | grep HTTP/

大文字のIスイッチ(-I)はWebページのHTTPヘッダーをチェックし、-L(場所)オプションが追加されてcURLがリダイレクトに従うようになります。これは、Facebookの完全なURLを入力する必要がないことを意味します。書くだけ facebook.com そしてcURLは-Lのおかげで残りを処理します。リダイレクトがある場合は、独自のHTTPステータスで表示されます。

私たちが興味を持っているメッセージは「200OK」です。これは、ウェブサイトですべてが正常であることを意味します。実際にダウンしている場合は、次のようなものが表示されます。

HTTPステータスコードは、理解できる範囲でのみ情報を提供します。このメソッドは完全に信頼できるものではありません。Webサイトが正常に処理されたリクエストを示すステータスコードを返す場合がありますが、ブラウザで開くと空になります。それでも、ほとんどの場合、実際の状況に対応し、何が起きているのか、または何が起きているのかを知らせてください。

5.短縮URLを展開します

短縮URLは本質的に悪いわけではありません。それらがなければ、Twitterやその他の文字数制限のあるソーシャルネットワークでリンクを共有することは困難です。一部のURL短縮サービスは、有用な分析も提供します。しかし、誰かが短縮URLの背後に悪意のあるコンテンツを隠そうとしている、またはトロールがRickrollをマスクしている(またはもっと悪いことに)リスクが常にあります。何らかの理由で短縮URLに疑問を感じた場合は、cURLを使用して、URLを拡張し、それが正確にどこにつながるのかを見つけることができます。

curl -sIL http://buff.ly/1lTcZSM | grep ^Location;

また

curl -sI http://buff.ly/1lTcZSM | sed -n 's/Location: *//p';

cURLとを組み合わせることができます

grep

また

sed

;主な違いはフォーマットにあります。 Sedは、すべてのLinuxユーザーが知っておくべきツールの1つであり、このユースケースや他のいくつかのユースケースでcURLを補完します。 cURLは短縮URLからファイルをダウンロードできることを忘れないでください(URLが実際にファイルを指している場合)。

curl -L -o filename.txt http://short.url

構文は他のcURLダウンロードと同じであり、-Lオプションは短縮URLから元のURLへのリダイレクトを処理します。

6.アスキーアートへの感謝を示す

確かに、これは特に便利ではありませんが、見た目はかっこいいです。の助けを借りて

pv

、データの進行状況を監視するためのユーティリティであるcURLは、端末にASCIIアニメーションを表示できます。

curl -s http://artscene.textfiles.com/vt100/wineglas.vt | pv -L9600 -q

-sおよび-qオプションは、両方のコマンドをサイレント(クワイエット)モードに保ちます。ここでの-Lオプションは、pvコマンドを参照し、1秒あたりのバイト数でデータの転送速度を変更できます。つまり、アニメーションの動きが速すぎたり遅すぎたりする場合は、その番号で遊んでみてください。アニメーションとは別に、cURLはプレーンで静的なASCIIアートを表示できます。

Webには、驚くほど詳細で高品質な作品から、奇妙でばかげた、さらにはNSFWの資料まで、あらゆる種類のASCIIアートを掲載したWebサイトがたくさんあります。このデジタルアート技術は1960年代にまでさかのぼり、今日ではインターネットの文化と歴史の一部であり、数多くのコレクションやツールで生き続けています。 テキストと画像をASCIIアートに変換する 。ターミナルを飾ったり、友達をいたずらしたりするために使用できます。ボートに浮かぶものは何でもかまいません。

7.ソーシャルメディアで実験する

ターミナルからソーシャルメディアを使用することは新しいことではありません。Linux用のコマンドラインTwitterクライアントについてはすでに説明しました。オンラインの社交ツールとしてcURLに切り替えることはおそらくないでしょうが、ここで説明するように、それを使用してFacebookに投稿できることを知っておくとよいでしょう。技術的には、cURLはそれ自体では機能しないことに気付くでしょう。ツールの組み合わせが仕事を成し遂げます。

Twitterに関しては、cURLを使用して端末から直接管理することが可能でした。その後、TwitterはAPIを変更し、Twurlと呼ばれるTwitter用の特別なcURLクライアントがあります。これは、特に初心者にとっては最も使いやすいものではなく、Twitter AdPlatformでの認証が必要です。これは、開発者または上級ユーザーの場合は理にかなっていますが、コマンドラインからツイートしたいだけの場合はそれほど意味がありません。それでも、Twitterを楽しむ方法はいくつかあります。 cURLを使用して、ユーザーのフォロワー数を確認できます。

curl -s https://twitter.com/username | grep -o '[0-9,]* Followers';

8.外部IPアドレスを見つける

ローカルIPアドレスを見つけるのは簡単です-実行するだけです

アマゾンパッケージが届きませんでした
ifconfig

または、ネットワーク管理アプレットを参照してください。外部IPの場合、ほとんどの人はこの情報を取得するために専用のWebサイトを使用します。それでも、ターミナルから簡単にできることがいくつかあり、これもその1つかもしれません。 cURLコマンドのエイリアスを作成することもできます。 cURLと連携するオンラインサービスがいくつかあります。

curl ipinfo.io
curl -s https://4.ifcfg.me
curl -s http://whatismyip.akamai.com
curl ifconfig.me
curl -s icanhazip.com

外部IPアドレスについて詳しく教えてくれる人もいます。

curl ipinfo.io/207.46.13.41
curl ifconfig.me/207.46.13.41

あなたがしなければならないのはサービスを選ぶことだけです。決断力がない場合は、バックアップソリューションとして、それらすべてをエイリアスに含めてください。

9.テキストを貼り付けて画像を共有する

ワークフローを中断することは、生産性と集中力にとって決して良いことではありません。ターミナルでほとんどの作業を行う場合、いくつかのファイルを共有するためだけにブラウザに切り替えることは、煩わしくないにしても非現実的です。幸いなことに、いくつかのペーストビンとファイル共有サービスはcURLで動作するように生まれたので、ユーザーアカウントなしでターミナルから直接使用できます。

ClbinSprunge.us 同様の構文を持っています。 Clbinを使用すると、ローカルファイルまたはコマンドの出力をパイプ処理すると、アップロードされたテキストへのリンクが返されます。

cat textfile.txt | curl -F 'clbin=<-' https://clbin.com

また、画像のアップロード(PNG、JPG、およびGIF)もサポートしています。

curl -F 'clbin=@image.png' https://clbin.com

代わりにSprunge.usを使用する場合は、次のように入力します。

cat textfile.txt | curl -F 'sprunge=<-' http://sprunge.us

Sprunge.usは、現時点では画像のアップロードをサポートしていません。

Ix.io は、前の2つのサービスと同じ原則に基づいていますが、いくつかの追加機能があります。ファイルをアップロードするには、次のように入力します。

cat file.txt | curl -F 'f:1=<-' ix.io

また

curl -F 'f:1=@file.txt' ix.io

アップロードされたテキストへのリンクを取得したら、そのURLを変更して、構文の強調表示を表示できます(

ix.io/yourpaste+

ix.io/yourpaste/

、 また

ix.io/yourpaste/language

特定のスクリプトまたはプログラミング言語の場合)。後の数を変更することで、リンクを表示できる回数を制限することもできます。

'read:1'

価値:

cat file.txt | curl -F 'f:1=<-' -F 'read:1=2' ix.io

Ix.ioは主に、ソースコードやシステムログなどのテキストベースのファイルを対象としています。さまざまなファイル形式をアップロードする場合は、 Transfer.sh 。画像、ファイル暗号化をサポートし、ファイルを2週間オンラインに保ちます。最大5GBのデータをTransfer.shにアップロードできます。方法は次のとおりです。

curl --upload-file bunnies.jpg https://transfer.sh/bunnies.jpg

アップロードされたファイルの名前は自由に定義できます。複数のファイルをアップロードするには、-Fオプションを使用してファイルを次々にリストします。

curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/

10.GMailで未読メールを確認します

電子メール関連のプロトコル(SMTP、POP、IMAP)の詳細を詳しく調べたい場合は、cURLでロックを解除できる可能性が非常に高くなります。簡単な電子メールチェックのために、このコマンドで十分です。 Gmailフィードを解析し、出力(メールの件名と送信者)を次のようにフォーマットします。

tr

awk

sed

および/または

grep

コマンド。このソリューションは、端末にアクセスできるすべてのユーザーにログイン資格情報を公開するため、非常に安全ではないことに注意してください。最初のバージョンは送信者の名前を表示し、2番目のバージョンは未読の電子メールの件名のみを印刷します。


curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | tr -d '
' | awk -F '' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n 's/

curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | grep -oPm1 '(?<=)[^<]+' | sed '1d'

他にcURLは何ができますか?

cURLがスタンドアロンコマンドとして使用されることはめったにありません。ほとんどの人は、スクリプトまたはアプリケーションの一部としてそれを使用します。それでも、ここで示したように、cURLを使用して実用的なワンライナーを作成することは可能です。これらの例の多くは、スマートなコマンドラインハックの素晴らしいソースであるCommandLineFuから採用されたものであり、石のように設定されていると見なすべきではありません。

十分な知識と経験があれば、すべてのコマンドを変更したり、フォーマットを変えたり、より良いソリューションに完全に置き換えることができます。 提案されたcURLコマンドを改善できますか? cURLの他のクールな使用法を知っていますか?コメントであなたのヒントを共有してください。

画像クレジット: コマンドラインの概要 Flickr経由のOsamaKhalidによる。

共有 共有 つぶやき Eメール これらのWindowsファイルとフォルダを削除して、ディスク領域を解放します

Windowsコンピュータのディスク領域をクリアする必要がありますか?ディスクスペースを解放するために安全に削除できるWindowsファイルとフォルダは次のとおりです。

次を読む
関連トピック
  • Linux
  • FTP
  • ダウンロード管理
  • ターミナル
著者について Ivana Isadora Devcic(24の記事が公開されました)

Ivana Isadoraは、フリーランスのライター兼翻訳者であり、Linux愛好家であり、KDEファンの女の子です。彼女は無料のオープンソースソフトウェアをサポートおよび宣伝しており、常に新鮮で革新的なアプリを探しています。連絡方法をご覧ください ここ

Ivana IsadoraDevcicのその他の作品

ニュースレターを購読する

ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。

購読するにはここをクリックしてください