「curl/wget以外で、HTMLを人間が読める形で取得したい」
Linuxサーバーの運用・検証では、GUIブラウザを使わずにWebページの状態を確認したい場面が頻繁にあります。
この記事では、CUI(テキストベース)ブラウザである
lynxコマンドについて、基本的な閲覧方法から、HTTPヘッダの確認、ダンプモードによるスクリプト連携、ブックマーク、Cookie・HTTPS対応までを解説します。curlやwgetと使い分けることで、検証作業の効率が大きく上がります。・lynxはCUIで動作するテキストブラウザで、GUIなしのサーバーからWebページを確認できる
・
-dumpでHTMLを整形済みテキストとして出力でき、スクリプトからの呼び出しに便利・
-headでHTTPヘッダ、-sourceで生HTMLを取得できるためデバッグ用途にも強いでも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
lynxとは?CUIで動くテキストブラウザ
lynxは、端末の中で動作するテキストベースのWebブラウザです。GUIを持たないサーバー環境でも、Webページの内容・リンク構造・HTTPレスポンスを確認できるため、運用・保守の現場で重宝されてきました。・主な用途:リモートサーバーでのページ確認、HTTPヘッダ検証、社内Webアプリの動作確認
・類似コマンド:
w3m(日本製で日本語表示が強い)、elinks(lynxの拡張版)・インストール:
sudo dnf install lynx(RHEL系)/sudo apt install lynx(Debian系)基本的な使い方
1. URLを指定してページを開く
引数にURLを渡すだけで、対話型のブラウザが起動します。矢印キーでリンクを選択、Enterで移動、qで終了です。# 対話モードで開く lynx https://www.example.com/
2. ダンプモードで整形済みテキストを出力する(-dump)
-dumpオプションを付けると、HTMLを整形した状態で標準出力に書き出します。シェルスクリプトでパースしたい場合の定番です。# HTMLを整形済みテキストとして取得 lynx -dump https://www.example.com/ > /tmp/example.txt # リンク一覧付きで出力(デフォルト)、リンクを消したい場合は -nolist lynx -dump -nolist https://www.example.com/
3. HTTPヘッダだけを確認する(-head)
レスポンスコードやContent-Typeを確認したい場合に使います。# ヘッダのみを表示 lynx -head -dump https://www.example.com/
4. 生のHTMLソースを取得する(-source)
curlの代わりにHTMLソースを取得したいときに使えます。# HTMLソースをそのまま出力 lynx -source https://www.example.com/ > /tmp/example.html
応用・実務Tips
HTTPステータスコードの確認
レスポンスコードを自動チェックしたい場合は、-headとgrepを組み合わせます。# 200 OK が返っているかチェック lynx -head -dump https://www.example.com/ | grep "HTTP/"
User-Agentを偽装する
-useragentオプションで任意のUser-Agent文字列を送信できます。モバイル表示の確認などに便利です。# User-Agentを指定してアクセス lynx -dump -useragent="Mozilla/5.0 (iPhone; CPU iPhone OS 17_0)" https://www.example.com/
Cookieを使いながらアクセスする
-cookiesでCookieを有効化し、-cookie_fileで保存先を指定できます。# Cookieを有効にしてアクセス lynx -cookies -cookie_file=/tmp/lynx_cookies.txt https://www.example.com/
スクリプトでの利用例
cronと組み合わせて、Webページの内容が変わったら通知する、といった用途に使えます。# ページ内容を定期チェックして差分があれば通知 lynx -dump -nolist https://status.example.com/ > /tmp/now.txt diff /tmp/now.txt /tmp/prev.txt | mail -s "サイト変更検知" admin@example.com mv /tmp/now.txt /tmp/prev.txt
トラブルシュート・エラー対処
日本語が文字化けする場合
ロケールがUTF-8になっていないと日本語が崩れます。LANG環境変数を明示してください。# ロケールを明示してlynxを起動 LANG=ja_JP.UTF-8 lynx https://www.example.com/
「SSL error」でHTTPSにアクセスできない場合
古いディストリビューションでは、ルート証明書が古くて検証に失敗することがあります。ca-certificatesを更新するのが王道です。どうしても検証を無効化したい場合は-verify-ssl=0を使いますが、本番運用では推奨しません。# CA証明書を更新 sudo dnf install -y ca-certificates sudo update-ca-trust # 検証を一時的に無効にする(検証用途のみ) lynx -dump -noreferer -verify-ssl=0 https://self-signed.example.com/
「Alert!: Unable to connect to remote host」が出る場合
DNSの名前解決、経路、ファイアウォール、ターゲットサービスの稼働状態を順に切り分けてください。ping、dig、traceroute、ss -tlnなどで原因を絞り込みます。本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| 対話モードでページを開く | lynx https://example.com/ |
| 整形済みテキストとして取得する | lynx -dump https://example.com/ |
| リンク一覧を抑制して出力する | lynx -dump -nolist https://example.com/ |
| HTTPヘッダだけ確認する | lynx -head -dump https://example.com/ |
| HTMLソースを取得する | lynx -source https://example.com/ |
| User-Agentを指定する | lynx -dump -useragent="文字列" https://example.com/ |
| Cookieを有効にする | lynx -cookies -cookie_file=/tmp/c.txt https://example.com/ |
CUIだけでWebサーバーの動作を自在に検証できるエンジニアになりませんか?
lynxやcurlを使いこなす力は、リモートサーバーの保守・監視の現場で即戦力になります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:historyコマンドでコマンド履歴を表示・検索する方法|日時表示や削除も
- 前のページへ:pingコマンドの使い方|基本からトラブル対処まで
- この記事の属するカテゴリ:Linuxコマンド・LinuxコマンドK-O・ネットワーク管理コマンドへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます