ITメモ
Bash / バッシュ
Reference
コマンドを強制終了させる方法「ドメイン名」から「IPアドレス」を調べる方法
基礎知識
Bash(バッシュ)とは / About Bash「スクリプトファイル」の作り方「スクリプトファイル」を実行する方法変数 / Variable制御構文関数 / Function配列 / Array「入力」と「出力」をする方法パラメータ / Parameterファイルディスクリプタメタキャラ文字列を操作する方法
Setting
設定ファイルのバックアップを作る方法ファイルのエンコーディング一括変換する方法環境変数「PATH」を「確認」「設定」する方法
操作関連コマンド
「man」 - オンラインマニュアルを表示する「echo」 - 文字列を出力する「ls」 - ディレクトリ内容を表示する「cd」 - カレントディレクトリを移動する「pwd」 - 現在いるディレクトリのフルパスを表示するコマンド「su」 - 一時的に他のユーザになる「sudo」 - 他のユーザとしてコマンドを実行する「visudo」 - sudo設定情報を編集する「open」 - 指定ファイルをアプリケーションで開く「curl」 - ネットワーク上のファイルをダウンロードする「wget」 - ネットワーク上のファイルをダウンロードする「pbcopy(pbpaste)」 - ペーストボード経由でコピー・ペーストする「history」 - コマンドの実行履歴を表示する「script」 - 端末操作を記録する「lsof」 - プロセス・ポートがオープンしているファイルを表示する「tar」 - 書庫ファイル「.tar」「.tar.gz」「.tgz」などのアーカイブファイルを作成・展開する「yum」 - パッケージなどのインストール・更新・削除をする
検索コマンド
「find」 - ファイルやディレクトリを検索するコマンド「grep」 - 文字列を検索する「apropos」 - キーワード検索でコマンドの情報を表示「whatis」 - キーワードのコマンドを正確に検索する「type」 - コマンドのパスを調べる「makewhatis」 - whatisデーターベースを作成する「mdfind」 - 「Spotlight(スポットライト)」でファイル検索を実行する「mdimport」 - スポットライトインデックスを再構築する「mdutil」 - スポットライトインデックスを管理する
テキスト関連コマンド
「diff」 - テキストファイルを比較して差分を取る「sort」 - テキストファイルの内容をソートして表示する「less」 - テキストデータを閲覧する「cut」 - テキストファイルの一部を選択して表示する「emacs」 - テキストを表示・編集できるスクリーンエディタ「nano」 - テキストファイルを編集する「Base64」 - 文字列をBase64でエンコード・デコード「unexpand」 - スペースをタブに変換する「expand」 - タブをスペースに変換する「colrm」 - 指定した文字数を削除する
実行コマンド
「exec」 - コマンドを実行する「xargs」 - コマンドの出力結果を次のコマンドの引数にする「tee」 - 標準入力を標準出力・ファイルに出力する「apply」 - 指定した引数に対してコマンドを実行する「time」 - コマンドの実行時間を計測する「periodic」 - 指定ディレクトリをスケジュール実行する「crontab」 - コマンドを指定時間に実行する「at」 - コマンドを指定時間に実行する「fc」 - コマンド履歴を使って複数コマンドを便利に実行する「nice」 - 優先度を下げてコマンドを実行「sync」 - ディスクの書き込みを強制実行する「source」 - ファイルに記述されたコマンドを実行する「renice」 - 実行プロセスの優先順位を変更する「bg & fg」 - ジョブをバックグラウンド・フォアグラウンドに移動する「appletviewer」 - アプレットビューアを起動する「otool」 - ファイルが使用するオブジェクトやライブラリを表示する「sleep」 - コマンドの実行を指定秒数だけ停止する「kill」 - プロセスおよびジョブを強制終了する「killall」 - プロセス名を指定して終了させる「jobs」 - 現在実行中のジョブを表示する「logger」 - 「syslog」にメッセージを書き込む
Apple Script / アップルスクリプト
「osascript」 - AppleScriptを実行する
システム系コマンド
「shutdown」 - システムを終了する「exit」 - ログアウトする「login/logout」 - ログインとログアウトをする「halt」 - システムを停止・再起動する「reboot」 - システムを停止・再起動する「launchctl」 - サービスを管理する「softwareupdate」 - ソフトウェアアップデートを実行する「sw_vers」 - 「MacOS X」のバージョンを表示する「system_profiler」 - 「MacOS X」のシステム情報を取得する「nvram」 - オープンファームウェアの環境変数を定義する「pbs」 - メニューを再構成する「fsck_hfs」 - ファイルシステムを検証・修正する「fsck」 - ファイルシステムのチェック・修正を行う「drutil」 - ディスクを管理する「diskutil」 - ディスクを管理する「fdisk」 - ハードディスクの情報確認・パーテーション作成など「pdisk」 - パーテーションテーブルを表示・編集する「gpt」 - パーテーションを追加・削除する「mount」 - ファイルシステムをマウントする「unmount」 - ファイルシステムをアンマウントする「hdid」 - ディスクイメージをマウントする「newfs」 - ディスクを初期化する(UFS)「newfs_hfs」 - ディスクを初期化する(HFS/HFS+)「newfs_msdos」 - ディスクを初期化する(MSDOS)「usermod」 - ユーザーを登録・設定をする「groupmod」 - グループの設定をする「passwd」 - パスワードを変更する「id」 - ユーザのIDを表示する「groups」 - ユーザのIDを表示する「w」 - ログインしているユーザの作業内容を表示する「who」 - 現在ログインしているユーザを表示する「last」 - ログインしたユーザーの情報を表示する「uname」 - システム情報を表示する「vm_stat」 - 仮想メモリの消費状況を表示する「date」 - 日付や時刻を表示・設定する「chkconfig」 - 自動起動するサービスの設定・確認「pmset」 - 省電力機能の設定を行う「defaults」 - デフォルトファイルにアクセスする「umask」 - デフォルトのパーミッションを変更「bless」 - 起動用ディスクを設定する「printenv」 - 環境変数を表示する「export」 - 環境変数を定義する(bash)「setenv/unsetenv」 - 環境変数を定義する(tcsh)「set/unset」 - シェル変数を設定する「alias/unalias」 - コマンドに別名を設定・解除する「stty」 - 端末の設定を確認・編集をする「tset」 - 端末を初期化する「arch」 - PCのアーキテクチャ(基本設計)を表示する「hostinfo」 - システムの詳細情報を表示する「alternatives」 - 異なるバージョンの同系列ソフトウェアなどを切り替える「dd」 - ディスクダンプを保存する「readlink」 - シンボリックリンク先の情報を表示する「mtree」 - ディレクトリ構造を比較する「basename」 - パス名から最後のファイル名を取得して表示する「dirname」 - パスからディレクトリ名を取得して表示する「banner」 - 文字を拡大表示する「ps」 - システムの実行中プロセスを一覧表示する「pgrep」 - プロセス情報を検索する「pkill」 - プロセスを検索してシグナルを送る「fuser」 - ファイル・ソケットを使用しているプロセスを表示する「uptime」 - システムの稼働時間を表示する「top」 - 現在のシステム状況を表示する「dmesg」 - システムメッセージを表示する「df」 - ディスク・ドライブの使用量を表示する「du」 - ディスクの消費状況を集計する「which」 - 絶対パスを調べる「whereis」 - ファイルの場所を調べる「seq」 - 番号を表示する「sed」 - ストリームエディタを使う「awk」 - テキストのパターン検知や処理を行う「sum」 - チャックサムとブロックすを表示する「cksum」 - CRCチェックサムとバイト数を表示する「bind」 - キー割り当ての確認と変更(bash)「bindkey」 - キー割り当ての確認と変更(tcsh)「complete」 - 入力補完候補を定義する
ディレクトリ操作コマンド
「dirs」 - ディレクトリスタックを表示・変更する「pushd」 - ディレクトリスタックを追加・移動する「popd」 - ディレクトリスタックで前に戻る「mkdir」 - ディレクトリの作成「mktemp」 - テンポラリファイル・ディレクトリを作成する「rm」 - ファイルやディレクトリを削除する「rmdir」 - ディレクトリの削除「chmod」 - 「ファイル」「ディレクトリ」のアクセス権を変更する「chgrp」 - ファイルやディレクトリのグループを変更する「chown」 - ファイルやディレクトリの所有者を変更する「rename」 - ファイル名・拡張子を一括変更「ln」 - リンクを作成する「ditto」 - ディレクトリをバックアップする
ファイル関連コマンド
「read」 - データを読み込む「touch」 - ファイルの作成・ファイル時刻の更新「cp」 - ファイルをコピーする「mv」 - ファイル・ディレクトリ名を移動・名前を変更する「SplitForks」 - リソースフォークを分離する「vi」 - ファイル編集をするコマンド「cat」 - ファイルの表示・結合をする「head」 - ファイルの先頭を表示「tail」 - ファイルの末尾を表示する「cat」 - ファイルの表示・結合をする「more」 - ファイル内容を表示する「rev」 - 反転して出力する「uniq」 - ファイル内の重複行を削除して表示する「wc」 - ファイルの内容を解析して行数・単語数・バイト数を表示する「col」 - 逆改行文字をフィルタリングする「lsbom」 - BOM(パッケージカタログ)ファイルの内容を表示する「mkbom」 - BOM(パッケージカタログ)ファイルを作成する「GetFileInfo」 - ファイルの属性情報を表示する「SetFile」 - ファイルの詳細情報を設定する「file」 - ファイルの種類を確認する「mdls」 - ファイルのメタデータを表示する「column」 - データを表形式に変換する「iconv」 - ファイルの文字コードを変換する「unencode/uudecode」 - バイナリファイルを符号化・復号化する「strings」 - ファイル内の表示可能な文字列を表示する「cmp」 - ファイルを比較して、バイト位置と行番号を表示する「diff3」 - 3つのファイルを比較する「vimdiff」 - 複数のファイルを比較する「patch」 - 差分ファイルを適用する「split」 - ファイルを複数に分割する「zip/unzip」 - ファイルを圧縮・解凍する「gzip/gunzip」 - ファイルを圧縮・解凍する「bzip2/bunzip2」 - ファイルを圧縮・解凍する「compress/uncompress」 - ファイルを圧縮・解凍する「zcat」 - 「gzip」「compress」形式のファイルを展開する「bzcat」 - 「bzip2」形式ファイルを標準出力に出力する「zforce」 - 「gzip」形式ファイルを「gz」形式に変換する「znew」 - 「compress」形式ファイルを「gzip」形式に変換する「gzexe」 - 実行ファイルを圧縮する「pstopdf」 - 「PS」「EPS」ファイルを「PDF」ファイルに変換する「sips」 - 画像ファイルを操作する「tiffutil」 - TIFFファイルを変換する
ネットワーク関連コマンド
「ifconfig」 - ネットワークカード(ネットワークインターフェイス)を確認・設定する「iptables」 - IPテーブルの操作コマンド「firewalld」 - CentOS7からファイアーウォールとして採用「netstat」 - ホストのネットワーク統計や状態を確認する「nslookup」 - DNSサーバーに名前解決の問い合わせを行う「finger」 - ユーザー情報を調べる「host」 - DNSサーバを利用してホストを検索する「hostname」 - ホスト名を表示する「ping」 - パケットを送信する「route」 - ルーティングテーブルの確認・設定をする「whois」 - ドメイン登録情報を問合せる「dig」 - ホスト名とIPアドレスを調べる「tcpdump」 - ネットワークのトラフィックをダンプする「arp」 - ARPキャッシュを操作する「ssh」 - セキュアなリモートコントロール「ssh-keygen」 - SSH認証鍵を生成する「openssl」 - SSL通信を行う「scp」 - リモートPCへ暗号化してファイルを転送する「write」 - ログイン中のほかのユーザにメッセージを送信する「telnet」 - リモートホストにログインする「ftp」 - FTPでファイルを転送する「rcp」 - リモートホスト上のファイルをコピーする「rsh」 - リモートホストでコマンドを実行「rlogin」 - リモートホストで作業する「ntpdate」 - NTPサーバを利用して日付時刻を設定する「ntpq」 - NTPで問合せる「apachectl」 - HTTPサーバを管理する「named」 - DNSサーバを管理する「postfix」 - Mailサーバを管理する
開発ツール
「gcc」 - 「C言語」「C++」言語を「コンパイル」「ビルド」する「javac」 - java言語をビルドする「xcodebuild」 - Xcodeプロジェクトをビルドする「gdb」 - デバックを行う「make」 - 大規模プログラムの一部だけをコンパイル・リンクする「cvs」 - バージョン管理ツールを使う「svn」 - svnでバージョンを管理する
プリンタ関連コマンド
「disable」 - プリンタの利用を停止する「lpc」 - プリンタの状態を表示する「lp」 - 指定ファイルを印刷する「lpadmin」 - プリンタを管理する「lpstat」 - プリンタのステータス情報を表示する「lpinfo」 - 有効な印刷デバイスを確認する「lpr/lpq/lprm」 - プリンタを操作する
その他
「bc」 - 電卓機能を利用する「cal」 - カレンダーを表示する「date」 - 日付を表示する「say」 - 音声で文字列を読み上げる





