Bash
ネットワーク関連コマンド
IPアドレスの確認 (ip)
ホストの IP アドレスを確認するには「ip address」コマンドを利用します.なお,このコマンドは Linux のディストリビューションによって異なり,「ip -a」や「ifconfig」が利用されることもあります.また,macOS でも「ifconfig」です.
rinsaka@ubuntu:~/Documents/work$ ip address ⏎ 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:af:2e:8c brd ff:ff:ff:ff:ff:ff altname enp2s1 inet 192.168.227.131/24 metric 100 brd 192.168.227.255 scope global dynamic ens33 valid_lft 1459sec preferred_lft 1459sec inet6 fe80::20c:29ff:feaf:2e8c/64 scope link valid_lft forever preferred_lft forever rinsaka@ubuntu:~/Documents/work$
ネットワーク接続の確認 (ping)
ネットワークの接続状態は確認するには「ping」コマンドを利用すると良いでしょう.IPアドレスやドメイン名を指定して実行すると,ネットワークを経由して指定したノードまでパケットが到着してその返答があるかどうかを確認することができます.なお,「-c 4」オプションを指定することで,4回パケットを送信した時点で動作が終了します.このオプションを省略するとパケットを送信し続けます.送信を停止するには Ctrl + C を押します.
rinsaka@ubuntu:~/Documents/work$ ping -c 4 www.google.com ⏎
PING www.google.com (142.250.207.100) 56(84) bytes of data.
64 bytes from kix06s11-in-f4.1e100.net (142.250.207.100): icmp_seq=1 ttl=128 time=32.2 ms
64 bytes from kix06s11-in-f4.1e100.net (142.250.207.100): icmp_seq=2 ttl=128 time=30.2 ms
64 bytes from kix06s11-in-f4.1e100.net (142.250.207.100): icmp_seq=3 ttl=128 time=37.5 ms
64 bytes from kix06s11-in-f4.1e100.net (142.250.207.100): icmp_seq=4 ttl=128 time=29.7 ms
--- www.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3007ms
rtt min/avg/max/mdev = 29.704/32.382/37.479/3.085 ms
rinsaka@ubuntu:~/Documents/work$
Web サーバへの接続 (curl)
curl(カール)は,URL で指定されたリソースに対してデータを送受信するためのコマンドラインツールです.HTTP/HTTPS など様々なプロトコルに対応しており,Python Django で開発した Web API のテスト,Elasticsearch のテストやファイルのダウンロードなどでよく使われます.
例えば,GET リクエストを使って https://rinsaka.com/information-network/test01.html からデータを受信します.
rinsaka@ubuntu:~/Documents/work$ curl -X GET https://rinsaka.com/information-network/test01.html ⏎
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>タイトル</title>
</head>
<body>
<h1>見出し1</h1>
<p>
本文はここに書きます.<br>
<a href="test02.html">test02.htmlへのリンク</a>
</p>
<p>
<img src="ink.png" alt="インク" width=125 height=125>
</p>
</body>
</html>
rinsaka@ubuntu:~/Documents/work$
ただし,GET リクエストはデフォルトのリクエストであることから省略可能です.
rinsaka@ubuntu:~/Documents/work$ curl https://rinsaka.com/information-network/test01.html ⏎
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>タイトル</title>
</head>
<body>
<h1>見出し1</h1>
<p>
本文はここに書きます.<br>
<a href="test02.html">test02.htmlへのリンク</a>
</p>
<p>
<img src="ink.png" alt="インク" width=125 height=125>
</p>
</body>
</html>
rinsaka@ubuntu:~/Documents/work$
HTTP ヘッダも表示するには -i オプションを付与します.
rinsaka@ubuntu:~/Documents/work$ curl -i https://rinsaka.com/information-network/test01.html ⏎
HTTP/2 200
date: Sat, 06 Dec 2025 02:00:28 GMT
content-type: text/html
content-length: 335
server: nginx/1.25.5
last-modified: Thu, 23 Jul 2020 02:28:34 GMT
etag: "5f18f5d2-14f"
accept-ranges: bytes
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>タイトル</title>
</head>
<body>
<h1>見出し1</h1>
<p>
本文はここに書きます.<br>
<a href="test02.html">test02.htmlへのリンク</a>
</p>
<p>
<img src="ink.png" alt="インク" width=125 height=125>
</p>
</body>
</html>
rinsaka@ubuntu:~/Documents/work$
HTTP ヘッダだけを表示したい場合は -I オプションを利用します.
rinsaka@ubuntu:~/Documents/work$ curl -I https://rinsaka.com/information-network/test01.html ⏎
HTTP/2 200
date: Sat, 06 Dec 2025 02:00:35 GMT
content-type: text/html
content-length: 335
server: nginx/1.25.5
last-modified: Thu, 23 Jul 2020 02:28:34 GMT
etag: "5f18f5d2-14f"
accept-ranges: bytes
rinsaka@ubuntu:~/Documents/work$
ファイル (https://rinsaka.com/information-network/ink.png) をダウンロード するには -O オプションを使用します.
rinsaka@ubuntu:~/Documents/work$ curl -O https://rinsaka.com/information-network/ink.png ⏎
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 119k 100 119k 0 0 1131k 0 --:--:-- --:--:-- --:--:-- 1140k
rinsaka@ubuntu:~/Documents/work$
その他,Python Django での API 開発ページでは POST リクエスト,PUT リクエスト,DELETE リクエストの利用方法も説明しています.また,Elasticsearch のページでも各種メソッドを利用しています.さらに,curl 公式サイトのチュートリアルには様々な使い方が掲載されています.