【Bash】「Bash」で「ドメイン名」から「IPアドレス」を調べる方法

Shell Script / シェルスクリプト
【Bash】
「Bash」で「ドメイン名」から「IPアドレス」を調べる方法




「Bash」で「ドメイン名」から「IPアドレス」を調べる方法をまとめています。


「Bash」には、
「IPアドレス」が調べられる「コマンド」に、

・「whois」 = ドメイン情報を表示する
・「dig」 = ドメイン名からIPアドレスを調べる
・「host」 = ドメイン名からIPアドレスを調べる
・「nslookup」 = ドメイン名からIPアドレスを調べる

などが用意されている。



詳しくは、
下記をご参照ください。



「Bash」の「IPアドレス」が調べられる「コマンド」


シェルスクリプト「Bash」には、
「ドメイン名」から「IPアドレス」を調べる「コマンド」が
いくつか用意されている。


「IPアドレス」が調べられる「コマンド」

・「whois」 = ドメイン情報を表示する
・「dig」 = ドメイン名からIPアドレスを調べる
・「host」 = ドメイン名からIPアドレスを調べる
・「nslookup」 = ドメイン名からIPアドレスを調べる


Back

「whois」コマンドの使い方


「whois」サービスから情報を取得できる。
「whois」サービスは、ドメイン名の所有者・所属団体・などや、技術的な問合せ用のメールアドレスを検索することができる。



書式

whois オプション ドメイン


オプション

-aARIN(American Registry for Internet Numbers)データベースを使用する。「APNIC」および「RIPE」以外の情報がある。
-AAPNIC(Asia/Pacific Network Information Center)データベースを使用する。
-bNetwork Abuse Clearinghouseのデータベースを使用する。
-d米国国防省(US Department of Defense)のデータベースを使用する。。
-g米国の軍以外の連邦政府のデータベースを使用する。
-h指定したホストを使用する。
-iNetwork Solutions Registry for Internet Numbers(whois.networksolutions.com)のデータベースを使用する。


Back

「dig」コマンドの使い方




「dig」コマンドとは

ホスト名やIPアドレスから、それぞれの関連する情報を調べるコマンド。
DNSサーバへドメイン名を問い合せるためのパケットを送信する。
「@DNSサーバ」に、問合せたいサーバのホスト名・IPアドレスを指定する。
ドメインを調べたい場合は、ドメイン名を指定する。




「dig」コマンドの書式

dig @DNSサーバ ドメイン 検索タイプ 検索クラス 検索オプション・・・・

dig @server ドメイン名 query-type
dig @server IPアドレス query-type


「検索タイプ」の種類

Query-Type解説
Aネットワークアドレス (省略時)
NSネームサーバ
MXメールサーバの情報
SOASOA 情報
ANY知っているすべての情報
aネットワークアドレス
any指定されたドメイン情報
mxドメインのメール交換情報
nsネームサーバ
soaゾーン権限者レコード
hinhoホスト情報
axfrゾーン転送情報
txt任意の文字列


「検索クラス」の種類

inインタネットクラスドメイン
any任意、もしくは、すべてのクラス情報


「オプション」の種類

-f ファイル名問合せした内容を記述したファイルを指定した実行する。
-x逆アドレス交換で問合せを行う。
-p ポート番号標準ポート以外のDNSサーバへ問合せるポート番号を指定できる。
-tバッチモードで実行した際の時間間隔を指定する。


使用例

dig ホスト名ホスト名からIPアドレスを検索する。
dig IPアドレスIPアドレスからホスト名を検索する。
dig ホスト名 mxホスト名にメール交換用のホストが定義されているか確認する。
dig www.xxx.com.自分のネットワーク外にあるホストのIPアドレスを検索する。必ずホスト名の最後に「.」を付ける。
dig 自分のDNSホスト名. DNSサーバー名.
dig ns.xxx.ne.jp. @xxx.com.
自分のネットワーク外にあるDNSサーバーを使ってホスト名を検索する。
ホスト名などの最後に「.」をつけることで、外部のネットワークであることを明示する。


Back

「host」コマンドの使い方



「host」コマンドとは

nameサーバからホスト情報を取得できる。
ホスト名を指定した時は順引き検索をする。



書式

host オプション ホスト名


オプション

-a全ての情報を表示できる。
-lドメイン名を一覧表示する。
-r再帰的な問い合わせを抑止する。
-t PRタイプDNSサーバが対応する検索タイプを指定する。


Back

「nslookup」コマンドの使い方




「nslookup」コマンドとは

DNSサーバに名前解決の問い合わせを行う。
指定したホスト名をDNSサーバーに問合せ、情報を取得する。
引数の指定がない場合は、対話モードとなる。

nslookupコマンドは、DNSクライアントの名前解決機能を手動実行するためのコマンド。
正引き/逆引き、Aレコード/NSレコード/MXレコードなどのレコード種類の絞込み検索や、再帰検索/イテレイティブ検索、DNSサーバの任意切り替え、デバッグの実行など、さまざまなオプションからDNS検索の診断が行える。
単にDNS検索を行いたいだけの場合にも、十分な機能を提供するだろう。



「nslookup」コマンドの書式

nslookup[ -setコマンド・オプション][ ホスト・ドメイン名またはIPアドレス[ -DNSサーバ名]]


一般的なコマンド・ライン・モードのほか、ホスト・ドメイン名やIPアドレスが与えられていない場合には、対話モードで使用できる。
対話モードでは、コマンドを指定することで、DNSサーバ切り替えやゾーン情報の参照なども行える。
またLinuxでは、ユーザーのホーム・ディレクトリの「.nslookuprc」ファイルにオプションを記載して、実行時に自動指定しておくこともできる。


オプション

オプションなし対話モードで実行する
setコマンド・オプションsetコマンドのオプションを指定して設定する
ホスト・ドメイン名 または IPアドレスホスト・ドメイン名を指定した場合は正引き(Aレコード検索)、IPアドレスを指定した場合には逆引き(PTRレコード検索)が行われる
DNSサーバ名接続するDNSサーバを指定する
name,-DNSサーバ名情報を取得するためのDNSサーバを指定する。



対話モード

ホスト・ドメイン名またはIPアドレス[ DNSサーバ名]

下記のコマンド以外の文字列が入力された場合、
ホスト・ドメイン名またはIPアドレスが入力されたと解釈して、正引きまたは逆引きを実行する。DNSサーバ名も指定された場合には、そのDNSサーバに対して問い合わせを実行する


ホスト名指定したホスト情報を取得する
IPアドレス指定したIPアドレス情報を取得する
set type=タイプ取得する情報のタイプを指定できる。A=IPアドレス、CNAME=正式なホスト名、MX=メールサーバ、PTR=ホスト名
exit対話モードの終了。
all現在の設定オプションを表示する
debug | nodebugデバッグ・モードを指定する。nodebugでこれを解除する
d2 | nod2より詳細なデバッグ・モードを指定する。nod2でこれを解除する
defname | nodefname デフォルト・ドメイン名を指定したホスト・ドメイン名に自動的に付加して検索する。例えばwwwと指定された場合に、デフォルト・ドメイン名であるexample.netを付加してwww.example.netとして検索する。nodefnameはこの動作を解除する
recurse | norecurse recurseは再帰検索を指定する。norecurseはイテレイティブ検索(反復検索: 再帰検索を行わずDNSサーバが管理するゾーン情報のみへの一度の検索のみ)を指定する
search | nosearch ドメイン・サーチ・リストを付加して検索する。nosearchはこれを解除する
vc | novc TCP接続による検索を行う。novcはUDP接続での通常の検索を行う(ただし通常は、回答されるデータ・サイズがUDPパケット・サイズを越えている場合(トランケーション・エラー)に、あらためてTCP接続で検索される)
domain=ドメイン名デフォルト・ドメイン名を指定する
srchlist=ドメイン名[/ドメイン名 ……] ドメイン・サーチ・リストを指定する。複数のドメインを指定でき、検索時に指定されたホスト名に自動的に付加して、それぞれの名前で成功するまで試行する
root=DNSサーバ名ルートDNSサーバを指定する
retry=試行回数検索失敗時の試行回数を指定する
timeout=タイムアウト秒数DNSサーバに対するタイムアウトを秒数で指定する
querytype=検索レコード種別 | type=検索レコード種別検索対象とするレコード種別を指定する。「'A'」「'SOA'」「'NS'」「'MX'」など
port=ポート番号 DNSサーバへ接続する際のポート番号を指定する。通常は'53'番
class=クラス名 検索するレコード・クラスを指定する。通常はデフォルトである「'IN'(internet)」を指定する
msxfr | nomsxfr*1高速ゾーン転送モード(many-answers)を指定する。nomsxfrはこれを解除する
ixfrver=シリアル番号*1IXFR(Incremental Zone Transfers:差分ゾーン転送(RFC1995))モードを使用するとともに、現在のシリアル番号を指定する
server DNSサーバ名 使用するDNSサーバを、指定したサーバに変更する(デフォルト・サーバの変更)。その際に、サーバのIPアドレスは現在指定されているDNSサーバを用いて検索する
lserver DNSサーバ名 使用するDNSサーバを、指定したサーバに変更する(デフォルト・サーバの変更)。その際に、サーバのIPアドレスはルート・ネーム・サーバから再帰検索して判断する
finger[ ユーザー名] 現在のデフォルト・サーバに対してfinger(指定されたユーザー情報の問い合わせ)を実行する
root 現在のデフォルト・サーバをルート・ネーム・サーバとする
ignoretc | noignoretc トランケーション・エラーを無視する。つまり、TCP接続による再度の検索は行わない。noignoretcはこれを解除する
ls[ オプション] ドメイン名[ >| > > 出力ファイル名] 指定したドメインのゾーン情報を表示する。これは、通常プライマリ・サーバからセカンダリ・サーバに対して行うゾーン転送と同様の動作である。指定した出力ファイルに内容を出力して、新規作成または追記することもできる。また以下のオプションが指定できる
オプションなしホストのエイリアス(CNAMEレコード)のみを表示する
-vホスト情報(HINFOレコード)のみを表示する
-nホストのサービス情報(WKSレコード)のみを表示する
-Nすべてのレコードを表示する
-t レコードタイプ任意のレコードタイプを表示する。例えば「-t cname」は-aオプションと同義となる
view 出力ファイル名*1(lsコマンドで作成された)出力ファイルを表示する
exit対話モードを終了する
help | ?ヘルプを表示する


Back